// disable submite form by pressing enter
$(document).keypress(function (evt) {
    if (evt.keyCode == 13) {
    $(':submit').attr('disabled', 'disbled');
    }
}); 

function isValidEmail(email) {
	var pattern = new RegExp(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/i);
	return pattern.test(email);
}

function submitContestForm() {
	
	var fromPopup = $('#fromPopup').val();
	var refererId = $('#refererId').val();
	var name = 	$.trim($('#name').val());
	var email = $.trim($('#email').val());
	var friendName1 = $.trim($('#friendName1').val());
	var friendName2 = $.trim($('#friendName2').val());
	var friendName3 = $.trim($('#friendName3').val());
	var friendName4 = $.trim($('#friendName4').val());
	var friendName5 = $.trim($('#friendName5').val());
	var friendEmail1 = $.trim($('#friendEmail1').val());
	var friendEmail2 = $.trim($('#friendEmail2').val());
	var friendEmail3 = $.trim($('#friendEmail3').val());
	var friendEmail4 = $.trim($('#friendEmail4').val());
	var friendEmail5 = $.trim($('#friendEmail5').val());
	var message = $.trim($('#message').val());
	var firstName = $.trim($('#firstName').val());
	var lastName = $.trim($('#lastName').val());
	var age = $.trim($('#age').val());
	var phone = $.trim($('#phone').val());
	var city = $.trim($('#city').val());
	var zip = $.trim($('#zip').val());
	var contactEmail = $.trim($('#contactEmail').val());
	var address = $.trim($('#address').val());
	var hasError = false;
	var data;
	
	/********************** form validate *****************************/
	// name
	if (name == "") {
		$('#nameLabel').addClass("error");
		$('#name').addClass("redBorder");
		hasError = true;
	} else {
		$('#nameLabel').removeClass('error');
		$('#name').removeClass("redBorder");
	}
	
	// email
	if (email == "" || !isValidEmail(email)) {
		$('#emailLabel').addClass("error");
		$('#email').addClass("redBorder");
		hasError = true;
	} else {
		$('#emailLabel').removeClass('error');
		$('#email').removeClass("redBorder");
	}	
		
	if ( ((friendName1 == "" && friendEmail1 != "") || (friendName1 != "" && friendEmail1 == "")) ||
		 ((friendName2 == "" && friendEmail2 != "") || (friendName2 != "" && friendEmail2 == "")) ||
		 ((friendName3 == "" && friendEmail3 != "") || (friendName3 != "" && friendEmail3 == "")) ||
		 ((friendName4 == "" && friendEmail4 != "") || (friendName4 != "" && friendEmail4 == "")) ||
		 ((friendName5 == "" && friendEmail5 != "") || (friendName5 != "" && friendEmail5 == "")) ) {
		$('#friendNameLabel').addClass("error");
		$('#friendEmailLabel').addClass("error");
		
		$('#friendName1').addClass("redBorder");
		$('#friendName2').addClass("redBorder");
		$('#friendName3').addClass("redBorder");
		$('#friendName4').addClass("redBorder");
		$('#friendName5').addClass("redBorder");
		
		$('#friendEmail1').addClass("redBorder");	
		$('#friendEmail2').addClass("redBorder");	
		$('#friendEmail3').addClass("redBorder");	
		$('#friendEmail4').addClass("redBorder");	
		$('#friendEmail5').addClass("redBorder");	
	
		hasError = true;
	} else {
		// friends name
		if (friendName1=="" && friendName2 =="" && friendName3 =="" && friendName4 =="" && friendName5 =="") {
			$('#friendNameLabel').addClass("error");
			$('#friendName1').addClass("redBorder");			
			hasError = true;
		} else {
			$('#friendNameLabel').removeClass('error');
			$('#friendName1').removeClass("redBorder");	
		}
		
		// friend email
		if (friendEmail1=="" && friendEmail2 =="" && friendEmail3 =="" && friendEmail4 =="" && friendEmail5 =="") {
			$('#friendEmailLabel').addClass("error");
			$('#friendEmail1').addClass("redBorder");	
			hasError = true;
		} else {
			$('#friendEmailLabel').removeClass("error");	
			$('#friendEmail1').removeClass("redBorder");	
		}
		
		if (!hasError) {
			$('#friendEmailLabel').removeClass("error");
			$('#friendEmail1').removeClass("redBorder");
		}
		
		if ((friendEmail1 != "" && !isValidEmail(friendEmail1)) || friendEmail1 == email || friendEmail1 == contactEmail) {
			$('#friendEmailLabel').addClass("error");
			$('#friendEmail1').addClass("redBorder");	
			hasError = true;
		} 
		
		if ((friendEmail2 != "" && !isValidEmail(friendEmail2)) || friendEmail2 == email || friendEmail2 == contactEmail) {
			$('#friendEmailLabel').addClass("error");
			$('#friendEmail2').addClass("redBorder");	
			hasError = true;
		} else {
			$('#friendEmail2').removeClass("redBorder");	
		}	
		
		if ((friendEmail3 != "" && !isValidEmail(friendEmail3)) || friendEmail3 == email || friendEmail3 == contactEmail) {
			$('#friendEmailLabel').addClass("error");
			$('#friendEmail3').addClass("redBorder");	
			hasError = true;
		} else {
			$('#friendEmail3').removeClass("redBorder");	
		}		
		
		if ((friendEmail4 != "" && !isValidEmail(friendEmail4)) || friendEmail4 == email || friendEmail4 == contactEmail) {
			$('#friendEmailLabel').addClass("error");
			$('#friendEmail4').addClass("redBorder");	
			hasError = true;
		} else {
			$('#friendEmail4').removeClass("redBorder");	
		}		
		
		if ((friendEmail5 != "" && !isValidEmail(friendEmail5)) || friendEmail5 == email || friendEmail5 == contactEmail) {
			$('#friendEmailLabel').addClass("error");
			$('#friendEmail5').addClass("redBorder");	
			hasError = true;
		} else {			
			$('#friendEmail5').removeClass("redBorder");	
		}		
	}
			
	
	// first name
	if (firstName == "") {
		$('#firstNameLabel').addClass("error");
		hasError = true;
	} else {
		$('#firstNameLabel').removeClass('error');
	}	
	
	// last name
	if (lastName == "") {
		$('#lastNameLabel').addClass("error");
		hasError = true;
	} else {
		$('#lastNameLabel').removeClass('error');
	}		
	
	// age
	var numberRegex = /^[+-]?\d+(\.\d+)?([eE][+-]?\d+)?$/;
	if (age  == "" || !numberRegex.test(age)) {
		$('#ageLabel').addClass("error");
		hasError = true;
	} else {
		$('#ageLabel').removeClass('error');
	}		
	
	// phone
	if (phone  == "") {
		$('#phoneLabel').addClass("error");
		hasError = true;
	} else {
		$('#phoneLabel').removeClass('error');
	}	
	
	// contactEmail
	if (contactEmail == "" || !isValidEmail(contactEmail)) {
		$('#contactEmailLabel').addClass("error");
		hasError = true;
	} else {
		$('#contactEmailLabel').removeClass('error');
	}

	// address
	if (address  == "") {
		$('#addressLabel').addClass("error");
		hasError = true;
	} else {
		$('#addressLabel').removeClass('error');
	}	
	
	// city
	if (city == "") {
		$('#cityLabel').addClass("error");
		$('#city').addClass("redBorder");
		hasError = true;
	} else {
		$('#cityLabel').removeClass('error');
		$('#city').removeClass("redBorder");
	}

	// zip
	if (name == "") {
		$('#zipLabel').addClass("error");
		$('#zip').addClass("redBorder");
		hasError = true;
	} else {
		$('#zipLabel').removeClass('error');
		$('#zip').removeClass("redBorder");
	}
	
		
	
	/********************** form submit *****************************/
	// error handler
	if (hasError) {
		$("#contestError").show();
		location.replace("#top");
	} else {
		$("#contestError").hide();
		location.replace("#top");
		openDialog();
		
		$('#loading').show();
		$('#thankyouMessage').hide();
		$('#errorMessage').hide();
		$("#afterSubmitMessage").fadeIn(200);
		$('input[type=submit]').attr('disabled', 'disabled');
		 
		// append data
		 var data = 'fromPopup=' + fromPopup + 
		 	'&refererId=' + refererId +
			'&name=' + name +
		 	'&email=' + email +
		 	'&firstName=' + firstName +
		 	'&lastName=' + lastName +
		 	'&age=' + age +
		 	'&phone=' + phone +
		 	'&contactEmail=' + contactEmail +
		 	'&address=' + address +
		 	'&city=' + city +
		 	'&zip=' + zip +
		 	'&message=' + message;
		 
		 if (friendEmail1 != "") {
			 data += '&friendName1=' + friendName1 + '&friendEmail1=' + friendEmail1;
		 }
		 if (friendEmail2 != "") {
			 data += '&friendName2=' + friendName2 + '&friendEmail2=' + friendEmail2;
		 }
		 if (friendEmail3 != "") {
			 data += '&friendName3=' + friendName3 + '&friendEmail3=' + friendEmail3;
		 }
		 if (friendEmail4 != "") {
			 data += '&friendName4=' + friendName4 + '&friendEmail4=' + friendEmail4;
		 }
		 if (friendEmail5 != "") {
			 data += '&friendName5=' + friendName5 + '&friendEmail5=' + friendEmail5;
		 }
		 
		 if($("#noNewsletter:checked").val() == 1) {
			data += '&noNewsletter=1'; 
		 } else {
			 data += '&noNewsletter=0';
		 }		 

		 // send data - start the ajax
		 $.ajax({  
			 type: "POST",
			 url: "/zone1/processContest.php",
			 dataType: "xml",
			 data : data,
			 
			 /********************** result *****************************/			 
			 success: function(xml){
			 	$('#loading').hide();
			 	
			 	$pass = $(xml).find("pass").text();
			 	if ($pass == 1) {
			 		$('#thankyouMessage').show();
			 		clearForm();
			 	} else {
			 		var $strError = '';
			 		var $strDup = '';
			 		var $strOutput = '';
			 		
			 		$('#thankyouMessage').hide();
			 		
			 		$(xml).find("error").each(function(){
			 			$strError += $(this).text() + '<br />';
			 		});
			 		
			 		$(xml).find("duplicate").each(function(){
			 			$strDup += $(this).text() + '<br />';
			 		});
			 		
			 		if ($strError != '') {
			 			$strOutput += 'Invalid Email Address(es):<br />' + $strError + '<br /><br />';
			 		}
			 		
			 		if ($strDup != '') {
			 			$strOutput += 'Duplicate Email Address(es):<br />' + $strDup;
			 		}
			 		
			 		if ($strOutput != '') {
			 			$strOutput = '<b>Input error: </b><br />' + $strOutput;
			 		}
			 		
			 		$('#errorMessage').html($strOutput);			 		
			 		$('#errorMessage').show();
			 	}
			 	
			 	$('input[type=submit]').removeAttr('disabled');
		 	 },
		 	 error: function(){
		 	 		alert("Error occured during submission...");
		 	 		$('input[type=submit]').removeAttr('disabled');
		 	 	}		 	 
		 });
		 
	}
	
	return false;
}

function clearForm() {
	$('#name').val('');
	$('#email').val('');
	$('#friendName1').val('');
	$('#friendName2').val('');
	$('#friendName3').val('');
	$('#friendName4').val('');
	$('#friendName5').val('');
	$('#friendEmail1').val('');
	$('#friendEmail2').val('');
	$('#friendEmail3').val('');
	$('#friendEmail4').val('');
	$('#friendEmail5').val('');
}