// JavaScript Document

/*
 * jQuery Hover/Swap - A simple, complete, and unobtrusive roll-over solution.
 *
 * Copyright (c) 2010 David Belais
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Version: 0.1
 * 
 */
 
(function(a){a.fn.hoverswap=function(d){var f=a.extend({align:null,srcAttr:"longdesc",blankgif:"http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif",url:null},d);var b=this.selector;var e=this.context;var c=(a.browser.msie&&a.browser.version<7);if(f.align!==null){var g=[];if(typeof(f.align)=="string"){g=a.grep(a.trim(f.align).split(" "),function(j,h){return(j.length>0);});}if(typeof(f.align)=="array"){g=f.align;}f.align=[0.5,0.5];a.each(g,function(h){if(this=="left"){f.align[0]=0;}else{if(this=="right"){f.align[0]=1;}else{if(this=="center"){f.align[0]=0.5;}else{if(this=="middle"){f.align[1]=0.5;}else{if(this=="top"){f.align[1]=0;}else{if(this=="bottom"){f.align[1]=1;}else{f.align[h]=Number((/\d*/).exec(this));}}}}}}if(this.indexOf("%")>-1){f.align[h]*=100;}});}this.each(function(){var i=this;if(!a(this).data().hoverswap){a(this).data("hoverswap",{orig:{css:{position:a(this).css("position")}},align:null});}if(!a(this).data().hoverswap.orig.src){var k;if(c){var l=/^progid\:DXImageTransform\.Microsoft\.AlphaImageLoader\(.*?src\=[\"\']?(.*\.png)[\"\']?.*?\)/.exec(this.runtimeStyle.filter);if(l&&l.length>1){k=a(this).data("hoverswap");k.orig.src=l[1];a(this).data("hoverswap",k);}else{k=a(i).data("hoverswap");k.orig.src=a(this).attr("src");a(i).data("hoverswap",k);if(/\.png\b/.test(a(this).attr("src"))){a(this).attr("src",f.blankgif);this.runtimeStyle.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+a(this).data().hoverswap.orig.src+'",sizingMethod="image");';}}}else{k=a(this).data("hoverswap");k.orig.src=a(this).attr("src");a(this).data("hoverswap",k);}}var j=a(this).parent()[0];var m=new Image();if(f.url){if(typeof(f.url)=="string"){m.src=f.url;}else{if(typeof(f.url)=="array"){m.src=f.url.shift();}else{if(typeof(f.url)=="object"){m.src=f.url[a(this).attr("src")];}}}}else{m.src=a(this).attr(f.srcAttr);}a(m).load(function(){var n=a(i).data("hoverswap");n.orig.offset=a(i).offset();n.orig.position=a(i).position();n.orig.width=a(i).width();n.orig.height=a(i).height();n.hover={src:a(this).attr("src"),width:this.width,height:this.height};if(f.align&&i.nodeName.toLowerCase()!="input"){n.align=f.align;var h={x:f.align?(n.orig.width-this.width)*(n.align[0]):0,y:f.align?(n.orig.height-this.height)*(n.align[1]):0};a(this).attr("alt","").attr("width",this.width).attr("height",this.height).css({width:this.width,height:this.height,position:"absolute",zIndex:99999999999,visibility:"hidden"}).addClass("temp-rollover").appendTo(j);if(c&&/\.png\b/.test(a(this).attr("src"))){this.runtimeStyle.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+a(this).attr("src")+'",sizingMethod="image");';a(this).attr("src",f.blankgif);}a(j).hover(function(){var o=a(i).data("hoverswap");o.orig.offset=a(i).offset();o.orig.position=a(i).position();o.hover.offset={top:o.orig.offset.top+h.y,left:o.orig.offset.left+h.x};o.hover.position={top:o.orig.position.top+h.y,left:o.orig.position.left+h.x};a(m).css({left:o.hover.position.left,top:o.hover.position.top,width:o.hover.width,height:o.hover.height,visibility:"visible"}).offset(o.hover.offset);a(i).css({visibility:"hidden"});a(i).data("hoverswap",n);},function(){a(i).css({visibility:"visible"});a(m).css({visibility:"hidden"});a(b,e).css({visibility:"visible"});});}a(i).data("hoverswap",n);});if(m.complete){a(m).trigger("load");}}).filter(function(){return !a(this).data("hoverswap").align;}).hover(function(){if(c&&/\.png$/.test(a(this).data("hoverswap").hover.src)){this.runtimeStyle.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+a(this).data("hoverswap").hover.src+'",sizingMethod="image");';a(this).attr("src",f.blankgif);}else{a(this).attr("src",a(this).data("hoverswap").hover.src);}},function(){if(c&&/\.png$/.test(a(this).data().hoverswap.orig.src)){this.runtimeStyle.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+a(this).data().hoverswap.orig.src+'",sizingMethod="image");';a(this).attr("src",f.blankgif);}else{a(this).attr("src",a(this).data().hoverswap.orig.src);}});return this;};})(jQuery);
