/**********************************************************
	Creating HTML5 Elements for older browsers.
	For discussion and comments, see: http://remysharp.com/2009/01/07/html5-enabling-script/
*/
(function(){if(!/*@cc_on!@*/0)return;var e = "abbr,article,aside,audio,bb,canvas,datagrid,datalist,details,dialog,eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,output,progress,section,time,video".split(',');for(var i=0;i<e.length;i++){document.createElement(e[i])}})()

/**********************************************************
	Default
*/

function copyrightYear( startYear )
{
	d = new Date();

	if ( startYear != d.getFullYear() )
		return startYear + " - " + d.getFullYear();
	else
		return startYear;
}




function urlencode(str){
	// http://kevin.vanzonneveld.net
	// +   original by: Philip Peterson
	// +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +      input by: AJ
	// +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +   improved by: Brett Zamir (http://brett-zamir.me)
	// +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +      input by: travc
	// +      input by: Brett Zamir (http://brett-zamir.me)
	// +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +   improved by: Lars Fischer
	// %          note 1: info on what encoding functions to use from: http://xkr.us/articles/javascript/encode-compare/
	// *     example 1: urlencode('Kevin van Zonneveld!');
	// *     returns 1: 'Kevin+van+Zonneveld%21'
	// *     example 2: urlencode('http://kevin.vanzonneveld.net/');
	// *     returns 2: 'http%3A%2F%2Fkevin.vanzonneveld.net%2F'
	// *     example 3: urlencode('http://www.google.nl/search?q=php.js&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a');
	// *     returns 3: 'http%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3Dphp.js%26ie%3Dutf-8%26oe%3Dutf-8%26aq%3Dt%26rls%3Dcom.ubuntu%3Aen-US%3Aunofficial%26client%3Dfirefox-a'

	var histogram = {}, unicodeStr='', hexEscStr='';
	var ret = (str+'').toString();

	var replacer = function(search, replace, str){
		var tmp_arr = [];
		tmp_arr = str.split(search);
		return tmp_arr.join(replace);
	};

	// The histogram is identical to the one in urldecode.
	histogram["'"]   = '%27';
	histogram['(']   = '%28';
	histogram[')']   = '%29';
	histogram['*']   = '%2A';
	histogram['~']   = '%7E';
	histogram['!']   = '%21';
	histogram['%20'] = '+';
	histogram['\u00DC'] = '%DC';
	histogram['\u00FC'] = '%FC';
	histogram['\u00C4'] = '%D4';
	histogram['\u00E4'] = '%E4';
	histogram['\u00D6'] = '%D6';
	histogram['\u00F6'] = '%F6';
	histogram['\u00DF'] = '%DF';
	histogram['\u20AC'] = '%80';
	histogram['\u0081'] = '%81';
	histogram['\u201A'] = '%82';
	histogram['\u0192'] = '%83';
	histogram['\u201E'] = '%84';
	histogram['\u2026'] = '%85';
	histogram['\u2020'] = '%86';
	histogram['\u2021'] = '%87';
	histogram['\u02C6'] = '%88';
	histogram['\u2030'] = '%89';
	histogram['\u0160'] = '%8A';
	histogram['\u2039'] = '%8B';
	histogram['\u0152'] = '%8C';
	histogram['\u008D'] = '%8D';
	histogram['\u017D'] = '%8E';
	histogram['\u008F'] = '%8F';
	histogram['\u0090'] = '%90';
	histogram['\u2018'] = '%91';
	histogram['\u2019'] = '%92';
	histogram['\u201C'] = '%93';
	histogram['\u201D'] = '%94';
	histogram['\u2022'] = '%95';
	histogram['\u2013'] = '%96';
	histogram['\u2014'] = '%97';
	histogram['\u02DC'] = '%98';
	histogram['\u2122'] = '%99';
	histogram['\u0161'] = '%9A';
	histogram['\u203A'] = '%9B';
	histogram['\u0153'] = '%9C';
	histogram['\u009D'] = '%9D';
	histogram['\u017E'] = '%9E';
	histogram['\u0178'] = '%9F';

	// Begin with encodeURIComponent, which most resembles PHP's encoding functions
	ret = encodeURIComponent(ret);

	for(unicodeStr in histogram){
		hexEscStr = histogram[unicodeStr];
		ret = replacer(unicodeStr, hexEscStr, ret); // Custom replace. No regexing
	}

	// Uppercase for full PHP compatibility
	return ret.replace(/(\%([a-z0-9]{2}))/g, function(full, m1, m2){
		return "%"+m2.toUpperCase();
	});
}


function checkForm(f, fromEmailForm){
	
	fromEmailForm = typeof(fromEmailForm) != 'undefined' ? fromEmailForm : false;
	
	if (fromEmailForm == 1) {
		if( !checkElement(f.email, fromEmailForm) ) {
			return false;
		}	
		return true;
	}
	
	else {
		var fdEmail = checkElement(f.elements['fd[Email]']),
			fdCaptcha = checkCaptcha(f);
			
		if( fdEmail && fdCaptcha ) { return true; }
		
		return false;
	}
}


function checkElement(el, fromEmailForm) {
	
	fromEmailForm = typeof(fromEmailForm) != 'undefined' ? fromEmailForm : 0;
		
	if(el.value == '') {		
		var requiredText = (fromEmailForm == 1) ? "Please enter email address" : "required";
		$(el).addClass("req").next(".requiredField").html(requiredText).fadeIn('fast');		
		return false;
	}
	else {
		if ($(el).attr("id") == 'Email') {
			if (fromEmailForm == 1) {
				if (!validEmail(el, fromEmailForm) || !uniqueEmail(el) || !emailAttempts(el)) {
					return false;
				}
			}
			else {
				if (!validEmail(el)) {
					return false;
				}
			}
		}
		
		$(el).removeClass("req").next(".requiredField").fadeOut('fast');
	}
	return true;
}


function validEmail(email, fromEmailForm) {
	
	fromEmailForm = typeof(fromEmailForm) != 'undefined' ? fromEmailForm : 0;
	
	var validEmail = true;
	
	if(email != ''){
		if((email.value.length < 3) || (email.value.length > 50) ||
			(email.value.charAt(0) == '@') || (email.value.charAt(email.value.length-1) == '@') ||
			(email.value.charAt(0) == '.') || (email.value.charAt(email.value.length-1) == '.') ||
			(email.value.indexOf('.') == -1) || (email.value.indexOf('@') == -1) ||
			(email.value.indexOf('@') != email.value.lastIndexOf('@')) ||
			(email.value.indexOf(' ') > 0) || (email.value.indexOf('?') > 0) || (email.value.indexOf('..') > 0)
		){
			validEmail = false;
		}
	}
	if(!validEmail){
		var requiredText = (fromEmailForm == 1) ? "Please enter a valid email address" : "invalid email";
		$(email).addClass("req").next(".requiredField").html(requiredText).fadeIn('fast');		
		return false;
	}
	
	return true;
}


function uniqueEmail(email) {
	
	var res = false;		
	$.ajax({
	   type: 'GET',
	   url: '/unique-email.php',
	   data: 'val=' + email.value,
	   async: false,
	   success: function(msg){
	     res = msg;
	   }
	});
	
	if (res == 0) {
		$(email).addClass("req").next(".requiredField").html('This email already exists').fadeIn('fast');		
		return false;
	}			
	return true;
}


function emailAttempts(email) {
	var res = false;		
	$.ajax({
	   type: 'GET',
	   url: '/email-attempts.php',
	   async: false,
	   success: function(msg){
	     res = msg;
	   }
	});
	
	if (res == 0) {
		$(email).addClass("req").next(".requiredField").html('Only 3 submissions per minute are allowed').fadeIn('fast');		
		return false;
	}			
	return true;
}


function checkCaptcha(f)
{
	var captcha = f.recaptcha_response_field;
	if(captcha.value == '')
	{
		$(captcha).addClass("req");
		$(".requiredCaptcha").html('required').fadeIn('fast');
		return false;
	}
	else {
		 
			$.ajax({
				type: 'GET',
				url: '/validatecaptcha.php',
				data: 'recaptcha_response_field=' + urlencode(captcha.value) + "&recaptcha_challenge_field=" + urlencode(f.recaptcha_challenge_field.value),
				async: false,
				success: function(msg){
					res = msg;
				}
			});
			
			if (res == 1) {
				$(captcha).removeClass("req");
				$(".requiredCaptcha").fadeOut('fast');
				return true;
			}
			else {
				Recaptcha.reload ();
				$(captcha).addClass("req");
				$(".requiredCaptcha").html("invalid code").fadeIn('fast');
				return false;
			}
	}
}




$(function(){
	var emailInput = $("div.fieldEnterEmail input");
	
	if ($(emailInput).val() != "") {
		$(emailInput).parent().addClass("onFocus");
	}	
	$(emailInput).focus(function(){
		$(this).parent().addClass("onFocus")
	});
	$(emailInput).blur(function(){
		if( $(this).val() == "" )
			$(this).parent().removeClass("onFocus")
	});
	
	$('.messages').delay(1500).fadeOut('slow');
});

/*
	End
**********************************************************/
