/*@cc_on @if (@_win32 && @_jscript_version >= 5) if (!window.XMLHttpRequest)
window.XMLHttpRequest = function() { return new ActiveXObject('Microsoft.XMLHTTP') }
@end @*/

var whitespace = " \t\n\r";
	function trim(str) {
		return str.replace(/^\s+|\s+$/g,"");
	}
function isEmpty(s)
{   	
	var s1;
	
	//s1 = Trim(s);
   
 	return ((s == null) || (s.length == 0))
}

function isUrl(s)
{
   var regexp = "^(https?://)"
        + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" 	//user@
        + "(([0-9]{1,3}\\.){3}[0-9]{1,3}" 				// IP- 199.194.52.184
        + "|" 								// allows either IP or domain
        + "([0-9a-z_!~*'()-]+\\.)*" 					// tertiary domain(s)- www.
        + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\\." 			// second level domain
        + "[a-z]{2,6})" 						// first level domain- .com or .museum
        + "(:[0-9]{1,4})?" 						// port number- :80
        + "((/?)|" 							// a slash isn't required if there is no file name
        + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";
   return new RegExp(regexp).test(s);

}

function isEmail(s)
{   
    
     if (isEmpty(s)) 
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);

    // is s whitespace?
    if (isWhitespace(s)) 
		return false;
    
    // there must be >= 1 character before @, so we
    // start looking at character position 1 
    // (i.e. second character)
    var i = 1;
    var sLength = s.length;

    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }

    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

function isWhitespace (s)

{   var i;

    // Is s empty?
    if (isEmpty(s)) return true;

    // Search through string's characters one by one
    // until we find a non-whitespace character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
	// Check that current character isn't whitespace.
	var c = s.charAt(i);

	if (whitespace.indexOf(c) == -1) return false;
    }

    // All characters are whitespace.
    return true;
}

function validateValues() {
	var validated = true;
	var form = document.f1;
	var name = trim(form.First_Name.value);
	if(isEmpty(name) || isWhitespace(name)) {
		validated = false;
		document.getElementById("First_Name_img").className = "visible";
		document.getElementById("First_Name_error").className = "error";
		//document.getElementById("First_Name_error").textContent = "Please at least enter your first name!";
		document.getElementById("First_Name_error").innerHTML = "Invalid";
		form.First_Name.focus();
	}
	else {
		form.First_Name_img.className = "inv";
		document.getElementById("First_Name_error").className = "error inv";
		document.getElementById("First_Name_error").innerHTML = "";
	}

	if(!validated) return false;

	if(form.Last_Name) {
		var lastname = trim(form.Last_Name.value);
		if(isEmpty(lastname) || isWhitespace(lastname)) {
			validated = false;
			document.getElementById("Last_Name_img").className = "visible";
			document.getElementById("Last_Name_error").className = "error";
			//document.getElementById("Last_Name_error").textContent = "Please at least enter your first name!";
			document.getElementById("Last_Name_error").innerHTML = "Invalid";
			form.Last_Name.focus();
		}
		else {
			form.Last_Name_img.className = "inv";
			document.getElementById("Last_Name_error").className = "error inv";
			document.getElementById("Last_Name_error").innerHTML = "";
		}

		if(!validated) return false;
	}

	if(form.Company) {
		var company = trim(form.Company.value);
		if(isEmpty(company) || isWhitespace(company)) {
			validated = false;
			document.getElementById("Company_img").className = "visible";
			document.getElementById("Company_error").className = "error";
			document.getElementById("Company_error").innerHTML = "Required";
			document.getElementById("companyReg").style.verticalAlign = "middle";
			
			form.Company.focus();
		}
		else {

			sUrl = 'check_company_id.asp?companyid=' + company;
	
			httpRequest = new XMLHttpRequest(); 
			httpRequest.open('GET', sUrl, false); 
			httpRequest.send(null); 
	 
			var result = "" + httpRequest.responseText;
			if (result.substring(0, 6) != "EXISTS") {
				validated = false;
				document.getElementById("Company_img").className = "visible";
				document.getElementById("Company_error").className = "error";
				document.getElementById("Company_error").innerHTML = "Invalid";
				document.getElementById("companyReg").style.verticalAlign = "middle";
			
				form.Company.focus();
			}
			else {
				if(form.Company_img)
					form.Company_img.className = "inv";
				if(document.getElementById("Company_error")) {
					document.getElementById("Company_error").className = "error inv";
					document.getElementById("Company_error").innerHTML = "";
				}
				if(document.getElementById("companyReg")) 
					document.getElementById("companyReg").style.verticalAlign = "bottom";
			}

		}

		if(!validated) return false;
	}

	if(form.CompanyName) {
		var company = trim(form.CompanyName.value);
		if(isEmpty(company) || isWhitespace(company)) {
			validated = false;
			document.getElementById("Company_img").className = "visible";
			document.getElementById("Company_error").className = "error";
			document.getElementById("Company_error").innerHTML = "Required";
			
			form.CompanyName.focus();
		}
		else {
			form.Company_img.className = "inv";
			document.getElementById("Company_error").className = "error inv";
			document.getElementById("Company_error").innerHTML = "";
		}
		if(!validated) return false;
	}

	if(form.Web) {
		var web = trim(form.Web.value);
		if(isEmpty(web) || isWhitespace(web)) {
			validated = false;
			document.getElementById("Web_img").className = "visible";
			document.getElementById("Web_error").className = "error";
			document.getElementById("Web_error").innerHTML = "Required";
			
			form.Web.focus();
		}
		else if(!isUrl(web)) {
			validated = false;
			document.getElementById("Web_img").className = "visible";
			document.getElementById("Web_error").className = "error";
			document.getElementById("Web_error").innerHTML = "Invalid URL";
			
			form.Web.focus();
		}
		else {
			form.Web_img.className = "inv";
			document.getElementById("Web_error").className = "error inv";
			document.getElementById("Web_error").innerHTML = "";
		}
		if(!validated) return false;
	}

	if(form.industry) {
		var industry = form.industry;
		var inValue = trim(industry.value);
		
		if(inValue == 'other') {
			//hide previous error in the main control that might have been displayed
			document.getElementById(industry.name+"_img").className = "inv";
			document.getElementById(industry.name+"_error").className = "error inv";
			document.getElementById(industry.name+"_error").innerHTML = "";

			industry = form.industry_other;
			inValue = trim(industry.value);

		}

		if(inValue == '') {
			validated = false;
			document.getElementById(industry.name+"_img").className = "visible";
			document.getElementById(industry.name+"_error").className = "error";
			document.getElementById(industry.name+"_error").innerHTML = "Required";

			industry.focus();
		}
		else {
			document.getElementById(industry.name+"_img").className = "inv";
			document.getElementById(industry.name+"_error").className = "error inv";
			document.getElementById(industry.name+"_error").innerHTML = "";
		}
		if(!validated) return false;
	}

	var email = trim(form.Email_ID.value);
	if(isEmpty(email) || !isEmail(email)) {
		validated = false;
		form.Email_ID_img.className = "visible";
		document.getElementById("Email_ID_error").className = "error";
		//document.getElementById("Email_ID_error").textContent = "A valid e-mail address is required!";
		document.getElementById("Email_ID_error").innerHTML = "Invalid";
		form.Email_ID.focus();
	}
	else {
		form.Email_ID_img.className = "inv";
		document.getElementById("Email_ID_error").className = "error inv";
		document.getElementById("Email_ID_error").innerHTML = "";
	}

	if(!validated) return false;

	phone = trim(form.PhoneNum.value);
	if(isEmpty(phone) || isWhitespace(phone)) {
		validated = false;
		form.PhoneNum_img.className = "visible";
		document.getElementById("PhoneNum_error").className = "error";
		//document.getElementById("PhoneNum_error").textContent = "Please enter your phone number!";
		document.getElementById("PhoneNum_error").innerHTML = "Invalid";
		form.PhoneNum.focus();
	}
	else {
		form.PhoneNum_img.className = "inv";
		document.getElementById("PhoneNum_error").className = "error inv";
		document.getElementById("PhoneNum_error").innerHTML = "";
	}

	if(!validated) return false;

	if(form.Password) {
		password = trim(form.Password.value);
		if(isEmpty(password) || isWhitespace(password)) {
			validated = false;
			form.Password_img.className = "visible";
			document.getElementById("Password_error").className = "error";
			document.getElementById("Password_error").innerHTML = "Password is required!";
			form.Password.focus();
		}
		else {
			form.Password_img.className = "inv";
			document.getElementById("Password_error").className = "error inv";
			document.getElementById("Password_error").innerHTML = "";
		}

		if(!validated) return false;

		password2 = trim(form.Password2.value);
		if(isEmpty(password2) || isWhitespace(password2)) {
			validated = false;
			form.Password2_img.className = "visible";
			document.getElementById("Password2_error").className = "error";
			document.getElementById("Password2_error").innerHTML = "Please re-type your password here.";
			form.Password2.focus();
		}
		else if(password2 != password) {
			validated = false;
			form.Password2_img.className = "visible";
			document.getElementById("Password2_error").className = "error";
			document.getElementById("Password2_error").innerHTML = "Passwords do not match!";
			form.Password2.focus();
		}
		else {
			form.Password2_img.className = "inv";
			document.getElementById("Password2_error").className = "error inv";
			document.getElementById("Password2_error").innerHTML = "";
		}
		if(!validated) return false;
	}

	if(form.Verification) {
		if(trim(form.Verification.value.toUpperCase()) != form.Verification_Char.value.toUpperCase()) {
			validated = false;
			form.Verification_img.className = "visible";
			document.getElementById("Verification_error").className = "error";
			document.getElementById("Verification_error").innerHTML = "Characters do not match";
			form.Verification.focus();
		}
		else {
			form.Verification_img.className = "inv";
			document.getElementById("Verification_error").className = "error inv";
			document.getElementById("Verification_error").innerHTML = "";
		}
		if(!validated) return false;
	}

	//verify if email is already registered
	if(form.verifyEmail) {
		sUrl = 'co_check_email.asp?email=' + escape(email);
	
		httpRequest = new XMLHttpRequest(); 
		httpRequest.open('GET', sUrl, false); 
		httpRequest.send(null); 
	 
		var result = "" + httpRequest.responseText;
		if(result == "COMPANY" || result == "USER") {
			validated = false;
			form.Email_ID_img.className = "visible";
			document.getElementById("Email_ID_error").className = "error";
			document.getElementById("Email_ID_error").innerHTML = "Already registered";
			form.Email_ID.focus(); 
		}
		else {
			form.Email_ID_img.className = "inv";
			document.getElementById("Email_ID_error").className = "error inv";
			document.getElementById("Email_ID_error").innerHTML = "";
		}


	}

        return validated;
}

