/*!
 * I L J A  V I S S E R
 * http://www.ilja.nl/
 *
 * ilja.main.js
 *
 * (c) Copyright 2011
 * http://www.marmorkuchen.net/
 */

var BORDER_SIZE=8;var DEAD_ZONE_SIZE=20;var SCROLL_SPEED=1;var CROSSFADE_SPEED=300;var railTotalLength=0;var railPosition=0;var trainTotalCount=0;var floatStyle="left";var contentIDs=new Array();var linkIDs=new Array();var isInMove=false;var isInContentChange=false;var mute=true;var movementMode=0;var preMovementMode=0;var audioFilesCount=0;var masterPlayerID=0;var train2PlayerID=new Array();var playerStatus=new Array();var timer;var fadeTimer;$(document).ready(function(){setUp();$("#rail").mousemove(function(e){checkMousePosition(e.pageX)});$("#rail").mouseleave(function(e){preMovementMode=0;movementMode=0;isInMove=false});$(window).resize(function(){checkOverflow()});$(document).bind('cbox_complete',function(){$('.cboxPhoto').unbind().click($.fn.colorbox.close)});loadAudioFiles();$("#speaker").click(function(e){if(mute){mute=false;changeAudioLevels();$('#speaker').css("background-image","url(img/sound.gif)")}else{mute=true;changeAudioLevels();$('#speaker').css("background-image","url(img/nosound.gif)")}});$("#logo").mouseenter(function(e){$("#logoh").animate({opacity:0.0},{duration:1500,queue:false})});$("#logo").mouseleave(function(e){$("#logoh").animate({opacity:1.0},{duration:1500,queue:false})});initNavigation();showIntroPicture()});function setUp(){$("#rail").html("<div id=\"chelp0\" class=\"chelp\"></div>");trainTotalCount=0}function loadAudioFiles(){$("#speaker").hide();$("#speaker").animate({opacity:0.0},{duration:0,queue:false});$.ajax({url:"ajax.getaudiofiles.php",success:function(dat){var audioFiles=jQuery.parseJSON(dat);$.each(audioFiles,function(i,af){if(af!=null){audioFilesCount++;$("#aud").append("<div id=\"audio"+audioFilesCount.toString()+"\" class=\"audio\"></div>");if(af.id=="main"){masterPlayerID=audioFilesCount}train2PlayerID.push(af.id);playerStatus.push(0.0);$("#audio"+audioFilesCount.toString()).jPlayer({ready:function(){$(this).jPlayer("setMedia",{oga:"audio/"+af.path+".ogg",mp3:"audio/"+af.path+".mp3"}).jPlayer("play");if(af.id=="main"){mute=false;$("#speaker").css("background-image","url(img/sound.gif)");$("#speaker").show();$("#speaker").animate({opacity:1.0},{duration:2000,queue:false});changeAudioLevels()}},solution:"flash, html",supplied:"oga, mp3",swfPath:"js/",volume:0.0,ended:function(){$(this).jPlayer("play",0)}})}})}})}function changeAudioLevels(){crossfade()}function crossfade(){var hasFinished=true;for(var i=0;i<audioFilesCount;i++){if(!mute&&masterPlayerID==(i+1)){if(playerStatus[i]==1.0||playerStatus[i]>1.0){playerStatus[i]=1.0}else if(playerStatus[i]<1.0){hasFinished=false;playerStatus[i]=playerStatus[i]+0.1}}else{if(playerStatus[i]==0.0||playerStatus[i]<0.0){playerStatus[i]=0.0}else if(playerStatus[i]>0.0){hasFinished=false;playerStatus[i]=playerStatus[i]-0.1}}$("#audio"+(i+1)).jPlayer("volume",playerStatus[i])}if(!hasFinished){fadeTimer=setTimeout("crossfade()",CROSSFADE_SPEED)}}function getTrain(liid,id){if(id!=""&&linkIDs[liid]==true&&!isInContentChange){$("#wait").animate({opacity:1.0},{duration:300,queue:false});linkIDs[liid]=false;var del=false;for(var i=0;i<contentIDs.length;i++){if(id==contentIDs[i]){del=true;break}}if(!del){$.ajax({url:"ajax.getcontent.php",data:"id="+id.toString(),success:function(dat){var waggon=jQuery.parseJSON(dat);if(waggon.length>1){$("#linkID"+liid.toString()).addClass("lined");addWaggon(liid,id,waggon);centerPerspective()}else{linkIDs[liid]=true}}})}else{$("#linkID"+liid.toString()).removeClass("lined");removeWaggon(liid,id)}}}function addWaggon(liid,id,waggon){isInContentChange=true;var waggonTotalSize=0;$("#chelp"+trainTotalCount.toString()).append("<div class='chelp' id='chelp"+(trainTotalCount+1)+"'><div id='waggon"+id+"' class='waggon"+floatStyle+"'></div></div>");$("#waggon"+id).animate({width:0,opacity:0.0},{duration:0,queue:false});trainTotalCount++;$.each(waggon,function(i,pkg){if(pkg!=null){linkIDs[liid]=false;$('#waggon'+id).append("<div class=\"package\" style=\"width: "+pkg.size+"px\" id=\"package"+pkg.id+"\"></div>");$("#package"+pkg.id).animate({opacity:0.0},{duration:0,queue:false});waggonTotalSize=waggonTotalSize+pkg.size+BORDER_SIZE;if(pkg.type==1){linkIDs[liid]=false;var img=new Image();$(img).load(function(){$('#package'+pkg.id).append("<a title=\""+pkg.title+"\" href='javascript:showPicture(\""+pkg.content+"\",\""+pkg.title+"\");'></a>");$('#package'+pkg.id).find('a').append(this);$("#package"+pkg.id).animate({opacity:1.0},{duration:2000,queue:false,complete:function(){linkIDs[liid]=true}})}).attr("src","img/upload/thumbs/"+pkg.content)}else{$('#package'+pkg.id).append("<p><b>"+pkg.title+" III&#92;</b></p><p class=\"textcontent\">"+pkg.content+"</p>");$("#package"+pkg.id).animate({opacity:1.0},{duration:2000,queue:false,complete:function(){linkIDs[liid]=true}})}}});if(floatStyle=="left"){floatStyle="right"}else{floatStyle="left"}var saveSize=railTotalLength;$("#waggon"+id).animate({width:waggonTotalSize,opacity:1.0},{duration:2000,queue:false,step:function(now,fx){if(fx.prop=="width"){railTotalLength=saveSize+now;$("#rail").css("width",railTotalLength);checkOverflow();centerPerspective()}},complete:function(){railTotalLength=saveSize+waggonTotalSize;$("#rail").css("width",railTotalLength);checkOverflow();centerPerspective();isInContentChange=false;$("#wait").animate({opacity:0.0},{duration:300,queue:false})}});for(var i=0;i<train2PlayerID.length;i++){if(train2PlayerID[i]==id){masterPlayerID=i+1;changeAudioLevels()}}contentIDs.push(id)}function removeWaggon(liid,id){var endSize=$("#waggon"+id.toString()).width();var saver=railTotalLength;for(var i=0;i<train2PlayerID.length;i++){if(train2PlayerID[i]==id){if(masterPlayerID==i+1){masterPlayerID=1;changeAudioLevels();break}}}isInContentChange=true;$("#waggon"+id.toString()).animate({width:0,opacity:0.0},{duration:2000,queue:false,step:function(now,fx){if(fx.prop=="width"){railTotalLength=saver-(endSize-now);$("#rail").css("width",railTotalLength);checkOverflow()}},complete:function(){isInContentChange=false;$("#waggon"+id.toString()).remove();railTotalLength=saver-endSize;$("#rail").css("width",railTotalLength);checkOverflow();for(var i=0;i<contentIDs.length;i++){if(contentIDs[i]==id){linkIDs[liid]=true;contentIDs.splice(i,1);break}}cleanUp();$("#wait").animate({opacity:0.0},{duration:300,queue:false})}})}function cleanUp(){if(railTotalLength==0){setUp()}else{var finalTotalCount=trainTotalCount;for(var i=trainTotalCount;i>0;i--){if($("#chelp"+i.toString()+" > div").size()==0){$("#chelp"+i.toString()).remove();finalTotalCount--}}trainTotalCount=finalTotalCount}}function checkOverflow(){if(railTotalLength-BORDER_SIZE<$(window).width()){isInMove=false;railPosition=0;window.clearTimeout(timer);$("#rail").css("left",railPosition)}else{movePerspective(0)}}function checkMousePosition(mx){if(railTotalLength-BORDER_SIZE>$(window).width()){var ratio=-(Math.round(mx/$(window).width()*200)-100);if(ratio<DEAD_ZONE_SIZE&&ratio>-DEAD_ZONE_SIZE){movementMode=0;preMovementMode=0;isInMove=false}else{isInMove=true;if(ratio<0){movementMode=1}else{movementMode=2}if(preMovementMode!=movementMode){if(movementMode==1){movePerspective(-1)}else if(movementMode==2){movePerspective(1)}preMovementMode=movementMode}}}else{checkOverflow()}}function movePerspective(speed){var overflow=(railTotalLength-$(window).width())-BORDER_SIZE;if((railPosition<=0&&speed<0)||(railPosition>=-overflow&&speed>0)){railPosition=railPosition+speed}if(railPosition<=-overflow){railPosition=-overflow;isInMove=false}else if(railPosition>=0){railPosition=0;isInMove=false}if(isInMove){timer=setTimeout("movePerspective("+speed+")",SCROLL_SPEED)}$("#rail").css("left",Math.floor(railPosition))}function centerPerspective(){if(railTotalLength>$(window).width()){var totalWidthToCenter=0;for(i=0;i<contentIDs.length;i++){if($('#waggon'+contentIDs[i].toString()).hasClass('waggonleft')){totalWidthToCenter=totalWidthToCenter+$("#waggon"+contentIDs[i].toString()).width()+BORDER_SIZE}}var lastElement=contentIDs[contentIDs.length-1];if($('#waggon'+lastElement.toString()).hasClass('waggonright')){totalWidthToCenter=totalWidthToCenter+$("#waggon"+lastElement.toString()).width()+BORDER_SIZE}var overflow=(railTotalLength-$(window).width())-BORDER_SIZE;var centerPosition=(totalWidthToCenter-(($(window).width()/2)+($("#waggon"+lastElement.toString()).width()/2)));if(centerPosition>overflow){centerPosition=overflow}if(centerPosition<0){centerPosition=0}railPosition=-centerPosition;$("#rail").css("left",-centerPosition);isInMove=false}}function initNavigation(){$('#nav').append("<div id=\"navmaincontainer\"></div>");$('#navmaincontainer').animate({opacity:0.0},{duration:0,queue:false});var subNavCount=0;var linkID=0;$.ajax({url:"ajax.getnavigation.php",success:function(dat){var navData=jQuery.parseJSON(dat);$.each(navData,function(i,navMain){linkID++;if(!jQuery.isEmptyObject(navMain)){if(!jQuery.isEmptyObject(navMain.id)&&typeof(navMain.id)!="string"){subNavCount++;$('#navmaincontainer').append("<div class=\"navmain\" id=\"navmain"+subNavCount+"\"><a href=\"#\" class=\"mainsublink\">"+navMain.title+"</a><div class=\"navsubcontainer\"></div></div>");$.each(navMain.id,function(i,navSub){linkID++;if(!jQuery.isEmptyObject(navSub)){$('#navmain'+subNavCount.toString()+' > .navsubcontainer').append("<div class=\"navsub\"><a id=\"linkID"+linkID+"\" href=\"javascript:getTrain("+linkID+","+navSub.id+");\" class=\"sublink\">"+navSub.title+"</a></div>");$('#navmain'+subNavCount.toString()+' > .navsubcontainer').fadeOut()}})}else{$('#navmaincontainer').append("<div class=\"navmain\"><a id=\"linkID"+linkID+"\" href=\"javascript:getTrain("+linkID+","+navMain.id+");\" class=\"mainlink\">"+navMain.title+"</a></div>")}}});linkIDs=new Array(linkID);for(var i=0;i<linkIDs.length;i++){linkIDs[i]=true}$('a.mainsublink').mouseenter(function(){$(this).parents(".navmain").find(".navsubcontainer").fadeIn('slow')});$('.navmain').mouseleave(function(){$(this).find(".navsubcontainer").fadeOut('slow')});$('#navmaincontainer').animate({opacity:1.0},{duration:2000,queue:false});$("#wait").animate({opacity:0.0},{duration:1000,queue:false})}})}function showPicture(path,credit){$.colorbox({href:"img/upload/"+path,transition:'fade',title:credit,speed:1000,opacity:0.75,scalePhotos:true,initialWidth:50,initialHeight:50,maxWidth:$(window).width()-50,maxHeight:$(window).height()-150})}function showIntroPicture(){$.colorbox({href:"img/upload/intro/intro.jpg",transition:'fade',speed:2000,opacity:1.0,scalePhotos:true,initialWidth:50,initialHeight:50,maxWidth:$(window).width()-50,maxHeight:$(window).height()-150})}
