/*
	puurpxl.nl
	**********
	
	Javascript
*/





/*	Globale variabelen
	******************/
var global = new Object();
var twitterHash = 'puurpxl';	// Alle twits met deze hash (Bijvoorbeeld '#puurpxl'). 
var aantalTwits = 5;			// Hoeveelheid tweets die opgehaald moeten worden
var maxTwits = 2;				// Hoeveel twits die getoond mogen worden
var transitieSnelheid = 400;	// Snelheid van de meeste transities in de site
var footerHeight;				// Hoogte van de footer.
var twitteraars = {				// Alleen de twits van deze mensen mogen getoond worden:
	'puurpleun':	{naam:'pleun',		jobTitle:'vormgever'},
	'PuurDarja':	{naam:'darja',		jobTitle:'vormgever'},
	'puursander':	{naam:'sander',		jobTitle:'projectmanager'},
	'wvdlubbe':	{naam:'wietske',	jobTitle:'vormgever'},
	'pieterhofstra':	{naam:'pieter',	jobTitle:'interactie ontwerper'},
	'royscholten':	{naam:'roy',	jobTitle:'interactie ontwerper'},
	'ipenburg':	{naam:'roland',	jobTitle:'frontend ontwikkelaar'},
	'PUURPXL':	{naam:'puurpxl',	jobTitle:'puurpxl'}
}





/*	Doen is de document ready is:
	*****************************/
$().ready(function(){
	// Vars
	footerHeight = $('#footer').height();

	// Maak modals
	global.casesModal = 	new Modal({id:'casesModal'});
	global.vacaturesModal = 	new Modal({id:'vacaturesModal'});
	global.puurpxlModal = 	new Modal({id:'puurpxlModal'});
	global.routeModal = 	new Modal({id:'routeModal'});
	
	//global.routeModal.show({href:'http://localhost/puurpxl/route/'})
	
	// Events voor de li's van de projectenlijst. Zie ik het sIFR-gedeelte van de javascript, daar staan ook events
	$('#projecten li.Case').click(function(){
		var href = $(this).find('a.btnToon').attr('href');
		global.casesModal.show({href:href})
	});
	
	$('#projecten li.Vacatures').click(function(){
		var href = $(this).find('a.btnToon').attr('href');
		global.vacaturesModal.show({href:href})
	});
	
	//$('#projecten li.Nieuws').click(function(){
		//toonNieuws($(this));
	//});
	
	$('#projecten li.Case, #projecten li.Vacatures').hover(function(){
		$('#projecten li.Case, #projecten li.Vacatures').removeClass('hover');
		$(this).addClass('hover');
	}, function () {
		$('#projecten li.Case, #projecten li.Vacatures').removeClass('hover');		
	})
	
	
	
	
	// Links in de footer
	$('#linkRoute').click(function(){
		global.routeModal.show({href:$(this).attr('href')});
		return false;
	})
	
	$('#linkOverPuurpxl').click(function(){
		global.puurpxlModal.show({href:$(this).attr('href')});
		return false;
	})
	
	
	// Twitter
	$('#twits').append('<div class="preload"></div><ul></ul>');
	$.getScript('http://search.twitter.com/search.json?q=%23'+twitterHash+'&callback=processTwits&rpp='+aantalTwits);
	
	openStartModals();
});





/*	Functions
	*********/
function toonNieuws(liElm) {
	var href = liElm.find('a.btnToon').attr('href');
	
	if(liElm.hasClass('open')) {	// Hij is al open dus sluit hem
		liElm.removeClass('open').find('div.content').slideUp(transitieSnelheid);
	} else {	// Laad de content en open hem
		liElm.find('div.content').load(href, function(){
			if (trim($(this).text()) != "") {
				// Klaar met laden
				$(this).slideDown(transitieSnelheid).parent().addClass('open');
			}
		});
	}
}

function verbergModals() {
	$('.modal, #modalOverlay').fadeOut(200, function(){
		//$('#footer').css('height',footerHeight);
	})
}

function processTwits(obj) {
	var iteratie = 0;
	jQuery.each(obj.results, function(){
		var from_user = this.from_user;
		var text = this.text;
		var time = relative_time(this.created_at);
		
		// Alleen twits van pxl's tonen!
		jQuery.each(twitteraars, function(i) {
			if (i == from_user) {
				var naam = twitteraars[from_user].naam;
				var jobTitle = twitteraars[from_user].jobTitle;
				$('#twits ul').append('<li><div class="content"><div><span>'+text.replace('#'+twitterHash, '')+'</span></div></div><div class="bottom"><strong>'+naam+'</strong> <span>'+time+'</span></div></li>')
			}
		});
		
		iteratie++;
		if (iteratie == maxTwits) return false;	// Klaar!
	});
	
	$('#twits ul li:not(li:even)').addClass('even');
	$('#twits div.preload').fadeOut(500);
	if (jQuery.browser.msie && jQuery.browser.version < 7) {
		$('#twits div.preload').hide();
	}
}

function relative_time(time_value) {
	var parsed_date = Date.parse(time_value);
	var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
	var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
	if(delta < 60) {
	return 'minder dan 1 min. geleden';
	} else if(delta < 120) {
	return 'ongeveer 1 min. geleden';
	} else if(delta < (45*60)) {
	return (parseInt(delta / 60)).toString() + ' min. geleden';
	} else if(delta < (90*60)) {
	return 'ongeveer 1 uur geleden';
	} else if(delta < (24*60*60)) {
	return 'ongeveer ' + (parseInt(delta / 3600)).toString() + ' uur geleden';
	} else if(delta < (48*60*60)) {
	return 'gisteren';
	} else {
	return (parseInt(delta / 86400)).toString() + ' dagen geleden';
	}
}





/*	sIFR
	****/

var din = { src: '/wp-content/themes/puurpxl/swf/din_mittelschrift.swf' };
var sifrActivate = sIFR.activate(din);

var sifrReplace1 = sIFR.replace(din, {selector: '#projecten li.Case h2, #projecten li.Vacatures h2', css: ['.sIFR-root {font-size:18px;	line-height:24px;	cursor:default;	background-color:#00aeef;	color:#ffffff;	text-transform:uppercase;}',], wmode: 'transparent',
	onRelease: function(fi) {
		var elm = $(fi.getAncestor());
		global.casesModal.show({href:elm.parent().find('a.btnToon').attr('href')});
	}
});

var sifrReplace4 = sIFR.replace(din, {selector: '#projecten li.Case_mini h2', css: ['.sIFR-root {font-size:18px; line-height:24px; cursor:default;	background-color:#00aeef;	color:#ffffff;	text-transform:uppercase;}',], wmode: 'transparent'});

var sifrReplace2 = sIFR.replace(din, {selector: '#projecten h2', css: ['.sIFR-root {font-size:18px;	line-height:24px;	cursor:default !important;	background-color:#ffffff;	color:#00aeef;	text-transform:uppercase;}',], wmode: 'transparent'
	//onRelease: function(fi) {
	//	var elm = $(fi.getAncestor()).parent();
	//	toonNieuws(elm)
	//}//,
	//onRollOver: function(fi) {
		//var elm = $(fi.getAncestor());
		//elm.parent().addClass('hover');
	//}
});

var sifrReplace3 = sIFR.replace(din, {selector: 'h2.large', css: ['.sIFR-root {font-size:60px;	line-height:60px;	cursor:default;	background-color:#00aeef;	color:#00aeef;	text-transform:uppercase;}',], wmode: 'transparent'});



var modalHeader = {selector: 'div.modal h2', css: ['.sIFR-root {vertical-align:center; line-height:1em;	font-size:20px;	cursor:pointer;	background-color:#ffffff;	color:#00aeef;	text-transform:uppercase;}',], offsetTop: 17, tuneHeight: 17, wmode: 'transparent'}
var caseSubtitel = {selector: 'div.modal div.main h3', css: ['.sIFR-root {vertical-align:center; line-height:1em;	font-size:20px;	cursor:pointer;	background-color:#ffffff;	color:#FFFFFF;	text-transform:uppercase;}',], offsetTop: 0, tuneHeight: 17, wmode: 'transparent'}





/*	Constructors
	************/

function Modal(args) {
	// Properties
	var modalElm;
	
	// Methods
	this.init = function(){
		$('body').prepend($('<div id="'+args.id+'" class="modal"><span class="btnSluit">Sluit</span><div class="inner"><div class="content"></div></div><div class="bottom"><div></div></div></div>'))	// Voeg div aan body toe
		modalElm = $('#'+args.id);
		
		if ($('#modalOverlay').length == 0) {
			// Mocht de overlay nog niet bestaan
			$('body').append($('<div id="modalOverlay"></div>'));
			$('#modalOverlay').click(function(){
				verbergModals();
			})
		}
		
		modalElm.find('span.btnSluit').hover(function(){
			$(this).addClass('hover');
		}, function () {
			$(this).removeClass('hover');			
		})
		
		modalElm.find('span.btnSluit').click(function(){
			verbergModals()
		})
	}
	
	this.show = function(arguments) {
		modalElm.find('div.content').load(arguments.href, function(){
			modalElm.css('top',$(window).scrollTop()+20);	// Positioneer
			modalElm.fadeIn(transitieSnelheid, function(){
				var height = $(document).height() - $('#footer').position().top;
				$('#footer').css('height',height)
			});
			$('#modalOverlay').css({'display':'block','opacity':0}).fadeTo(transitieSnelheid,0.6);
			
			//Vraag -> Oplossing etc
			if(modalElm.find('div.info_text ul.items_navigation').length > 0) {
				modalElm.find('div.info_text ul.items_navigation li a').each(function () {
					$(this).click(function () {
						var my_href = $(this).attr('href');
						my_href = my_href.replace("http://www.puurpxl.nl/", "");
						
						// reset
						$(this).parent().parent().find('li').removeClass('active');
						modalElm.find('div.info_text ul.items li').hide();
						
						// set new
						modalElm.find('div.info_text ul.items li'+my_href+'').show();
						$(this).parent().addClass('active');
					});
				});

				modalElm.find("div.info_text ul.items_navigation li a:first").trigger('click');	
			} else {
				modalElm.find('div.info_text ul.items li p').show();
			}
			
			// Afbeeldingen
			modalElm.find("div.thumbnails img").click(function () {
				var my_href = $(this).attr('href');
				modalElm.find("div.images div.image img").attr('src', my_href);
				return false;	
			});

			sIFR.replace(din, modalHeader);			
			sIFR.replace(din, caseSubtitel);

		});
		
		return true;
	}
	
	this.hide = function(){
		verbergModals();
	}
	
	this.init();
}

// Other functions

function trim(value) {
  value = value.replace(/^\s+/,'');
  value = value.replace(/\s+$/,'');
  return value;
}

