url =
{
	base:		'',
	rewrite:	false,
	to:			function(page)
	{
		if(this.rewrite)
		{
			return this.base + page;
		}
		else
		{
			return this.base + '/index.php?' + page;
		}
	},
	toResource:	function(resource)
	{
		return this.base + resource;
	}
};

function addressSearch()
{
	var formData = 
	{
		firstname:	$('#firstname').val(),
		lastname:	$('#lastname').val(),
		born:		$('#born').val(),
		gender:		$('#gender').val(),
		continent:	$('#continent').val()
	};
	if(formData.firstname.length > 0 && formData.lastname.length > 0 && formData.born.length > 0 && $('#address').val().length == 0)
	{
		var page = url.to('/ajax/search');
		$.post(page, formData, function(data) {
			if(data.status == 1)
			{
				pageTracker._trackPageview("/ajax/search");
				
				if($('#phone').val() == '')
				{
					$('#phone').val(data.result.phone);
				}
				
				if($('#address').val() == '')
				{
					$('#address').val(data.result.streetName + ' ' + data.result.houseNumber + ' ' + data.result.entrance);
				}
				if($('#zip').val() == '')
				{
					$('#zip').val(data.result.zipCode);
				}
				if($('#place').val() == '')
				{
					$('#place').val(data.result.city);
				}
				
				showFullForm();
			}
		}, 'json');
	}
}

function showFullForm()
{
	var form = $('#fullForm');
	if($('#fullForm').css('display') == 'none')
	{
		$('#fullForm').slideDown("slow");
	}
}

function showFullBusinessForm()
{
	var form = $('#bizFullForm');
	if($('#bizFullForm').css('display') == 'none')
	{
		$('#bizFullForm').slideDown("slow");
	}
}

function submitForm()
{
	if($('#fullForm').css('display') != 'none')
	{
		var fields = new Array(
			'firstname',
			'lastname',
			'phone',
			'mail'
		);
		
		for(i = 0; i < fields.length; i++)
		{
			if($('#' + fields[i]).val().length == 0)
			{
				showTooltip(fields[i], 'Vennligst fyll ut dette feltet');
				return;
			}
		}
		
		var data = 
		{
			gender:		$('#gender').val(),
			continent:	$('#continent').val(),
			firstname:	$('#firstname').val(),
			lastname:	$('#lastname').val(),
			born:		$('#born').val(),
			phone:		$('#phone').val(),
			mail:		$('#mail').val(),
			address:	$('#address').val(),
			zip:		$('#zip').val(),
			place:		$('#place').val()
		};
		var page = url.to('/ajax/register');
		$.post(page, data, function(response){
			pageTracker._trackPageview("/ajax/register");
			$('#sidebarContent').load(url.to('/sidebar/normal'), function() { appendTrackingImages($('#sidebarContent'));});
			trackConversion(data);
		});
	}
}

function submitBusinessForm()
{
	if($('#bizFullForm').css('display') != 'none')
	{
		var fields = new Array(
			'bizSponsorships',
			'bizName',
			'bizContact',
			'bizMail',
			'bizPhone',
			'bizAddress',
			'bizZip',
			'bizPlace'
		);
		
		for(i = 0; i < fields.length; i++)
		{
			if($('#' + fields[i]).val().length == 0)
			{
				showTooltip(fields[i], 'Vennligst fyll ut dette feltet');
				return;
			}
		}
		
		var data = 
		{
			sponsorships:		$('#bizSponsorships').val(),
			name:				$('#bizName').val(),
			contact:			$('#bizContact').val(),
			mail:				$('#bizMail').val(),
			phone:				$('#bizPhone').val(),
			address:			$('#bizAddress').val(),
			zip:				$('#bizZip').val(),
			place:				$('#bizPlace').val()
		};
		var page = url.to('/ajax/registerBusiness');
		$.post(page, data, function(data){
			$('#sidebarContent').load(url.to('/sidebar/business'));
		});
	}
}

function businessAddressSearch()
{
	var name = $('#bizName').val();
	if(name.length > 0 && $('#bizAddress').val().length == 0)
	{
		var page = url.to('/ajax/businessSearch');
		$.post(page, { name: name }, function(data) {
			if(data.status == 1)
			{
				if($('#bizPhone').val() == '')
				{
					$('#bizPhone').val(data.result.phone);
				}
				
				if($('#bizAddress').val() == '')
				{
					$('#bizAddress').val(data.result.streetName + ' ' + data.result.houseNumber + ' ' + data.result.entrance);
				}
				if($('#bizZip').val() == '')
				{
					$('#bizZip').val(data.result.zipCode);
				}
				if($('#bizPlace').val() == '')
				{
					$('#bizPlace').val(data.result.city);
				}
				
				showFullForm();
			}
		}, 'json');
	}
}

function showTooltip(element, text)
{
	$('#' + element).focus();
	$('#' + element).qtip({
		content: text,
		position: 
		{
			corner: 
			{
				target: 'topMiddle',
				tooltip: 'bottomMiddle'
			}
		},
		show: 
		{
			when: false,
			ready: true
		},
		hide: 
		{
			fixed: true,
			when: 'keypress',
			effect:
			{
				length: 250
			}
		},
		style: {
            border: {
               width: 2,
               radius: 3
            },
            padding: 5, 
            textAlign: 'center',
            tip: true // Give it a speech bubble tip with automatic corner detection
         }
	});
}

function removeTextOnFocus(element, text)
{
	element = $(element);
	if(element.val() == text)
	{
		element.val('');
	}
}

function addTextOnBlur(element, text)
{
	element = $(element);
	if(element.val() == '')
	{
		element.val(text);
	}
}

function contestRegistration()
{
	var defaults = 
	{
		name:		'Ditt navn',
		born:		'Født (ddmmåå)',
		phone:		'Telefon',
		mail:		'E-post',
		address:	'Adresse',
		zip:		'Postnr.',
		place:		'Poststed',
		companion:	'Navnet på din reisepartner',
		relation:	'Hva er relasjonen til reisepartneren din?',
		country:	'-1',
		reason:		'Hvorfor bør akkurat du få reise?'
	};
	

	var fields;
	if($('#sponsorRegistration').val() == 1)
	{
		fields = new Array('name', 'mail', 'phone', 'companion', 'relation', 'reason');
	}
	else
	{
		fields = new Array('name', 'mail', 'companion', 'relation', 'country', 'reason');
	}
	
	for(var i in fields)
	{
		var field = $('#' + fields[i]);
		if(field.val() == defaults[fields[i]] || field.val().length == 0)
		{
			if(fields[i] == 'country')
			{
				$('#countryRow').qtip({
					content: 'Vennligst fyll ut dette feltet',
					position: 
					{
						corner: 
						{
							target: 'topMiddle',
							tooltip: 'bottomMiddle'
						}
					},
					show: 
					{
						when: false,
						ready: true
					},
					style: {
			            border: {
			               width: 2,
			               radius: 3
			            },
			            padding: 5, 
			            textAlign: 'center',
			            tip: true
			         }
				});
			}
			else
			{
				showTooltip(fields[i], 'Vennligst fyll ut dette feltet');
			}
			return;
		}
	}
	var data = $('#contestForm :input').serialize();
	$.post(url.to('/ajax/contestRegister'), data, function(response){
		if($('#sponsorRegistration').val() == 1)
		{
			pageTracker._trackPageview("/ajax/register");
			$('#normalRegistrationHeader').hide();
			$('#extendedRegistrationHeader').show();
			trackConversion(data);
			appendTrackingImages($('#extendedRegistrationHeader'));
		}
		$('#shareText').val(response);
		$('#contestRegistration').hide();
		$('#contestRegistered').show();
	});
}

function contestSearch()
{	
	var data = 
	{
		name:		$('#name').val(),
		born:		$('#born').val(),
		gender:		$('#gender').val(),
		continent:	$('#continent').val()
	};
	if(data.name.length > 0 && data.born.length > 0 && $('#address').val().length == 0)
	{
		var page = url.to('/ajax/contestSearch');
		$.post(page, data, function(data) {	
			if(data.status == 1)
			{
				pageTracker._trackPageview("/ajax/search");
				if($('#phone').val() == 'Telefon' || $('#phone').val().length == 0)
				{
					$('#phone').val(data.result.phone);
				}
				
				if($('#address').val() == 'Adresse' || $('#address').val().length == 0)
				{
					$('#address').val(data.result.streetName + ' ' + data.result.houseNumber + ' ' + data.result.entrance);
				}
				if($('#zip').val() == 'Postnr.' || $('#zip').val().length == 0)
				{
					$('#zip').val(data.result.zipCode);
				}
				if($('#place').val() == 'Poststed' || $('#place').val().length == 0)
				{
					$('#place').val(data.result.city);
				}
				
				showFullForm();
			}
		}, 'json');
	}
}

function showContestReg()
{
	$('#contestIsSponsor').removeClass('active');
	$('#contestBecomeSponsor').addClass('active');
	$('#contestReg').slideDown('slow');
	$('#countryRow').hide();
	$('#sponsorRegistration').val(1);
}

function hideContestReg()
{
	$('#contestIsSponsor').addClass('active');
	$('#contestBecomeSponsor').removeClass('active');
	$('#contestReg').slideUp('slow');
	$('#countryRow').show();
	$('#sponsorRegistration').val(0);
}

function changeVideo(element, video, autoStart)
{
	document.getElementById(element).innerHTML = '';
	if(autoStart == null)
	{
		autoStart = false;
	}
	
	var params = {};
	params.playerID = '15159845001';
	params.videoId = video;
	params.autoStart = autoStart.toString();
	params.bgcolor = '#FFFFFF';
	params.width = '574';
	params.height = '372';
	params.isVid = 'true';
	
	var player = brightcove.createElement('object');
	player.id = 'videoPlayer';
	
	for(var p in params)
	{
		var parameter = brightcove.createElement('param');
		parameter.name = p;
		parameter.value = params[p];
		player.appendChild(parameter);
	}
	
	var playerContainer = document.getElementById(element);
	brightcove.createExperience(player, playerContainer, true);
}

function shareFeedback(text)
{
	var parent = $('#shareFeedbackContainer');
	parent.html('');
	
	var feedback = $('<div></div>');
	feedback.attr('id', 'shareFeedback');
	feedback.attr('class', 'notice');
	feedback.html(text);
	parent.append(feedback);
	setTimeout(function() {
		$('#shareFeedback').fadeOut(750, function(){ $('#shareFeedback').remove(); }); 
	}, 3000);
}

function shareTwitter()
{
	var page = url.to('/twitter/action/setStatus/' + Base64.encode($('#shareText').val()));
	window.open(page, 'openWindow', 'width=800,height=400');
}

function shareFacebook()
{
	FB.Connect.showPermissionDialog('status_update', function() {
		var sequencer = new FB.BatchSequencer();
		var pendingResult = FB.Facebook.apiClient.users_setStatus($('#shareText').val(), false, true, sequencer);
		
		sequencer.execute(function() {
		    if(pendingResult.result)
		    {
		    	shareFeedback('Statusen din ble oppdatert.');
		    }
		    else
		    {
		    	shareFeedback('Det oppstod en feil, statusen ble ikke oppdatert.');
		    }
		});
	});
}

function shareMsn(element)
{
	$(element).attr('href', 'aim:setstatus?' + $('#shareText').val().replace(/ /g, '+'))
}

function showTerms(element)
{
	$(element).qtip({
		content: '<h3>Vilkår</h3><p>Konkurransen arrangeres av Plan Norge og er rettet mot organisasjonens faddere. Alle personer over 18 år som bor i Norge kan delta - unntatt ansatte og nærmeste familie til personer som jobber i Plan Norge.</p><p>Vinneren får reise, opphold og kost dekket til to personer. Programmet for reisen legges opp av Plan Norge. Alle som reiser må underskrive Plans retningslinjer for barns beskyttelse og følge Plans besøksguide for det aktuelle landet. Ønsker man å ta med flere fra familien kan dette ordnes på egen regning.</p><p>Vinneren kåres 20.januar, og reisen vil gjennomføres i løpet av 2010. Premien kan ikke byttes mot kontanter. For å få reisen må man være betalende Plan-fadder per 20.januar og på reisetidspunktet.</p><p>Alle som registrer seg med riktige opplysninger på dette nettstedet, deltar i konkurransen.</p><p>Er opplysningene om deltakeren ugyldige, unøyaktige, ufullstendige eller mottatt for sent, ekskluderes deltakeren. Plan Norges avgjørelse er endelig. Plan Norge forbeholder seg retten til å kontakte hver enkelt deltaker via telefon eller e-post hvis informasjonen i registreringen er ufullstendig.</p><p>Alle rettigheter, herunder opphavsrett og copyright på alt materiell på dette nettstedet, tilhører Plan Norge, med mindre annet er oppgitt.</p>',
		position: 
		{
			corner: 
			{
				target: 'bottomMiddle',
				tooltip: 'topMiddle'
			}
		},
		show: 
		{
			when: false,
			ready: true
		},
		style: {
            border: {
               width: 2,
               radius: 3
            },
            padding: 5, 
            textAlign: 'left',
            width: 600,
            tip: true // Give it a speech bubble tip with automatic corner detection
         }
	});	
}

function trackConversion(data)
{
	var gender = '';
	switch(data.gender)
	{
		case 2:
			gender = 'Gutt';
			break;
		case 3:
			gender = 'Jente';
			break;
		default:
			gender = 'Plan velger';
			break;
	}
	var continent = '';
	switch(data.continent)
	{
		case 2:
			continent = 'Afrika';
			break;
		case 3:
			continent = 'Asia';
			break;
		case 4:
			continent = 'Latin-Amerika';
			break;
		default:
			continent = 'Der behovet er størst';
			break;
	}
	
	AddParam(846, data.zip);
	AddParam(2071, gender);
	AddParam(2072, continent);
	AddParam(2082, data.firstname);
	AddParam(2083, data.lastname);
	AddParam(2084, data.mail);
	CreateConversion('74295474-440b-436e-b937-2c15cf49fa93', 'NOK', '0');
}

function appendTrackingImages(element)
{
	element.append('<div class="hidden"><img src="http://ace-tag.advertising.com/action/type=954509912/bins=1/rich=0/mnum=1516/logs=0" height="1" width="1" border="0" /><img src="http://mediatotal.ads.visionweb.no/advertpro/servlet/track?aid=120" border="0" height="1" width="1" alt=""></div>');
}

var params = "";
function CreateConversion(id, currency, revenue) {
	if (!currency) currency = "NOK";
	if (!revenue) revenue = 0;
	if (!id) id = '';
	var rnd = "&rnd=" + Math.random();
	var imgSrcProtocol = "http" + (window.location.protocol == "https:" ? "s" : "");
	var img = new Image();
	img.src = imgSrcProtocol + "://43b3b166-5fef-4871-a7a1-95635e12f82d.statcamp.net/logging/conversion.ashx?id=" + id + "&revenue=" + revenue + "&currency=" + currency + params + rnd;
	params = "";
}

function AddParam(id, value)
{
  params += "&" + id + "=" + escape(value);
}

Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(input){var output="";var chr1,chr2,chr3,enc1,enc2,enc3,enc4;var i=0;input=Base64._utf8_encode(input);while(i<input.length){chr1=input.charCodeAt(i++);chr2=input.charCodeAt(i++);chr3=input.charCodeAt(i++);enc1=chr1>>2;enc2=((chr1&3)<<4)|(chr2>>4);enc3=((chr2&15)<<2)|(chr3>>6);enc4=chr3&63;if(isNaN(chr2)){enc3=enc4=64;}else if(isNaN(chr3)){enc4=64;}
output=output+
this._keyStr.charAt(enc1)+this._keyStr.charAt(enc2)+
this._keyStr.charAt(enc3)+this._keyStr.charAt(enc4);}
return output;},decode:function(input){var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(i<input.length){enc1=this._keyStr.indexOf(input.charAt(i++));enc2=this._keyStr.indexOf(input.charAt(i++));enc3=this._keyStr.indexOf(input.charAt(i++));enc4=this._keyStr.indexOf(input.charAt(i++));chr1=(enc1<<2)|(enc2>>4);chr2=((enc2&15)<<4)|(enc3>>2);chr3=((enc3&3)<<6)|enc4;output=output+String.fromCharCode(chr1);if(enc3!=64){output=output+String.fromCharCode(chr2);}
if(enc4!=64){output=output+String.fromCharCode(chr3);}}
output=Base64._utf8_decode(output);return output;},_utf8_encode:function(string){string=string.replace(/\r\n/g,"\n");var utftext="";for(var n=0;n<string.length;n++){var c=string.charCodeAt(n);if(c<128){utftext+=String.fromCharCode(c);}
else if((c>127)&&(c<2048)){utftext+=String.fromCharCode((c>>6)|192);utftext+=String.fromCharCode((c&63)|128);}
else{utftext+=String.fromCharCode((c>>12)|224);utftext+=String.fromCharCode(((c>>6)&63)|128);utftext+=String.fromCharCode((c&63)|128);}}
return utftext;},_utf8_decode:function(utftext){var string="";var i=0;var c=c1=c2=0;while(i<utftext.length){c=utftext.charCodeAt(i);if(c<128){string+=String.fromCharCode(c);i++;}
else if((c>191)&&(c<224)){c2=utftext.charCodeAt(i+1);string+=String.fromCharCode(((c&31)<<6)|(c2&63));i+=2;}
else{c2=utftext.charCodeAt(i+1);c3=utftext.charCodeAt(i+2);string+=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));i+=3;}}
return string;}};