/*
 * jQuery.ImageSwitch
 * Version: 1.0
 * http://www.groject.com/ImageSwitch/
 *
 * Copyright (c) 2009 Hieu Pham - http://www.hieu.co.uk
 * COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)
 * http://www.opensource.org/licenses/cddl1.php
 *
 * Date: 13/03/2009
 * Revision: 50
 */
(function($){$.fn.ImagePreload=function(FileName,EndFunction){var TempImage=new Image();TempImage.src=FileName;if($.isFunction(EndFunction)){TempImage.load(EndFunction());}};});(function($){$.fn.ImageSwitch=function(Arguements,FuntionHandle){var defaults={Type:"FadeIn",NewImage:"",EffectOriginal:true,Speed:1000,StartLeft:50,StartTop:0,StartOpacity:0,EndLeft:-50,EndTop:0,EndOpacity:0,Direction:"RightLeft",Door1:"",Door2:""};var Args=$.extend(defaults,Arguements);var Obj=this;var EndFunction=function(){};if($.isFunction(FuntionHandle)){EndFunction=FuntionHandle;}var FadeImage=function(){$("body").append("<img class='GrpEffectImg'/>");$(".GrpEffectImg").attr("src",Obj.attr("src"));$(".GrpEffectImg").css("position","absolute");$(".GrpEffectImg").css("top",Obj.offset().top);$(".GrpEffectImg").css("left",Obj.offset().left);$(".GrpEffectImg").css("opacity",1);Obj.attr("src",Args.NewImage);if(Args.EffectOriginal){Obj.css("opacity",Args.StartOpacity);Obj.animate({opacity:1},Args.Speed);}$(".GrpEffectImg").animate({opacity:0},Args.Speed,function(){$(".GrpEffectImg").remove();EndFunction();});};var Fly=function(FlyIn){$("body").append("<img class='GrpEffectImg'/>");$(".GrpEffectImg").css("position","absolute");if(FlyIn){$(".GrpEffectImg").attr("src",Args.NewImage);$(".GrpEffectImg").css("top",Obj.offset().top+Args.StartTop);$(".GrpEffectImg").css("left",Obj.offset().left+Args.StartLeft);$(".GrpEffectImg").css("opacity",Args.StartOpacity);EndTop=Obj.offset().top;EndLeft=Obj.offset().left;EndOpacity=1;}else{$(".GrpEffectImg").attr("src",Obj.attr("src"));Obj.attr("src",Args.NewImage);$(".GrpEffectImg").css("top",Obj.offset().top);$(".GrpEffectImg").css("left",Obj.offset().left);$(".GrpEffectImg").css("opacity",1);EndTop=Obj.offset().top+Args.EndTop;EndLeft=Obj.offset().left+Args.EndLeft;EndOpacity=Args.EndOpacity;}$(".GrpEffectImg").animate({opacity:EndOpacity,top:EndTop,left:EndLeft},Args.Speed,function(){Obj.attr("src",Args.NewImage);$(".GrpEffectImg").remove();EndFunction();});};var Scroll=function(ScrollIn){var backup=Obj.clone(true);Obj.wrap("<div id='GrpViewport'></div>");$("#GrpViewport").css("overflow","hidden");$("#GrpViewport").width(Obj.width());$("#GrpViewport").height(Obj.height());$("#GrpViewport").append("<img class='GrpEffectImg'/>");$(".GrpEffectImg").css("position","absolute");var StartTop=0;var StartLeft=0;switch(Args.Direction){case"RightLeft":StartLeft=-Obj.width();break;case"LeftRight":StartLeft=Obj.width();break;case"TopDown":StartTop=-Obj.height();break;case"DownTop":StartTop=Obj.height();break;}if(ScrollIn){$(".GrpEffectImg").attr("src",Args.NewImage);$(".GrpEffectImg").css("top",StartTop);$(".GrpEffectImg").css("left",StartLeft);$(".GrpEffectImg").css("opacity",Args.StartOpacity);EndTop=0;EndLeft=0;EndOpacity=1;}else{$(".GrpEffectImg").attr("src",Obj.attr("src"));$(".GrpEffectImg").css("left",0);$(".GrpEffectImg").css("top",0);Obj.attr("src",Args.NewImage);EndTop=StartTop;EndLeft=StartLeft;EndOpacity=Args.EndOpacity;}if(Obj.css("position")!="absolute"){$("#GrpViewport").css("position","relative");Obj.css("position","absolute");}else{$("#GrpViewport").css("position","absolute");$("#GrpViewport").css("left",Obj.css("left"));$("#GrpViewport").css("top",Obj.css("top"));Obj.css("top",0);Obj.css("left",0);}if(Args.EffectOriginal&&ScrollIn){Obj.animate({top:-StartTop,left:-StartLeft},Args.Speed);}$(".GrpEffectImg").animate({opacity:EndOpacity,top:EndTop,left:EndLeft},Args.Speed,function(){backup.attr("src",Args.NewImage);$("#GrpViewport").replaceWith(backup);EndFunction();});};var SingleDoor=function(){var backup=Obj.clone(true);Obj.wrap("<div id='GrpViewport'></div>");$("#GrpViewport").css("overflow","hidden");$("#GrpViewport").width(Obj.width());$("#GrpViewport").height(Obj.height());$("#GrpViewport").append("<div class='GrpEffectDiv'/>");$(".GrpEffectDiv").attr("src",Args.NewImage);$(".GrpEffectDiv").css("position","absolute");$(".GrpEffectDiv").css("background-color","#FFF");if(Args.Door1.length>0){$(".GrpEffectDiv").css("background",Args.Door1);}$(".GrpEffectDiv").width(Obj.width());$(".GrpEffectDiv").height(Obj.height());var StartTop=0;var StartLeft=0;switch(Args.Direction){case"RightLeft":StartLeft=-Obj.width();break;case"LeftRight":StartLeft=Obj.width();break;case"TopDown":StartTop=-Obj.height();break;case"DownTop":StartTop=Obj.height();break;}$(".GrpEffectDiv").css("top",StartTop);$(".GrpEffectDiv").css("left",StartLeft);if(Obj.css("position")!="absolute"){$("#GrpViewport").css("position","relative");Obj.css("position","absolute");}else{$("#GrpViewport").css("position","absolute");$("#GrpViewport").css("left",Obj.css("left"));$("#GrpViewport").css("top",Obj.css("top"));Obj.css("top",0);Obj.css("left",0);}$(".GrpEffectDiv").animate({top:0,left:0},Args.Speed,function(){Obj.attr("src",Args.NewImage);$(".GrpEffectDiv").animate({top:StartTop,left:StartLeft},Args.Speed,function(){backup.attr("src",Args.NewImage);$("#GrpViewport").replaceWith(backup);EndFunction();});});};var DoubleDoor=function(){var orgPosition=Obj.css("position");var orgLeft=Obj.css("left");var orgTop=Obj.css("top");Obj.wrap("<div id='GrpViewport'></div>");$("#GrpViewport").css("overflow","hidden");$("#GrpViewport").width(Obj.width());$("#GrpViewport").height(Obj.height());$("#GrpViewport").append("<div class='GrpEffectDiv'/>");$(".GrpEffectDiv").css("position","absolute");$(".GrpEffectDiv").css("background-color","#FFF");if(Args.Door1.length>0){$(".GrpEffectDiv").css("background",Args.Door1);}$(".GrpEffectDiv").width(Obj.width());$(".GrpEffectDiv").height(Obj.height());$("#GrpViewport").append("<div class='GrpEffectDiv1'/>");$(".GrpEffectDiv1").css("position","absolute");$(".GrpEffectDiv1").css("background-color","#FFF");if(Args.Door2.length>0){$(".GrpEffectDiv1").css("background",Args.Door2);}$(".GrpEffectDiv1").width(Obj.width());$(".GrpEffectDiv1").height(Obj.height());var StartTop=0;var StartLeft=0;switch(Args.Direction){case"RightLeft":StartLeft=-Obj.width();break;case"LeftRight":StartLeft=Obj.width();break;case"TopDown":StartTop=-Obj.height();break;case"DownTop":StartTop=Obj.height();break;}$(".GrpEffectDiv").css("top",StartTop);$(".GrpEffectDiv").css("left",StartLeft);$(".GrpEffectDiv1").css("top",-StartTop);$(".GrpEffectDiv1").css("left",-StartLeft);if(!Args.EffectOriginal){$(".GrpEffectDiv").css("background","#FFF url("+args.newimage+") no-repeat "+-StartLeft/2+"px "+-StartTop/2+"px");$(".GrpEffectDiv1").css("background","#FFF url("+args.newimage+") no-repeat "+StartLeft/2+"px "+StartTop/2+"px");}if(Obj.css("position")!="absolute"){$("#GrpViewport").css("position","relative");Obj.css("position","absolute");}else{$("#GrpViewport").css("position","absolute");$("#GrpViewport").css("left",orgLeft);$("#GrpViewport").css("top",orgTop);Obj.css("position","absolute");Obj.css("top",0);Obj.css("left",0);}$(".GrpEffectDiv").animate({top:StartTop/2,left:StartLeft/2},Args.Speed,function(){Obj.attr("src",Args.NewImage);if(!Args.EffectOriginal){Obj.css("position",orgPosition);Obj.css("top",orgTop);Obj.css("left",orgLeft);$("#GrpViewport").replaceWith(Obj);}else{$(".GrpEffectDiv").animate({top:StartTop,left:StartLeft},Args.Speed,function(){Obj.css("position",orgPosition);Obj.css("top",orgTop);Obj.css("left",orgLeft);$("#GrpViewport").replaceWith(Obj);});}});$(".GrpEffectDiv1").animate({top:-StartTop/2,left:-StartLeft/2},Args.Speed,function(){Obj.attr("src",Args.NewImage);if(!Args.EffectOriginal){EndFunction();}else{$(".GrpEffectDiv1").animate({top:-StartTop,left:-StartLeft},Args.Speed,function(){EndFunction();});}});};var Flip=function(FlipIn){var backup=Obj.clone(true);if(Obj.css("z-index")=="auto"){Obj.css("z-index",100);}if(Obj.css("position")!="absolute"){Obj.css("position","relative");}$("body").append("<img class='GrpEffectImg'/>");$(".GrpEffectImg").css("position","absolute");$(".GrpEffectImg").css("top",Obj.offset().top);$(".GrpEffectImg").css("left",Obj.offset().left);if(FlipIn){$(".GrpEffectImg").css("opacity",Args.StartOpacity);$(".GrpEffectImg").css("z-index",Obj.css("z-index")-1);$(".GrpEffectImg").attr("src",Args.NewImage);}else{$(".GrpEffectImg").css("opacity",1);$(".GrpEffectImg").css("z-index",Obj.css("z-index")+1);$(".GrpEffectImg").attr("src",Obj.attr("src"));Obj.attr("src",Args.NewImage);}if(Math.abs(Args.EndTop)<Obj.height()&&Math.abs(Args.EndLeft)<Obj.width()){EndTop=Obj.offset().top;EndLeft=Obj.offset().left+Obj.width();}else{EndTop=Obj.offset().top+Args.EndTop;EndLeft=Obj.offset().left+Args.EndLeft;}EndOpacity=1;$(".GrpEffectImg").animate({opacity:EndOpacity,top:EndTop,left:EndLeft},Args.Speed,function(){if(FlipIn){$(".GrpEffectImg").css("z-index",101);}else{EndOpacity=Args.EndOpacity;$(".GrpEffectImg").css("z-index",2);}$(".GrpEffectImg").animate({opacity:EndOpacity,top:Obj.offset().top,left:Obj.offset().left},Args.Speed,function(){backup.attr("src",Args.NewImage);Obj.replaceWith(backup);$(".GrpEffectImg").remove();EndFunction();});});};return this.each(function(){var TempImg=new Image();TempImg.src=Args.NewImage;$(TempImg).load(function(){switch(Args.Type){case"FadeIn":FadeImage();break;case"FlyIn":Fly(true);break;case"FlyOut":Fly(false);break;case"FlipIn":Flip(true);break;case"FlipOut":Flip(false);break;case"ScrollIn":Scroll(true);break;case"ScrollOut":Scroll(false);break;case"SingleDoor":SingleDoor();break;case"DoubleDoor":DoubleDoor();break;}});});};})(jQuery);
