/* Rollover & PNG Fix */  

(function($) {

   var hack = {
		ltie7 : $.browser.msie && /MSIE\s(5\.5|6\.)/.test(navigator.userAgent),
		pixel : 'images/pages/global/pixel.gif',
		filter : function(src) {
			return "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,sizingMethod=crop,src='"+src+"')";
		}
	};
	
	$.fn.pngfix = hack.ltie7 ? function() {
    	return this.each(function() {
			var $$ = $(this);
			
			if ($$.is('img')) {
				$$.css({filter:hack.filter($$.attr('src')), width:$$.width(), height:$$.height()}).attr({src:hack.pixel});
			} else {			
				var image = $$.css('backgroundImage');
				if (image.match(/^url\((.*\.png)\)$/i)) {
					image = RegExp.$1;					
					$$.css({backgroundImage:'none', filter:hack.filter(image)});
				}
			}
		});
	} : function() { return this; };
	
	$.fn.pngunfix = hack.ltie7 ? function() {
    	return this.each(function() {
			var $$ = $(this);
			var src = $$.css('filter');
			if (src.match(/src=(.*\.png)/i)) { /* get img source from filter */
				src = RegExp.$1;
				if ($$.is('img')) {
					$$.attr({src:src}).css({filter:''});
				} else {
					$$.css({filter:'', background:'url('+src+')'});
				}	
			}
		});
	} : function() { return this; };

	
	$.fn.imageRollOver = function() {
	    return this.each(function() {
			var $$ = $(this);	
		    if ($$.css('filter') && $$.css('filter').match(/src=["'](.*\.(png|gif|jpg|jpeg))["']/i)) { 
			    var NewImage = RegExp.$1.replace('_over', '').replace(/^(.*?)(\.(?:gif|jpg|png|jpeg))$/, "$1_over$2");
			    $$.css({filter:hack.filter(NewImage)});			
		    } else if ($$.is('img')) {
		        var NewImage = $$.attr('src').replace('_over', '').replace(/^(.*?)(\.(?:gif|jpg|png|jpeg))$/, "$1_over$2");
		        $$.attr({src:NewImage});
		    } else {
		        var NewImage = $$.css('backgroundImage').replace('_over', '').replace(/^(.*?)(\.(?:gif|jpg|png|jpeg))$/, "$1_over$2");
			    $$.css({backgroundImage:NewImage});
		    }	
		});
	};

	$.fn.imageRollOut = function() {	
		return this.each(function() {
	        if ($$.css('filter') && $$.css('filter').match(/src=["'](.*\.(png|gif|jpg|jpeg))["']/i)) { 
			    var NewImage = RegExp.$1.replace('_over', '');
			    $$.css({filter:hack.filter(NewImage)});			
		    } else if ($$.is('img')) {
		        var NewImage = $$.attr('src').replace('_over', '');
		        $$.attr({src:NewImage});
		    } else {
		        var NewImage = $$.css('backgroundImage').replace('_over', '');
		        $$.css({backgroundImage:NewImage});
		    }	
	    });
	};
	
	$.fn.imagePreload = function() {
	    return this.each(function() {
	        var $$ = $(this);	
	      	var newImage = $$.attr('src').replace('_over', '');
		    jQuery("<img>").attr("src", newImage); 
	    });	
	};

})(jQuery);

$(document).ready(MX_ImageUtilsInit);


function MX_ImageUtilsInit(){
    $('img[@src$=.png], div.Galley').pngfix();	
    $('img.rollover,div.rollover,span.rollover').not('[@onmouseover]').imagePreload().hover(
           function(){$(this).imageRollOver()},
           function(){$(this).imageRollOut()}
    );
};
