var currentPart = 0;

$(function(){
	$("#part_0 .contentbutton").click(startPartOne);
	pageTracker._trackPageview('/WVRBJ/start'); /* start */
	//startPartSix();
	bindOverlayers();
});


function getInviteEmail(){
	return '<b>Voorbeeld e-mail</b>'+
	'<p>Hallo daar!</p>'+

	'<p>Je bent zojuist door '+$("#ReminderName").val()+' uitgenodigt om te ontdekken wat voor type reiziger jij bent. Dit kun je makkelijk bepalen via de revolutionaire test op Pindat.com, een nieuwe website waar je gratis een super nauwkeurig reisdagboek bij kunt houden. Aan de hand van slechts 4 vragen kan Pindat met complexe computerbrekeningen vaststellen wat voor soort reiziger jij bent! Daarnaast krijg je op basis van de uitkomst een gratis reistip.</p>'+

	'<p>'+$("#ReminderName").val()+' heeft de test ook gedaan en maakt daardoor ook nog eens kans op een uniek limited-edition t-shirt!</p>'+

	'<p><a href="http://www.pindat.com/WVRBJ">Doe ook de test op Pindat!</a></p>'+

	'<p>Veel reisplezier!<br/>'+
	'Team Pindat. www.pindat.com</p>';
}

/* OVERLAYERS */

function bindOverlayers(){
	var overlayers = $("#inviteOverlay");
	var body = $("body");
	var docHeight = $(document).height()+20;
	if(overlayers.length > 0){
		var overlayContainer = $('<div class="overlaycontainer"></div>').css({'z-index':2000,'height':docHeight + "px", 'width':'100%', position:'absolute', top:0, left:0, opacity:0.65, 'background-color':'#999999'}).appendTo( body );
		overlayContainer.hide();
	
		var infoHolder = $('<div class="infoHolder"></div>').css({'z-index':2500,position:'absolute','padding':'0px 14px 14px 14px','background-color':'white'}).appendTo( body );
		infoHolder.hide();
	
		overlayers.click(function(){
			var offset = $(".triple.right.column").offset();
			infoHolder.css({'top':offset.top+"px", 'left':offset.left+"px"});
			
			overlayContainer.show();
			infoHolder.empty().html(getInviteEmail());
			$("a", infoHolder).click(returnFalse);
			$('<div class="right"></div>').append( $('<input type="button" value="Sluiten" class="contentbutton">').click(function(){
				overlayContainer.hide();
				infoHolder.hide();
				return false;
			}) ).appendTo(infoHolder);
			infoHolder.fadeIn();
			return false;
		});
	}
}

function _checkEmail(email){
	var exp = new RegExp("^([A-Z0-9.&'+=_-]{1,64})@([A-Z0-9.-]+)[.]{1}([A-Z]{2,4})$|^$", "i");
	return exp.test(email);
}

function _checkName(name){
	var exp = new RegExp("^[A-Z0-9 ]{2,200}$", "i");
	return exp.test(name);
}

function _checkDate(date){
	var exp = new RegExp("([0123]{0,1}[0-9])-([01]{0,1}[0-9])-(20[01][0-9])", "i");
	return exp.test(date);
}

function _isFutureDate(date){
	var exp = new RegExp("([0123]{0,1}[0-9])-([01]{0,1}[0-9])-(20[01][0-9])", "i");
	var res = exp.exec(date);
	var date = DateManager.prototype.fromString(res[3]+"-"+res[2]+"-"+res[1]);
	var now = new Date();
	if(date.getTime() < now.getTime())
		return false;
	return true;
}

function _checkPreconditions(part){
	if(currentPart != part){
		globals.messageManager.showError("Je kunt niet terug");
		return false;
	}
	$(".error-message").hide();
	var val = $("input[name='data[part_"+part+"]']:checked").val();
	if(!val){
		globals.messageManager.showError("Kies eerst één van de opties");
		return false;
	}
	currentPart++;
	return true;
}

function _partSlide(part){
	if(part != 1){
		updateBanner();
	}
	$("#show_part_"+(part-1)).hide();
	$("#show_part_"+part).fadeIn("slow");
	
	$("#part_"+(part-1)).slideUp("slow");
	return $("#part_"+part).slideDown("slow");
}

function startPartOne(){
	currentPart++;
	var p1 = _partSlide(1);
	pageTracker._trackPageview('/WVRBJ/part1'); /* bestemming */
	$(".contentbutton", p1).click(startPartTwo);
}

function startPartTwo(){
	if(!_checkPreconditions(1))
		return false;
	
	p = _partSlide(2);
	pageTracker._trackPageview('/WVRBJ/part2'); /* vergeten */
	$(".contentbutton", p).click(startPartThree);
}

function startPartThree(){
	if(!_checkPreconditions(2))
		return false;
	
	p = _partSlide(3);
	pageTracker._trackPageview('/WVRBJ/part3'); /* van te voren */
	$(".contentbutton", p).click(startPartFour);
}

function startPartFour(){
	if(!_checkPreconditions(3))
		return false;

	p = _partSlide(4);
	pageTracker._trackPageview('/WVRBJ/part4'); /* bagage type */
	$(".contentbutton", p).click(startPartFive);
}

function startPartFive(){	/* uitslag in je mailbox */
	if(!_checkPreconditions(4))
		return false;

	p = _partSlide(5);
	pageTracker._trackPageview('/WVRBJ/part5'); /* make reminder */
	
	/* SUBMIT! */
	$(".contentbutton", p).click(doSubmitPartFive);
}

function doSubmitPartFive(){
	if(!checkPartFive())
		return false;
	
	globals.messageManager.showLoadButton($(this));
	$.post( "/WVRBJ/mailresults", _getPartFiveFormData(), processSubmitPartFive, "json" );
	
	/* TEMP */
/*	for(var i=1; i<6; i++){
		$("#part_"+i).show();
		$("#part_"+i+" .contentbutton").remove();
	}
	$("#part_5").remove();
	$(".shirts").remove();
	fixColumns();*/
}

function processSubmitPartFive(result){
	if(!result.error){
		startPartSix();
		$("#wvrbj_id").val(result.id);
	} else {
		globals.messageManager.showError(result.error, "disclaimer");
	}
	globals.messageManager.HideLoading();
}

function checkPartFive(){
	globals.messageManager.emptyError("date");
	globals.messageManager.emptyError("email");
	globals.messageManager.emptyError("disclaimer");
	globals.messageManager.emptyError("name");
	
	var gotoNextStep = true;
	var date = $("#ReminderDate").val();
	if(!date || date == ""){
		globals.messageManager.showError("Datum mag niet leeg zijn", "date");
		gotoNextStep = false;
	} else if(!_checkDate(date)){
		globals.messageManager.showError("Ongeldige datum. Gebruik het formaat: DD-MM-YYYY, bijvoorbeeld: 29-05-2009", "date");
		gotoNextStep = false;
	} else if(!_isFutureDate(date)){
		globals.messageManager.showError("Kies een datum in de toekomst", "date");
		gotoNextStep = false;
	}
	
	var name = $("#ReminderName").val();
	if(!name || name == ""){
		globals.messageManager.showError("Vul een naam in zodat we je e-mail kunnen personaliseren", "name");
		gotoNextStep = false;
	} else if(!_checkName(name)){
		globals.messageManager.showError("Dit is geen geldige naam. Gelieve geen speciale tekens te gebruiken.", "name");
		gotoNextStep = false;
	}
	
	var email = $("#ReminderEmail").val();
	if(!email || email == ""){
		globals.messageManager.showError("E-mailadres mag niet leeg zijn", "email");
		gotoNextStep = false;
	}else if(!_checkEmail(email)){
		globals.messageManager.showError("Dit is geen geldig e-mailadres", "email");
		gotoNextStep = false;
	}
	
	if($("#disclaimer:checked").length == 0){
		globals.messageManager.showError("Je moet akkoord gaan met de algemene voorwaarden", "disclaimer");
		gotoNextStep = false;
	}
	
	fixColumns();
	
	return gotoNextStep;
}

function startPartSix(){ /* t-shirts, + 3 vrienden */
	if(!checkPartFive())
		return false;
	
	p = _partSlide(6);
	pageTracker._trackPageview('/WVRBJ/part6'); /* t-shirts */
	$(".contentbutton", p).click(doSubmitPartSix);
	$(".shirts a").click(handleShirtClick);
	
	$("input[name='data[Invite][email][]']:last").live("keyup", autoExpandEmail);
}

function checkPartSix(){
	var gotoNextStep = true;
	globals.messageManager.emptyError("shirt");
	$(".error-message").empty().show();
	
	var shirt = $("#chosen_tshirt").val();
	if(!shirt || shirt == ""){
		globals.messageManager.showError("Kies een shirt uit door erop te klikken", "shirt");
		gotoNextStep = false;
	}
	
	var emails = 0;
	$("input[name='data[Invite][email][]']").each(function(){
		var email = $(this).val();
		if(!email || email == ""){
		} else if(!_checkEmail(email)){
			$(this).parent().next(".error-message").html("<span>Dit is geen geldig e-mailadres</span>");
			globals.messageManager.showError("", null, $(this).next(".error-message"));
			gotoNextStep = false;
		} else {
			emails++;
		}
	});

	var id = $("#wvrbj_id").val();
	if(!id || id == ""){
		$("#part_6 .error-message:last").html("<span>Er is iets mis gegaan. Start de test opnieuw.</span>");
		gotoNextStep = false;
	}
	
	fixColumns();
	
	return gotoNextStep;
}

function doSubmitPartSix(){
	if(!checkPartSix())
		return false;
	
	globals.messageManager.showLoadButton($(this));
	$.post( "/WVRBJ/invitefriends", _getPartSixFormData(), processSubmitPartSix, "json" );
}

function processSubmitPartSix(result){
	if(!result.error){
		showThanks();
	} else {
		globals.messageManager.showError("", "disclaimer"); /* so the button is restored */
		$("#part_6 .error-message:last").html("<span>"+result.error+"</span>");
	}
	globals.messageManager.HideLoading();
}

function autoExpandEmail(){
	var elm = $('<div class="input text"><input name="data[Invite][email][]" type="text" value="" /></div>').insertAfter( $(this).parent().next(".error-message") );
	$('<div class="error-message"></div>').insertAfter(elm);
	fixColumns();
}

function _getPartFiveFormData(){
	var data = {};
	for(var i=1; i<5; i++){
		data['q_'+i] = $("input[name='data[part_"+i+"]']:checked").val();
	}
	data['name'] = $("#ReminderName").val();
	data['email'] = $("#ReminderEmail").val();
	data['date'] = $("#ReminderDate").val();
	return data;
}

function _getPartSixFormData(){
	var emails = new Array();
	$("input[name='data[Invite][email][]']").each(function(){
		var email = $(this).val();
		if(email){
			emails.push(email);
		}
	});

	var data = {};
	data['email'] = $("#ReminderEmail").val();
	data['date'] = $("#ReminderDate").val();
	data['id'] = $("#wvrbj_id").val();
	data['emails[]'] = emails;
	data['tshirt'] = $("#chosen_tshirt").val();
	return data;
}

function showText(text){
	alert(text);
}

function showThanks(){
	updateBanner();
	$("#part_6").hide();
	$("#show_part_6").hide();
	$(".credits").hide();
	
	$("#bedankt").remove();
	$('<img src="/images/wvrbj/bedankt.gif" id="bedankt" title="Bedankt voor je deelname! De winnaar van het t-shirt krijgt automatisch bericht." />').insertAfter( $("#part_6") );

	pageTracker._trackPageview('/WVRBJ/done');
}

function handleShirtClick(){
	$(".shirts .selected").removeClass("selected");
	$(".shirts a").css("opacity", 1);
	$(this).addClass("selected");
	$(".shirts a:not(.selected)").css("opacity",0.3);
	$("#chosen_tshirt").val( $("img", this).attr("src") );
	return false;
}

function updateBanner(){
	var elm = $(".ads.block").empty();
	
	$('<h2>Advertentie</h2>').appendTo(elm);
	$('<center><iframe height="600" frameborder="0" width="120" scrolling="no" marginheight="0" marginwidth="0" src="http://pindat.com.site-id.nl/servlet/_am?n=3909&amp;sid=3140"/></center>').appendTo(elm);
}

