;(function($){$.fn.wtGallery=function(params){var DELAY=100;var TRANSITIONS=new Array(15);TRANSITIONS["fade"]=0;TRANSITIONS["vert_tl"]=1;TRANSITIONS["vert_tr"]=2;TRANSITIONS["vert_bl"]=3;TRANSITIONS["vert_br"]=4;TRANSITIONS["horz_tl"]=5;TRANSITIONS["horz_tr"]=6;TRANSITIONS["horz_bl"]=7;TRANSITIONS["horz_br"]=8;TRANSITIONS["top_fade"]=9;TRANSITIONS["right_fade"]=10;TRANSITIONS["bottom_fade"]=11;TRANSITIONS["left_fade"]=12;TRANSITIONS["random"]=13;TRANSITIONS["none"]=14;function Stripes(rotator,w,h,size,bgColor,transSpeed){var areaWidth=w;var areaHeight=h;var stripeSize=size;var horzArr;var vertArr;var $horzStripes;var $vertStripes;var intervalId=null;var initStripes=function(){vertArr=new Array(Math.ceil(areaWidth/stripeSize));horzArr=new Array(Math.ceil(areaHeight/stripeSize));var divs="";for(var i=0;i<vertArr.length;i++){divs+="<div class='vpiece' id='"+i+"'></div>";}
for(var j=0;j<horzArr.length;j++){divs+="<div class='hpiece' id='"+j+"'></div>";}
rotator.addToScreen(divs);$vertStripes=$("div.vpiece",rotator.$el);$horzStripes=$("div.hpiece",rotator.$el);$vertStripes.each(function(n){vertArr[n]=$(this).css({left:(n*stripeSize),width:stripeSize,height:areaHeight});});$horzStripes.each(function(n){horzArr[n]=$(this).css({top:(n*stripeSize),width:areaWidth,height:stripeSize});});}
this.clear=function(){clearInterval(intervalId);$horzStripes.stop().css({opacity:0});$vertStripes.stop().css({opacity:0});}
this.displayContent=function(newImg,trans){setPieces(newImg,trans);animate(newImg,trans);}
var setPieces=function(newImg,trans){if(trans==TRANSITIONS["vert_tl"]||trans==TRANSITIONS["vert_tr"]){setVerticalPieces(newImg,-areaHeight);}
else if(trans==TRANSITIONS["vert_bl"]||trans==TRANSITIONS["vert_br"]){setVerticalPieces(newImg,areaHeight);}
else if(trans==TRANSITIONS["left_fade"]||trans==TRANSITIONS["right_fade"]){setVerticalPieces(newImg,0);}
else if(trans==TRANSITIONS["horz_tr"]||trans==TRANSITIONS["horz_br"]){setHorizontalPieces(newImg,areaWidth);}
else if(trans==TRANSITIONS["horz_tl"]||trans==TRANSITIONS["horz_bl"]){setHorizontalPieces(newImg,-areaWidth);}
else{setHorizontalPieces(newImg,0);}}
var setVerticalPieces=function(newImg,topPos){var newImgSrc=newImg.src;var tOffset=(areaHeight-newImg.height)/2;var lOffset=(areaWidth-newImg.width)/2;for(var i=0;i<vertArr.length;i++){var xPos=((-i*stripeSize)+lOffset);$(vertArr[i]).css({"background":bgColor+" url('"+newImgSrc+"') "+
xPos+"px "+tOffset+"px no-repeat","backgroundPositionX":xPos+"px","backgroundPositionY":tOffset+"px",opacity:0,top:topPos});}}
var setHorizontalPieces=function(newImg,leftPos){var newImgSrc=newImg.src;var tOffset=(areaHeight-newImg.height)/2;var lOffset=(areaWidth-newImg.width)/2;for(var i=0;i<horzArr.length;i++){var yPos=((-i*stripeSize)+tOffset);$(horzArr[i]).css({"background":bgColor+" url('"+newImgSrc+"') "+
lOffset+"px "+yPos+"px no-repeat","backgroundPositionX":lOffset+"px","backgroundPositionY":yPos+"px",opacity:0,left:leftPos});}}
var animate=function(newImg,trans){var lastVert=vertArr.length-1;var lastHorz=horzArr.length-1;var delay=0;if(trans==TRANSITIONS["vert_tl"]||trans==TRANSITIONS["vert_bl"]||trans==TRANSITIONS["left_fade"]){var i=0;intervalId=setInterval(function(){$(vertArr[i++]).animate({top:0,opacity:1},transSpeed,"",function(){if($(this).attr("id")==lastVert){rotator.setMainImg(newImg);}});if(i==vertArr.length){clearInterval(intervalId);}},DELAY);}
else if(trans==TRANSITIONS["vert_tr"]||trans==TRANSITIONS["vert_br"]||trans==TRANSITIONS["right_fade"]){var i=lastVert;intervalId=setInterval(function(){$(vertArr[i--]).animate({top:0,opacity:1},transSpeed,"",function(){if($(this).attr("id")==0){rotator.setMainImg(newImg);}});if(i<0){clearInterval(intervalId);}},DELAY);}
else if(trans==TRANSITIONS["horz_tl"]||trans==TRANSITIONS["horz_tr"]||trans==TRANSITIONS["top_fade"]){var i=0;intervalId=setInterval(function(){$(horzArr[i++]).animate({left:0,opacity:1},transSpeed,"",function(){if($(this).attr("id")==lastHorz){rotator.setMainImg(newImg);}});if(i==horzArr.length){clearInterval(intervalId);}},DELAY);}
else{var i=lastHorz;intervalId=setInterval(function(){$(horzArr[i--]).animate({left:0,opacity:1},transSpeed,"",function(){if($(this).attr("id")==0){rotator.setMainImg(newImg);}});if(i<0){clearInterval(intervalId);}},DELAY);}}
initStripes();}
function Gallery($obj,opts){var numDisplay=opts.num_display;var padding=opts.padding;var screenWidth=opts.screen_width;var screenHeight=opts.screen_height;var thumbWidth=opts.thumb_width;var thumbHeight=opts.thumb_height;var thumbMargin=opts.thumb_margin;var displayImageNav=opts.image_nav;var displayInfoPane=opts.info_pane;var displayThumbNav=opts.thumb_nav;var displayPagination=opts.pagination;var descAlign=opts.text_pane_align;var bgColor=opts.background_color;var winColor=opts.window_color;var border=opts.border;var rotate=opts.auto_rotate;var delay=opts.delay>0?opts.delay*1000:5000;var triggerStop=opts.trigger_stop;var stripeSize=opts.segment_size>0?opts.segment_size:30;var gTransNum=TRANSITIONS[opts.transition.toLowerCase()];if(gTransNum==undefined){gTransNum=TRANSITIONS["fade"];}
var transSpeed=opts.transition_speed;if(typeof transSpeed=="string"){transSpeed=transSpeed.toLowerCase();}
else{transSpeed=Number(transSpeed);if(!isNaN(transSpeed)&&transSpeed>0){transSpeed*=1000;}
else{transSpeed="slow";}}
var numThumbs=0;var unitSize=0;var backSlots=0;var fwdSlots=0;var numSlots=0;var currIndex=0;var pos=0;var imgPaths;var imgs;var stripes;var transNum;var timerId=null;var $gallery=$("div.wt-gallery",$obj);var $thumbnails=$("div.thumbnails",$obj);var $mainScreen=$("div.main-screen",$obj);var $mainImg=$("#main-img",$obj);var $bgImg=$("#bg-img",$obj);var $desc=$("div.descr",$obj);var $tmpDesc=$("div.tmp-desc",$obj);var $info=$("div.info-pane",$obj);var $cPanel=$("div.c-panel",$obj);var $pagination=$("div.pagination",$obj);var $prevBtn=$("#prev-btn",$obj);var $nextBtn=$("#next-btn",$obj);var $preloader=$("div.preloader",$obj);var $thumbsBack=$("#thumbs-back",$obj);var $thumbsFwd=$("#thumbs-fwd",$obj);this.$el=$obj;this.init=function(){numThumbs=$thumbnails.find("li").size();if(numThumbs<numDisplay){numDisplay=numThumbs;}
numSlots=numThumbs-numDisplay;backSlots=0;fwdSlots=numSlots;$mainScreen.css({width:screenWidth,height:screenHeight,"background-color":winColor,border:border});if(descAlign=="bottom"){$desc.css({bottom:0,padding:5});$info.css({top:0});}
else{$desc.css({top:0,padding:5});$info.css({top:screenHeight-$info.outerHeight()});}
$mainImg.css("background-color",winColor);$bgImg.css("background-color",winColor);var descPadding=$desc.outerWidth()-$desc.width();$desc.css({width:screenWidth-descPadding});$tmpDesc.css({width:screenWidth-descPadding});if(!displayImageNav){$prevBtn.css({display:"none"});$nextBtn.css({display:"none"});}
if(!displayInfoPane){$info.css({display:"none"});}
else{var infoPadding=$info.outerWidth()-$info.width();$info.width(screenWidth-infoPadding);}
$preloader.css({top:(screenHeight-$preloader.outerHeight())/2,left:(screenWidth-$preloader.outerWidth())/2});$prevBtn.css({top:(screenHeight-$prevBtn.height())/2});$nextBtn.css({top:(screenHeight-$nextBtn.height())/2});$thumbnails.find("li div").css({width:thumbWidth,height:thumbHeight,"background-color":winColor,border:border});$thumbnails.find("li").css({"margin-right":thumbMargin});unitSize=$thumbnails.find("li").outerWidth(true);$thumbnails.width((numDisplay*$thumbnails.find("li div").outerWidth())+
((numDisplay-1)*thumbMargin));$thumbnails.find("ul").width(numThumbs*unitSize);if(!displayThumbNav||numThumbs<=numDisplay){$thumbsBack.css({display:"none"}).width(0);$thumbsFwd.css({display:"none"}).width(0);}
else{var h=$thumbnails.find("li").outerHeight();var b=($thumbnails.find("li div").outerHeight()-$thumbsFwd.find("img").height())/2;$thumbsBack.css({height:h}).find("img").css({bottom:b});$thumbsFwd.css({height:h}).find("img").css({bottom:b});}
if(!displayPagination||numThumbs<=numDisplay){$pagination.css({display:"none"});$pagination.css({width:0,height:0,padding:0});displayPagination=false;}
$cPanel.width($thumbnails.outerWidth()+$thumbsBack.outerWidth()+$thumbsFwd.outerWidth());$cPanel.height($thumbnails.outerHeight()+$pagination.outerHeight());$gallery.css({"background-color":bgColor,padding:padding,border:border});if($mainScreen.outerWidth()>=$cPanel.outerWidth()){$gallery.css({width:$mainScreen.outerWidth(),height:$mainScreen.outerHeight()+$cPanel.outerHeight()});}
else{$gallery.css({width:$cPanel.outerWidth(),height:$mainScreen.outerHeight()+$cPanel.outerHeight()});}
if(displayPagination){var numPage=Math.ceil(numThumbs/numDisplay);var pageBtns="";for(var i=0;i<numPage;i++){pageBtns+="<img src='css/assets/circle.png' class='circle-btn'/>";}
$pagination.append(pageBtns);$pagination.find(".circle-btn").click(moveToPage);}
$thumbnails.find("li").click(function(e){stopTimer(triggerStop);currIndex=$(this).index();loadContent(currIndex);return false;});$thumbnails.find("li div").hover(function(e){$(this).addClass("thumb-over");},function(e){$(this).removeClass("thumb-over");});$mainScreen.hover(function(e){$prevBtn.stop().animate({left:0},"normal");$nextBtn.stop().animate({right:0},"normal");},function(e){$prevBtn.stop().animate({left:-$prevBtn.width()},"normal");$nextBtn.stop().animate({right:-$nextBtn.width()},"normal");});$nextBtn.click(imgFwd);$prevBtn.click(imgBack);$thumbsFwd.find("img").click(thumbsFwd);$thumbsBack.find("img").click(thumbsBack);$(document).keypress(function(e){if(e.keyCode==39){imgFwd();}
else if(e.keyCode==37){imgBack();}});stripes=new Stripes(this,screenWidth,screenHeight,stripeSize,winColor,transSpeed);initImgLoad();loadContent(currIndex);updatePagination();}
this.setMainImg=function(newImg){setImgPadding(newImg);$mainImg.attr("src",newImg.src);startTimer();}
this.addToScreen=function(s){$mainScreen.find(">a:first").append(s);}
var imgBack=function(){stopTimer(triggerStop);currIndex=(currIndex>0)?currIndex-1:(numThumbs-1);loadContent(currIndex);moveThumbs(currIndex);}
var imgFwd=function(){stopTimer(triggerStop);currIndex=(currIndex<numThumbs-1)?currIndex+1:0;loadContent(currIndex);moveThumbs(currIndex);}
var thumbsBack=function(){if(triggerStop){stopTimer(true);}
if(fwdSlots<numSlots){var numBack=numSlots-fwdSlots;if(numBack>=numDisplay){numBack=numDisplay;}
fwdSlots+=numBack;backSlots-=numBack;pos+=numBack*unitSize;}
else{fwdSlots=0;backSlots=numSlots;pos=-numSlots*unitSize;}
$thumbnails.find("ul").stop().animate({left:pos},"slow");updatePagination();}
var thumbsFwd=function(){if(triggerStop){stopTimer(true);}
if(backSlots<numSlots){var numFwd=numSlots-backSlots;if(numFwd>=numDisplay){numFwd=numDisplay;}
backSlots+=numFwd;fwdSlots-=numFwd;pos-=numFwd*unitSize;}
else{backSlots=0;fwdSlots=numSlots;pos=0;}
$thumbnails.find("ul").stop().animate({left:pos},"slow");updatePagination();}
var moveThumbs=function(thumbIndex){var prevIndex=Math.abs(pos/unitSize);if(thumbIndex>=prevIndex&&thumbIndex<prevIndex+numDisplay){return;}
if(thumbIndex<numSlots){backSlots=thumbIndex;fwdSlots=numSlots-thumbIndex;pos=-thumbIndex*unitSize;}
else{backSlots=numSlots;fwdSlots=0;pos=-numSlots*unitSize;}
$thumbnails.find("ul").stop().animate({left:pos},"slow");updatePagination();}
var updatePagination=function(){var pageIndex=Math.ceil(backSlots/numDisplay);$pagination.find("img").attr("src","css/assets/circle.png");$pagination.find("img:nth-child("+(pageIndex+1)+")").attr("src","css/assets/circlefill.png");}
var moveToPage=function(){if(triggerStop){stopTimer(true);}
var pageIndex=$(this).index();var numFwd=pageIndex*numDisplay;if(numFwd>=numSlots){numFwd=numSlots;}
backSlots=numFwd;fwdSlots=numSlots-numFwd;pos=-numFwd*unitSize;$thumbnails.find("ul").stop().animate({left:pos},"slow");updatePagination();}
var rotateImage=function(){stopTimer(false);currIndex=(currIndex<numThumbs-1)?currIndex+1:0;loadContent(currIndex);moveThumbs(currIndex);}
var updateDesc=function(desc){$tmpDesc.html(desc);var descH=$tmpDesc.height();$desc.html("");var offset=(descH!=0)?0:$desc.height()-$desc.outerHeight();if(descAlign=="top"){$desc.stop().animate({height:descH,top:offset},"slow",function(){$(this).html(desc);});}
else{$desc.stop().animate({height:descH,bottom:offset},"slow",function(){$(this).html(desc);});}}
var loadContent=function(i){var $thumb=$thumbnails.find("li:nth-child("+(i+1)+")");var desc=$thumb.find(">p").html();var urlLink=$thumb.find(">a").attr("href");var urlTarget=$thumb.find(">a").attr("target");var imgTrans=$thumb.attr("trans");transNum=(imgTrans==undefined||TRANSITIONS[imgTrans]==undefined)?gTransNum:TRANSITIONS[imgTrans];$thumbnails.find("li").removeClass("curr-thumb");$thumb.addClass("curr-thumb");$info.html((i+1)+" / "+numThumbs);updateDesc(desc);if(imgs[i]){$preloader.hide();displayContent(imgs[i]);}
else{var currImg=new Image();$(currImg).attr("src",imgPaths[i]);if(!currImg.complete){$preloader.show();$(currImg).load(function(){$preloader.hide();imgs[i]=jQuery.extend(true,{},this);displayContent(currImg);}).error(function(){alert("Error loading image");});}
else{$preloader.hide();imgs[i]=jQuery.extend(true,{},currImg);displayContent(imgs[i]);}}}
var displayContent=function(newImg){stripes.clear();if(transNum==TRANSITIONS["random"]){transNum=Math.floor(Math.random()*(TRANSITIONS.length-2));}
if(transNum==TRANSITIONS["none"]){showContent(newImg);}
else if(transNum==TRANSITIONS["fade"]){fadeInContent(newImg);}
else{stripes.displayContent(newImg,transNum);}}
var showContent=function(newImg){setImgPadding(newImg);$mainImg.attr("src",newImg.src).show(0,function(){startTimer();});}
var fadeInContent=function(newImg){$bgImg.css({top:$mainImg.css("top"),left:$mainImg.css("left"),"padding-top":$mainImg.css("padding-top"),"padding-bottom":$mainImg.css("padding-bottom"),"padding-left":$mainImg.css("padding-left"),"padding-right":$mainImg.css("padding-right")}).attr("src",$mainImg.attr("src")).show();$mainImg.hide();setImgPadding(newImg);$mainImg.attr("src",newImg.src).fadeIn(transSpeed,function(){startTimer();});}
var setImgPadding=function(newImg){var tMargin=(screenHeight-newImg.height)/2;var lMargin=(screenWidth-newImg.width)/2
var top=0;var left=0;var vertPadding=0;var horzPadding=0;if(tMargin>0){vertPadding=tMargin;}
else if(tMargin<0){top=tMargin;}
if(lMargin>0){horzPadding=lMargin;}
else if(lMargin<0){left=lMargin;}
$mainImg.css({top:top,left:left,"padding-top":vertPadding,"padding-bottom":vertPadding,"padding-left":horzPadding,"padding-right":horzPadding});}
var initImgLoad=function(){imgs=new Array(numThumbs);imgPaths=new Array(numThumbs);$thumbnails.find("li").each(function(n){imgPaths[n]=$(this).find(">div>a").attr("href");});var loadIndex=0;var img=new Image();$(img).attr("src",imgPaths[loadIndex]);$(img).load(function(){imgs[loadIndex]=jQuery.extend(true,{},this);loadIndex++
if(loadIndex<imgPaths.length){$(this).attr("src",imgPaths[loadIndex]);}}).error(function(){loadIndex++
if(loadIndex<imgPaths.length){$(this).attr("src",imgPaths[loadIndex]);}});}
var startTimer=function(){if(rotate&&timerId==null){timerId=setTimeout(rotateImage,delay);}}
var stopTimer=function(permStop){clearTimeout(timerId);timerId=null;if(permStop){rotate=false;}}
$thumbnails.find("img").load(function(){var $thumbDiv=$thumbnails.find("div");$(this).css({left:($thumbDiv.width()-$(this).width())/2,top:($thumbDiv.height()-$(this).height())/2});});}
var defaults={num_display:4,background_color:"#EEEEEE",window_color:"#333333",padding:10,screen_width:575,screen_height:323,thumb_width:125,thumb_height:70,thumb_margin:5,text_pane_align:"top",auto_rotate:true,delay:5,trigger_stop:false,border:"1px solid #222222",image_nav:true,info_pane:true,thumb_nav:true,pagination:true,transition:"fade",transition_speed:"slow",segment_size:30};var opts=$.extend({},defaults,params);return this.each(function(){var gallery=new Gallery($(this),opts);gallery.init();});}})(jQuery);