var overcolor = 'ffffff'; var offcolor = 'aaaaaa'

// IE Check
var ie6 = false;
if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer") {
    var arVersion = navigator.appVersion.split("MSIE")
    var version = parseFloat(arVersion[1])
    if( version < 7.0 ) 
        ie6 = true;
}

// Util functions //////////////////
function hex2rgb(color) {
    var rgb;
    color = color.replace(/^#/,'');
    if( color.length == 6 ) {
        rgb = [
            parseInt(color.substring(0,2), 16),
            parseInt(color.substring(2,4), 16), 
            parseInt(color.substring(4,6), 16)
        ];
    }
    else if( color.length == 3 ) {
        rgb = [
            parseInt(color.substring(0,1), 16),
            parseInt(color.substring(1,2), 16), 
            parseInt(color.substring(2,3), 16)
        ];
    } else {
        rgb = [0,0,0];
    }
    return rgb;
}
function rgb2html(R,G,B) {return toHex(R)+toHex(G)+toHex(B)}
function toHex(N) {
 if (N==null) return "00";
 N=parseInt(N); if (N==0 || isNaN(N)) return "00";
 N=Math.max(0,N); N=Math.min(N,255); N=Math.round(N);
 return "0123456789ABCDEF".charAt((N-N%16)/16)
      + "0123456789ABCDEF".charAt(N%16);
}
function color_format(color) {
    var returnColour = "#ffffff";
    if(color != "" && color != "transparent") {
        if(color.substr(0, 3) == "rgb") {
            var a = color.replace(/[^0-9|,]/g,'').split(',');
            returnColour = rgb2html(a[0],a[1],a[2]);            
        }        
        else if(color.length == 4) {
            returnColour = "#" + color.substring(1, 2) + 
                    color.substring(1, 2) + 
                    color.substring(2, 3) + 
                    color.substring(2, 3) + 
                    color.substring(3, 4) + 
                    color.substring(3, 4);            
        }        
        else {
            returnColour = color;            
        }        
    }
    else if( color == "transparent" ) {
        return 'transparent';
    }    
    return returnColour;    
}

// Rollover Functions //////////////////////////////////////////////////////////////////////////
function rollOverEvent(e){ rollOver(e.target) }
function rollOutEvent(e){ rollOut(e.target) }
rollOver = function(obj)
{    
    if( $(obj).is('.ignoreRollOver') ) return;
    if( !obj.src ) obj = $(obj).children()[0];
    var c = color_format( obj.style.color  || overcolor ).replace('#','');
    if( ie6 && obj.runtimeStyle.filter ) {
        obj = obj.filters(0);
    }
    if( obj.src.search('image.php') == -1 ) {
        obj.src = obj.src.replace(/\.(\w+)$/, "_over.$1");    
    }        
    else {
        if(obj.src.indexOf('color=') > 0)
            obj.src = obj.src.replace(/color=[0-9a-fA-F]*/, 'color='+c);
        else
            obj.src += '&color=' + c;
    }
}

rollOut = function(obj)
{
    if( $(obj).is('.ignoreRollOver') ) return;
    if( !obj.src ) obj = $(obj).children()[0];
    if( obj.tagName.toLowerCase() != 'img' ) obj = $('img',obj)[0];
    if( ie6 && obj.runtimeStyle.filter ) {
        obj = obj.filters(0);
    }
    if( obj.src.search('image.php') == -1 ) {
        obj.src = obj.src.replace(/_over\.(\w+)$/, ".$1");    
    }
    else {
        obj.src = obj.src.replace(/color=[0-9a-fA-F]*/, 'color='+offcolor);        
    }


}


// EVENTS ///////////////////////////////////////////////////////////////////////////


// DOM Ready
$(document).ready( function () {
    // Init menu
    $('ul#menu').jdMenu({
        activateDelay:100, hideDelay:400,
        onShow: function() {
            $('> a img', this).each(function() {
                rollOver(this);
                $(this).addClass('ignoreRollOver');
            });
            if( ie6 ) {
                $('ul',this).css({
                    'width' : $(window).width()+'px'
                });            
            }            
        },
        onHide: function() {
            $('#menu img.ignoreRollOver').each(function(){
                $(this).removeClass('ignoreRollOver')
                rollOut(this);
            });
        }
    });
    // Menu: fix margin on last item in row
    $('#menu td:last-child a').css('margin-right','0px');
});

// Window Load 
$(window).load( function(){
    // Image Rollovers
    $('.rollover').
        bind('mouseover', rollOverEvent).
        bind('mouseout', rollOutEvent).
        each( function(i, rollover) {
            if( !rollover.src ) rollover = $(rollover).children()[0];
            var preload = new Image();
            if( rollover.src.search('image.php') == -1 ) {
                preload.src = rollover.src.replace(/\.(\w+)$/, "_over.$1");
            }else{
                var src = rollover.src.replace(/&color=[0-9a-fA-F]*/, '');
                src += '&color=' + overcolor;
                preload.src = src;
            }
    });    

    if( ie6 ) {
        $('#menu ul').show().each( function() {
            $('img', this).iepngfix();
        }).hide();
    }
});

