// Browser Check
var agt=navigator.userAgent.toLowerCase();
var is_ie    = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_gecko = (agt.indexOf('gecko') != -1);
var is_opera = (agt.indexOf('opera')!=-1);
var is_nav   = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1) && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1) && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
var is_opera = (agt.indexOf('opera')!=-1);

// Global variables
var curElem = null;
var formError = false;

// Form element highlight function
function txtFocus(elem){
	elem.style.backgroundColor = "#F1F7F9";
	elem.style.color = "#000000";
}
function txtBlur(elem){
	elem.style.backgroundColor = "#FFFFFF";
	elem.style.color = "#000000";
}
function txtError(elem){
	elem.style.backgroundColor = "#F3E5E5";
	elem.style.color = "#000000";
}
function press(image, path) {
	image.src = path;
}

// Helper baloon pop-up element
function validate(elem) {
	
	curElem = elem;
	var valType = elem.getAttribute("valType");
	//alert(elem.getAttribute("id")+" is successfully validated!");
	var req = elem.getAttribute("req");

	// If the field is empty, check if it's required, otherwise validate it.
	if (elem.value == "") {
		if (req == "true") {
			popHelp(elem, "This is a required field. Please enter a value.");
			elem.setAttribute("error", "true");
		} else {
			elem.setAttribute("error", "false");
			hideHelp();
		}
	} else {
		// Validate e-mail address
		if (valType == "email") {
			msg = checkEmail(elem);
			if (msg != "") {
				elem.setAttribute("error", "true");
				popHelp(elem, msg);
			} else {
				elem.setAttribute("error", "false");
				hideHelp();
			}
		}
		
		if (valType == "username") {
			msg = checkUser(elem);
			if (msg != "") {
				elem.setAttribute("error", "true");
				popHelp(elem, msg);
			} else {
				elem.setAttribute("error", "false");
				hideHelp();
			}
		}
		
		// Validate alphabetical field
		if (valType == "alpha") {
			var charpos = elem.value.search("[^A-Za-z]"); 
			if(elem.value.length > 0 &&  charpos >= 0) { 
				strError = "Please enter alphabetical characters only."; 
				elem.setAttribute("error", "true");
				popHelp(elem, strError);
			} else {
				elem.setAttribute("error", "false");
				hideHelp();
			}
		}
		
		// Validate alphanumeric field
		if (valType == "alphanum") {
			var charpos = elem.value.search("[^A-Za-z0-9_/:'. -]"); 
			if(elem.value.length > 0 &&  charpos >= 0) { 
				strError = "Please enter alpha- numeric characters only."; 
				elem.setAttribute("error", "true");
				popHelp(elem, strError);
			} else {
				elem.setAttribute("error", "false");
				hideHelp();
			}
		}
		
		// Validate numeric field
		if (valType == "num") {
			var charpos = elem.value.search("[^0-9]"); 
			if(elem.value.length > 0 &&  charpos >= 0) {  
				strError = "Please enter numeric characters only.";
				elem.setAttribute("error", "true");
				popHelp(elem, strError);
			} else {
				elem.setAttribute("error", "false");
				hideHelp();
			}
		}
		
		// Validate password field
		if (valType == "passwd") {
			var charpos = elem.value.search("[^A-Za-z0-9!@#$%&^*_]"); 
			if(elem.value.length > 0 &&  charpos >= 0) { 
				strError = "Please enter only alpha- numeric characters and any of the following: ! @ # $ % ^ & *."; 
				elem.setAttribute("error", "true");
				popHelp(elem, strError);
			} else {
				elem.setAttribute("error", "false");
				hideHelp();
			}
		}
		
		if (valType == "checkpass") {
			inputFields=document.getElementsByTagName("INPUT");
			var passwordField;
			var i=0;
			for (i=0, n = inputFields.length; i < n ;i++)
			{
				if (inputFields[i].getAttribute("passCheck")=="password") {passwordField=inputFields[i]};
			}
			if(passwordField.value != elem.value) { 
				strError = "Password does not match.  Please try again."; 
				elem.setAttribute("error", "true");
				popHelp(elem, strError);
			} else {
				elem.setAttribute("error", "false");
				hideHelp();
			}
			
			//if(elem.value != pass) { 
			//	strError = "Password does not match.  Please try again."; 
			//	elem.setAttribute("error", "true");
			//	popHelp(elem, strError);
			//} else {
			//	elem.setAttribute("error", "false");
			//	hideHelp();
			//}
		}
		
		// Validate postal/zip code
		if (valType == "postal") {
			var charpos = elem.value.search("[^A-Za-z0-9 ]"); 
			if(elem.value.length > 0 &&  charpos >= 0) { 
				strError = "Please enter the correct postal/zip code."; 
				elem.setAttribute("error", "true");
				popHelp(elem, strError);
			} else {
				elem.setAttribute("error", "false");
				hideHelp();
			}
		}
		if (valType == "pick") { 
			elem.setAttribute("error", "false");
			hideHelp();
		}
		if (valType == "textArea") { 
			if(elem.value.length > 1000) {
				strError = "Please enter a maximum of 1000 characters."; 
				elem.setAttribute("error", "true");
				popHelp(elem, strError);
			} else {
				elem.setAttribute("error", "false");
				hideHelp();
			}
		}
	}	
}

function popHelp(elem, msg) {
	
	errMsg = document.getElementById("errMsgCell");	
	width = elem.style.width;
	width = width.substring(0, width.length - 2);
	w = parseInt(width) - 15;
	errMsg.innerHTML = msg;
	
	bln = document.getElementById("balloon");
	bln.style.left = findPosX(elem) + w;
	bln.style.top = findPosY(elem) + 12;
	bln.style.visibility = "visible";
	
	txtError(elem);
}

function popHelpJob(elem, msg) {
	
	errMsg = document.getElementById("errMsgCell");	
	width = elem.style.width;
	width = width.substring(0, width.length - 2);
	w = parseInt(width) - 15;
	errMsg.innerHTML = msg;
	
	bln = document.getElementById("balloon");
	bln.style.left = findPosX(elem) + w + 30;
	bln.style.top = findPosY(elem) + 12;
	bln.style.visibility = "visible";
}


function hideHelp() {
	bln = document.getElementById("balloon");
	bln.style.visibility = "hidden";
}

// Form validation functions
function checkEmail(elem) {
	email = elem.value;
	AtPos = email.indexOf("@");
	StopPos = email.lastIndexOf(".");
	var errMsg = "Sorry, you entered an invalid Email address.";
	var Message = "";
	var wasUsed = "False";
	var emp = elem.getAttribute("emp");
	
	if (email == "") { Message = errMsg; }	
	if (AtPos == -1 || StopPos == -1) { Message = errMsg; }	
	if (StopPos < AtPos) { Message = errMsg; }	
	if (StopPos - AtPos == 1) { Message = errMsg; }
	if (email.length - 1 <= StopPos) { Message = errMsg; }
	
	if(Message == "" && emp != "true") {
		// Get who is trying to register: employer  or jobseeker
		var whomCheck; 
		var windowUrl=window.location.href.toLowerCase();
		if (windowUrl.indexOf('register.aspx')>0)
		{
			whomCheck='jobseeker';
		}
		else if (windowUrl.indexOf('empreg.aspx')>0)
		{
			whomCheck='employer';
		}
		// next check if duplicate email
		if(is_ie) {
			var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		if(is_nav || is_gecko || is_opera) {
			var xmlHttp = new XMLHttpRequest();
		}
		xmlHttp.open("POST", "checkEmail.aspx", false);
		xmlHttp.send("<login><email>" + email + "</email><usertype>" + whomCheck + "</usertype></login>");
		wasUsed = xmlHttp.responseText;
		if(wasUsed == "True") {
			Message = "This e-mail address has already been used, please try again.";
		}
	}

	return Message;
}

function checkUser(elem) {
	
	var message = "";
	var wasUsed = "False";
	var charpos = elem.value.search("[^A-Za-z0-9_.]");
	if(elem.value.length > 0 &&  charpos >= 0) { 
		message = "Please enter alpha- numeric characters only.";
	} else {
		// next check if duplicate name
		if(is_ie) {
			var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		else if(is_nav || is_gecko || is_opera) {
			var xmlHttp = new XMLHttpRequest();
		}
		xmlHttp.open("POST", "checkUser.aspx", false);
		xmlHttp.send("<login><user>" + elem.value + "</user></login>");
		wasUsed = xmlHttp.responseText;
		if(wasUsed == "true") {
			message = "This username has already been used, please try again.";
		}
	}
	return message;
}

// Form manipulation functions
function clear(form) {
	frm = document.getElementById(form);
	frm.reset();
}

function submitForm(form) {
	frm = document.getElementById(form);
	
	var isSubmitting;

	errorField = -1;
	for (i=0, n = frm.elements.length; i < n ;i++) {
		if (frm.elements[i]!=null) {
			validate(frm.elements[i]);
			if (frm.elements[i].getAttribute("error") == 'true') {
				errorField = i;
				break;
			}
		}
	}
	
	if (errorField != -1) {
		//alert('Please correct field number ' + errorField + 1);
		validate(frm.elements[errorField]);
		frm.elements[errorField].focus();
		isSubmitting=false;
	} else {
		isSubmitting=true;
	}
	return isSubmitting;
}

// Image swapping
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; 
  document.MM_sr=new Array; 
  for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){
	document.MM_sr[j++]=x;		
	x.oSrc=x.src; x.src=a[i+2];

	//Track current menu - Start
	imgSrc = x;
	imgOver = x.src;	
	imgOut = x.oSrc;
	//Track current menu - End
   }
}

//Flipping to the next phone field
function NextPhoneField(currField,nextField)
{
	txtCurrent=document.getElementById(currField);
	txtNext=document.getElementById(nextField);
	if (txtCurrent.value.length==txtCurrent.maxLength)
		{
			txtNext.focus();
		}
}

function getAnsw() {
	var survform;
	var ansID = 0;
	survform = document.getElementById("survform");
	for(i = 0; i < survform.radiosurv.length; i++) {
		if(survform.radiosurv[i].checked) { 
			ansID = survform.radiosurv[i].value;
		}
	}
	return ansID;
}

function addVote() {
	
	var survtable = document.getElementById("survtable");
	var subbtn = document.getElementById("survsub");
	var quesID = document.getElementById("quesid").innerHTML;
	var ansID = getAnsw();
	
	if (ansID != 0 || quesID != null) {
		sendData("includes/addvote.php?action=addvote&ansid=" + ansID);
		sendData("includes/addvote.php?action=showres&quesid=" + quesID);
		survtable.innerHTML = result;
		subbtn.style.visibility = "hidden";
	} else {
		survtable.innerHTML = "Please select a valid answer.";
	}
}

// Generic function for XMLHTTP requests
function sendData (url) {

	if(is_ie) {
		var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	if(is_nav || is_gecko || is_opera) {
		var xmlHttp = new XMLHttpRequest();
	}

	xmlHttp.open("POST", url, false);
	xmlHttp.send(url);
	result = xmlHttp.responseText;
}

function showMovie () {

	var movie = document.getElementById("movie");
	movie.style.display = "inline";
	movie.style.visibility = "visible";

}

function closeMovie () {

	var movie = document.getElementById("movie");
	movie.style.visibility = "hidden";
	movie.style.display = "none";

}