$okmessage = "";

function showHideSection(id, firstrun)
{
	if (firstrun == 1) {
 		document.getElementById('hideshow').innerHTML = 'Hide/Show All';
	}
	
	var element = document.getElementById("section" + id);
	var hideshow = document.getElementById("hideshow" + id);
	
	if(element.className == 'level3')
	{
		element.className += " hidden";
		hideshow.innerHTML = 'Show';
	}
	else if(element.className == 'level3 expanded')
	{
		if (firstrun != 1) { // sections that are hardcoded to load as expanded wont be hidden when the page first loads; only when user click the button
			element.className = element.className.replace(" expanded", " hidden");
			hideshow.innerHTML = 'Show';
		} else {
			hideshow.innerHTML = 'Hide';
		}
	}
	else if(element.className == 'level3 hidden')
	{
		element.className = element.className.replace(" hidden", " expanded");
		hideshow.innerHTML = 'Hide';
	}
}


function expandall(begin, count)
{
	var firstelement = document.getElementById("section" + begin);
	
	if (firstelement.className == 'level3 expanded') { // hide all
		for(i=begin;i<=count;i++){
			var element = document.getElementById("section" + i);
			var hideshow = document.getElementById("hideshow" + i);
			
			if (element.className == 'level3')
			{
				element.className += " hidden";
				hideshow.innerHTML = 'Show';
			}
			else if (element.className == 'level3 expanded')
			{
				element.className = element.className.replace(" expanded", " hidden");
				hideshow.innerHTML = 'Show';
			}
		}
	} else { // expand all
		for(i=begin;i<=count;i++){
			var element = document.getElementById("section" + i);
			var hideshow = document.getElementById("hideshow" + i);
			
			if (element.className == 'level3')
			{
				element.className += " expanded";
				hideshow.innerHTML = 'Hide';
			}
			else if (element.className == 'level3 hidden')
			{
				element.className = element.className.replace(" hidden", " expanded");
				hideshow.innerHTML = 'Hide';
			}
		}
	}
}


function inputBoxStatus(status, element) {
	if (status == "error") {		
		element.className = "input inputbox inputerror";
	} else if (status == "ok") {
		element.className = "input inputbox inputok";
	} else {
		element.className = "input inputbox";
	}
	
}


function validateFirstName() {
	var fn = document.getElementById("FN");
	 
	if(fn.value.length < 2)
	{
		inputBoxStatus("error", fn);
		document.getElementById("firstnamestatus").parentNode.innerHTML = "<div id='firstnamestatus' class='statuserror'>Please enter your first name</div><div class='floatright'><span class='required'>*</span> Required fields</div>";
		return false;
	} else {
		inputBoxStatus("ok", fn);
		document.getElementById("firstnamestatus").parentNode.innerHTML = "<div id='firstnamestatus' class='statusok'>" + $okmessage+ "</div><div class='floatright'><span class='required'>*</span> Required fields</div>";
		return true;
	}
}


function validateLastName() {
	var ln = document.getElementById("LN");
	 
	if(ln.value.length < 2)
	{
		inputBoxStatus("error", ln);
		document.getElementById("lastnamestatus").parentNode.innerHTML = "<div id='lastnamestatus' class='statuserror'>Please enter your last name</div>";
		return false;
	} else {
		inputBoxStatus("ok", ln);
		document.getElementById("lastnamestatus").parentNode.innerHTML = "<div id='lastnamestatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	}
}                         
                          

function validateUserName(typing) {
	var un = document.getElementById("UN");
	                          
	if(un.value.length < 5)   
	{
		if (typing == "typing") {
			checkAvailability_user(typing);
		} else {
			checkAvailability_user();
		}
		return false;
	} else {
		if (typing == "typing") {
			checkAvailability_user(typing);
		} else {
			checkAvailability_user();
		}
		return true;
	}
}
                          

function validateSponsorUserName(typing) {
	var un = document.getElementById("UN");
	                          
	if(un.value.length < 5)   
	{
		if (typing == "typing") {
			checkAvailability_sponsor(typing);
		} else {
			checkAvailability_sponsor();
		}
		return false;
	} else {
		if (typing == "typing") {
			checkAvailability_sponsor(typing);
		} else {
			checkAvailability_sponsor();
		}
		return true;
	}
}


function validatePassword() {
	var pw1 = document.getElementById("PW1");
	var pw2 = document.getElementById("PW2");
	 
	if(pw1.value.length == 0)
	{
		inputBoxStatus("error", pw1);
		inputBoxStatus("", pw2);
		document.getElementById("password2status").parentNode.innerHTML = "<div id='password2status'></div>";
		document.getElementById("password1status").parentNode.innerHTML = "<div id='password1status' class='statuserror'>Please enter a password</div>";
		return false;
	} else if(pw1.value.length < 6)
	{
		inputBoxStatus("error", pw1);
		inputBoxStatus("", pw2);
		document.getElementById("password2status").parentNode.innerHTML = "<div id='password2status'></div>";
		document.getElementById("password1status").parentNode.innerHTML = "<div id='password1status' class='statuserror'>Passwords must contain at least 6 characters</div>";
		return false;                     
	} else {
		if (pw2.value.length == 0) {  
			inputBoxStatus("error", pw1);
			inputBoxStatus("", pw2);    
			document.getElementById("password1status").parentNode.innerHTML = "<div id='password1status' class='statuserror'>Please confirm the password below</div>";
			document.getElementById("password2status").parentNode.innerHTML = "<div id='password2status'></div>";
			return false;
		} else if (pw2.value.length < 6) {
			inputBoxStatus("", pw1);
			inputBoxStatus("error", pw2);
			document.getElementById("password1status").parentNode.innerHTML = "<div id='password1status'></div>";
			document.getElementById("password2status").parentNode.innerHTML = "<div id='password2status' class='statuserror'>Passwords must contain at least 6 characters</div>";
			return false;
		} else { 
			if(pw1.value != pw2.value)
			{
				inputBoxStatus("error", pw1);
				inputBoxStatus("error", pw2);
				document.getElementById("password1status").parentNode.innerHTML = "<div id='password1status' class='statuserror'></div>";
				document.getElementById("password2status").parentNode.innerHTML = "<div id='password2status' class='statuserror'>Passwords must match</div>";
				return false;
			} else {
				inputBoxStatus("ok", pw1);
				inputBoxStatus("ok", pw2);
				document.getElementById("password1status").parentNode.innerHTML = "<div id='password1status' class='statusok'>" + $okmessage+ "</div>";
				document.getElementById("password2status").parentNode.innerHTML = "<div id='password2status' class='statusok'>" + $okmessage+ "</div>";
				return true;
			}
		}
	}
}


function validateEmail() {
	var em = document.getElementById("EM");
	
	if(em.value.length < 6 || em.value.indexOf(".") <= 2 || em.value.indexOf("@") <= 0)
	{
		inputBoxStatus("error", em);
		document.getElementById("emailstatus").parentNode.innerHTML = "<div id='emailstatus' class='statuserror'>Please enter a valid email address</div>";
		return false;
	} else {
		inputBoxStatus("ok", em);
		document.getElementById("emailstatus").parentNode.innerHTML = "<div id='emailstatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	}
}


function validateNotifyEmail() {
	var em = document.getElementById("listemail");
	
	if(em.value.length < 6 || em.value.indexOf(".") <= 2 || em.value.indexOf("@") <= 0)
	{
		return false;
	} else {
		return true;
	}
}


function validateMobile() {
	var mob = document.getElementById("mobile");
	
	if(mob.value.length < 6)
	{
		inputBoxStatus("error", mob);
		document.getElementById("mobilestatus").parentNode.innerHTML = "<div id='mobilestatus' class='statuserror'>Please enter a valid mobile number</div>";
		return false;
	} else {
		inputBoxStatus("ok", mob);
		document.getElementById("mobilestatus").parentNode.innerHTML = "<div id='mobilestatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	}
}


function validateCNUM() {
	var cnum = document.getElementById("CNUM");
	
	if(cnum.value.length == 0)
	{
		inputBoxStatus("", cnum);
		document.getElementById("cnumstatus").parentNode.innerHTML = "<div id='cnumstatus'></div>";
		return false;
	} else if(cnum.value.length < 8)
	{
		inputBoxStatus("error", cnum);
		document.getElementById("cnumstatus").parentNode.innerHTML = "<div id='cnumstatus' class='statuserror'>Please enter a valid number</div>";
		return false;
	} else {
		inputBoxStatus("ok", cnum);
		document.getElementById("cnumstatus").parentNode.innerHTML = "<div id='cnumstatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	}
}


function validateCity() {
	var city = document.getElementById("city");
	
	if(city.value.length < 4)
	{
		inputBoxStatus("error", city);
		document.getElementById("citystatus").parentNode.innerHTML = "<div id='citystatus' class='statuserror'>Please enter a city</div>";
		return false;
	} else {
		inputBoxStatus("ok", city);
		document.getElementById("citystatus").parentNode.innerHTML = "<div id='citystatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	}
}


function validateCountry() {
	var country = document.getElementById("country");
	
	if(country.value == 0)
	{
		document.getElementById("countrystatus").parentNode.innerHTML = "<div id='countrystatus' class='statuserror'>Please select a country</div>";
		return false;
	} else {
		//checkAvailability_country();
		document.getElementById("countrystatus").parentNode.innerHTML = "<div id='countrystatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	}
}
                                               

function validateGender() {
	var gender = document.getElementById("gender");
	
	if(gender.value == "")
	{
		document.getElementById("genderstatus").parentNode.innerHTML = "<div id='genderstatus' class='statuserror'>Please select your gender</div>";
		return false;
	} else {
		document.getElementById("genderstatus").parentNode.innerHTML = "<div id='genderstatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	}
}


function validateMarried() {
	var married = document.getElementById("married");
	
	if(married.value == "")
	{
		document.getElementById("marriedstatus").parentNode.innerHTML = "<div id='marriedstatus' class='statuserror'>Please select your marriage status</div>";
		return false;
	} else {
		document.getElementById("marriedstatus").parentNode.innerHTML = "<div id='marriedstatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	}
}


function validateChildren() {
	var children = document.getElementById("children");
	
	if(children.value == "")
	{
		document.getElementById("childrenstatus").parentNode.innerHTML = "<div id='childrenstatus' class='statuserror'>Please select whether you have children or not</div>";
		return false;
	} else {
		document.getElementById("childrenstatus").parentNode.innerHTML = "<div id='childrenstatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	}
}


function validateDOB() {
	/*var day = document.getElementById("dobday");
	var month = document.getElementById("dobmonth");*/
	var year = document.getElementById("dobyear");
	
	if(/*day.value=="" || month.value=="" || */year.value=="")
	{
		document.getElementById("birthdatestatus").parentNode.innerHTML = "<div id='birthdatestatus' class='statuserror'>Please select your date of birth (only the year is required)</div>";
		return false;
	} else {
		document.getElementById("birthdatestatus").parentNode.innerHTML = "<div id='birthdatestatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	}
}


function validateProfession() {
	var profession = document.getElementById("profession");
	
	if(profession.value=="")
	{
		document.getElementById("professionstatus").parentNode.innerHTML = "<div id='professionstatus' class='statuserror'>Please select your profession</div>";
		return false;
	} else {
		document.getElementById("professionstatus").parentNode.innerHTML = "<div id='professionstatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	}
}


function validateInterests() {
	var interests = document.forms['NewAccount_Form'].elements['interests[]'];
	
	interested = false;
	for (i=0;i<document.forms['NewAccount_Form'].elements['interests[]'].length;i++) {
		if (document.forms['NewAccount_Form'].elements['interests[]'][i].checked) {
			interested = true;
		}
	}
	if(!interested)
	{
		document.getElementById("interestsstatus").parentNode.innerHTML = "<div id='interestsstatus' class='statuserror'>Please select interests</div>";
		return false;
	} else {
		document.getElementById("interestsstatus").parentNode.innerHTML = "<div id='interestsstatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	}
}


function validateSponsorInterests() {
	var interests = document.forms['NewAccount_Form'].elements['interests[]'];
	
	interested = false;
	for (i=0;i<document.forms['NewAccount_Form'].elements['interests[]'].length;i++) {
		if (document.forms['NewAccount_Form'].elements['interests[]'][i].checked) {
			interested = true;
		}
	}
	if(!interested)
	{
		document.getElementById("interestsstatus").parentNode.innerHTML = "<div id='interestsstatus'></div>";
		return true;
	} else {
		document.getElementById("interestsstatus").parentNode.innerHTML = "<div id='interestsstatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	}
}


function validateCaptcha() {
	var captcha = document.getElementById("captcha");
	
	if(captcha.value.length != 5)
	{
		inputBoxStatus("error", captcha);
		document.getElementById("securitystatus").parentNode.innerHTML = "<div id='securitystatus' class='statuserror'>Please enter the correct security code</div>";
		return false;
	} else {
		inputBoxStatus("ok", captcha);
		document.getElementById("securitystatus").parentNode.innerHTML = "<div id='securitystatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	}
}


function validateAdvertise() {
	var advertise = document.getElementById("advertise");
	
	if(advertise.value == 0)
	{
		document.getElementById("advertisestatus").parentNode.innerHTML = "<div id='advertisestatus'></div>";
		return false;
	} else {
		document.getElementById("advertisestatus").parentNode.innerHTML = "<div id='advertisestatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	}
}


function validateTermsAgreement() {
	var agree = document.getElementById("UA");
	
	if(!agree.checked)
	{
		document.getElementById("termsstatus").parentNode.innerHTML = "<div class='floatleft'><input type='checkbox' id='UA' name='agreementCheckBox' value='agreed' onchange='validateTermsAgreement();'> I agree to YouTXT's <a href='http://" + window.location.hostname + "/sponsorterms' target='_blank'>Terms and Conditions</a> </div><div id='termsstatus' class='statuserror'>You need to have read and agreed to YouTXT's terms and conditions to create an account</div>";
		return false;
	} else {
		document.getElementById("termsstatus").parentNode.innerHTML = "<div class='floatleft'><input type='checkbox' id='UA' name='agreementCheckBox' value='agreed' checked onchange='validateTermsAgreement();'> I agree to YouTXT's <a href='http://" + window.location.hostname + "/sponsorterms' target='_blank'>Terms and Conditions</a> </div><div id='termsstatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	}
}


function validateCompany() {
	var cn = document.getElementById("CN");
	
	if(cn.value.length < 4)
	{
		inputBoxStatus("error", cn);
		document.getElementById("companystatus").parentNode.innerHTML = "<div id='companystatus' class='statuserror'>Please enter your company name</div>";
		return false;
	} else {
		inputBoxStatus("ok", cn);
		document.getElementById("companystatus").parentNode.innerHTML = "<div id='companystatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	}
}


function validateIndustry() {
	var bi = document.getElementById("BI");
	
	if(bi.value == 0)
	{
		document.getElementById("industrystatus").parentNode.innerHTML = "<div id='industrystatus' class='statuserror'>Please select your business's industry</div>";
		return false;
	} else {
		document.getElementById("industrystatus").parentNode.innerHTML = "<div id='industrystatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	}
}


function validatePA() {
	var pa = document.getElementById("PA");
	var pcode = document.getElementById("PCode");
	
	if(pa.value.length > 0)
	{
		if(pcode.value.length > 0) {
			inputBoxStatus("ok", pa);
			inputBoxStatus("ok", pcode);
			document.getElementById("pastatus").parentNode.innerHTML = "<div id='pastatus' class='statusok'>" + $okmessage+ "</div>";
			document.getElementById("pcodestatus").parentNode.innerHTML = "<div id='pcodestatus' class='statusok'>" + $okmessage+ "</div>";
			return true;
		} else {
			inputBoxStatus("", pa);
			inputBoxStatus("error", pcode);
			document.getElementById("pastatus").parentNode.innerHTML = "<div id='pastatus'></div>";
			document.getElementById("pcodestatus").parentNode.innerHTML = "<div id='pcodestatus' class='statuserror'>Please enter a postal / zip code</div>";
			return false;
		}
		
	} else if(pcode.value.length > 0) {
		inputBoxStatus("error", pa);
		inputBoxStatus("", pcode);
		document.getElementById("pastatus").parentNode.innerHTML = "<div id='pastatus' class='statuserror'>Please enter a postal address</div>";
		document.getElementById("pcodestatus").parentNode.innerHTML = "<div id='pcodestatus'></div>";
		return false;
		
	} else {
		inputBoxStatus("", pa);
		inputBoxStatus("", pcode);
		document.getElementById("pcodestatus").parentNode.innerHTML = "<div id='pcodestatus'></div>";
		document.getElementById("pastatus").parentNode.innerHTML = "<div id='pastatus'></div>";
		return true;
	}
}


function validateABN() {
	var abn = document.getElementById("ABN");
	var abnval = abn.value;
	//abnval = abnval.replace(/\s+/g,'');
	if(abnval.length == 0)
	{
		inputBoxStatus("", abn);
		document.getElementById("abnstatus").parentNode.innerHTML = "<div id='abnstatus'></div>";
		return true;
	//} else if(abnval.length >= 11 && ((abnval - 0) == abnval))    // !isNaN(abn.value))
	} else if(abnval.length >= 4 && abnval.length <= 25)
	{
		inputBoxStatus("ok", abn);
		document.getElementById("abnstatus").parentNode.innerHTML = "<div id='abnstatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	} else {
		inputBoxStatus("error", abn);
		document.getElementById("abnstatus").parentNode.innerHTML = "<div id='abnstatus' class='statuserror'>Please enter a valid Business Reg. Number</div>";
		return false;
	}
}


function validateWebsite() {
	var website = document.getElementById("CWEB");
	
	if(website.value.length == 0)
	{
		inputBoxStatus("", website);
		document.getElementById("websitestatus").parentNode.innerHTML = "<div id='websitestatus'></div>";
		return false;
	} else if(website.value.length < 6)
	{
		inputBoxStatus("error", website);
		document.getElementById("websitestatus").parentNode.innerHTML = "<div id='websitestatus' class='statuserror'>Please enter a valid website</div>";
		return false;
	} else {
		inputBoxStatus("ok", website);
		document.getElementById("websitestatus").parentNode.innerHTML = "<div id='websitestatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	}
}


function validateState() {
	var state = document.getElementById("state");
	
	if(state.value.length < 2)
	{
		inputBoxStatus("error", state);
		document.getElementById("statestatus").parentNode.innerHTML = "<div id='statestatus' class='statuserror'>Please select your state</div>";
		return false;
	} else {
		inputBoxStatus("ok", state);
		document.getElementById("statestatus").parentNode.innerHTML = "<div id='statestatus' class='statusok'>" + $okmessage+ "</div>";
		return true;
	}
}


function validateNewUser()
{
	if( !validateFirstName() | !validateLastName() | !validateUserName() | !validatePassword() | !validateEmail() | !validateMobile() |
		!validateCity() | !validateCountry() | !validateGender() | !validateMarried() | !validateChildren() |
		!validateDOB() | !validateProfession() | !validateInterests() | !validateCaptcha() | !validateTermsAgreement() )
	{
		inputBoxStatus("error", document.getElementById("formstatus"));
		document.getElementById("formstatus").parentNode.innerHTML = "<div id='formstatus' class='statuserror'>You must correct the errors in this form before continuing</div>";
		return false;	// something didn't validate
	} else {
		inputBoxStatus("ok", document.getElementById("formstatus"));
		document.getElementById("formstatus").parentNode.innerHTML = "<div id='formstatus' class='statusok'>" + $okmessage+ "</div>";
		
		if ($.browser.msie && $.browser.version <= 6) {
			$("#freecheck").val('0');
			return true;	// no errors, continue with submission
		} else {
			$("#freecheck").val('1');
			if (freeCreditsAvailable()) {
				return true;	// no errors, continue with submission
			} else {
				try {
					$('#submitWindow').jqmShow();
				} catch(err) { }
				return false;	// no errors, but display signup popup first
			}
		}
	}
}

function freeCreditsAvailable()
{
	//alert($('#country .allowed:selected').length);
	
	//var country = document.getElementById("country");
	//if (country.options[country.selectedIndex].className == "allowed") {
	if ($('#country .allowed:selected').length == 0) {
		return false;
	} else {
		return true;
	}
	
}


function ValidateNewSponsor()
{
	if( !validateCompany() | !validateABN() | !validateIndustry() | !validatePA() | !validateCity() | !validateState() | !validateCountry() |
		!validateSponsorUserName() | !validatePassword() | !validateFirstName() | !validateLastName() | !validateEmail() | !validateSponsorInterests() |
		!validateCaptcha() | !validateTermsAgreement() )
	{
		inputBoxStatus("error", document.getElementById("formstatus"));
		document.getElementById("formstatus").parentNode.innerHTML = "<div id='formstatus' class='statuserror'>You must correct the errors in this form before continuing</div>";
		return false;	// something didn't validate
	} else {
		inputBoxStatus("ok", document.getElementById("formstatus"));
		document.getElementById("formstatus").parentNode.innerHTML = "<div id='formstatus' class='statusok'>" + $okmessage+ "</div>";
		return true;	// no errors, continue with submission
	}
}


function StopSpamWebmaster()
{
	document.write("<a href='mailto:" + "webmaster" + "@youtxt.com'>webmaster@" + "youtxt.com</a>");
}


function StopSpamInfo()
{
	document.write("<a href='mailto:" + "info" + "@youtxt.com' class='contactemail'>info@" + "youtxt.com</a>");
}


function StopSpamSupport()
{
	document.write("<a href='mailto:" + "support" + "@youtxt.com' class='contactemail'>support@" + "youtxt.com</a>");
}
