var url = "get_un_info.php?param="; 
var url2 = "get_uemail_info.php?param="; 
var url3 = "get_security_code.php?param=";

var http = getHTTPObject();
var http1 = getHTTPObject();
var http2 = getHTTPObject();

var codeCheck = 0;
var invalid_count = 0;
var alertMsg = "";

window.onload = function submit_off() {
	document.getElementById("sub_bt").disabled=true;
}

function allowSubmit() {
	if ((document.getElementById("termsofserv").checked==true) && (document.getElementById("priv_pol").checked==true)) {
		document.getElementById("sub_bt").disabled=false;
	}
	else {
		document.getElementById("sub_bt").disabled=true;
	}
}


function handleHttpResponse() {
  if (http.readyState == 4) {
		var results = http.responseText.split(",");
		if (results[0] == 0){
			 var usr_name = document.getElementById("username").value;
			 var Data_div = "";
			 Data_div += "Sorry, your requested username <span style=\"color: #FF0000\">"+usr_name+ "</span>, has already been used<br />";
			 Data_div += "Please choose another username. Thank you.<br />";
			 
			 document.getElementById("username_used").innerHTML = Data_div;
			 
			 Data_div = "";
			 
			 document.getElementById("username_used").style.display = 'block';
			 document.getElementById("username").value = "";
			 return false;
		}	   
		else {
			document.getElementById("username_used").style.display = 'none';
		}
	}
}

function handleHttpResponse1() {
  if (http1.readyState == 4) {
		var results = http1.responseText.split(",");
		if (results[0] == 0){
			
			 var usr_name = document.getElementById("email").value;
			 var Data_div = "";
			 Data_div += "Sorry, your requested email address <span style=\"color: #FF0000\">"+usr_name+ "</span>, has already been used.<br />";
			 Data_div += "Please choose another email address. Thank you.<br />";
			 
			 document.getElementById("email_used").innerHTML = Data_div;
			 
			 Data_div = "";
			 
			 document.getElementById("email_used").style.display = 'block';
			 document.getElementById("email").value = "";
			 document.getElementById("email2").value = "";
			 return false;
		}	   
		else {
			document.getElementById("email_used").style.display = 'none';
		}	   
  	}
}

function  handleHttpResponse2() {
	try {
	  if (http2.readyState == 4) {			  
		var results = http2.responseText;
			if (results == 1){
				 //alert("Security Code Error. Please enter the Security Code correctly");
				 var Data_div = "";
				 Data_div += "<span style=\"color: #FF0000\">Security Code Error! Submission is not allowed without correct security code. Please enter the Security Code correctly. </span><br />";
				 
				 document.getElementById("code_error").innerHTML = Data_div;
				 
				 Data_div = "";
				 
				 document.getElementById("code_error").style.display = 'block';
				 document.getElementById("code").value = "";
				 document.getElementById('codeing').src = "CaptchaSecurityImages.php?rand=" + Math.round(1000*Math.random());
				 
				 codeCheck = 0;
			}
			else{
				document.getElementById("code_error").style.display = 'none';
				
				codeCheck = 1;
			}
		}	
	 }
	 catch( e ) {
		alert('Caught Exception: ' + e.description);
	}
}


function chkUsrName() {
	  var usr_name = document.getElementById("username").value;
	  if (usr_name != "") {
		  var sid = 'sid' + Math.round(1000*Math.random());
		  http.open("GET", url + escape(usr_name) + "&id=1&sid="+sid, true);
		  http.onreadystatechange = handleHttpResponse;
		  http.send(null);
	  }
}
function chkUsrEmail() {
	  var usr_email = document.getElementById("email").value;
	  if (usr_email != ""){
		  var sid = 'sid' + Math.round(1000*Math.random());
		  http1.open("GET", url2 + escape(usr_email)+ "&id=2&sid="+sid, true);
		  http1.onreadystatechange = handleHttpResponse1;
		  http1.send(null);
	  }
}

function security_code() {
	var code = document.getElementById("code").value;
	var sid = 'sid' + Math.round(1000*Math.random());
	http2.open('GET', url3 + escape(code)+ "&id=3&sid="+sid, false);
	if (window.ActiveXObject) {
		http2.onreadystatechange = handleHttpResponse2;
	}
	else if (window.XMLHttpRequest) {
		http2.onload = handleHttpResponse2;
	}
	http2.send(null);
	}


function getHTTPObject() {
	var xmlhttp; 
	if(window.ActiveXObject){
		try{
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (e){
			xmlHttp = false;
		}
	}
	// if running Mozilla or other browsers
	else {
		try	{
		xmlHttp = new XMLHttpRequest();
		}
		catch (e){
		xmlHttp = false;
		}
	}
	// return the created object or display an error message
	if (!xmlHttp)
		alert("Error creating the XMLHttpRequest object.");
	else
		return xmlHttp; 
}

function check_imgae_extension(file_name){
   
	 var filename = file_name.value;
	 var extension;
	 var valid = true;
	
	 var extension = filename.substring(filename.length - 3, filename.length);
	 if(extension!=""){
		 if ((extension.toUpperCase() != 'JPG') )
		 {
			if(extension.toUpperCase() != 'GIF'){
				valid = false;
				//alert("The file must be a JPG or GIF.");
				var Data_div = "";
				Data_div += "The image file must be either a JPG/JPEG or a GIF file<br />";
				
				document.getElementById("image_error").innerHTML = Data_div;
				
				Data_div = "";
				
				document.getElementById("image_error").style.display = 'block';
					
				Data_div = "";
				Data_div += "<b>Upload Photo</b>";
				Data_div += "&nbsp;&nbsp;&nbsp;";
				Data_div += "<input onblur=\"return check_imgae_extension(this)\" type=file name=filephoto id=filephoto>";
				
				document.getElementById("Upload_Photo").innerHTML = Data_div;
				
				Data_div = "";
				
				//file_name.focus();
			 }
			 else {
				document.getElementById("image_error").style.display = 'none';
			 }
		}
		 else {
			document.getElementById("image_error").style.display = 'none';
		 }
	}
}

function clear_referer() {
	document.getElementById('search_engines').style.display = "none";
	document.getElementById('search_engines_label').style.display = "none";
	
	document.getElementById('job_boards').style.display = "none";
	document.getElementById('job_boards_label').style.display = "none";
	
	document.getElementById('other').style.display = "none";
	document.getElementById('other_label').style.display = "none";
}

function check_referer() {
	clear_referer();
	
	if(document.getElementById('referer_type').value == "SE") {
		document.getElementById('search_engines').style.display = "block";
		document.getElementById('search_engines_label').style.display = "block";
	}
	
	if(document.getElementById('referer_type').value == "JB") {
		document.getElementById('job_boards').style.display = "block";
		document.getElementById('job_boards_label').style.display = "block";
	}
	
	if(document.getElementById('referer_type').value == "OT") {
		document.getElementById('other_label').style.display = "block";
		document.getElementById('other').style.display = "block";
	}
}

function checkbox_sms() {
	if ((document.getElementById("cell").value=="") ||  (document.getElementById("cell_provider").value=="")) {
			document.getElementById("smsalert").checked=false;
	}
	else {
		document.getElementById("smsalert").checked=false;
	}
}

function checkcellandprovider() {
	if ((document.getElementById("cell").value=="") &&  (document.getElementById("cell_provider").value=="")) {
			document.getElementById("smsalert").checked=false;
			alert("Please provide your Cell Number and Cell Provider.\nSend me text messages alerts related to work in my area.");
		}
	else if ((document.getElementById("cell").value!="") &&  (document.getElementById("cell_provider").value=="")) {
			document.getElementById("smsalert").checked=false;
			alert("Please provide your Cell Provider.\nSend me text messages alerts related to work in my area.");
		}
	else if ((document.getElementById("cell").value=="") &&  (document.getElementById("cell_provider").value!="")) {
			document.getElementById("smsalert").checked=false;
			alert("Please provide your Cell Number.\nSend me text messages alerts related to work in my area.");
		}

}

function validateForm(theForm) {
	alertMsg = "";
	var invalid_count=0;
	
	document.getElementById("sub_bt").disabled=true;
	
	if (document.tech_reg1.first_name.value == "") {
		alertMsg = alertMsg + "You must enter a first name\n";
	}
	
	if (document.tech_reg1.last_name.value == "") {
		alertMsg = alertMsg + "You must enter a last name\n";
	}
	
	if (document.tech_reg1.username.value == "") {
		alertMsg = alertMsg + "You must enter username\n";
	}
	
	if(document.tech_reg1.username.length > 32) {
		alertMsg = alertMsg + "Username may not be longer than 32 characters\n";
	}
	
	if (document.tech_reg1.password.value.length < 6 || document.tech_reg1.password.value.length > 14) {
		alertMsg = alertMsg + "Password should be between 6 and 14 characters\n";
	}
	
	if (document.tech_reg1.password.value != document.tech_reg1.cpassword.value) {
		alertMsg = alertMsg + "Mismatch Password & Confirm Password\n";
	}
	
	if (document.tech_reg1.address.value == "") {
		alertMsg = alertMsg + "You must enter an Address\n";
	}
	
	if (document.tech_reg1.city.value == "") {
		alertMsg = alertMsg + "You must enter a city\n";
	}
	
	if (document.tech_reg1.state.value == "") {
		alertMsg = alertMsg + "You must enter a state\n";
	}

	if (document.tech_reg1.zip.value.length == "") {
		alertMsg = alertMsg + "You must enter a zip\n";
	}
	else {
		if (checkdataformat(document.tech_reg1.zip.value, 6) == false) {
			alertMsg = alertMsg + "Your zip code is not valid\n";
		}
	}

	if (document.tech_reg1.email.value == "") {
		alertMsg = alertMsg + "You must enter an Email\n";
	}
	
	else if (document.tech_reg1.email2.value != document.tech_reg1.email.value) {
		alertMsg = alertMsg + "Email addresses must match\n";
	}
	else {
		var email = document.tech_reg1.email.value;
	
		if(emailCheck(email)==false)
			invalid_count = 1;
	}
	
	if(document.tech_reg1.dob_month.value == "") {
		alertMsg = alertMsg + "\You must enter a Month(Date of Birth)\n";
	}

	/*
	if(document.tech_reg1.dob_day.value == "") {
		alertMsg = alertMsg + "\You must enter a Day(Date of Birth)\n";
	} */

	if(document.tech_reg1.dob_year.value == "") {
		alertMsg = alertMsg + "\You must enter a Year(Date of Birth)\n";
	}
	
	if (document.tech_reg1.code.value == "") {
		alertMsg = alertMsg + "You must enter the security code\n";
	}

	else if ((document.tech_reg1.code.value != "") && (alertMsg == "")) {
		var security_code_ret = security_code();
		if(codeCheck == 0)
			invalid_count = 1;
	}
	
	//phonecheck(phonecheck);
	var phone=document.tech_reg1.phone.value;
	if (checkdataformat(phone, 3) == false) {
		alertMsg = alertMsg +  "\You must enter a valid phone number\n";
		invalid_count=1;
	}

	if(document.tech_reg1.cell.value) {
		var cell=document.tech_reg1.cell.value;
		if (checkdataformat(cell, 3) == false) {
			alertMsg = alertMsg +  "\You must enter a valid cell number\n";			
			invalid_count=1;
		}
	}

	if(document.tech_reg1.pager.value) {
		var pager=document.tech_reg1.pager.value;
		if (checkdataformat(pager, 3) == false) {
			alertMsg = alertMsg +  "\You must enter a valid pager number\n";			
			invalid_count=1;
		}
	}

	if ((alertMsg == "") && (invalid_count==0)) {
		return true;
	} 
	else {
		if(alertMsg != ""){
			alert(alertMsg);
			alertMsg = "";
		}
		
		document.getElementById("sub_bt").disabled=false;
		invalid_count = 0;
		return false;
	}
}

function emailCheck (emailStr) {
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|name)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) {
		alertMsg=alertMsg + "Email address seems incorrect (check @ and .'s)\n";
		return false;
	}

	var user=matchArray[1];

	var domain=matchArray[2];
	
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			alertMsg=alertMsg + "Ths username contains invalid characters.\n";
			return false;
		}
	}

	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			alertMsg=alertMsg + "Ths domain name contains invalid characters.\n";
			return false;
		}
	}

	if (user.match(userPat)==null) {
		alertMsg=alertMsg + "The username doesn't seem to be valid.\n";
		return false;
	}
	
	var IPArray=domain.match(ipDomainPat);
	
	if (IPArray!=null) {
	for (var i=1;i<=4;i++) {
		if (IPArray[i]>255) {
			alertMsg=alertMsg + "Destination IP address is invalid!\n";
			return false;
	   }
	}
	return true;
	}
	
	var atomPat=new RegExp("^" + atom + "$");
		var domArr=domain.split(".");
		var len=domArr.length;
		for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			alertMsg=alertMsg + "The domain name does not seem to be valid.\n";
			return false;
		}
	}
	
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {
		alertMsg=alertMsg + "The email address must end in a well-known domain or two letter " + "country.\n";
		return false;
	}
	
	if (len<2) {
		alertMsg=alertMsg + "This address is missing a hostname!\n";
		return false;
	}
	
	return true;
}
