var avail_uname="";
var avail_email="";
function val_all(){
	//form elements
		var uname=document.getElementById("uname");
		var pwd=document.getElementById("pwd");
		var cpwd=document.getElementById("cpwd");
		var fname=document.getElementById("fname");
		var email=document.getElementById("email");
		var dob=document.getElementById("dob");
		//var cName=document.getElementById("cName");
		var cntry=document.getElementById("cntry");
		var location=document.getElementById("location");
		//var jobTitle=document.getElementById("jobTitle");
		var uname=document.getElementById("uname");
		var pwd=document.getElementById("pwd");
	//elments validation
		var err=val_uname(uname,'1');
		err=val_password(pwd);
		err=val_confirmPass(cpwd,pwd);
		err=val_name(fname);		
		err=val_email(email,'1');
		err=val_dob(dob);
		err=val_gender();
		//err=val_company(cName);
		//err=val_jobtit(jobTitle);
		err=val_country(cntry);
		err=val_loc(location);
		
		val_allPage2();
	
	if(document.getElementById('erravailable') != null){
		var x=findPosX(document.getElementById('erravailable'));
		var y=findPosY(document.getElementById('erravailable'));
		if(isVisibleElm(document.getElementById('erravailable'))){
			scroll(x,y);
			return false;
		}
		else{
			if(avail_uname == "0" && avail_email == "0"){
				document.createacc.submit();
			}	
			else{ 
			scroll(x,y);
			return false;
			}
			
		}
	}
	else{
		if(avail_uname == "0" && avail_email == "0"){
			document.createacc.submit();
		}	
		else{ 			
			return false;
		}
	}
}
//Validate uname
function val_uname(o,i){
	hideToolTip(o);
	if(is_empty(o.value) == false){
		val_failed(o,"Please enter your Username");
		return false;
	}
	else{ val_success(o.id);}
	if(sapcevalidate(o.value) == true || specialchar_check(o.value) == 0){
		val_failed(o,"Invalid Username. Special characters or spaces are not allowed");
		return false;
	}
	else{ val_success(o.id);}
	if(o.value.length < 5){
		val_failed(o,"Minimum 5 characters");
		return false;
	}
	else{ val_success(o.id);}
	if(i != "1"){
		availablity_uname(o,o.value);
	}
	/*var availval=checkavail(o.value,"checkPid");*/
	if(avail_uname == 1){
		val_failed(o,"Sorry! Username already exists. Please choose another");
		return false;
	}
}
//Check uname availablity
function availablity_uname(o,strUname){
	avail_uname="";
	val_success(o.id);
	document.getElementById("chackingmsg").innerHTML="<br clear='all'><img src='http://imgs.clickjobs.com/jbs/images/iup-arrow.gif' border='0' alt=''>&nbsp;Checking availability of username...";
	document.getElementById("err_uname").innerHTML="&nbsp;<img src='http://imgs.clickjobs.com/jbs/images/sloading1.gif' border='0' alt='' class='icon icopos'>";
	var pars="selectedIndex="+strUname+"&objname=checkPid";
	var url ='/lib/check_avail_user.php';
	var sucReqUname=function(t){
		document.getElementById("chackingmsg").innerHTML="";
		avail_uname=t;
		if(t == "1"){
			val_failed(o,"Sorry! Username already exists. Please choose another");
			return false;
		}
		else{ val_success(o.id);}
	}
	getAjaxRes(url,pars,sucReqUname);

}
//validate password
function val_password(o){
	hideToolTip(o);
	if(is_empty(o.value) == false){
		val_failed(o,"Please enter your password");
		return false;
	}
	else{ val_success(o.id);}
	if(sapcevalidate(o.value) == true){
		val_failed(o,"Invalid password.Spaces are not allowed");
		return false;
	}
	else{ val_success(o.id);}
	if(o.value.length < 5){
		val_failed(o,"Minimum 5 characters");
		return false;
	}
	else{ val_success(o.id);}	
}
function val_confirmPass(o1,o2){
	hideToolTip(o1);
	if(is_empty(o1.value) == false){
		val_failed(o1,"Please enter your password");
		return false;
	}
	else{ val_success(o1.id);}
	if(o1.value != o2.value){
		val_failed(o1,"Passwords do not match");
		return false;
	}
	else{ val_success(o1.id);}	
	
}
//valiodate name
function val_name(o){
	hideToolTip(o);
	if(is_empty(o.value) == false){
		val_failed(o,"Please enter your name");
		return false;
	}
	else{ val_success(o.id);}
	if(specialchar_check(o.value) == 0){
		val_failed(o,"Invalid name. Special characters are not allowed");
		return false;
	}
	else{ val_success(o.id);}

	if(isAlpha(o.value) == false){
		val_failed(o,"Invalid name. Numbers are not allowed");
		return false;
	}
	else{ val_success(o.id);}
	
	if(o.value.length < 3){
		val_failed(o,"Minimum 3 characters");
		return false;
	}
	else{ val_success(o.id);}
}
//validate email
function val_email(o,i){
	hideToolTip(o);
	if(is_empty(o.value) == false){
		val_failed(o,"Please enter your Email address");
		return false;
	}
	else{ val_success(o.id);}
	if(is_email(o.value) == false){
		val_failed(o,"Invalid Email Address");
		return false;
	}
	else{ val_success(o.id);}

	if(i != "1"){
		availablity_email(o,o.value);
	}
	/*var availval=checkavail(o.value,'checkEmail');*/
	if(avail_email == 1){
		val_failed(o,"Sorry! Email already exists. Please choose another");
		return false;
	}
	else if(avail_email == 2){
		val_failed(o,"Invalid Email Address");
		return false;
	}	
}
//check email availablity
function availablity_email(o,strEmail){
	avail_email="";
	val_success(o.id);
	document.getElementById("checkingMsgEmail").innerHTML="<br clear='all'><img src='http://imgs.clickjobs.com/jbs/images/iup-arrow.gif' border='0' alt=''>&nbsp;Checking availability of email...";
	document.getElementById("err_email").innerHTML="&nbsp;<img src='http://imgs.clickjobs.com/jbs/images/sloading1.gif' border='0' alt='' class='icon icopos'>";
	var pars="selectedIndex="+strEmail+"&objname=checkEmail";
	var url ='/lib/check_avail_user.php';
	var sucReqUname=function(t){
		document.getElementById("checkingMsgEmail").innerHTML="";
		avail_email=t;
		if(t == "1"){
			val_failed(o,"Sorry! Email already exists. Please choose another");
			return false;
		}
		else if(t == "2"){
			val_failed(o,"Invalid Email Address");
			return false;
		}
		else{ val_success(o.id);}
	}
	getAjaxRes(url,pars,sucReqUname);

}
function val_dob(){
	var error = true;
	var y=document.createacc.year.value;
	var m=document.createacc.month.value;
	var d=document.createacc.date.value;
	var err=document.getElementById("dateErrDis");
 	if (d == "" && m == "" && y == "") error =false;
 	else if(d == "") error = false;
  	else if(m == "") error = false;
  	else if(y == "") error = false;
	
	if(d > 28 && y != ""){
		if(m == 02){
			febdays = daysInFebruary(y);
			if (d > parseInt(febdays) )
				error = false;
		}
		else{	
			if(d > 30){
				if (m==4 || m==6 || m==9 || m==11)
				error = false;
			}
		}
	}
	if(error == false){
		document.createacc.year.className='validation-failed';
		document.createacc.month.className='validation-failed';
		document.createacc.date.className='validation-failed';
		val_failed(err,"Invalid date of birth");
		return false;	
	}else{
		document.createacc.year.className='validation-passed';
		document.createacc.month.className='validation-passed';
		document.createacc.date.className='validation-passed'; 
		val_success(err.id);
	}
}
function val_gender(){
	var j=0;
	var genderElm=document.createacc.gender;
	var err=document.getElementById("genErrDis");
	for(var i=0;i<genderElm.length;i++){
		if(genderElm[i].checked == true){
			j++;
		}
	}
	if(j == 0){
		val_failed(err,"Invalid date of birth");
		return false;
	}
	else{ val_success(err.id);}
}
function val_indus(o){
	if(is_empty(o.value) == false){
		val_failed(o,"Please select your Industry");
		return false;
	}
	else{ val_success(o.id);}
}
function val_company(o){
	hideToolTip(o);
	if(isVisibleElm(o) == true){
		if(is_empty(o.value) == false){
			val_failed(o,"Please select your company");
			return false;
		}
		else{ val_success(o.id);}
		if(o.value.length < 3){
			val_failed(o,"Minimum 3 characters");
			return false;
		}
		else{ val_success(o.id);}
	}
	
	
}
function val_jobtit(o){
	hideToolTip(o);
	if(isVisibleElm(o) == true){
		if(is_empty(o.value) == false){
			val_failed(o,"Please enter your job title");
			return false;
		}
		else{ val_success(o.id);}
		if(o.value.length < 3){
			val_failed(o,"Minimum 3 characters");
			return false;
		}
		else{ val_success(o.id);}
	}
			
}
function val_country(o){
	if(is_empty(o.value) == false){
		val_failed(o,"Please select your country");
		return false;
	}
	else{ val_success(o.id);}
}
function val_loc(o){
	if(is_empty(o.value) == false){
		val_failed(o,"Please select your location");
		return false;
	}
	else{ val_success(o.id);}
}
function val_interest(){
	var elm=document.createacc.elements;
	var err=document.getElementById("intErrDis");
	var j=0;
	for(var i=0;i<elm.length;i++){
		if(elm[i].name=="intrest[]"){
			if(elm[i].checked == true){
				j++;
			}
		}
	}
	
	if(j == 0){
		val_failed(err,"Please select your interest");
		return false;
	}
	else{ val_success(err.id);}
}

/******************** Common Functions *****************/

function sapcevalidate(aTextField){
	strRE = new RegExp(/[\s ]/gi);
	var nn = strRE.test( aTextField );
	return nn;
}
function val_success(id,classname){
	remErr(id,"validation-passed");
	document.getElementById("err_"+id).innerHTML='<img src="http://imgs.clickjobs.com/jbs/images/itick.gif" border="0" alt="" class="lt" style="_margin:4px 0px 4px 5px; margin:3px 0px 4px 5px; vertical-align:middle;">';
}
function val_failed(o,errmsg){
	//o.focus();
	addErr(o,errmsg);
	document.getElementById("err_"+o.id).innerHTML='';
}
//Add Error Message 
function addErr(o,errMsg,errDispId)
{
    o.className="validation-failed";
    o.parentNode.insertBefore
    var errMsgId = "manErr_"+o.id;
	if(errDispId == '' || errDispId == null){ errDispId=o; }
	
    if(!document.getElementById(errMsgId)){
        var em = document.createElement('span');
        em.id = errMsgId;
	em.innerHTML = "<img src='http://imgs.clickjobs.com/jbs/images/ierror.gif' border='0' alt='' class='lt' style='_margin:4px 0px 4px 5px; margin:3px 0px 4px 5px; vertical-align:middle;' id='erravailable'><br class='clr'><img src='http://imgs.clickjobs.com/jbs/images/iup-arrow.gif' border='0' alt=''>&nbsp;<span class='err' id='err_msg_dis_man_"+o.id+"'>"+errMsg+"</span><a id='tosetfocusonthis' href='#'></a>";
        errDispId.parentNode.insertBefore(em,errDispId.nextSibling);
    }else{
	document.getElementById("err_msg_dis_man_"+o.id).innerHTML=errMsg;
	}
}

//Remove Error Message 
function remErr(id,cname){
   document.getElementById(id).className=cname;
	 var k = "manErr_"+id
    if(document.getElementById(k))
    {
        var em=document.getElementById(k);	
        em.parentNode.removeChild(em);
    }
}

// empty validation
function is_empty(val){
	var re = /\s/g; 
	RegExp.multiline = true;
	var str = val.replace(re, "");
	if (str.length == 0) { return false;} else {return true;}
}
//email validation
function is_email(e){
	var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i
	var returnval=emailfilter.test(e)
	return returnval;
}
//special character validation
function specialchar_check(v)
{
	var retVal=1;
	var iChars = "`~!@#$%^&*()+=-[]\\\';,./{}|\":<>?";
	  for (var i = 0; i < v.length; i++) {
		if (iChars.indexOf(v.charAt(i)) != -1)
		retVal=0;
  	}
	return retVal;
}
//common ajax
function getAjaxRes(url,params,ResRetFun){
	var http = new GetXmlHttpObject();
	http.open("POST", url, true);
	//Send the proper header information along with the request
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Content-length", params.length);
	http.setRequestHeader("Connection", "close");

	http.onreadystatechange = function() {
		if(http.readyState == 4 && http.status == 200)
			ResRetFun(http.responseText);	
	}
	http.send(params);
}
function GetXmlHttpObject(){
	var xmlHttp=null;
	try{ xmlHttp=new XMLHttpRequest();}
	catch (e){// Internet Explorer
		try{ xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}
		catch (e){ xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}
	}
	return xmlHttp;
}
function isVisibleElm(e) {	
	if (typeof e == "string") {
		e = xGetElementById(e);
	}
	while (e.nodeName.toLowerCase() != 'body' && e.style.display.toLowerCase() != 'none' && e.style.visibility.toLowerCase() != 'hidden') {   
	e = e.parentNode;
	}
	if (e.nodeName.toLowerCase() == 'body') {
	return true;
	} else{
	return false;
	}
}

function isAlpha(parm) {
	var lwr = 'abcdefghijklmnopqrstuvwxyz ';
	var upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
	var val = lwr+upr;
	if (parm == "") return true;
	for (i=0; i<parm.length; i++) {
		if (val.indexOf(parm.charAt(i),0) == -1) return false;
	}
	return true;
}
  function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }

  function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }