var errors = 0;

jQuery(document).ready(function(){
	enableTitle();
	jQuery('#ITEM_ATT643_0').attr('onChange','enableTitle()');
});

function enableTitle(){
	if(jQuery('#ITEM_ATT643_0').val()=='Other:')
		jQuery('#ITEM_ATT655_0').attr('disabled','');
	else
		jQuery('#ITEM_ATT655_0').attr('disabled','true');
}

function validateEmail(){
	// Validate Email
	var emailRegEx = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;
	
	if(!regExec(emailRegEx, jQuery('#ITEM_ATT642_0').val())) {
		jQuery('span#642Error').text('You must enter a valid e-mail address.');
		jQuery('#ITEM_ATT642_0').css('border','1px red solid');
		errors++;
	}
	else{
		jQuery('#ITEM_ATT642_0').css('border','1px #C8CACE solid');
		jQuery('span#642Error').text('');
	}
}

function validateTitle(){
	// Validate Title
	if(jQuery('#ITEM_ATT643_0').val() == 'Other:' && jQuery('#ITEM_ATT655_0').val() == '') {
		jQuery('span#655Error').text('You must enter your title.');
		jQuery('#ITEM_ATT655_0').css('border','1px red solid');
		errors++;
	}
	else{
		jQuery('#ITEM_ATT655_0').css('border','1px #C8CACE solid');
		jQuery('span#655Error').text('');
	}
}

function validateOthers() {
	// For each argument pair (Element ID, Element Name), validate.
	for(var i = 0; i < arguments.length; i += 2) {
		if(jQuery('input#ITEM_ATT' + arguments[i] + '_0').val() == '') {
			jQuery('span#' + arguments[i] + 'Error').text(arguments[i+1] + ' is a required field.');
			jQuery('input#ITEM_ATT' + arguments[i] + '_0').css('border','1px red solid');
			errors++;
		}
		else{
			jQuery('input#ITEM_ATT' + arguments[i] + '_0').css('border','1px solid #C8CACE');
			jQuery('span#' + arguments[i] + 'Error').text('');
		}
	}
}

function regExec(pattern, toMatch) {
	expression = new RegExp(pattern);
	var matchedPattern = expression.exec(toMatch);
	
	if (matchedPattern == null) {
		return false;
	} else {
		return true;
	}
}

function doPostcode(){
	jQuery('#ITEM_ATT647_0').val('123 Avenue Street');
}

function doDate(){
	if ( jQuery('#ITEM_ATT931_0').val() == "" ) {
		jQuery('span#931Error').text('You must enter a date.');
		jQuery('#ITEM_ATT931_0').css('border','1px red solid');
		errors++;
	}
	else{
		jQuery('#ITEM_ATT931_0').css('border','1px #C8CACE solid');
		jQuery('span#931Error').text('');
	}
}

function validateNewsletter(){
	errors = 0;
	validateEmail();
	validateTitle();
	validateOthers('644','First Name','645','Surname','646','Postcode','647','Address Line 1','649','City/Town');
	createAndActivate();
}

function validateBrochure(){
	errors = 0;
	validateEmail();
	validateTitle();
	doDate();
	validateOthers('776','Initials','645','Surname','646','Postcode','647','Address Line 1','649','City/Town');
	createAndActivate();
}
