
var com;if(!com){com={};}else if(typeof(com)!="object"){throw new Error("can't initialize...com is not an object.");}
if(!com.medialab){com.medialab={};}else if(typeof(com.medialab)!="object"){throw new Error("can't initialize...com.medialab is not an object.");}
if(!com.medialab.sg){com.medialab.sg={};}
if(!com.medialab.sg.gallery1){com.medialab.sg.gallery1={};}
com.medialab.sg.gallery1.pictureboxSiteGrinderCSSAnim=function(pictureboxXMLIn,docentIn){var that=this;var debug=false;var sgalert=function(msg){if(debug){alert(msg);}};var docent=docentIn;var xml=pictureboxXMLIn;var myWidth=0;var myHeight=0;var myDivID="not set yet";var myClickAction="not set yet";var myHoverAction="not set yet";var rightClickBlock=false;var curImageUrl="not set yet";var halfPreloader=15;var preloadImgHTML=null;var exhibitArray=[];var fadeTime=500;var delay=5000;var goNextTimerID=null;var checkLoadTimerID=null;var autoPlay=false;var endAction='loop';var endUrl='index.html';var viewDiv=null;var pboxAlign="not set yet";function getPictureboxQuery(){return'#'+myDivID+' img';}
this.getRightClickBlock=function(){return rightClickBlock;}
this.displayByUrl=function(imageUrl){var pbq=getPictureboxQuery();}
this.displayByNum=function(exhibitNum,viewNum){docent.sgconsole('CSS PICTUREBOX displayByNum()');autoPlayed=false;if(viewNum!=0){autoPlay=false;}
gotoPicNum(exhibitNum,viewNum);}
function getUrlFromNum(exhibitNum,viewNum){return $ml('exhibits exhibit:eq('+exhibitNum+') views view:eq('+viewNum+') picturebox url',xml).text();}
function getPictureDiv(urlIn){var left=0;var top=0;var cursorString="";if(myClickAction!="none"){cursorString="cursor:pointer;";}
return"<img style='"+cursorString+"position:absolute;left:0px;top:0px;display:none' src='"+urlIn+"'>";}
function gotoPicNum(exhibitNum,viewNum){clearTimeout(goNextTimerID);if(typeof viewNum=='undefined'){viewNum=0;}
if(exhibitNum<=exhibitArray.length-1){var imageHero=exhibitArray[exhibitNum].images[viewNum];if(typeof imageHero=='undefined'){exhibitArray[exhibitNum].images[viewNum]=new Object();exhibitArray[exhibitNum].images[viewNum].img=new Image();exhibitArray[exhibitNum].images[viewNum].img.src=getUrlFromNum(exhibitNum,viewNum);exhibitArray[exhibitNum].images[viewNum].aligned=false;exhibitArray[exhibitNum].images[viewNum].html=$ml(getPictureDiv(exhibitArray[exhibitNum].images[viewNum].img.src));imageHero=exhibitArray[exhibitNum].images[viewNum];}
if(!imageHero.img.width!=0){goNextTimerID=setTimeout(function(){gotoPicNum(exhibitNum,viewNum);exhibitNum=null;},10);}
else{if(!imageHero.aligned){alignInPicturebox(imageHero);}
setNextImgHTML(imageHero.html);$ml(getDivContainerString()+' :first-child').fadeOut(fadeTime,function(){fadeDone(exhibitNum);}).next('img').fadeIn(fadeTime).end().appendTo(getDivContainerString());if(autoPlayed){docent.pictureboxSelectByNum(exhibitNum,false);}}}}
function alignInPicturebox(imageObjToAlign){var pboxWidth=$ml('#'+myDivID).width();var pboxHeight=$ml('#'+myDivID).height();var top=Math.floor(pboxHeight/2)-Math.floor(imageObjToAlign.img.height/2);var left=Math.floor(pboxWidth/2)-Math.floor(imageObjToAlign.img.width/2);if(pboxAlign.indexOf("left")!=-1){left=0;}
if(pboxAlign.indexOf("right")!=-1){left=pboxWidth-imageObjToAlign.img.width;}
if(pboxAlign.indexOf("top")!=-1){top=0;}
if(pboxAlign.indexOf("bottom")!=-1){top=pboxHeight-imageObjToAlign.img.height;}
imageObjToAlign.html.css('top',top+'px');imageObjToAlign.html.css('left',left+'px');imageObjToAlign.aligned=true;}
function setNextImgHTML(htmlIn){$ml(getDivContainerString()+' :eq(1)').remove();htmlIn.appendTo(getDivContainerString());}
function fadeDone(replacedByNum){var targetNum=replacedByNum+1;if(autoPlay){if(targetNum==docent.getExhibitCount()){if(endAction=='loop'){targetNum=0;}else{if(endAction=='gotourl'){if(endUrl!=null&&endUrl!=''){docent.gotoUrl(endUrl);}}}}
autoPlayNext(targetNum);}}
function preload(){for(var curSlide=0;curSlide<docent.getExhibitCount();curSlide++){var victim=new Object();victim.images=[];victim.images[0]=new Object();victim.images[0].img=new Image();var imgSrc=getUrlFromNum(curSlide,0);victim.images[0].img.src=imgSrc;victim.images[0].html=$ml(getPictureDiv(imgSrc));victim.images[0].positioned=false;exhibitArray[curSlide]=victim;}
checkLoad();}
function autoPlayNext(nextToPlay){autoPlayed=true;clearTimeout(goNextTimerID);goNextTimerID=setTimeout(function(){gotoPicNum(nextToPlay);nextToPlay=null;},delay);}
function checkLoad(){var startImgNum=docent.getCurrentExhibit();var nextImgNum=docent.getCurrentExhibit()+1;if(nextImgNum==docent.getExhibitCount()){nextImgNum=0;}
if(typeof exhibitArray[startImgNum]!="undefined"&&typeof exhibitArray[nextImgNum]!="undefined"){if(exhibitArray[startImgNum].images[0].img.width!=0&&exhibitArray[nextImgNum].images[0].img.width!=0){alignInPicturebox(exhibitArray[startImgNum].images[0]);preloadImgHTML.remove();exhibitArray[startImgNum].images[0].html.appendTo(getDivContainerString());exhibitArray[nextImgNum].images[0].html.appendTo(getDivContainerString());exhibitArray[startImgNum].images[0].html.fadeIn(fadeTime);if(autoPlay){autoPlayNext(nextImgNum);}}
else{checkLoadTimerID=setTimeout(checkLoad,10)}}}
function getDivContainerString(){return'#'+myDivID+' > div';}
function initPictureBox(){var ptop=Math.floor(myHeight/2)-halfPreloader;var pleft=Math.floor(myWidth/2)-halfPreloader;preloadImgHTML=$ml("<img style='position:absolute;left:"+pleft+"px;top:"+ptop+"px;display:block' src='"+getOption('preloaderimage')+"'>");var container=$ml('<div style="position:relative"></div>');preloadImgHTML.appendTo(container);container.appendTo('#'+myDivID);preload();docent.sgconsole('made thumbs... ');var exhibitToShow=0;if(rightClickBlock){docent.sgconsole('3 disabling right click');$ml(getDivContainerString()).bind("contextmenu",function(e){alert('Context menu disabled for this image.');return false;});}
if(myClickAction!="none"){$ml(getDivContainerString()).bind('click',function(event){myClick(event);});}}
function myClick(e){docent.sgconsole("picturebox clicked");docent.pictureboxClick(true,null);return false;}
function init(){sgalert("SG Standard Picturebox: Init",this);if(getOption("type")!="animatedcss"){alert("Type mismatch between picturebox javascript and data!");return;}
if(getOption("version")>1.0){alert("Picturebox javascript version older than data version!");return;}
processXML();initPictureBox();}
function processXML(){sgalert("SG Standard Picturebox: processXML",this);numExhibits=docent.getExhibitCount();myWidth=getOption("width");myHeight=getOption("height");myDivID=getOption("divname");pboxAlign=getOption("alignment");rightClickBlock=getOption("rightclickblock");myClickAction=getOption("clickaction");myHoverAction=getOption("hoveraction");fadeTime=getOption("autoadvancedtransitiontimeseconds")*1000;delay=getOption("autoadvancedelayseconds")*1000;autoPlay=getOption("autoadvance");endAction=getOption("endaction");endUrl=getOption("endurl");return;}
function getOption(opt){return docent.getPictureboxOption(opt);}
init();}
