//CONSTANTS

if (typeof(isIE6)=="undefined") var isIE6 = false;


//REGEX DEFINITIONS
var regEmail = new RegExp(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/);
var regNumeric = new RegExp(/^[0-9 _]*$/);
var regSpace = new RegExp(/^[\s]*$/);
var regDate = new RegExp(/^\d{2}\/\d{2}\/\d{4}$/);

//RUN ON PAGE LOAD FUNCTIONS
jQuery(document).ready(function($){	
	//BUTTONS HOVER
	buttonHover();
	//CUFON
	/*Cufon.replace(".grey h1, .grey h2, .post h1", {fontFamily:"Rockwell"});
	Cufon.replace(".loginHeader,label", {fontFamily:"DIN"});*/
	Cufon.replace('.title,.toptext,h1,h2,.entry big', {fontFamily:'HelveticaNeue'} );
	//IFIXPNG
	loadedCallbackFunction();
	//INPUTS DEFAULT STATE FOCUS
	inputs();
	$('#sponsors').cycle({ fx:'scrollLeft', containerResize:0, fit:1, width:244, height:200 });
	
	$('.expandable h2 a').click(function() {
		if ($(this).parent().next().get(0).style.display == 'none') {
			$(this).find('img').attr('src', templatepath +'images/ico_triangle_down.png');
			$(this).parent().next().slideDown();
		} else {
			$(this).find('img').attr('src', templatepath +'images/ico_triangle_right.png');
			$(this).parent().next().slideUp();
		}
		return false;
	});

});

//ALL BUTTONS HOVER ESTATE
function buttonHover()
{
	$("div[id^='btn']").hover(function(){
		$(this).addClass("hover");							  
	}, function(){
		$(this).removeClass("hover");											
	});

	$("input[id^='btn']").hover(function(){
		$(this).addClass("hover");							  
	}, function(){
		$(this).removeClass("hover");											
	});
	//SPECIAL
	$("li div[class^='btn']").hover(function(){
		$(this).parent().parent().addClass("hover");									 
	}, function(){
		$(this).parent().parent().removeClass("hover");									 
	});
}

//INPUTS DEFAULT VALUE
function inputs()
{
	$("form input[type='text']").each(function(){
		$(this).focus(function(){
			var dvalue = $(this)[0].defaultValue;
			if ($(this).val() == dvalue)
			$(this).val("");
		});
		
		$(this).blur(function(){
			var dvalue = $(this)[0].defaultValue;
			if ($(this).val() == "")
			$(this).val(dvalue);
		});
	});	
	$("form textarea").each(function(){
		$(this).focus(function(){
			var dvalue = $(this)[0].defaultValue;
			if ($(this).val() == dvalue)
			$(this).val("");
		});
		
		$(this).blur(function(){
			var dvalue = $(this)[0].defaultValue;
			if ($(this).val() == "")
			$(this).val(dvalue);
		});
	});	

}


//loadedCallbackFunction() - FUNCTION TO FIX PNG IN IE6
function loadedCallbackFunction(){	
	if (document.all && /MSIE (5\.5|6)/.test(navigator.userAgent) && document.styleSheets && document.styleSheets[0] && document.styleSheets[0].addRule)
	{
		document.styleSheets[0].addRule('*', 'behavior: url(js/iepngfix.htc)');
	}
}


//FORM VALIDATION ERROR FUNCTION
function pageError(fieldName, errorText, jqForm){
	$("#errorLog").html(errorText); 
	$("#errorLog").css('display', 'block');
	$(eval('jqForm[0].' + fieldName)).focus();
}
//FORM VALIDATION FUNCTION
function validateFormFunction(formData, jqForm, options){
	var returnVar = true;
	//RESET ERROR
	$("#errorLog").css('display', 'none');
	//RESET COUNTER TO 0
	i = 0;
	//RUN VALIDATION FUNCTION
	$.each(formData, function(){
		if(this.value != 'submit'){
			
			var thisLabel = ($("#" + this.name).parent().find("h3").html() == null) ? "Comments" : $("#" + this.name).parent().find("h3").html();
			var originalValue = document.getElementById(this.name).defaultValue;
			var isMandatory = $("#" + this.name).hasClass("mandatory");
			
			if((this.value == '' || this.value == originalValue) && isMandatory){
				pageError(this.name, 'Please fill in the <b>' + thisLabel + '</b> field.', jqForm);
				returnVar = false;
				return false;
			} else if(regSpace.test(this.value)){
				pageError(this.name, 'Please check the <b>' + thisLabel + '</b> field begins with a letter or a number.', jqForm);
				returnVar = false;
				return false;
			} else if(this.name.toLowerCase().indexOf('email') > -1 && !regEmail.test(this.value)){
				pageError(this.name, 'Please enter a valid <b>' + thisLabel + '</b>.', jqForm);
				returnVar = false;
				return false;
			} else if((this.name.toLowerCase().indexOf('phone') > -1 || this.name.toLowerCase().indexOf('mobile') > -1) && !regNumeric.test(this.value)){
				pageError(this.name, 'Please remove any non numeric characters from the <b>' + thisLabel + '</b> field.', jqForm);
				returnVar = false;
				return false;
			} else if(this.name.toLowerCase().indexOf('dob') > -1 && !regDate.test(this.value)){
				pageError(this.name, 'Please ensure the <b>' + thisLabel + '</b> field uses DD/MM/YYYY formatting.', jqForm);
				returnVar = false;
				return false;
			}
			
			//INCREASE COUNTER
			i++;
		}
	});
	if(returnVar == false){
		return false;
	}
}
//FORM SUCCESS FUNCTION
function successFormFunction(data)
{
	$("#errorLog").parent().html(data); 
}
//FORM SUBMISSION FUNCTION
function submitFormFunction(formID, val, succ){
	//FORM VARIABLE MODIFICATION
	formID = formID + 'Form';
	//FORM SUBMISSION
	var options = { 
		beforeSubmit: val,
		success: succ,
		formID: formID
	};
	//BIND FORM SUBMIT
	$('#' + formID).ajaxForm(options);
}

//FREE QUOTE FORM VALIDATION
function validateQuoteFormFunction(formData, jqForm, options){
	var returnVar = true;
	//RESET ERROR
	$("#errorLog").css('display', 'none');
	//RESET COUNTER TO 0
	i = 0;
	//RUN VALIDATION FUNCTION
	$.each(formData, function(){
		if(this.value != 'submit'){
			
			var thisLabel = ($("#" + this.name).parent().find("h3").html() == null) ? "Comments" : $("#" + this.name).parent().find("h3").html();
			var originalValue = document.getElementById(this.name).defaultValue;
			var isMandatory = $("#" + this.name).hasClass("mandatory");
			
			if((this.value == '' || this.value == originalValue) && isMandatory){
				pageError(this.name, 'Please fill in the <b>' + thisLabel + '</b> field.', jqForm);
				returnVar = false;
				return false;
			} else if(regSpace.test(this.value)){
				pageError(this.name, 'Please check the <b>' + thisLabel + '</b> field begins with a letter or a number.', jqForm);
				returnVar = false;
				return false;
			} else if(this.name.toLowerCase().indexOf('email') > -1 && !regEmail.test(this.value)){
				pageError(this.name, 'Please enter a valid <b>' + thisLabel + '</b>.', jqForm);
				returnVar = false;
				return false;
			} else if((this.name.toLowerCase().indexOf('phone') > -1 || this.name.toLowerCase().indexOf('mobile') > -1) && !regNumeric.test(this.value)){
				pageError(this.name, 'Please remove any non numeric characters from the <b>' + thisLabel + '</b> field.', jqForm);
				returnVar = false;
				return false;
			} else if(this.name.toLowerCase().indexOf('dob') > -1 && !regDate.test(this.value)){
				pageError(this.name, 'Please ensure the <b>' + thisLabel + '</b> field uses DD/MM/YYYY formatting.', jqForm);
				returnVar = false;
				return false;
			}
			
			//INCREASE COUNTER
			i++;
		}
	});
	if(returnVar == false){
		return false;
	}
}

//CREATESEND
function validateSubscribe()
{
	//Form fields
	var email = $("#bhklyt-bhklyt").val();
	var errorNumber = 0;

	if(email == "Email Address")
	{
		$("#eEmail").css("display", "block").html("This field is mandatory"); 
		errorNumber++
	} 
	else 
	{ 
		if(!regEmail.test(email))
		{
	 		$("#eEmail").css("display", "block").html("Please enter a valid Email Address."); 
			errorNumber++
	 	} 
		else 
		{
	 		$("#eEmail").html("").css("display","none");
		}
	}
	
	if (errorNumber == 0)
	{
			//CREATESEND - INSERT SUBSCRIBER
			var str = $("form#subForm").serialize();
			var serialized = str + "&action=" + action;

			$.ajax({
				url: "js/createsend/proxy.php",
				type: "POST",
				data: serialized,
				dataType: "html",
				success: function(data,textStatus){
					// Server-side validation
					if (data.search(/invalid/i) != -1) 
					{
						$("#eEmail").html('The email address you supplied is invalid and needs to be fixed before you can subscribe to this list.').css("display","block");
					}
					else
					{
						//SHOW THANKS MESSAGE
						$("#subForm").hide();
						$("#widget_cm_ajax-3").append('<p style="padding:0px 20px 10px; color:#666">Thanks for subscribing.</p>');
					}
				}
				
			});
			//return false;
	}
	
}


