// 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;    
}

// jQuery Plugins //////////////////////////////////////////////////////////////////////////

// Aligns the object vertically using either top margin to top property
jQuery.fn.vcenter = function() {
    return this.each( function() {
        var $ = jQuery;
        var $obj = $(this);
        var $p = $obj.parent();
        
        var t = parseInt( ($p.height() - $obj.height()) / 2 );
        if( $obj.css('position').toLowerCase() == 'absolute' ) {
            $obj.css('top', t+'px');
        }
        else {
            $obj.css('margin-top', t+'px');
        }
        
    });
}

// Rollover Plugin //////////////////////////////////////////////////////////////////////////
jQuery.rollover = {
    settings : {overcolor: 'FF0000'},
    getObj : function(obj) { // handle ie6 filter
        if( obj.runtimeStyle && obj.runtimeStyle.filter )  return obj.filters(0);
        else return obj;
    },
    overEvent: function(e) {
        var obj = e.target;
        if( !obj.src ) obj = jQuery('>img',obj)[0];        
        var c = color_format( obj.style.color  || jQuery.rollover.settings.overcolor ).replace('#','');
        if( obj.saved_src ) return;
        obj.saved_src = jQuery.rollover.getObj(obj).src; 
        obj = jQuery.rollover.getObj(obj);
        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;
        }        
    },
    outEvent : function(e) {
        var obj = e.target;
        if( !obj.src ) obj = jQuery(obj).children()[0];
        if( obj.tagName.toLowerCase() != 'img' ) obj = jQuery('img',obj)[0];        
        if( obj.saved_src ) jQuery.rollover.getObj(obj).src = obj.saved_src;
        obj.saved_src = null;
    }    
};
jQuery.fn.rollover = function (settings) {
    jQuery.rollover.settings = jQuery.extend(jQuery.rollover.settings, settings);

    return this.each( function(i,obj) {
        jQuery(obj).unbind('mouseover', jQuery.rollover.overEvent).unbind('mouseout', jQuery.rollover.outEvent).
            mouseover(jQuery.rollover.overEvent).mouseout(jQuery.rollover.outEvent);        
    });
};
jQuery.fn.rolloverUnbind = function () {
    return this.each( function(i,obj) {
        jQuery(obj).unbind('mouseover', jQuery.rollover.overEvent);
        jQuery(obj).unbind('mouseout', jQuery.rollover.outEvent);
        obj.saved_src = null;
    });
};

// Preloads rollover images according to rollover replacement rules
jQuery.fn.preloadImg = function () {
    return this.each( function(i,obj) {
        if( !obj.src ) obj = jQuery('>img',obj)[0];
        var obj = jQuery.rollover.getObj(obj);
        var preload = new Image();
        if( obj.src.search('image.php') == -1 ) {
            preload.src = obj.src.replace(/\.(\w+)$/, "_over.$1");
        }else{
            var src = obj.src.replace(/&color=[0-9a-fA-F]*/, '');
            src += '&color=' ;
            preload.src = src;
        }    
    });
};

// Uses php image generator to replace the element's text with an image
jQuery.fn.imageReplace = function (settings) {
    var settings = jQuery.extend({},  settings);
    return this.each( function() {
        $obj = jQuery(this);
        if( $obj.children().length > 0 ) return;
        var text = $obj.text();
        if( text.length < 1 ) return;
        
        var options = '';
        jQuery.each(settings, function(key,val) {
            options += '&'+encodeURIComponent(key)+'='+encodeURIComponent(val);
        });
        $obj.empty().append('<img src="/img/image.php?text='+encodeURIComponent(text)+ options + '" alt="'+text+'" />');
    });
}

// Init Events

$(document).ready( function () {
  
});

