/*
 * Fili Wiese, http://www.oni.nl
 */
;(function(window,undefined){'$:nomunge';var $=window.jQuery||window.Cowboy||(window.Cowboy={}),jq_throttle;$.throttle=jq_throttle=function(delay,no_trailing,callback,debounce_mode){var timeout_id,last_exec=0;if(typeof no_trailing!=='boolean'){debounce_mode=callback;callback=no_trailing;no_trailing=undefined;}
function wrapper(){var that=this,elapsed=+new Date()-last_exec,args=arguments;function exec(){last_exec=+new Date();callback.apply(that,args);};function clear(){timeout_id=undefined;};if(debounce_mode&&!timeout_id){exec();}
timeout_id&&clearTimeout(timeout_id);if(debounce_mode===undefined&&elapsed>delay){exec();}else if(no_trailing!==true){timeout_id=setTimeout(debounce_mode?clear:exec,debounce_mode===undefined?delay-elapsed:delay);}};if($.guid){wrapper.guid=callback.guid=callback.guid||$.guid++;}
return wrapper;};$.debounce=function(delay,at_begin,callback){return callback===undefined?jq_throttle(delay,at_begin,false):jq_throttle(delay,callback,at_begin!==false);};})(this);;jQuery.jQueryRandom=0;jQuery.extend(jQuery.expr[":"],{random:function(a,i,m,r){if(i==0){jQuery.jQueryRandom=Math.floor(Math.random()*r.length);};return i==jQuery.jQueryRandom;}});$.fn.imagesLoaded=function(callback){var elems=this.filter('img'),len=elems.length;elems.bind('load',function(){if(--len<=0){callback.call(elems,this);}}).each(function(){if(this.complete||this.complete===undefined){var src=this.src;this.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";this.src=src;}});return this;};window.innerShiv=(function(){var d,r;return function(h,u){if(!d){d=document.createElement('div');r=document.createDocumentFragment();/*@cc_on d.style.display = 'none'@*/}var e=d.cloneNode(true);/*@cc_on document.body.appendChild(e);@*/e.innerHTML=h.replace(/^\s\s*/,'').replace(/\s\s*$/,'');/*@cc_on document.body.removeChild(e);@*/if(u===false)return e.childNodes;var f=r.cloneNode(true),i=e.childNodes.length;while(i--)f.appendChild(e.firstChild);return f}}());;if(typeof window.jQuery!='undefined'){$(window).load(function(){var main={public:{debug:false,animationSpeed:300,galleryPos:1,figuresPos:false,lastAnimated:false},objects:{tab:$('#tab'),overlay:$('#overlay'),ecard:$('section#ecard'),prettySelect:$('ul#pretty-select'),carrousel:$('ul#carrousel'),work:$('section#work')},init:function(){window.ondragstart=function(){return false;};main.registerKeystrokes();main.relExternal();main.prettySelect();main.infoTab();main.ecard();},infoTab:function(){var _initialTop=main.objects.tab.offset().top;closeTab=function(){if(!main.objects.tab.hasClass('is-down'))return;main.objects.tab.animate({top:_initialTop},main.public.animationSpeed,'swing');main.objects.tab.removeClass('is-down');main.objects.overlay.fadeOut(main.public.animationSpeed);main.objects.overlay.unbind();};openTab=function(){if(main.objects.tab.hasClass('is-down'))return;main.objects.tab.animate({top:0},main.public.animationSpeed,'swing');main.objects.tab.addClass('is-down');main.objects.overlay.css({'z-index':50}).fadeIn(main.public.animationSpeed);$('section#content div.close a, div#overlay').click(function(){closeTab();return false;});};$('header a').click(function(){if(main.objects.tab.hasClass('is-down')){closeTab();}else{openTab();}
closePrettySelect();return false;});},prettySelect:function(){closePrettySelect=function(){if(main.objects.prettySelect.hasClass('is-down'))togglePrettySelect();};togglePrettySelect=function(){main.objects.prettySelect.toggleClass('is-down').find('li:gt(0)').toggle();};changePrettySelect=function(serie){if($('li.first-child',main.objects.prettySelect).attr('data-value')==serie)return;var _option=$('li a[data-value="'+serie+'"]',main.objects.prettySelect);var _text=$(_option).attr('title');$('li.first-child',main.objects.prettySelect).attr('data-value',serie).text(_text);$('li a',main.objects.prettySelect).removeClass('selected');$(_option).addClass('selected');if(main.public.debug)console.log('Ajax request');$(window).unbind('resize');$(window).unbind('scroll');main.objects.prettySelect.addClass('is-loading');main.objects.carrousel.css({opacity:0}).empty();main.objects.work.css({opacity:0}).empty();$.ajax({url:'/ajax/portfolio/'+serie,dataType:'json',success:function(json){if(main.public.debug)console.log('Ajax success');if(json==null){document.location='/';}else{var _g='';var _width=0;var _c='<li><a href="#" class="left"></a></li>';for(var i in json){if(typeof json[i]=="object"){_c+='<li><a href="'+json[i]['url']+'"><img src="'+json[i]['plaatje']+'" /></a></li>'
_g+='<figure id="'+json[i]['slug']+'"><img src="'+json[i]['plaatje']+'" /><button>send as e-card</button><figcaption><h4>'+json[i]['titel']+'</h4><small>'+json[i]['bijschrift']+'</small></figcaption></figure>';}}
_c+='<li><a href="#" class="right"></a></li>';main.objects.carrousel.append(_c);if($.browser.msie){_g=innerShiv(_g);}
main.objects.work.append(_g);setTimeout(main.loadGallery,1000);}}});};main.objects.prettySelect.width(main.objects.prettySelect.width());$('li:not(.first-child)',main.objects.prettySelect).hide();$('li a',main.objects.prettySelect).click(function(){changePrettySelect($(this).attr('data-value'));closePrettySelect();return false;});$('li',main.objects.prettySelect).click(function(){togglePrettySelect();return false;});$(window).click(function(){closePrettySelect();});if($('figure',main.objects.work).size()){if(main.public.debug)console.log('Er is een serie aanwezig (hard-coded), gallery laden');var _tmp=window.location.href.split("/");var _url='/'+_tmp[3]+'/'+_tmp[4];main.updateUrl(_url);}else{if(main.public.debug)console.log('Er is nog geen serie gekozen laad random serie');if(window.location.hash)var _work=window.location.hash.split("/")[1];if(!_work)var _work=$('li a:random',main.objects.prettySelect).attr('data-value');changePrettySelect(_work);}
main.objects.prettySelect.animate({opacity:1},main.public.animationSpeed);},loadGallery:function(){if(main.public.debug)console.log('begin loadGallery');scrollToPos=function(newPos,speed){closePrettySelect();if(newPos<1)return false;if(newPos>$('figure',main.objects.work).size())return false;var workSelected=$('figure:eq('+(newPos-1)+')',main.objects.work);if($(workSelected).size()<1)return false;var travelDistance=$(workSelected).position().left;if(main.public.debug)console.log('distance: '+travelDistance*-1+'px');if(main.public.debug)console.log('speed: '+speed);main.public.lastAnimated=new Date();updatePos(newPos);$('html,body').stop(true).animate({scrollLeft:travelDistance+'px'},{easing:'swing',duration:speed,complete:function(){}});};updatePos=function(newPos){main.public.galleryPos=newPos;if(main.public.debug)console.log('positie: '+main.public.galleryPos);var _carrouselSelected=$('a:eq('+main.public.galleryPos+')',main.objects.carrousel);$('a',main.objects.carrousel).removeClass('selected');_carrouselSelected.addClass('selected');var _left=$('a.left',main.objects.carrousel);if(main.public.galleryPos>1){_left.removeClass('disabled');}else{_left.addClass('disabled');}
var _right=$('a.right',main.objects.carrousel);if(main.public.galleryPos<$('a',main.objects.carrousel).size()-2){_right.removeClass('disabled');}else{_right.addClass('disabled');}
var _url=_carrouselSelected.attr('href');main.updateUrl(_url);};resizeGallery=function(){main.objects.work.css({width:'15000px'});var _height=($('body').height()/100)*65;$('figure img',main.objects.work).css({'max-height':_height});var _totalFigures=$('figure').size();var _lastFigure=$('figure:last',main.objects.work).offset().left;var _width=_lastFigure+($(window).width()-40);if(main.public.debug)console.log('width: '+_width);main.objects.work.css({width:_width+'px'});var _figuresPos=[];var _left=0;var _width=0;$('figure',main.objects.work).each(function(index,value){_left+=$(this).width()+40;_figuresPos[index]=_left;});main.public.figuresPos=_figuresPos;scrollToPos(main.public.galleryPos,0);};scrollGallery=function(){var elapsed=+new Date()-main.public.lastAnimated;if(elapsed<1000)return;if(main.public.debug)console.log('scroll event');var _scrollLeft=$(window).scrollLeft();var _current=0;for(i=0;i<main.public.figuresPos.length;i++){if(_scrollLeft+10<main.public.figuresPos[i]){_current=(1+i);break;}}
if(main.public.galleryPos!=_current){if(main.public.debug)console.log('scroll event update '+_current);updatePos(_current);}};$('a',main.objects.carrousel).click(function(){if($(this).hasClass('left')){var _index=main.public.galleryPos-1;}else if($(this).hasClass('right')){var _index=main.public.galleryPos+1;}else{var _index=$('a',main.objects.carrousel).index(this);}
if(_index<1)return false;if(_index>$('a',main.objects.carrousel).size()-2)return false;if(_index==main.public.galleryPos)return false;if(main.public.debug)console.log('index: '+_index);scrollToPos(_index,main.public.animationSpeed);return false;});$('button',main.objects.work).click(function(){var _id=$(this).parent().attr('id');openEcard(_id);});$('figure',main.objects.work).click(function(){var _work=$('a[href$="'+$(this).attr('id')+'"]',main.objects.carrousel);if($(_work).size())$(_work).trigger('click');});$('figure img:last',main.objects.work).imagesLoaded(function(){if(main.public.debug)console.log('images geladen');main.objects.work.css({left:0,width:'15000px'});var _pos=1;if(window.location.hash){var _hash=window.location.hash.split('/');if(_hash[2]){var _tmp=$('figure#'+_hash[2],main.objects.work).index()+1;if(_tmp>1)_pos=_tmp;}}
updatePos(_pos);$(window).bind("scroll",scrollGallery);$(window).bind("resize",$.throttle(250,resizeGallery));resizeGallery();main.objects.carrousel.animate({opacity:1},main.public.animationSpeed);main.objects.work.animate({opacity:1},main.public.animationSpeed,function(){main.objects.prettySelect.removeClass('is-loading');if(main.public.debug)console.log('Fade in, stop');});});},ecard:function(){closeEcard=function(){main.objects.overlay.fadeOut(main.public.animationSpeed);main.objects.ecard.fadeOut(main.public.animationSpeed);main.objects.overlay.unbind();};openEcard=function(id){$('#formSentEcard :input').not('button').each(function(){$(this).val($(this).attr('data-value'));}).removeClass('is-valid');$('div.message',main.objects.ecard).hide();$('#formSentEcard').show();$('#formSentEcard input[name=work-slug]').val(id);main.objects.ecard.fadeIn(main.public.animationSpeed);main.objects.overlay.css({'z-index':150}).fadeIn(main.public.animationSpeed);$('section#ecard div.close a, div#overlay, section#ecard button.close').click(function(){closeEcard();return false;});};$('input, textarea').removeClass('is-valid').each(function(){$(this).focus(function(){if($(this).val()==$(this).attr('data-value')){$(this).val('');}}).blur(function(){if($(this).val()==''){$(this).val($(this).attr('data-value'));}});$(this).keyup(function(){if(main.isEMailAddr($(this).val())){$(this).addClass('is-valid');}else{$(this).removeClass('is-valid');}
if($('input.is-valid').size()==2){$('form#formSentEcard button').removeAttr('disabled');}else{$('form#formSentEcard button').attr('disabled','disabled');}});});$('form#formSentEcard').submit(function(){$('form#formSentEcard button').attr('disabled','disabled');$.ajax({type:'POST',url:'/ajax/ecard/',data:$("#formSentEcard").serialize(),dataType:'html',success:function(html){if(html=='OK'){$('#formSentEcard').hide();$('div.message h3',main.objects.ecard).text('Your e-card was successfully sent').parent().show();}else{alert(html);$('form#formSentEcard button').removeAttr('disabled');}},error:function(html){$('#formSentEcard').hide();$('div.message h3',main.objects.ecard).text('Sorry, your e-card could not be sent').parent().show();}});return false;});},updateUrl:function(url){if(url==undefined)return;if(url.match(/http\:/)){var _tmp=url.split('/');url='/'+_tmp[3]+'/'+_tmp[4];}
if(window.location.href.split('/').length==4||window.location.hash){if(main.public.debug)console.log('update hash: #'+url);window.location.hash=url;}else{if(main.public.debug)console.log('harde redirect: '+url);document.location='/#'+url;}},registerKeystrokes:function(){$(document).keydown(function(event){switch(event.keyCode){case 37:if(main.objects.ecard.is(':visible'))return;event.preventDefault();$('a.left',main.objects.carrousel).trigger('click');break;case 39:if(main.objects.ecard.is(':visible'))return;event.preventDefault();$('a.right',main.objects.carrousel).trigger('click');break;case 27:closeTab();closePrettySelect();closeEcard();break;}});},relExternal:function(){$('a[rel^=external]').attr('target','_blank');$('a[target^=_blank]:not(:has(img))').addClass('external');},isEMailAddr:function(string){emailRegExp=/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.([a-z]){2,4})$/;return emailRegExp.test(string.toLowerCase());}};main.init();});}
