var HiringLib = {};

HiringLib.SetCookie = function(cookieName,cookieValue,nDays) {
	var today = new Date();
	var expire = new Date();
	
	if (nDays==null || nDays==0) nDays=1;
		expire.setTime(today.getTime() + 3600000*24*nDays);
	document.cookie = cookieName + "=" + escape(cookieValue) + ";expires=" + expire.toGMTString();
}

HiringLib.changephase = function(phase, act, other){};

HiringLib.popUp = function(id) {
	props = window.open('./hiring_curriculum_report.php?person=' + id, 'poppage', 'toolbars=0, scrollbars=0, location=0, statusbars=0, menubars=0, resizable=0, width=800, height=600, left = 176, top = 132');
}

HiringLib.change_date = function(component, ind, day, month, year, msg){

	var pars = 'msg=' + msg + '&component=' + component  + '&day=' + day  + '&month=' + month + '&year=' + year + '&ini_fin=' + ind +  '&aleat=' + HiringLib.genRandom() + '&function=rpc&show_details=1';

	new Ajax.Updater(component, './lib/functions.php', {method: 'post', parameters:pars });
	return false;
}

HiringLib.genRandom = function(){
	aleat = Math.random() * 5000;
	aleat = Math.round(aleat);
	return aleat;
}

HiringLib.change_date_aux = function(init_userid,person,component, ind, day, month, year, msg, future,anoinicial){
	future = 0;
	var pars = 'person=' + person + '&init_userid=' + init_userid  + '&msg=' + msg + '&component=' + component  + '&day=' + day  + '&month=' + month + '&year=' + year + '&ini_fin=' + ind + '&future=' + future + '&function=rpc&initial_in_contract=true&anoinicial=' + anoinicial;
	new Ajax.Updater(component, './lib/functions.php', {method: 'post', parameters:pars });
	return false;
}

HiringLib.doSearch = function() {
 
 new Ajax.Updater('mymain','./lib/functions.php', {
	method: 'post',
	evalScripts:true,
	parameters: 'function=search&tag='+$('search').value
	}
 );
 
 return false;
 
}

HiringLib.doSearch2 = function() {

  var pars='';

  pars += '&arr[a.area_interest]=' + $F('area_interest');

  if($('name').value.length > 0){
        pars += '&arr[a.name]=' + HiringLib.special_replace($('name'));
  }

  pars += '&arr[a.status]=' + $('status').value;

  if($('company').value.length > 0){
        pars += '&arr[b.company]=' + HiringLib.special_replace($('company'));
  }

  if($('school').value.length > 0){
        pars += '&arr[c.institute]=' + HiringLib.special_replace($('school'));
  }

  new Ajax.Updater('div_msg','./lib/functions.php', {
        method: 'post',
        evalScripts:true,
        parameters: 'function=search_array' + pars
  }
  );
  return false;

}

HiringLib.check_form = function() {
 
	 $('divmsg').removeClassName('errmsg');
	 $('divmsg').hide();
	 $('divmsg_education').hide();
	 $('divmsg_job').hide();
 
	 if($('name').value.length == 0){
		 $('divmsg').toggleClassName('errmsg');
		 $('divmsg').update('Please, insert a name');
		 $('divmsg').show();
		 window.scrollTo(0,0);
		 return false;
	 }
	
	if($('email').value.length == 0){
		$('divmsg').toggleClassName('errmsg');
		$('divmsg').update('Please, insert an e-mail');
		$('divmsg').show();
		window.scrollTo(0,0);
		return false;
	}
	
	if( ($('phone').value.length == 0) && ($('celphone').value.length == 0) ){
		$('divmsg').toggleClassName('errmsg');
		$('divmsg').update('Please, insert a phone or mobile phone');
		$('divmsg').show();
		window.scrollTo(0,0);
		return false;
	}

	 if(($('person_status').value == 'Employee')&&($('contract_type').value == '0')){
		 $('divmsg').toggleClassName('errmsg');
		 $('divmsg').update('Please, insert a contract type');
		 $('divmsg').show();
		 window.scrollTo(0,0);
		 return false;
	 }

	 for (i=0;i<=$('num_education').value;i++){
		if($('formation'+i) == null)
			continue;
		else
	         	if(!(($('formation'+i).value==0) && ($('institute'+i).value.length==0) && ($('course'+i).value.length==0) && ($('date_conclusion'+i).value==0))&&!(($('formation'+i).value!=0) && ($('institute'+i).value.length!=0) && ($('course'+i).value.length!=0) && ($('date_conclusion'+i).value!=0))){
				$('divschooling_link').onclick();
				$('divschooling').scrollTo();
				$('divschooling').show();
				$('divmsg_education').show();
				return false;
	  		}
	 }
	  
	 for (i=0;i<=$('num_jobs').value;i++){
	  	if($('job'+i) == null)
			continue;
		else
		 	if(!(($('job'+i).value.length==0) && ($('charge'+i).value.length==0) && ($('date_initial'+i).value==0) && ($('description'+i).value==0))&&!(($('job'+i).value.length!=0) && ($('charge'+i).value.length!=0) && ($('date_initial'+i).value!=0) && ($('description'+i).value!=0))){
				$('div_last_jobs_link').onclick();
				$('div_last_jobs').scrollTo();
				$('div_last_jobs').show();
				$('divmsg_job').show();
				return false;
	 	 	}
	 }

	dates_return = true;
	is_date_valid = false;
	for(i=0;i<$('formadd').length;i++){
	
		if ($('formadd')[i].id.search("date")>=0){

			if (($('formadd')[i].id.search("date_initial")>=0) || ($('formadd')[i].id.search("date_finish")>=0)){
				is_date_valid = HiringLib.validateDate($('formadd')[i].id,null,'mm/yyyy',true);
			}else if ($('formadd')[i].id.search("date_conclusion")>=0){
				is_date_valid = ($('formadd')[i].value.length == 0 || ($('formadd')[i].value.length == 4 && HiringLib.isInRange($('formadd')[i].value,1930,2050)));
			}else{
				is_date_valid = HiringLib.validateDate($('formadd')[i].id);
			}

			if(!is_date_valid){

				dates_return = false;

				if ($('formadd')[i].id != "date_birth"){
					obj = $('formadd')[i];
				
					while(obj.className != "group")
						obj = obj.parentNode;

					if(obj.style.display == "none")
						$(obj.id+"_link").onclick();	
					obj.scrollTo();	
				}
				else{
					window.scrollTo(0,0);
				}
				break;
			}
		}
	}
	if(!dates_return) return false;		

	  
	 return true;
} //end check_form

/************************************************* BEGIN CHECK DATE 

* DHTML date validation script for dd/mm/yyyy. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
*/
// Declaring valid date character, minimum year and maximum year



HiringLib.isInteger = function(s){
	var i;
	for (i = 0; i < s.length; i++){   
		// Check that current character is number.
		var c = s.charAt(i);
		if (((c < "0") || (c > "9"))) return false;
	}
	
	// All characters are numbers.
	return true;
}

HiringLib.isInRange = function(s,minVal,maxVal){
	var int_val;

	if (!HiringLib.isInteger(s)){
		return false;
	}
	int_val = parseInt(s);
	if (isNaN(int_val) || int_val<minVal || int_val>maxVal){
		return false;
	}

	return true;
}

HiringLib.stripCharsInBag = function(s, bag){
	var i;
	var returnString = "";
	// Search through string's characters one by one.
	// If character is not in bag, append to returnString.
	for (i = 0; i < s.length; i++){   
		var c = s.charAt(i);
		if (bag.indexOf(c) == -1) returnString += c;
	}
	return returnString;
}

HiringLib.daysInFebruary = function(year){
	// February has 29 days in any year evenly divisible by four,
	// EXCEPT for centurial years which are not also divisible by 400.
	
	return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}

HiringLib.DaysArray = function(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31;
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30;}
		if (i==2) {this[i] = 29;}
	} 
	return this;
}

HiringLib.compareDates = function(begin,end,msg,msg2){

	var dtCh= "/";

	// BUILD BEGIN DATE
	var pos1=begin.indexOf(dtCh);
	var pos2=begin.indexOf(dtCh,pos1+1);
	var strDay=begin.substring(0,pos1);
	var strMonth=begin.substring(pos1+1,pos2);
	var strYear=begin.substring(pos2+1);
	strYr=strYear;
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
	}
	month=parseInt(strMonth)-1;
        day=parseInt(strDay);
	year=parseInt(strYr);
	var beginDate=new Date();
	beginDate.setFullYear(year,month,day);


	// BUILD END DATE
	pos1=end.indexOf(dtCh);
	pos2=end.indexOf(dtCh,pos1+1);
	strDay=end.substring(0,pos1);
	strMonth=end.substring(pos1+1,pos2);
	strYear=end.substring(pos2+1);
	strYr=strYear;
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
	}

	month=parseInt(strMonth)-1;
	day=parseInt(strDay);
	year=parseInt(strYr);
	var endDate=new Date();
	endDate.setFullYear(year,month,day);


	if (beginDate>endDate){
		if (msg != null){
		 	msg.innerHTML = 'Start Date should be before End Date';
			msg.show();
		}
		return false;
	}	
	else{
		msg.hide()
		msg2.hide();
		return true;
	}	
		
	


}

HiringLib.isDate = function(dtStr,msg,format){

	var dtCh= "/";
	var minYear=1930;
	var maxYear=2050;

	var daysInMonth = HiringLib.DaysArray(12);
	var pos1=dtStr.indexOf(dtCh);
	var pos2=dtStr.indexOf(dtCh,pos1+1);
	var strDay=dtStr.substring(0,pos1);
	var strMonth=dtStr.substring(pos1+1,pos2);
	var strYear=dtStr.substring(pos2+1);
	strYr=strYear;
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
	}
	month=parseInt(strMonth);
	day=parseInt(strDay);
	year=parseInt(strYr);
	
	if (pos1==-1 || pos2==-1){
		if (msg != null){
			msg.innerHTML = 'The date format should be: '+format;
        	        msg.show();
		}	
		return false;
	}
	
	if (strMonth.length<1 || isNaN(month) || month<1 || month>12){
		if (msg != null){
			msg.innerHTML = 'Please enter a valid month';
			msg.show();
		}	
		return false;
	}
	
	if (strDay.length<1 || isNaN(day) || day<1 || day>31 || (month==2 && day>HiringLib.daysInFebruary(year)) || day > daysInMonth[month]){
		if (msg != null){
			msg.innerHTML = 'Please enter a valid day';
			msg.show();
		}	
		return false;
	}
	
	if (strYear.length != 4 || isNaN(year) || year==0 || year<minYear || year>maxYear){
		if (msg != null){
			msg.innerHTML = "Please enter a valid 4 digit year between "+minYear+" and "+maxYear;
			msg.show();
		}	
		return false;
	}
	
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || HiringLib.isInteger(HiringLib.stripCharsInBag(dtStr, dtCh))==false){
		if (msg != null){
			msg.innerHTML = "Please enter a valid 4 digit year between "+minYear+" and "+maxYear;
			msg.show();
		}	
		return false;
	}

	return true;
}

//HiringLib.validateDate = function(id,msg,format){
//	return HiringLib.validateDate(id,msg,format,false);
//}

HiringLib.validateDate = function(id,msg,format,add_day,begin_id,end_id,msg2){
	format = format || 'dd/mm/yyyy';
	add_day = add_day || false;
	var dtCh= "/";
	var val = $(id).value;
	var pos1=val.indexOf(dtCh);
	var pos2=val.indexOf(dtCh,pos1+1);

	if(add_day && val.length <= 7){
		if (pos1 != -1 && pos2 == -1)
			val = '01/' + val;
	}

	if ((val.length > 0) && (HiringLib.isDate(val,msg,format)==false)){
		//setTimeout("$('"+id+"').focus()",60);
		return false;
	}
	
	if(begin_id != null && end_id != null){
		
		if(add_day){
			if ($(begin_id).value.length == 7)
				begin_val = '01/' + $(begin_id).value;
			else
				begin_val = $(begin_id).value;
			if ($(end_id).value.length == 7)
				end_val = '01/' + $(end_id).value;
			else
				end_val = $(end_id).value;
		}
		else{
			 begin_val = $(begin_id).value;
   	                 end_val = $(end_id).value;
		}	

		if(!HiringLib.compareDates(begin_val,end_val,msg,msg2))
			return false;

	}	

	return true;
}
	  
/*********************************************** END CHECK DATE */


HiringLib.popCurriculum = function(formId, id_person) {
	window.open('', 'poppage', 'toolbars=0, scrollbars=1, location=0, statusbars=0, menubars=0, resizable=0, width=800, height=600, left = 176, top = 132');
	var form = document.getElementById(formId);
	form.id_person.value = id_person;
	form.submit();
}

HiringLib.special_replace = function(field) {

/*
	var my_text = field.value;
	for ( var i = 0 ; i < str_old.length ; i++ ){
		my_text = my_text.replace( str_old[i] , str_new[i] );
	}
	return my_text;
*/
	return field.value;
}


HiringLib.addJob = function(){

	$('num_jobs').value = parseInt($('num_jobs').value)+ 1;

	$('jobs_fields').insert("<div id='new_jobs"+$('num_jobs').value+"'></div>");

	$('new_jobs'+$('num_jobs').value+'').insert("<div id='div_company"+$('num_jobs').value+"' class='title gray border1'><div class='w90 leftcol'> Company </div> </div>");


	$('new_jobs'+$('num_jobs').value+'').insert("<div><label class='title'>Company</label><br/><input type='text' name='job"+$('num_jobs').value+"' id='job"+$('num_jobs').value+"' style='width: 564px'  maxlength='65' /></div>");


	$('new_jobs'+$('num_jobs').value+'').insert("<div> <label class='title'>Job Title</label><br/> <input type='text' name='charge"+$('num_jobs').value+"' id='charge"+$('num_jobs').value+"' style='width: 564px'  maxlength='65' /></div>");

	$('new_jobs'+$('num_jobs').value+'').insert("<div class='clear'></div>");


	$('new_jobs'+$('num_jobs').value+'').insert("<table style='width:564px;' width='564px'><tr><td class='tablecol w50' width='50%'><div class='errmsg2' id='divmsg_datejob" + $('num_jobs').value + "' style='display: none;'></div></td><td class='tablecol w50' width='50%'><div class='errmsg2' id='divmsg_datejob" + $('num_jobs').value + "_res' style='display: none;'></div></td></td><tr><td class='tablecol w50' width='50%'><div id='iinicial"+$('num_jobs').value+"' class='leftcol bottom-space'> <label class='title'>Start Date (mm/yyyy)</label><br/>  <input type='text' name='date_initial"+$('num_jobs').value+"' id='date_initial"+$('num_jobs').value+"' size='7' maxlength='7' onblur='if(HiringLib.validateDate(this.id,$("+String.fromCharCode(34)+"divmsg_datejob"+$('num_jobs').value+String.fromCharCode(34)+"),"+String.fromCharCode(34)+"mm/yyyy"+String.fromCharCode(34)+",true,this.id,"+String.fromCharCode(34)+"date_finish"+$('num_jobs').value+String.fromCharCode(34)+",$("+String.fromCharCode(34)+"divmsg_datejob"+$('num_jobs').value+'_res'+String.fromCharCode(34)+"))) $("+String.fromCharCode(34)+"divmsg_datejob"+$('num_jobs').value+String.fromCharCode(34)+").hide();'/> </div></td><td class='tablecol w50' width='50%'>         <div id='ifinal"+$('num_jobs').value+"' class='bottom-space'>  <label class='title'>End Date (mm/yyyy)</label><br/> <input type='text' name='date_finish"+$('num_jobs').value+"' id='date_finish"+$('num_jobs').value+"' size='7' maxlength='7' onblur=' if(HiringLib.validateDate(this.id,$("+String.fromCharCode(34)+"divmsg_datejob"+$('num_jobs').value+'_res'+String.fromCharCode(34)+"),"+String.fromCharCode(34)+"mm/yyyy"+String.fromCharCode(34)+",true,"+String.fromCharCode(34)+"date_initial"+$('num_jobs').value+String.fromCharCode(34)+",this.id,$("+String.fromCharCode(34)+"divmsg_datejob"+$('num_jobs').value+String.fromCharCode(34)+")) ) $("+String.fromCharCode(34)+"divmsg_datejob"+$('num_jobs').value+'_res'+String.fromCharCode(34)+").hide();'/></div>         </td></tr></table>   ");



	$('new_jobs'+$('num_jobs').value+'').insert("<div class='clear'></div>");


/*

	$('new_jobs'+$('num_jobs').value+'').insert("<div class='clear'></div>");
	
	$('new_jobs'+$('num_jobs').value+'').insert("<div class='bottom-space right-space3 leftcol'>&nbsp;<div class='errmsg2' id='divmsg_datejob" + $('num_jobs').value + "' style='display: none;'>&nbsp;</div></div>");

	$('new_jobs'+$('num_jobs').value+'').insert("<div class='bottom-space leftcol'>&nbsp;<div class='errmsg2' id='divmsg_datejob" + $('num_jobs').value + "_res' style='display: none;'>&nbsp;</div></div>");

	$('new_jobs'+$('num_jobs').value+'').insert("<div class='clear'></div>");
	
	$('new_jobs'+$('num_jobs').value+'').insert("<div id='date_jobs"+$('num_jobs').value+"'>   <div id='iinicial"+$('num_jobs').value+"' class='leftcol right-space4 bottom-space'> <label class='title'>Date of Admission (mm/yyyy)</label><br/>  <input type='text' name='date_initial"+$('num_jobs').value+"' id='date_initial"+$('num_jobs').value+"' size='7' maxlength='7' onblur='if(HiringLib.validateDate(this.id,$("+String.fromCharCode(34)+"divmsg_datejob"+$('num_jobs').value+String.fromCharCode(34)+"),"+String.fromCharCode(34)+"mm/yyyy"+String.fromCharCode(34)+",true) ) $("+String.fromCharCode(34)+"divmsg_datejob"+$('num_jobs').value+String.fromCharCode(34)+").hide();'/> </div> <div id='ifinal"+$('num_jobs').value+"' class='lcol bottom-space'>  <label class='title'>Finish Date (mm/yyyy)</label><br/> <input type='text' name='date_finish"+$('num_jobs').value+"' id='date_finish"+$('num_jobs').value+"' size='7' maxlength='7' onblur=' if(HiringLib.validateDate(this.id,$("+String.fromCharCode(34)+"divmsg_datejob"+$('num_jobs').value+'_res'+String.fromCharCode(34)+"),"+String.fromCharCode(34)+"mm/yyyy"+String.fromCharCode(34)+",true) ) $("+String.fromCharCode(34)+"divmsg_datejob"+$('num_jobs').value+'_res'+String.fromCharCode(34)+").hide();'/></div></div>"
	);

	
	$('new_jobs'+$('num_jobs').value+'').insert("<div class='clear'></div>");
*/








	$('new_jobs'+$('num_jobs').value+'').insert("<div><label class='title'>Activities Description</label><br/><textarea style='width: 564px' cols='68' rows='5' name='description"+$('num_jobs').value+"' id='description"+$('num_jobs').value+"'></textarea></div><br/><br/>");
	$('div_company'+$('num_jobs').value+'').insert("<a class='rightcol' id='del_link2"+$('num_jobs').value+"' onclick='$("+String.fromCharCode(34)+"new_jobs"+$('num_jobs').value+String.fromCharCode(34)+").remove();' ><img border='0' src=./images/action_delete.png alt=Delete></img></a><div class='clear'></div>");

}

HiringLib.addEducation = function(){

	$('num_education').value = parseInt($('num_education').value)+ 1;
	$('schooling_fields').insert("<div id='new_education"+$('num_education').value+"'></div>");
	$('new_education'+$('num_education').value+'').insert("<div id='div_course"+$('num_education').value+"' class='title gray border1'><div class='w90 leftcol'> Course </div> </div>");
	$('new_education'+$('num_education').value+'').insert("<div id='div_formation"+$('num_education').value+"'> </div>");
	$('new_education'+$('num_education').value+'').insert("<div><label class='title'>School Name</label><br/><input type='text' name='institute"+$('num_education').value+"' id='institute"+$('num_education').value+"' style='width: 564px' maxlength='65' /></div>");
	$('new_education'+$('num_education').value+'').insert("<div><label class='title'>Course</label><br/><input type='text' name='course"+$('num_education').value+"' id='course"+$('num_education').value+"' style='width: 564px' maxlength='65' /></div>");
	$('new_education'+$('num_education').value+'').insert("<div class='leftcol bottom-space right-space'><div name='divmsg_yearconc"+$('num_education').value+"' class='errmsg2' id='divmsg_yearconc"+$('num_education').value+"' style='display: none;'></div></div><div class='clear'></div>");
	
	$('new_education'+$('num_education').value+'').insert("<div><label class='title'>Year of Conclusion</label><br/><input type='text' name='date_conclusion"+$('num_education').value+"' id='date_conclusion"+$('num_education').value+"' size='5'  maxlength='4' onblur=\"var minYear=1930;var maxYear=2050; if(this.value.length != 0 && (this.value.length != 4 || !HiringLib.isInRange(this.value,minYear,maxYear))){  $('divmsg_yearconc"+$('num_education').value+"').innerHTML = 'Please enter a valid 4 digit year between '+minYear+' and '+maxYear; $('divmsg_yearconc"+$('num_education').value+"').show(); } else { $('divmsg_yearconc"+$('num_education').value+"').hide();  }  \"/></div><br/><br/>");

	$('div_course'+$('num_education').value+'').insert("<a class='rightcol' id='del_link1"+$('num_education').value+"' onclick='$("+String.fromCharCode(34)+"new_education"+$('num_education').value+String.fromCharCode(34)+").remove(); ' ><img border='0' src=./images/action_delete.png alt='Delete'></img></a><div class='clear'></div>");
	
	new Ajax.Updater('div_formation'+$('num_education').value,'./lib/functions.php',{
	method: 'post',
	asynchronous:true,
	evalScripts:true,
	parameters: 'function=create_formation&num_education='+$('num_education').value
	
	}
	);

}

/*HiringLib.toggleDiv = function(link,div){

	if (link.innerHTML == "Show"){
		div.show();
		link.innerHTML = "Hide";
	}	
	else{
		div.hide();
		link.innerHTML = "Show";
	}	
}*/
