var errors=0;

function is_null(objElement){
	if(objElement===null){
		//alert('is null');
		return false;
	} else {
		//alert('not null');
		return true
	}
}


function Validate_text(name,msg){
	var el=document.getElementById(name);
	if(el.value==''){
		el.setAttribute("class", "red");
		di=document.getElementById('e_'+name);
		di.innerHTML=msg;
		di.style.display='block';
		errors++;
		return false;
	} else {
		el.setAttribute("class", "green");
		di=document.getElementById('e_'+name);
		di.innerHTML='';
		di.style.display='none';
	}
}


function ValidateSelectBox(name,msg){
    /*
    if(name=="salary_min1"){
    	var el=document.getElementById('job_type');
    	var val=el.options[el.selectedIndex].value;
    	if(val=="104"){
    	    var di=document.getElementById('e_'+name);
    		di.innerHTML='';
    		di.style.display='';		
            return true;
    	}
    } else if(name=="salary_min2") {
    	var el=document.getElementById('job_type');
    	var val=el.options[el.selectedIndex].value;
    	if(val=="103"){
            return true;
    		var di=document.getElementById('e_'+name);
    		di.innerHTML='';
    		di.style.display='';		
            return true;
        }
    }
    */
	var el=document.getElementById(name);

	if(el.options[el.selectedIndex].value<=0 || el.selectedIndex==-1){
	  	el.setAttribute("class", "red");
		di=document.getElementById('e_'+name);
		di.innerHTML=msg;
		di.style.display='block';
		errors++;
		return false;
	} else {
		el.setAttribute("class", "green");
		di=document.getElementById('e_'+name);
		di.innerHTML='';
		di.style.display='none';
	}
	
	// Custom Functions
	if(name=="job_type"){
    	JobTypeChanged(name);
    }
}


function Validate_counter(name,msg){
	var el=document.getElementById(name);

	if(el.value=="0"){
	  	el.setAttribute("class", "red");
		di=document.getElementById('e_'+name);
		di.innerHTML=msg;
		di.style.display='block';
		errors++;
		return false;
	} else {
		el.setAttribute("class", "green");
		var di=document.getElementById('e_'+name);
		di.innerHTML='';
		di.style.display='none';
	}
}


function Validate_date(name,msg) {

	var el=document.getElementById(name);
    var dateStr=el.value;
	var di=document.getElementById('e_'+name);

    // To require a 4 digit year entry, use this line instead:
    var datePat = /^(\d{1,2})( )(\d{1,2})\2(\d{4})$/;

    var matchArray = dateStr.match(datePat); // is the format ok?
    if (matchArray == null) {
		di.innerHTML="Date is not in a valid format.";
		di.style.display='block';
	    el.setAttribute("class", "red");
		//el.focus();
		errors++;
        return false;
    }
    month = matchArray[3]; // parse date into variables
    day = matchArray[1];
    year = matchArray[4];
    if (month < 1 || month > 12) { // check month range

	    di.innerHTML="Month must be between 1 and 12."
		di.style.display='block';
	    el.setAttribute("class", "red");
		//el.focus();
		errors++;
        return false;
    }
    if (day < 1 || day > 31) {
	    di.innerHTML="Day must be between 1 and 31."
		di.style.display='block';
	    el.setAttribute("class", "red");
		//el.focus();
		errors++;
        return false;
    }
    if ((month==4 || month==6 || month==9 || month==11) && day==31) {
	    di.innerHTML="Month "+month+" doesn't have 31 days!"
		di.style.display='block';
	    el.setAttribute("class", "red");
		//el.focus();
		errors++;
        return false
    }
    if (month == 2) { // check for february 29th
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
        if (day>29 || (day==29 && !isleap)) {
	        di.innerHTML="February " + year + " doesn't have " + day + " days!"
		    di.style.display='block';
	        el.setAttribute("class", "red");
		    //el.focus();
		    errors++;
            return false;
        }
    }
	el.setAttribute("class", "green");
	var di=document.getElementById('e_'+name);
	di.innerHTML='';
	di.style.display='none';
    return true;  // date is valid
}


function echeck(str) {

    var at="@"
    var dot="."
    var lat=str.indexOf(at)
    var lstr=str.length
    var ldot=str.indexOf(dot)
    if (str.indexOf(at)==-1){
        return false
    }
    if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
        return false
    }
    if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
        return false
    }
    if (str.indexOf(at,(lat+1))!=-1){
        return false
    }
    if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
        return false
    }
    if (str.indexOf(dot,(lat+2))==-1){
        return false
    }
    if (str.indexOf(" ")!=-1){
        return false
    }
    return true
}


function Validate_email(name,err){

    var el=document.getElementById(name);
    var di=document.getElementById('e_'+name);
    
    if(echeck(el.value)){
        el.setAttribute("class", "green");
        var di=document.getElementById('e_'+name);
        di.style.display='none';
    } else {
        el.setAttribute("class", "red");
        var di=document.getElementById('e_'+name);
        di.innerHTML=err;
        errors++;
        di.style.display='';
        return false;
    }
    
    /*
        // lets check for existing email address in the database;
        JsHttpRequest.query(
	 	    'process.php?p=check_email',
            {
			'email':el.value,
			'type':'cand',
			'id':{/literal}{$me.id}{literal}
            },
            function(result, errors) {
		        if(errors)alert(errors);
                if (result) {
                    if(result["status"]=="OK"){
				        el.setAttribute("class", "green");
			            di.style.display='none';
                    } else {
		                el.setAttribute("class", "red");
            			di.style.display='';
            			di.innerHTML=result["status"];
    					errors++;
    					return false;
					}
                }
            },
            true // do not disable caching
        );
    */
}

function Validate_textarea(name,err){
    Validate_text(name,err);
}

function Validate_wysiwyg(name,err){
    tinyMCE.triggerSave();
    Validate_text(name,err);
}

function Validate_cv(name,msg){
    Validate_text(name,msg);
}

function Validate_money(name,err){
    var el=document.getElementById(name);
    var di=document.getElementById('e_'+name);
    moneyFormat(document.getElementById(name));
    if(el.value==0.00){
        el.setAttribute("class", "red");
        var di=document.getElementById('e_'+name);
        di.innerHTML=err;
        errors++;
        di.style.display='';
        return false;
    } else {
        el.setAttribute("class", "green");
        var di=document.getElementById('e_'+name);
        di.style.display='none';
    }
}

function moneyFormat(textObj) {
   var newValue = textObj.value;
   var decAmount = "";
   var dolAmount = "";
   var decFlag = false;
   var aChar = "";

   // ignore all but digits and decimal points.
   for(i=0; i < newValue.length; i++) {
      aChar = newValue.substring(i,i+1);
      if(aChar >= "0" && aChar <= "9") {
         if(decFlag) {
            decAmount = "" + decAmount + aChar;
         }
         else {
            dolAmount = "" + dolAmount + aChar;
         }
      }
      if(aChar == ".") {
         if(decFlag) {
            dolAmount = "";
            break;
         }
         decFlag=true;
      }
   }

   // Ensure that at least a zero appears for the dollar amount.

   if(dolAmount == "") {
      dolAmount = "0";
   }
   // Strip leading zeros.
   if(dolAmount.length > 1) {
      while(dolAmount.length > 1 && dolAmount.substring(0,1) == "0") {
         dolAmount = dolAmount.substring(1,dolAmount.length);
      }
   }

   // Round the decimal amount.
   if(decAmount.length > 2) {
      if(decAmount.substring(2,3) > "4") {
         decAmount = parseInt(decAmount.substring(0,2)) + 1;
         if(decAmount < 10) {
            decAmount = "0" + decAmount;
         }
         else {
            decAmount = "" + decAmount;
         }
      }
      else {
         decAmount = decAmount.substring(0,2);
      }
      if (decAmount == 100) {
         decAmount = "00";
         dolAmount = parseInt(dolAmount) + 1;
      }
   }

   // Pad right side of decAmount
   if(decAmount.length == 1) {
      decAmount = decAmount + "0";
   }
   if(decAmount.length == 0) {
      decAmount = decAmount + "00";
   }

   // Check for negative values and reset textObj
   if(newValue.substring(0,1) != '-' ||
         (dolAmount == "0" && decAmount == "00")) {
      textObj.value = dolAmount + "." + decAmount;

   }
   else{
      textObj.value = '-' + dolAmount + "." + decAmount;
   }
}

function Validate_tandc(name,msg){
    var el=document.getElementById(name);
    var di=document.getElementById('e_'+name);
    //alert(name + '--' + el.checked)

    if(el.checked!=true){
        el.setAttribute("class", "red");
        di.style.display='';
        di.innerHTML=msg;
        errors++;
        return false;
    }

    el.setAttribute("class", "green");
    di.style.display='none';
    di.innerHTML="";

}
function Validate_tickbox(name,msg){
    var el=document.getElementById(name);
    var di=document.getElementById('e_'+name);
    //alert(name + '--' + el.checked)

    if(el.checked!=true){
        el.setAttribute("class", "red");
        di.style.display='';
        di.innerHTML=msg;
        errors++;
        return false;
    }

    el.setAttribute("class", "green");
    di.style.display='none';
    di.innerHTML="";

}


function Plus(s){
	var i = parseInt(s.value);
	i++;
	s.value=i;
}

function Minus(s){
	var i = parseInt(s.value);
	if(i>1){
	    i--;
		s.value=i;
	}
}

function CalendarCallBack(e){
    Validate_date(e,'Please enter valid date');
}

function CheckMandatory(id,ctype){
	switch(ctype){
		case 'text':
			if(document.getElementById(id).value==''){
			    //alert("Text: "+id);
		        errors=true;
            }
			break;

		case 'int':
            var ch=false;
		    for(var i=0;i<5;i++){
		        /*alert(
		            'id: ' + document.getElementById(id+"_"+i).id + '\n\n' +
		            'name: ' + document.getElementById(id+"_"+i).name + '\n\n' +
		            'checked: ' + document.getElementById(id+"_"+i).checked + '\n\n' +
		            'value: ' + document.getElementById(id+"_"+i).value + '\n\n' +
		            'nodeName: ' + document.getElementById(id+"_"+i).nodeName + '\n\n' +
		            'type: ' + document.getElementById(id+"_"+i).type + '\n\n' 
		        
		        )*/
			    if(document.getElementById(id+"_"+i).checked){
			   	    ch=true;
			   	    break;
			   	}
		   	}
		    if(!ch){
			    //alert("Int: "+id);
			    errors=true;
			}
		    break;

		case 'yesno':
			if(!document.getElementById(id+"_yes").checked && !document.getElementById(id+"_no").checked ){
			    //alert("yesno: "+id);
				errors=true;
			}
		    break;

		case 'tick':
 	        if(!document.getElementById(id).checked)
 	            //alert("tick: "+id);
                errors=true;
		    break;
    }
}

function alphanum(a){
    var pattern = /[^a-zA-Z0-9.@_-]+/;
    return ! pattern.test ( a );
}

	
function Validate_password(name,msg){

    var el=document.getElementById(name);
    var di=document.getElementById('e_'+name);
    
    if(el.value.length<4) {
        el.setAttribute("class", "red");
        di.style.display='';
        di.innerHTML=msg;
        errors++;
        return false;
    }
    
    if(!alphanum(el.value)) {
        el.setAttribute("class", "red");
        di.style.display='';
        di.innerHTML="Please use only alphanumeric symbols";
        errors++;
        return false;
    }
    
    if(el.value!=document.getElementById('cand_web_pass').value){
        el.setAttribute("class", "red");
        di.style.display='';
        di.innerHTML="Please confirm your password";
        errors++;
        return false;
    }
    
    el.setAttribute("class", "green");
    di.style.display='none';
    di.innerHTML="";
}

    
function Validate_username(name,msg){
    
    var el=document.getElementById(name);
    var di=document.getElementById('e_'+name);
    
    if(el.value==''){
        el.setAttribute("class", "red");
        di.style.display='';
        di.innerHTML=msg;
        errors++;
        return false;
    } else {
    
        if(!alphanum(el.value)){
            el.setAttribute("class", "red");
            di.style.display='';
            di.innerHTML="Please use only alphanumeric symbols";
            errors++;
            return false;
        }
    
        // lets check for existing username;
        JsHttpRequest.query(
            'process.php?p=check_username',
            {
            'username':el.value
            },
            function(result, errors) {
                if(errors)alert(errors);
                if (result) {
                    if(result["status"]=="OK"){
                        el.setAttribute("class", "green");
                        di.style.display='none';
                    } else {
                        el.setAttribute("class", "red");
                        di.style.display='';
                        di.innerHTML=result["status"];
                        errors++;
                        return false;
                    }
                }
            },
            true // do not disable caching
        );
    }
}

function JobTypeChanged(name){
	var el=document.getElementById(name);
	var val=el.options[el.selectedIndex].value;
    var row1=document.getElementById("row_salary_min1");
    var row2=document.getElementById("row_salary_min2");

    switch(val){
        case '103':
            //perm;
            row2.style.display='none';
            row1.style.display='';
            break;
        case '104':
            //interim;
            row2.style.display='';
            row1.style.display='none';
            break;
        case '105':
            //both;
            row2.style.display='';
            row1.style.display='';
                        break;
    }
}

function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
		num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
		cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '' + num + '.' + cents);
};


function PeriodChanged(f){

	val = f.options[f.selectedIndex].value;
	salary = document.getElementById('salary');
	salary.options.length = 0;
	
	if(document.getElementById('salary2')){
    	salary2 = document.getElementById('salary2');
    	salary2.options.length=0;
	} else {
	    salary2 = false;
	}
    var o = document.createElement('option');
	o.value = 0;
	o.text = 'All';
	b = o.cloneNode(true);
	try {
	    salary.add(o, null); // standards compliant; doesn't work in IE
	} catch(ex) {
		salary.add(o); // IE only
	}
    if(salary2){
    	try {
    	    salary2.add(b, null); // standards compliant; doesn't work in IE
    	} catch(ex) {
    		salary2.add(b); // IE only
    	}
	}

    switch(val){
		case 'A': //annual;
            sal = ann_sal; break;
		case 'D':  	// days
		    sal = day_sal; break;
		case 'H':   // hours
			sal = hour_sal; break;
    }

    for(var i=0;i<sal.length-1;i++){

		var o = document.createElement('option');
        
        t = sal[i];
		o.value='p'+i;
		o.text = t;
		
        try {
			salary.add(o, null); // standards compliant; doesn't work in IE
		}catch(ex) {
			salary.add(o); // IE only
		}
        if(salary2){
		    b = o.cloneNode(true);
			try {
				salary2.add(b, null); // standards compliant; doesn't work in IE
			}catch(ex) {
				salary2.add(b); // IE only
			}
		}
    }
	

	if(val!='0'){
		salary.selectedIndex=1;
		if(salary2)salary2.selectedIndex=salary2.options.length-1;
	}
};/**/














//
//	switch(val){
//		case '91':
//
//			for(var i=0;i<sal.length-1;i++){
//
//	 			var o = document.createElement('option');
//				o.value='p'+i;
//	 			o.text=formatCurrency(sal[i]);
//	 			var b=o.cloneNode(true);
//
//				try {
//					salary.add(o, null); // standards compliant; doesn't work in IE
//				}catch(ex) {
//					salary.add(o); // IE only
//				}
//                if(salary2){
//    				try {
//    					salary2.add(b, null); // standards compliant; doesn't work in IE
//    				}catch(ex) {
//    					salary2.add(b); // IE only
//    				}
//				}
//			}
//			break;
//
//		case '93': // weeks;
//
//			for(var i=0;i<sal.length-1;i++){
//
//				var o = document.createElement('option');
//				var t=sal[i]/52;
//				o.value='p'+i;
//				o.text=formatCurrency(Math.round(t*10)/10);
//				//salary.add(o,null);
//				var b=o.cloneNode(true);
//
//				try {
//					salary.add(o, null); // standards compliant; doesn't work in IE
//				}catch(ex) {
//					salary.add(o); // IE only
//				}
//                if(salary2){
//    				try {
//    					salary2.add(b, null); // standards compliant; doesn't work in IE
//    				}catch(ex) {
//    					salary2.add(b); // IE only
//    				}
//				}
//			}
//            break;
//
//		case '102': // months;
//
//			for(var i=0;i<sal.length-1;i++){
//
//				var o = document.createElement('option');
//				var t=sal[i]/12;
//				o.value='p'+i;
//				o.text=formatCurrency(Math.round(t*10)/10);
//				var b=o.cloneNode(true);
//
//				try {
//					salary.add(o, null); // standards compliant; doesn't work in IE
//				}catch(ex) {
//					salary.add(o); // IE only
//				}
//                if(salary2){
//    				try {
//    					salary2.add(b, null); // standards compliant; doesn't work in IE
//    				}catch(ex) {
//    					salary2.add(b); // IE only
//    				}
//    		    }
//			}
//			break;
//
//		case '92':  	// days
//
//			for(var i=0;i<sal.length-1;i++){
//
//				var o = document.createElement('option');
//				var t=sal[i]/260;
//				o.value='p'+i;
//				o.text=formatCurrency(Math.round(t*10)/10);
//				var b=o.cloneNode(true);
//
//				try {
//					salary.add(o, null); // standards compliant; doesn't work in IE
//				}catch(ex) {
//					salary.add(o); // IE only
//				}
//                if(salary2){
//    				try {
//    					salary2.add(b, null); // standards compliant; doesn't work in IE
//    				}catch(ex) {
//    					salary2.add(b); // IE only
//    				}
//				}
//			}
//			break;
//
//		case '94':   // hours
//
//			for(var i=0;i<sal.length-1;i++){
//
//				var o = document.createElement('option');
//				var t=sal[i]/1950;
//				o.value='p'+i;
//				o.text=formatCurrency(Math.round(t*10)/10);
//				var b=o.cloneNode(true);
//
//				try {
//					salary.add(o, null); // standards compliant; doesn't work in IE
//				}catch(ex) {
//					salary.add(o); // IE only
//				}
//                if(salary2){
//    				try {
//    					salary2.add(b, null); // standards compliant; doesn't work in IE
//    				}catch(ex) {
//    					salary2.add(b); // IE only
//    				}
//				}
//
//			}
//			break;
//
//	} // End Switch




