// *******************************************************************************************
//	parse array
// *******************************************************************************************

function parseArray(subjectArray)
{
    var i;
    for (i=0; i < subjectArray.length; i++)
	{
		document.write(i+". "+subjectArray[i]+"<br>");
    }
}


// *******************************************************************************************
//	SUBMENUS
// *******************************************************************************************
function ShowSubMenus() {

	// Opdrachtgevers
	var SubMenuStatusOpdrachtgevers = Get_Cookie("SubMenuOpdrachtgevers");
	if (SubMenuStatusOpdrachtgevers == 'block')
		ShowSubMenuOpdrachtgevers();

	// Uitzendkrachten
	var SubMenuStatusUitzendkrachten = Get_Cookie("SubMenuUitzendkrachten");
	if (SubMenuStatusUitzendkrachten == 'block')
		ShowSubMenuUitzendkrachten();

	// Vestigingen
	var SubMenuStatusVestigingen = Get_Cookie("SubMenuVestigingen");
	if (SubMenuStatusVestigingen == 'block')
		ShowSubMenuVestigingen();
}

function SubMenuOpdrachtgevers() {
	var SubMenuStatus = document.getElementById('SubMenuOpdrachtgevers').style.display;
	if (SubMenuStatus == 'block')
		HideSubMenuOpdrachtgevers();
	else
		ShowSubMenuOpdrachtgevers();

	// Hide the other submenu's
	HideSubMenuUitzendkrachten();
	HideSubMenuVestigingen();
}

function SubMenuUitzendkrachten() {
	var SubMenuStatus = document.getElementById('SubMenuUitzendkrachten').style.display;
	if (SubMenuStatus == 'block')
		HideSubMenuUitzendkrachten();
	else
		ShowSubMenuUitzendkrachten();

	// Hide the other submenu's
	HideSubMenuOpdrachtgevers();
	HideSubMenuVestigingen();	
}

function SubMenuVestigingen() {
	var SubMenuStatus = document.getElementById('SubMenuVestigingen').style.display;
	if (SubMenuStatus == 'block')
		HideSubMenuVestigingen();
	else
		ShowSubMenuVestigingen();

	// Hide the other submenu's
	HideSubMenuOpdrachtgevers();
	HideSubMenuUitzendkrachten();	
}

function ShowSubMenuOpdrachtgevers() {
	var expires = CookieExpires();
	document.getElementById('SubMenuOpdrachtgevers').style.display = 'block';
	Set_Cookie("SubMenuOpdrachtgevers","block",expires);
}

function HideSubMenuOpdrachtgevers() {
	var expires = CookieExpires();
	document.getElementById('SubMenuOpdrachtgevers').style.display = 'none';
	Set_Cookie("SubMenuOpdrachtgevers","none",expires);
}

function ShowSubMenuUitzendkrachten() {
	var expires = CookieExpires();
	document.getElementById('SubMenuUitzendkrachten').style.display = 'block';
	Set_Cookie("SubMenuUitzendkrachten","block",expires);
}

function HideSubMenuUitzendkrachten() {
	var expires = CookieExpires();
	document.getElementById('SubMenuUitzendkrachten').style.display = 'none';
	Set_Cookie("SubMenuUitzendkrachten","none",expires);
}

function ShowSubMenuVestigingen() {
	var expires = CookieExpires();
	document.getElementById('SubMenuVestigingen').style.display = 'block';
	Set_Cookie("SubMenuVestigingen","block",expires);
}

function HideSubMenuVestigingen() {
	var expires = CookieExpires();
	document.getElementById('SubMenuVestigingen').style.display = 'none';
	Set_Cookie("SubMenuVestigingen","none",expires);
}

function OpenPopUp(url, width, height)
{
	//alert(url + width + height);
	if(isNaN(width))
		width = 400;
	if(isNaN(height))
		height = 300;
	
	window.open(url, '', 'width = ' + width + ', height = ' + height + ', status = 1, resizable = 1');
	return false;
}

// *******************************************************************************************
//	COOKIE
// *******************************************************************************************
function Get_Cookie(name) {
    var start = document.cookie.indexOf(name+"=");
    var len = start+name.length+1;
    if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
    if (start == -1) return null;
    var end = document.cookie.indexOf(";",len);
    if (end == -1) end = document.cookie.length;
    return unescape(document.cookie.substring(len,end));
}

function Set_Cookie(name,value,expires,path,domain,secure) {
    document.cookie = name + "=" +escape(value) +
        ( (expires) ? ";expires=" + expires.toGMTString() : "") +
        ( (path) ? ";path=" + path : "") + 
        ( (domain) ? ";domain=" + domain : "") +
        ( (secure) ? ";secure" : "");
}
function CookieExpires() {
	var today	= new Date();
	var expires = new Date(today.getTime() + (56 * 86400000));
	
	return expires;
}
// *******************************************************************************************
//	FORMCHECKS
// *******************************************************************************************
function SetFFStyle(el, status) {
	if (status == 'Bad')
	{
		// Backup current classname in cookie
		if (el.className != 'FormCheckBad')
		{		
			var expires = CookieExpires();
			Set_Cookie("ContactClassName", el.className,expires);
		}

		// Change classname to bad
		el.className = 'FormCheckBad';
	}
	else
	{
		// Get classname from cookie	
		var ContactClassName = Get_Cookie("ContactClassName");

		if (ContactClassName != 'FormCheckBad' && ContactClassName != '')
		{
			// Restore classname from cookie
			el.className = ContactClassName;
		}
		else
		{
			// Restore to default class	
			el.className = 'FormCheckGood';
		}
	}
}

function CheckField(fieldname, message) {
	if(fieldname) {
		if (fieldname.value == "") {
			SetFFStyle(fieldname, 'Bad');
			message = '- '+message+'\n';
			return message;
		} else {
			SetFFStyle(fieldname, 'Good');
			return '';
		}
	} else {
		return '';
	}
}

function CheckCheckbox(fieldname, message) {
	if(fieldname) {
		if (fieldname.checked != true) {
			SetFFStyle(fieldname, 'Bad');
			message = '- '+message+'\n';
			return message;
		} else {
			SetFFStyle(fieldname, 'Good');
			return '';
		}
	} else {
		return '';
	}
}

function CheckEmail(fieldname, message) {
	if(fieldname) {
		if (fieldname.value == "") {
			SetFFStyle(fieldname, 'Bad');
			message = '- '+message+'\n';
			return message;
		} else if (IsEmail(fieldname.value) == false) {
			SetFFStyle(fieldname, 'Bad');
			message = '- '+message+' is geen geldig e-mailadres !\n';
			return message;
		} else {
			SetFFStyle(fieldname, 'Good');
			return '';
		}
	} else {
		return '';		
	}
}

function IsEmail(str) {
  // are regular expressions supported?
  var supported = 0;
  if (window.RegExp)
  {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) 
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}

// *******************************************************************************************
//	FORM (Aanmelden Kandidaat)
// *******************************************************************************************
function FormAanmeldenKandidaat() {
	// FORM
	var f = document.kandidaat_aanmelden;

	// MESSAGE
	var header = 'De volgende velden zijn niet correct ingevuld:\n\n';

	// CHECK FIELDS
	var message = '';
	message += CheckField(f.naam,		'Naam');
	message += CheckField(f.straat,		'Straat');
	message += CheckField(f.huisnummer,	'Huisnummer');
	message += CheckField(f.postcode,	'Postcode');
	message += CheckField(f.plaats,		'Plaats');
	
	message += CheckField(f.geboortedag,	'Geboortedag');
	message += CheckField(f.geboortemaand,	'Geboortemaand');
	message += CheckField(f.geboortejaar,	'Geboortejaar');

	message += CheckField(f.functie_werkzaamheden,	'Functie & werkzaamheden');

	message += CheckField(f.telefoon,	'Telefoon');
	message += CheckEmail(f.emailadres,	'Emailadres');

  	if (message != "") {
		alert(header+''+message);
		return false
	}
}
// *******************************************************************************************
//	FORM (Aanmelden vacature)
// *******************************************************************************************
function FormAanmeldenVacature() {
	// FORM
	var f = document.vacature_aanmelden;

	// MESSAGE
	var header = 'De volgende velden zijn niet correct ingevuld:\n\n';

	// CHECK FIELDS
	var message = '';
	message += CheckField(f.bedrijfsnaam,	'Bedrijfsnaam');
	message += CheckField(f.contactpersoon,	'Contactpersoon');
	message += CheckField(f.straat,			'Straat');
	message += CheckField(f.huisnummer,		'Huisnummer');
	message += CheckField(f.postcode,		'Postcode');
	message += CheckField(f.plaats,			'Plaats');

	message += CheckField(f.telefoon,		'Telefoon');
	message += CheckEmail(f.emailadres,		'Emailadres');
	
	message += CheckField(f.functienaam,	'Functienaam');	

  	if (message != "") {
		alert(header+''+message);
		return false
	}
}
// *******************************************************************************************
//	FORM (info request)
// *******************************************************************************************
function FormInfoRequest() {
	// FORM
	var f = document.info_request;

	// MESSAGE
	var header = 'De volgende velden zijn niet correct ingevuld:\n\n';

	// CHECK FIELDS
	var message = '';
	message += CheckField(f.naam,		'Naam');
	message += CheckField(f.straat,		'Straat');
	message += CheckField(f.huisnummer,	'Huisnummer');
	message += CheckField(f.postcode,	'Postcode');
	message += CheckField(f.plaats,		'Plaats');

	message += CheckField(f.telefoon,	'Telefoon');
	message += CheckEmail(f.emailadres,	'Emailadres');
	
	message += CheckField(f.toelichting,'Toelichting');

  	if (message != "") {
		alert(header+''+message);
		return false
	}
}
// *******************************************************************************************
//	FORM (reaction candidate)
// *******************************************************************************************
function FormReactionCandidate() {
	// FORM
	var f = document.candidate_reaction;

	// MESSAGE
	var header = 'De volgende velden zijn niet correct ingevuld:\n\n';

	// CHECK FIELDS
	var message = '';
	message += CheckField(f.bedrijfsnaam,	'Bedrijfsnaam');
	message += CheckField(f.contactpersoon,	'Contactpersoon');
	message += CheckField(f.adres_straat,	'Adres');
	message += CheckField(f.adres_huisnr,	'Huisnummer');
	message += CheckField(f.postcode,		'Postcode');
	message += CheckField(f.plaats,			'Plaats');

	message += CheckField(f.telefoon,		'Telefoon');
	message += CheckEmail(f.emailadres,		'Emailadres');

  	if (message != "") {
		alert(header+''+message);
		return false
	}
}
// *******************************************************************************************
//	FORM (reaction vacancie)
// *******************************************************************************************
function FormReactionVacancie() {
	// FORM
	var f = document.vacancie_reaction;

	// MESSAGE
	var header = 'De volgende velden zijn niet correct ingevuld:\n\n';

	// CHECK FIELDS
	var message = '';
	message += CheckField(f.naam,			'Naam');
	message += CheckField(f.adres,			'Adres');
	message += CheckField(f.huisnr,			'Huisnummer');
	message += CheckField(f.postcode,		'Postcode');
	message += CheckField(f.plaats,			'Plaats');

	message += CheckField(f.geboortedag,	'Geboortedag');
	message += CheckField(f.geboortemaand,	'Geboortemaand');
	message += CheckField(f.geboortejaar,	'Geboortejaar');

	message += CheckField(f.telefoon,		'Telefoon');
	message += CheckEmail(f.emailadres,		'Emailadres');

  	if (message != "") {
		alert(header+''+message);
		return false
	}
}
// *******************************************************************************************
//	FORM (check if all fields are filled)
// *******************************************************************************************

function formCheck(color,feedback)
{
	//array with not selected form items
	var feedback_array = CheckElements();
	
	//array with items previously markt as not selected
	//var prev_feedback_array = Get_Cookie('feedback');
	if (feedback_array.length < 1)
	{
		return true;
	}
	else
	{			
		//if there is a cookie, this is a second failed attempt at filling in all fields => first set fields to their original color
		if(Get_Cookie('form_feedback'))
		{
			var old_feedback_array = Get_Cookie('form_feedback');

			ManipulateFormStyle(old_feedback_array.split("|"),'white')
			Delete_Cookie('form_feedback');
		}		

		//Make the empty fields show up in a diffrent color
		ManipulateFormStyle(feedback_array,color)

		//write array to cookie (attempt at unmarking items at a second submit(TODO: not yet finished)
		Set_Cookie('form_feedback',feedback_array.join("|")) //no expiry date -> expires after browser close 
	}
	alert(feedback);
	return false;
}

function ManipulateFormStyle(feedback_array,color)
{
		var i;
    	for (i=0;i<feedback_array.length;i++)
    	{
			//select the elements that belong with the name out of the feedback array
			var j;
			for (j=0;j<document.forms[0].elements.length;j++)
			{
				if(document.forms[0].elements[j].name == feedback_array[i])
				{
					if(document.forms[0].elements[j].type == 'radio')
					{
						document.forms[0].elements[j].parentNode.parentNode.parentNode.parentNode.style.backgroundColor = color;
					}
					
					if(document.forms[0].elements[j].type == 'textarea')
					{
						document.forms[0].elements[j].parentNode.parentNode.style.backgroundColor = color;
					}
				}
			}
		}
}
		
	
function CheckElements()
{
	//form elements array
	var fe_array = document.forms[0].elements
	
	//set up an empty feedback array
	var feedback_array=new Array()
	key = 0;
	
	//loop door de form elements array
	var i;
    for (i=0;i<fe_array.length;i++)
    {
       	//return false on empty textarea
		if (fe_array[i].type == "textarea" && fe_array[i].value == "")
		{
			//return feedback array
			feedback_array[key] = fe_array[i].name;
			key++;
			//alert (fe_array[i].name);
			//return false;
		}
	   	   //if the button is a radio button and his parent is not hidden
	    else if (fe_array[i].type == "radio" && fe_array[i].parentNode.style.visibility != "hidden" )
		{
			if(!RbGroupIsChecked(fe_array[i].name,fe_array))
			{
				//return feedback array
				feedback_array[key] = fe_array[i].name;
				key++;
				//alert (fe_array[i].name);
				//return  false;
			}
		}
    }

	return feedback_array;
}


// checks if one radiobutton in a group of radiobuttons is checked
function RbGroupIsChecked(name,el_array)
{
	for (i=0;i<el_array.length;i++)
	{
		if (el_array[i].name == name && el_array[i].checked)
		{
			return true;
		}
	}
	return false;
}


// *******************************************************************************************
//	COOKIE
// *******************************************************************************************
function Get_Cookie(name) {
    var start = document.cookie.indexOf(name+"=");
    var len = start+name.length+1;
    if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
    if (start == -1) return null;
    var end = document.cookie.indexOf(";",len);
    if (end == -1) end = document.cookie.length;
    return unescape(document.cookie.substring(len,end));
}

function Set_Cookie(name,value,expires,path,domain,secure) {
    document.cookie = name + "=" +escape(value) +
        ( (expires) ? ";expires=" + expires.toGMTString() : "") +
        ( (path) ? ";path=" + path : "") + 
        ( (domain) ? ";domain=" + domain : "") +
        ( (secure) ? ";secure" : "");
}
function CookieExpires() {
	var today	= new Date();
	var expires = new Date(today.getTime() + (56 * 86400000));
	
	return expires;
}

function Delete_Cookie(name, path, domain)
{
	if(Get_Cookie(name)) document.cookie = name + "=" +
	((path) ? ";path=" + path : "") +
	((domain) ? ";domain=" + domain : "" ) +
	";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

//############# AJAX ###############

function CallUrl(url)
{
	var tag = document.createElement("script");
	tag.type="text/javascript";
	tag.src = url;
	document.getElementsByTagName("head")[0].appendChild(tag);
	window.status='';
  
	return true;
}

/* order directly */

function DoHttpRequest(url, callback_function, el)
{
    var http_request = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
        }
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) { }
        }
    }

    if (!http_request) {
        alert('Unfortunatelly you browser doesn\'t support this feature.');
        return false;
    }

    http_request.onreadystatechange = function() {
	
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
                //eval(callback_function + "(http_request.responseXML, " + id + ")");
				eval(callback_function + "(http_request.responseXML, el)");
            } else {
                alert('There was a problem with the request.(Code: ' + http_request.status + ')');
            }
        }
    }
    http_request.open('GET', url, true);
    http_request.send(null);
}

function DirectOrder(xml, el)
{
	var xmlDoc = xml;
	
	var sp_id = xmlDoc.getElementsByTagName('sp_id');

	var spl_title = xmlDoc.getElementsByTagName('spl_title');
		
	if(spl_title[0].firstChild)
	{
	 	//el.style.color="green";
		//el.style.fontWeight="bold";
		
		var text = "<img src='/shared/images/custom/1024/icon_yes.gif' border='0' width='23' height='24' style='vertical-align:-50%;'> " + spl_title[0].firstChild.nodeValue;
		//var sp_id = sp_id[0].firstChild.nodeValue;	
	}
	else
	{
		el.style.color="red";
		el.style.fontWeight="bold";
		el.nextSibling.nextSibling.style.fontWeight="bold";
		var text = "<img src='/shared/images/custom/1024/icon_no.gif' border='0' width='24' height='24' style='vertical-align:-50%;'> Dit is geen geldig artikel nummer";	
	}
	el.nextSibling.nextSibling.innerHTML=text;	
	
}