function saveCoords(obj){
	var coords = {};
	coords.objid = $(obj).attr('id');
	coords.left = $(obj).css('left');
	coords.top = $(obj).css('top');
	coords.zindex = $(obj).css('z-index');
	
	coords.top = (coords.top < 40) ? 40 : coords.top;

	$.cookie('block_'+$(obj).attr('id'),JSON.stringify(coords),{path : "/"});
}

function saveOpenState(obj,state){
	$.cookie('state_'+$(obj).attr('id'),state,{path : "/"});
}

function saveCats(cats){
	$.cookie('cats',JSON.stringify(cats),{path : "/"});
}

function loadGallery(pathStr,slide,gestart){
	
	var tempSlide = slide,
		tempGestart = gestart;
	
	$.get(template_dir+'/buildgallery.php?reswidth='+$(window).width()+'&resheight='+$(window).height()+'&url='+pathStr, function(data) {
			log('loading new gallery..',pathStr);
		var wp = $('#wallpaper'),
			slide = (tempSlide) ? tempSlide : 1;		
		
		wp.html(data);
			
		wp.superbgimage({ reload:true, showimage: slide }).hide();
		
		/*
		wp.children().each(function(){
			var src = $(this).attr('href');
			$(this).remove();
			wp.append('<img src="'+src+'" alt="" style="width:100%" />').css({
				overflow: 'hidden'
			});
		});
		*/
	});   
	$('.firstLoad').removeClass('firstLoad');
 	
}


$(function() {
	

	/****************************************************************************************
	* REST
	****************************************************************************************/
	
	$('#nieuwsbrief').submit(function(){
		var email = $('.search-name').val(),
			validated = checkEmail(email);		
		
		if(validated){
			$.get(
				template_dir+'/addnewsletter.php',
				{'email':email},
				function(data){
					var mailed = jQuery.parseJSON(data);
					if(mailed){
						$('.nbmsg').html('Bedankt voor je aanmelding!').show();
						$('#nieuwsbrief').hide();
					}else{
						$('.nbmsg').html('Er is een onbekende fout opgetreden.<br /><a href="" onclick="$(this).parent().hide().prev().show();return false;" rel="hardlink">Probeer het opnieuw</a>').show();
						$('#nieuwsbrief').hide();
					}
				}
			);
		}else{
			$('.nbmsg').html('U heeft een ongeldig emailadres opgegeven.<br /><a href="" onclick="$(this).parent().hide().prev().show();return false;" rel="hardlink">Probeer het opnieuw</a>').show();
			$('#nieuwsbrief').hide();
		}
		
		return false;
	});
	
	$('#category-list').livequery(function(){
	
		var po = $('.portfolio-overview'),
			hc = $('.hidden-cats'),
			cli = $('#category-list');
		
		$(this).find('li').click(function(){
			if(!$(this).hasClass('active')){
				// erbij
				var cl = $(this).attr('rel');
				if(cli.find('.active').length < 1){
					po.find('li:not(.'+cl+')').appendTo(hc);
				}else{
					hc.find('.'+cl).each(function(){
						var pos = parseInt($(this).attr('rel'));
						var found = false;
						for(var i = pos; i >= 0; i--){
							if(po.find('li[rel="'+i+'"]').length > 0){
								found = true;
								var prevEl = po.find('li[rel="'+i+'"]');
								prevEl.after($(this));
								break;
							}
						}
						if(!found) $(this).prependTo(po);
					});
				}
				po.masonry('reload');
				$(this).addClass('active');
			}else{
				// weghalen
				$(this).removeClass('active');
				var cl = $(this).attr('rel');
				
				if(cli.find('.active').length < 1){
					hc.children().each(function(){
						var pos = parseInt($(this).attr('rel'));
						var found = false;
						for(var i = pos; i >= 0; i--){
							if(po.find('li[rel="'+i+'"]').length > 0){
								found = true;
								var prevEl = po.find('li[rel="'+i+'"]');
								prevEl.after($(this));
								break;
							}
						}
						if(!found) $(this).prependTo(po);
					});
				}else{
					po.find('.'+cl).each(function(){
						var is_active = false,
							el = $(this);
						cli.find('.active').each(function(){
							if(el.hasClass($(this).attr('rel'))) is_active = true;
						});
						if(!is_active) el.appendTo(hc);
					});
				}
				po.masonry('reload');
			}
			// save cats
			var cats = [];
			cli.find('.active').each(function(){
				cats.push($(this).attr('rel'));
			});
			saveCats(cats);			
		});
	});
	
	$('.close-content').livequery(function(){
		$(this).click(function(){
			if($(this).parent().hasClass('closed')){
				$(this)
					.parents('.toggler').removeClass('closed').addClass('open').addClass('animating')
					.children('.portfolio-content').slideDown('fast',function(){
						$(this).parent().removeClass('animating');
					})
					.parents('li')
					.siblings().removeClass('open').addClass('closed').addClass('animating')
					.children('.portfolio-content').slideUp('fast',function(){
						$(this).parent().removeClass('animating');
					});
			}else{
				$(this)
					.parents('.toggler').removeClass('open').addClass('closed').addClass('animating')
					.children('.portfolio-content').slideUp('fast',function(){
						$(this).parent().removeClass('animating');
					});
			}
			$(this).parent().parent().children().each(function(){
				var state = ($(this).hasClass('open')) ? 'open' : 'closed';
				saveOpenState(this,state);
			});
		});
	});

	/****************************************************************************************
	* Draggable
	****************************************************************************************/
	log($(window).width(),$(window).height());
	
	$( ".block" ).livequery(function(){	
		$(this).draggable({
			containment: [0,40,($(window).width() - $(this).outerWidth(true)),($(window).height() - $(this).outerHeight(true))],//'window',
			cursor: 'move',
			handle: ($(this).attr('id') == 'work-overview') ? '.nieuw-werk' : false,
			stop: function(){
				saveCoords(this);
			}
		}).mousedown(function(){
			$(this).addClass('ui-draggable-dragging');
			highestZ($(this));
		}).mouseup(function(){
			$(this).removeClass('ui-draggable-dragging');
		}).each(function(){
			
			var $this = $(this),
				pos = $this.position(),
				windowWidth = $(window).width(),
				windowHeight = $(window).height();
			
			if(pos.left > windowWidth - $this.outerWidth(true)){
				$this.css('left',windowWidth-$this.outerWidth(true));
				saveCoords(this);
			}
			if(pos.top > windowHeight - $this.outerHeight(true)){
				$this.css('top',windowHeight-$this.outerHeight(true));
				saveCoords(this);
			}
			
		});
	
	});
	
	$('#work-overview').find('li').livequery(function(){
		$(this).hover(
			function(){
				$(this).find('.nieuwoverlay').stop().show().animate({
					opacity: 1
				},'fast');//fadeIn('fast');
			},
			function(){
				$(this).find('.nieuwoverlay').stop().show().animate({
					opacity: 0
				},'fast'); //.fadeOut('fast');
			}
		)/*.find('td').click(function(){
			
			return false;
		})*/;
	});
	
		$(window).resize(function(){
	     	delay(function(){
	     		var c = 0;
			   	$('.block').each(function(){
					var $this = $(this),
						pos = $this.position(),
						windowWidth = $(window).width(),
						windowHeight = $(window).height();
					
					var offset = 50 * c;
					
					if(pos.left > windowWidth - $this.outerWidth(true) || pos.top > windowHeight - $this.outerHeight(true)){
						$this.stop().animate({
							left: (pos.left > windowWidth - $this.outerWidth(true)) ? ((windowWidth-$this.outerWidth(true) - offset <= 40) ? 40 : windowWidth-$this.outerWidth(true) - offset) : '+=0',
							top: (pos.top > windowHeight - $this.outerHeight(true)) ? ((windowHeight-$this.outerHeight(true) - offset <= 40) ? 40 : windowHeight-$this.outerHeight(true) - offset) : '+=0'
						},'fast',function(){
							saveCoords(this);
						});
						
						c++;					
					}
					
					$(this).draggable('destroy').draggable({
						containment: [0,40,($(window).width() - $(this).outerWidth(true)),($(window).height() - $(this).outerHeight(true))],//'window',
						cursor: 'move',
						stop: function(){
							saveCoords(this);
						}
					});
			   });
			   
			   if($('#gmap').length > 0) $('#gmap').height($(window).height() - 40);
			   
			   $('#container').height($(window).height() - 50);			   
			}, 250);
			
		});
		$('#container').height($(window).height() - 50);			   

});

/****************************************************************************************
* Address
****************************************************************************************/

var hostname,
	init;

$.address.init(function() {
	
	var french;
	hostname = 'http://'+window.location.hostname;
	var request_uri = $.address.baseURL().replace(hostname,''); //"http://localhost"; //$.address.baseURL();
	if(strpos(request_uri,'/fr/') !== false){
		var request_uri = request_uri.replace('/fr/','/');
		french = true;
	}
	
	if(request_uri){
		refresh_to = hostname + ((french) ? '/fr' : '') + '/#!' + request_uri + '/';
		if(request_uri != '/fr') window.location = refresh_to;
	}else{
		$('#section').css({opacity: 1});
	}	

	title = document.title;

	$('a[target!="_blank"][rel!="hardlink"]').address(function() { //.nav a, .jqa
        return $(this).attr('href').replace(hostname + '/', '');
    }); 
	
	init = true;	
	
}).change(function(event) {
	
	var wp = $('#wallpaper');

	var pathArr = $.address.pathNames();
	var pathUri = $.address.value();
	var pathStr = $.address.path();
	var qS = $.address.queryString();
	var is_portfolio = ((pathStr.indexOf("/portfolio/") >= 0 && pathStr != "/portfolio/" && pathStr != "/fr/portfolio/") || (pathStr.indexOf("/portfolio_fr/") >= 0 && pathStr != "/portfolio_fr/" && pathStr != "/fr/portfolio_fr/")) ? true : false;
	var is_portfolio_page = (pathStr != ("/portfolio/")  && pathStr != ("/fr/portfolio/") && pathStr != ("/portfolio_fr/")  && pathStr != ("/fr/portfolio_fr/")) ? false : true
	
	$('.link-nl').attr('href',hostname +"/#!"+pathStr);
	$('.link-fr').attr('href',hostname +"/fr/#!"+pathStr);
	
	$('.nav > ul ul a.active').removeClass('active');
	$('a[href="'+hostname+pathStr+'"]').addClass('active');
	
	var names = $.map(event.pathNames, function(n) {
         if(!strpos(n,'.php')) return n.substr(0, 1).toUpperCase() + n.substr(1);
     });
     
	 var newTitle = title + " | " + names.join(' | ');
	 $.address.title(newTitle);
	
	var allowed = [];
	
	if(pathStr != "/"){ // && !init
		var getVars =  { url: pathStr };
		$('#loading').show();
		$.post(template_dir+'/ajaxrequest.php', getVars, function(data){
			$('#container').html(data).css('opacity',100);
			//($('#gmap').length > 0) ? $('#logo').hide() : $('#logo').show();
			
			var item = $('.menu').find('a[href="'+hostname+pathStr+'"]').parent(),
			slide = (pathStr == '/info/') ? 2 : 1; //$('.menu').find('li').index(item) + 1;
			log('path',pathStr);
			
			if(wp.hasClass('default') && is_portfolio){
				wp.removeClass('default').addClass('portfolio');
				loadGallery(pathStr,1,init);
				log('a');
			}else if(wp.hasClass('portfolio') && !is_portfolio && !is_portfolio_page){
				wp.removeClass('portfolio').addClass('default');
				loadGallery(pathStr,slide,init);
				log('b');
			}else{
				if(is_portfolio && !is_portfolio_page){
					loadGallery(pathStr,1,init);
				log('c');
				}else if(wp.hasClass('firstLoad')){
					loadGallery(pathStr,slide,true);
				log('da');
				}else if(wp.children().length >= slide){
					// MEERDERE ACHTERGRONDEN
					if($.superbg_imgActual != slide && (!is_portfolio_page || wp.hasClass('default'))) wp.superbgShowImage(slide);
					//log('skip to slide '+slide);
				}
			}				
			$('#loading').hide();
		});
	}else{
		if($('#wallpaper').hasClass('firstLoad')){
			loadGallery("",1,true);
			$('.firstLoad').removeClass('firstLoad');
		}
		$('.page-item-22').addClass('current_page_item');
	}
						
	init = false;
});


