var InviteLinkValid = true;
var EmailAddressValid = true;

function validateString(str, minlength)
{
	if(!str)
		return false;

	str = new String(str);
	if(str.replace(/ /g, '').length<minlength)
		return false;

	return true;
}

function validateEmail(str)
{
	var emailRegEx = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
	if(str.match(emailRegEx))
		return true;
	else
		return false;
}

function validateInvite(str)
{
	var inviteRegEx = /[a-zA-Z0-9\-\_]{3,50}/;
	if(str.match(inviteRegEx))
		return true;
	return false;
}
function validateRequest()
{
	var fname = gEl('firstName-input').value;
	var lname = gEl('lastName-input').value;
	var address = gEl('address-input').value;
	var city = gEl('city-input').value;
	var postal = gEl('postal-input').value;
	var countryId = gEl('countryId').value;
	
	var errors = new Array();
	var i=0;
	var div = gEl('errorDiv');
	
	if(!validateString(fname, 2))
		errors[i++]="Enter First Name";
	
	if(!validateString(lname, 2))
		errors[i++]="Enter Last Name";
	
	if(!validateString(address, 2))
		errors[i++]="Enter Address";
	
	if(!validateString(city, 2))
		errors[i++]="Enter City";

	
	if ((countryId == 230 && gEl('USStateId').value == '') || (countryId == 39 && gEl('CanadaStateId').value == '') || (countryId != 230 && countryId != 39 && gEl('NonUSState').value == ''))
		errors[i++]="Select State";
	
	if(!validateString(postal, 3))
		errors[i++]="Enter Phone";
	
	if (countryId == '' || countryId == 0)	
		errors[i++]="Select Country";
	
	
	var errorContent = 'Please correct the following:<ul>';
	for(i=0;i<errors.length;i++)
	{
		errorContent += ('<li>'+errors[i]+'</li>');
	}
	errorContent += '</ul>';
	div.innerHTML = errorContent;

	if(errors.length>0)
	{
		gEl("errorDivContainer").style.visibility = "visible";
		window.scroll(0,0);
		return false;
	}
	else
	{
		gEl("errorDivContainer").style.visibility = "hidden";
		return true;
	}
	
	
}
function validateAccount()
{
	var email = gEl('email-input').value;
	var password = gEl('password-input').value;
	var securityQuestionId = document.getElementById('securityQuestionId').value;
	var answer = document.getElementById('answer-input').value;
	var zip = document.getElementById('postal-input').value;
	var countryId = document.getElementById('countryId').value;
	
	var ethnicityId = (gEl('ethnicityId')) ? gEl('ethnicityId').value : 1;
	var maritalId = gEl('maritalId').value;
	var incomeId = gEl('incomeId').value;
	var genderId = (gEl('genderId')) ? gEl('genderId').value : 1;
	var homeId = gEl('homeId').value;
	
	var alcoholId = gEl('alcoholId').value;
	var smokerId = gEl('smokerId').value;
	
	var errors = new Array();
	var i=0;

	if(!validateString(email, 1))
		errors[i++]="Enter Email";
	else if(!validateEmail(email))
		errors[i++] = "Enter a valid Email";
	
	if(!validateString(password, 4))
		errors[i++]='Enter Password';
	
	
	if(!validateString(securityQuestionId, 1))
		errors[i++]='Select Security Question';
	if(!validateString(answer, 3))
		errors[i++]='Enter Answer';
	if(!validateString(zip, 3))
		errors[i++]='Enter zip/postal code';
	if(!validateString(countryId, 1))
		errors[i++]='Select Country';
	
	if ((countryId == 230 && gEl('USStateId').value == '') || (countryId == 39 && gEl('CanadaStateId').value == '') || (countryId != 230 && countryId != 39 && gEl('NonUSState').value == ''))
		errors[i++]="Select State";
	
	
	if(!validateString(ethnicityId, 1))
		errors[i++]='Select Ethnicity';
	if(!validateString(maritalId, 1))
		errors[i++]='Select Marital Status';
	if(!validateString(incomeId, 1))
		errors[i++]='Select Income';
	if(!genderId)
		errors[i++]='Select Gender';
	if(!homeId)
		errors[i++]='Select Homeowner';
	if(!alcoholId)
		errors[i++]='Select Alcohol';
	if(!smokerId)
		errors[i++]='Select Tobacco';
	if (gEl('monthId') && gEl('dayId') && gEl('yearId'))
	{
		var month = document.getElementById('monthId').value;
		var year = document.getElementById('yearId').value; 
		var day = document.getElementById('dayId').value;
		if(!validateString(day, 1) && !validateString(month, 1) && !validateString(year, 1))
			errors[i++]='Select Birthday';
		else if (!validateDateN(month + '/' + day + '/' + year))
			errors[i++]='Select correct Birthday';
	}
		
	var div = gEl('errorDiv');
	var errorContent = 'Please correct the following:<ul>';
	for(i=0;i<errors.length;i++)
		errorContent += ('<li>'+errors[i]+'</li>');
	errorContent += '</ul>';
	div.innerHTML = errorContent;

	if(errors.length>0)
	{
		gEl("errorDivContainer").style.visibility = "visible";
		window.scroll(0,0);
		return false;
	}
	else
	{
		gEl("errorDivContainer").style.visibility = "hidden";
		return true;
	}
}


function validateForm(formId)
{
	var email = gEl('email').value;
	var emailRetype = gEl('emailRetype').value;
	var password = gEl('registerPassword').value;
	var passwordRetype = gEl('registerPasswordRetype').value;
	var securityQuestion = gEl('securityQuestion').value;
	var securityAnswer = gEl('securityAnswer').value;
	var securityAnswerRetype = gEl('answerRetype').value;
	
	var FirstName = gEl('FirstName').value;
	var LastName = gEl('LastName').value;
	
	var zip = gEl('zip').value;
	var country = gEl('countrySelect').value;
	var month, year, day, agree;
	
	month = gEl('month').value;
	year = gEl('year').value; 
	day = gEl('day').value;
	
	var ethnicity = gEl('Ethnicity').value;
	var maritalStatus = gEl('MaritalStatus').value;
	var income = gEl('IncomeRange').value;
	var gender = gEl('Gender').value;
	var homeOwner = gEl('OwnHome').value;
	var alcohol = gEl('Alcohol').value;
	var smoker = gEl('Smoker').value;

	var errors = new Array();
	var i=0;

	if(!validateString(email, 1))
	{
		errors[i]="Enter Email";
		i++;
	}
	else if(!validateEmail(email))
	{
		errors[i] = "Enter a valid Email";
		i++;
	}
	else if (!EmailAddressValid)
	{
		errors[i] = "Enter a valid Email";
		i++;
	}

	if (!InviteLinkValid)
	{
		errors[i] = "Invalid Invite Link";
		i++;
	}

	if(email!=emailRetype)
	{
		errors[i]='The Email you entered do not match';
		i++;
	}
	if(!validateString(password, 4))
	{
		errors[i]='Enter Password';
		i++;
	}
	
	if(password!=passwordRetype)
	{
		errors[i]='The passwords you entered do not match';
		i++;
	}
	
	if(!validateString(securityQuestion, 1))
	{
		errors[i]='Select Security Question';
		i++;
	}

	if(!validateString(securityAnswer, 3))
	{
		errors[i]='Enter Answer';
		i++;
	}
	if(securityAnswer!=securityAnswerRetype)
	{
		errors[i]='The Answers you entered do not match';
		i++;
	}
	
	if (!validateString(FirstName, 1))
	{
		errors[i]='Enter First Name';
		i++;
	}
	if (!validateString(LastName, 1))
	{
		errors[i]='Enter Last Name';
		i++;
	}
	
	if(!validateString(zip, 3))
	{
		errors[i]='Enter zip/postal code';
		i++;
	}

	if(!validateString(country, 1))
	{
		errors[i]='Select Country';
		i++;
	}

	if(!validateString(day, 1) && !validateString(month, 1) && !validateString(year, 1))
	{
		errors[i]='Select Birthday';
		i++;
	}

	if(!validateString(ethnicity, 1))
	{
		errors[i]='Select Ethnicity';
		i++;
	}

	if(!validateString(maritalStatus, 1))
	{
		errors[i]='Select Marital Status';
		i++;
	}

	if(!validateString(income, 1))
	{
		errors[i]='Select Income';
		i++;
	}

	if(!validateString(gender,1))
	{
		errors[i]='Select Gender';
		i++;
	}

	if(!validateString(homeOwner, 1))
	{
		errors[i]='Select Homeowner';
		i++;
	}

	if(!validateString(alcohol, 1))
	{
		errors[i]='Select Alcohol';
		i++;
	}

	if(!validateString(smoker,1))
	{
		errors[i]='Select Tobacco';
		i++;
	}

	
	var div = gEl('errorDiv');
	var errorContent = 'Please correct the following:<ul>';
	for(i=0;i<errors.length;i++)
	{
		errorContent += ('<li>'+errors[i]+'</li>');
	}
	errorContent += '</ul>';
	div.innerHTML = errorContent;

	if(errors.length>0)
	{
		gEl("errorDivContainer").style.visibility = "visible";
		window.scroll(0,0);
		return false;
	}
	else
	{
		gEl("errorDivContainer").style.visibility = "hidden";
		return true;
	}
}


var re_dt = /^(\d{1,2})\/(\d{1,2})\/(\d{2,4})$/;
function validateDateN(s_date)
{
	// check format
	if (!re_dt.test(s_date))
		return false;

	// check allowed ranges	
	if (RegExp.$1 > 12 || RegExp.$2 > 31 || RegExp.$3 < 1900 )
		return false;

	// check number of day in month
	var dt_test = new Date(RegExp.$3, Number(RegExp.$1-1), RegExp.$2);

	if (dt_test.getMonth() != Number(RegExp.$1-1))
		return false;

	return true;
}

function stateSet(countryId)
{
	if (gEl('state-edit'))
		setField('state');
		
	gEl('NonUSState').style.display = (countryId != 230 && countryId != 39) ? 'block' : 'none';
	gEl('USStateId').style.display = (countryId == 230) ? 'block' : 'none';
	gEl('CanadaStateId').style.display = (countryId == 39) ? 'block' : 'none';
}