// JavaScript Document

function validateFiledoc(fld){	
	document.getElementById('doc_validate').style.display = "none";
	hide_els('error_msg' , 'files');
	if(!/(\.doc|\.docx|\.pdf|\.txt)$/i.test(fld.value)) {
	
	//show error message
	fld.value='';
	fld.focus();
	document.getElementById('doc_validate').style.display = "";
						
	}
}
function validateFileSample(fld){
	
	document.getElementById('sample_validate').style.display = "none";

	if(!/(\.doc|\.docx|\.pdf|\.txt|\.jpg|\.jpeg|\.ppt|\.pptx)$/i.test(fld.value)) {
	//show error message
	fld.value='';
	fld.focus();
	document.getElementById('sample_validate').style.display = "";
	}
	
}

function hide_els(classname, div)
{
	var to_hide = elements_by_class(classname, div);
	
	for (var i = 0; i < to_hide.length; i ++){
		to_hide[i].style.display = "none";
	}
}

function other_major(object)
{
	if (document.getElementById("majorlist").value == "2708576")
	//show other box
	{ 	document.getElementById("other_major").style.display = ""; }
	else
	{
		//give major the value from the select list
		document.getElementById("other_major").style.display = "none";
		var selectedText = object.options[object.selectedIndex].text;
		document.getElementById('major').value = selectedText;
	}
	//alert('major: '.concat(document.getElementById('major').value));	
}
function hide_jobs()
{
	//alert("hide jobs");
	var jobs_to_hide = elements_by_class("job_desc", "openings");
	for (var i = 0; i < jobs_to_hide.length; i ++){
		jobs_to_hide[i].style.display = "none";
	}
}

function show_job(code)
{
	document.getElementById("job_content").style.display = "";
	document.getElementById("apply_button_1").style.display = "";
	document.getElementById("apply_button_2").style.display = "";
	//alert("show jobs: ".concat(code));
	var elements = document.getElementById("job_content").getElementsByTagName("div");
	for (var i = 0; i < elements.length; i++) {
		 if(elements[i].id == code)  {elements[i].style.display = ""; 	 }
	}	
}

function show_func_area(code)
{
	document.getElementById("func_area_box").style.display = "";
	if (document.getElementById("openings")){
		var elements = document.getElementById("openings").getElementsByTagName("div");
		for (var i = 0; i < elements.length; i++) {
			if(elements[i].id == code)	{elements[i].style.display = "";}
		}
	}
}
		

function elements_by_class(search_class, div) 
{
	//alert("elements by class");
	var class_elements = new Array();
	var elements = document.getElementById(div).getElementsByTagName("div");
	 
	for (var i = 0; i < elements.length; i++) {
		if (elements[i].className 
					 && (elements[i].className.indexOf(search_class.toLowerCase()) > -1) 
					 && (elements[i].tagName.toLowerCase() != "td") 
					 && (elements[i].tagName.toLowerCase() != "tr") 
					 && (elements[i].tagName.toLowerCase() != "tbody"))		 
			{ class_elements.push(elements[i]); }
	}
	return class_elements;
}

	
function hide_all()
{
	document.getElementById("start_recruiting").style.display = "none";
	document.getElementById("openings").style.display = "none";
	
	document.getElementById("how_to_apply").style.display = "none";
	document.getElementById("faq").style.display = "none";
	//document.getElementById("apply_now").style.display = "none";
}

function show_section(section)
{
	hide_all();
	hide_jobs();
	window.scroll(0,0);
	document.getElementById(section).style.display = "";

}

function jobSelection(job)
{
	var selectedValue = job.options[job.selectedIndex].value;
	var selectedText = job.options[job.selectedIndex].text;
	
	//this tells us whether we are at the openings page or apply page
	//1. apply page - fill in the position info
	//2. openings page, show the right job
	if( document.getElementById('position') != null)	{	
		document.getElementById('position').value = selectedText; }
	//	alert('position: '.concat(document.getElementById('position').value));
	else{
		hide_jobs();
		show_job(selectedValue);		
		}	
}


function loadSelectElement(selObjId, options) {
	var selObj = document.getElementById(selObjId);

	// clear the target select element apart from the "select your..." option
	selObj.options.length = 1;

	// copy options from array of [value, pair] arrays to select box
	// IE doesn't work if you use the DOM-standard method, however...
	if (typeof(window.clientInformation) != 'undefined') {
		// IE doesn't take the second "before" parameter...
		for (var loop=0; loop<options.length; loop++) selObj.add(new Option(options[loop][1], options[loop][0]));
	} else {
		for (var loop=0; loop<options.length; loop++) selObj.add(new Option(options[loop][1], options[loop][0]), null);
	}
}

function madeSelection(selObj) {
	
	var selectedValue = selObj.options[selObj.selectedIndex].value;
	var selectedText = selObj.options[selObj.selectedIndex].text;
	if (selectedValue == '--') return;
	
	
	show_func_area(selectedValue);
	if (selObj.name == 'functional_area_select') {
		document.getElementById('job_selectContainer').style.display = 'block';
		//document.getElementById('job_select').options[0].text = 'Select an Opportunity ';

		
		switch(selectedValue) {
			case 'CRP':
				loadSelectElement('job_select', [
					
					['CRP_OAN', 'Operations Analyst'],
					['CRP_OAS', 'Operations Systems Associate'],
					['CRP_VRD', 'Research and Development Associate']
					['CRP_FDR', 'Field Director']

					//['CRP_RDA', 'Crop Production R&D Associate'],
					//['CRP_FLD', 'Field Learning & Development Associate']
					//['CRP_GIS', 'GIS mapping Associate'],
					//['CRP_PLO', 'Procurement & Logistics Officer']
			
				]);
				return;

			case 'EXR':
				loadSelectElement('job_select', [
					
					//['EXR_SMC', 'Social Media & Communications Summer Analyst'],

					//['EXR_FCA', 'External Relations Analyst'],
					//['TCH_WSA', 'Web and Social Media Analyst'],
					//['EXR_FCS', 'External Relations Associate']
					//['EXR_PVA', 'Photo & Video Analyst']
					//['EXR_FCD', 'External Relations Director']
					['EXR_FRA', 'Fundraising Analyst'],
					['EXR_MMA', 'Multimedia  Associate']
					
					 
		  
				]);
				return;

				return;
			case 'TCH':
				loadSelectElement('job_select', [
					['TCH_ITN', 'IT Analyst'],
				//	['TCH_WSA', 'Web and Social Media Analyst'],
					['TCH_TAS', 'Technology Associate']
					
				]);
				return;
			case 'VCP':
				loadSelectElement('job_select', [

					//['VCP_VCA', 'Value Capture Analyst'],					
					['VCP_VOA', 'Value Capture Operations Associate'],
					//['VCP_HFA', 'Value Capture Harvesting Associate'],
					//['VCP_PFA', 'Value Capture Processing Associate'],
					['VCP_HFA', 'Harvesting and Processing Associate '],
					
					//['VCP_VCD', 'Value Capture Director']
			
				]);
				return;
			case 'CUS':
				loadSelectElement('job_select', [

					//['CUS_UDA', 'US Organizational Development Analyst'],
					//['CUS_ODD', 'US Organizational Development Director'],
					['CUS_ODM', 'US Organizational Development Manager']
					
				]);
				return;
			case 'ORG':
				loadSelectElement('job_select', [
					['ORG_ODA', 'Organization Development Associate'],
					['ORG_FSN', 'Financial Systems Analyst'],
					['ORG_FSA', 'Finance Lead Associate'],
					//['ORG_LGL', 'Legal Counsel']
					//['ORG_HRM', 'Human Resources Manager'],
					//['ORG_ODD', 'Organization Development Director']
					
					//['ORG_CDR', 'Country Director'],
					//['ORG_CFO', 'CFO'],
	
					
				]);
				return;

		

			
		}
		
	} // functional_area_select

  // job_select
  
}


function form_validate() {
	
    var form_elements = new Array();
    var failed_validation = new String;
    failed_validation = "false";
	
	//get all elements in the form
	
    form_elements = document.getElementById("application_form").getElementsByTagName("*");
    //first clear color
	for (var i = 0; i < form_elements.length; i++) { form_elements[i].style.backgroundColor = "";}

    for (var i = 0; i < form_elements.length; i++) {
        if (
            form_elements[i].value == ""
            //exclude fields we're not displaying
            && form_elements[i].style.display.toLowerCase() != "none"
            && (form_elements[i].tagName.toLowerCase() == "input" || form_elements[i].tagName.toLowerCase() == "select"|| form_elements[i].tagName.toLowerCase() == "textarea")
            
           //exclude fields we don't require
            && form_elements[i].getAttribute("id").toLowerCase() != "skype"
			&& form_elements[i].getAttribute("id").toLowerCase() != "grad_school"
			&& form_elements[i].getAttribute("id").toLowerCase() != "grad_school_major"
			&& form_elements[i].getAttribute("id").toLowerCase() != "job_resp"
			&& form_elements[i].getAttribute("id").toLowerCase() != "position"
			&& form_elements[i].getAttribute("id").toLowerCase() != "submit_button"
			&& form_elements[i].getAttribute("id").toLowerCase() != "num_reports"
			&& form_elements[i].getAttribute("id").toLowerCase() != "why_africa"
			&& form_elements[i].getAttribute("id").toLowerCase() != "worksamplefile"
			
             
            )
        	{
				form_elements[i].style.backgroundColor = "#FFFF99";
				
				document.getElementById("error_flag").style.display = "block";
				document.getElementById("error_flag").focus();
		
				document.getElementById("error_flag").style.backgroundColor = "#FFFF99";
				failed_validation = "true";
				//alert(form_elements[i].id);
        	}
	}
// check job select
	var jobsel  = document.getElementById("functional_area_select");
	if (jobsel.options[jobsel.selectedIndex].value == "")
	{
		failed_validation  = "true";
		document.getElementById("job_select").style.backgroundColor = "#FFFF99";
	}
	
	//check numbre years work experience
	var work_exp  = document.getElementById("yrs_work_exp");
	if (work_exp != null &&  work_exp.value != parseInt(work_exp.value))
	{
		failed_validation  = "true";
		work_exp.style.backgroundColor = "#FFFF99";
		document.getElementById("error_flag_num").style.display = "";
		document.getElementById("error_flag_num").focus();
	}
	if (failed_validation == "false")
	{

		document.getElementById("error_flag").style.display = "none";
		document.getElementById("error_flag_num").style.display = "none";
		document.getElementById("application_form").submit();
		
  
	}
	else
	{
		var pos = getPosition(document.getElementById("error_flag"));
 		window.scroll(0,  pos.offsetTop);
		
	}
	
}
//ajax

   function do_xml() {
      makeRequest('job_xml.php', '?test=2');
   }
   function addrow(tablename, arr) {
   var tbl = document.getElementById(tablename);
   var lastRow = tbl.rows.length;
   var row = tbl.insertRow(lastRow);
      for (r = 0; r < arr.length; r++) {   
         var cell = row.insertCell(r);
         cell.innerHTML = arr[r];
      }
   }
   
   
   
   
  function do_xml(job) {
	var code = job.options[job.selectedIndex].value;
   alert(code);
   
   		//var xmlDoc=loadXMLDoc("jobs.xml");
		
	//	var x = xmlDoc.documentElement;
		xmlDoc=loadXMLDoc("jobs.xml");
		
		//document.write("Nodename: " + xmlDoc.nodeName);
		//document.write(" (nodetype: " + xmlDoc.nodeType + ")<br />");
		
		x=xmlDoc.documentElement;
		//x = root
		//document.write("Nodename: " + x.nodeName);
		//document.write(" (nodetype: " + x.nodeType + ")<br />");
	
		var job  = new Object();
		y=x.childNodes;
		//y = jobs
		for (i=0;i<y.length;i++)
			{
		//document.write("Nodename: " + y[i].nodeName);
		//document.write(" (nodetype: " + y[i].nodeType + ")<br />");
			//y[i] = job
			z=y[i].childNodes;			//get job code
			
			for (j=0;j<z.length;j++)
				{
					if(z[j].nodeName == 'code' && z[j].text == code ){ 		

					rightjob = y[i]; job_fields = rightjob.childNodes;
					for (m=0;m<job_fields.length;m++)
							{
							  job[job_fields[m].nodeName] = job_fields[m].text;
							}						
					}
				}
			}	
			
			document.getElementById("job_content").style.display = "";
	document.getElementById("apply_button_1").style.display = "";
	document.getElementById("apply_button_2").style.display = "";
	
			for (var l in job){
				
				//category is l
				//text is job[l]
				
				
				var s = document.getElementById(l);
				//get the category
				if( s!= null) {
				s.innerHTML = job[l].split("\n").join("<br/>");
				} 
			}	
	
   }	
   
   
function pick_area(code)
{

	//hide all areas
	var all_areas =  elements_by_class("area_box", "openings");
	for (i=0;i<all_areas.length;i++){
		all_areas[i].style.display = "none";
	}
	//show code area
	document.getElementById(code + "_box").style.display = "";
		window.scroll(0, 200);

}
function pick_job(code)
{
	//hide all jobs
	var all_jobs =  elements_by_class("job_desc", "openings");

	for (i=0;i<all_jobs.length;i++){
		
		all_jobs[i].style.display = "none";
	}
	
	//show code area
	document.getElementById(code).style.display = "";

		var element = document.getElementById(code);
	var pos = getPosition(element);
 	window.scroll(0,  pos.offsetTop);
}
function getPosition(element) {
		var left = 0;
		var top = 0;
		if(element.offsetParent) {
			while(element) {
				left += element.offsetLeft;
				top += element.offsetTop;
				element = element.offsetParent;
			}
		}
		return {offsetLeft: left, offsetTop: top};
	}
	
	