/* Public functions */
function getFormValues(fobj)
{
	var str = "";
	var valueArr = null;
	var val = "";
	var cmd = "";
	for(var i = 0;i < fobj.elements.length;i++)
	{
		switch(fobj.elements[i].type)
		{
			case "password":
			case "text":
			case "textarea":
			case "hidden":
				if (fobj.elements[i].value.length > 0) {
					str += fobj.elements[i].name +
					"=" + encodeURI(fobj.elements[i].value).replace(/&/g, "%26") + "&";
				}
				break;
			case "radio":
			case "checkbox":
				if (fobj.elements[i].checked) {
					str += fobj.elements[i].name +
					"=" + encodeURI(fobj.elements[i].value).replace(/&/g, "%26") + "&";
				}
				break;
			case "select-one":
				str += fobj.elements[i].name +
				"=" + encodeURI(fobj.elements[i].options[fobj.elements[i].selectedIndex].value).replace(/&/g, "%26") + "&";
				break;
		}
	}
	str = str.substr(0,(str.length - 1));
	return str;
}

var bSaf = (navigator.userAgent.indexOf('Safari') != -1);
var bOpera = (navigator.userAgent.indexOf('Opera') != -1);
var bMoz = (navigator.appName == 'Netscape');
function execJS(node) {
  var st = node.getElementsByTagName('SCRIPT');
  var strExec;
  for(var i=0;i<st.length; i++) {     
    if (bSaf) {
      strExec = st[i].innerHTML;
    }
    else if (bOpera) {
      strExec = st[i].text;
    }
    else if (bMoz) {
      strExec = st[i].textContent;
    }
    else {
      strExec = st[i].text;
    }
    try {
      eval(strExec.split("<!--").join("").split("-->").join(""));
    } catch(e) {
      alert(e);
    }
  }
}

/* Ajax functions */
var bSaf = (navigator.userAgent.indexOf('Safari') != -1);
var bOpera = (navigator.userAgent.indexOf('Opera') != -1);
var bMoz = (navigator.appName == 'Netscape');

function createAjaxRequest() {
	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) {
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		return false;
	}
	return http_request;
}

function doAjaxRequest(ajaxRequest, type, url, data, callback, obj) {
	if (!ajaxRequest) {
		return false;
	}
	
	ajaxRequest.onreadystatechange = function() {
		if (ajaxRequest.readyState==4 || ajaxRequest.readyState=="complete") {
			if (ajaxRequest.status == 200) {
				if (obj) callback(true, ajaxRequest, obj);
				else callback(true, ajaxRequest);
			} else {
				if (obj) callback(false, ajaxRequest, obj);
				else callback(false, ajaxRequest);
			}
		}
	}

	ajaxRequest.open(type, url, true);
	if (type == 'POST') {
		ajaxRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=iso-8859-15");
	} else {
		ajaxRequest.setRequestHeader("Content-Type","text/xml; charset=iso-8859-15");
	}
	ajaxRequest.send(data);
	return true;
}

/* Private functions */
var get;
function ajaxCallback(success, request) {
	if (!success) return;

	var oHtml = request.responseText;
	var re = /<!--startajaxcontent-->([\S\s]*?)<!--endajaxcontent-->/i;
	var oMatch = re.exec(oHtml);
	if (oMatch==null) oMatch = new Array(null,'Niets gevonden');

	var container = document.getElementById('ajaxcontent');
	if (container){
		container.className = '';
		container.innerHTML = '<!--startajaxcontent-->'+oMatch[1]+'<!--endajaxcontent-->';
	}
	execJS(container);
	loadIndicator(false);

	var pagetitle = document.getElementById('PageTitle');
	if (pagetitle) var title = 'Vacature '+(document.all ? $('PageTitle').innerText : $('PageTitle').textContent);
	if (container) var html = (document.all ? container.innerText : container.textContent).replace(/\s+/g,' ');

	var url = 'adsense.php?title='+encodeURI(title)+'&html='+encodeURI(html);
	var iframe1 = document.getElementById('adsense1');
	if (iframe1) iframe1.src = url.substr(0,1000)+'&banner=1';
	var iframe2 = document.getElementById('adsense2');
	if (iframe2) iframe2.src = url.substr(0,1000)+'&banner=2';

/*	var pagetop = document.getElementById('top');
	if(pagetop) {
		var myFx = new Fx.Scroll(window, { duration: 500, wait: false }).toElement('top');
	}
*/	sIFR.replace(titel_test, { selector: 'h1,h3' ,css: [ '.sIFR-root { color: #808080; text-align: left; text-transform: lowercase;}' ] ,wmode: 'transparent' });	
}

function ajaxBrowse(id,page){
	get = document.ajaxsearch.action;
	get+= '&p='+page;
	ajaxSubmit();
}

function ajaxView(url){
	var request = createAjaxRequest();
	doAjaxRequest(request, 'POST', url, null, ajaxCallback);
	loadIndicator(true);
}

function ajaxCall(elem, e){
	var validSubmit = false;
	get = document.ajaxsearch.action;	
	
	if(elem.type=='checkbox'){
		validSubmit = true;
	}
	else if(elem.type=='text'){
		var key = (window.event ? event.keyCode : e.keyCode);
		if(key==13){
			validSubmit = true;
		}
	}
	else if(elem.type=='button' || elem.type=='hidden'){
		validSubmit = true;
	}

	if(validSubmit == true){
		get+= '&p=1';
		ajaxSubmit();
	}
}

function ajaxSubmit(){
	post = getFormValues(document.ajaxsearch);		
	get+= '&'+post;

	var request = createAjaxRequest();
	doAjaxRequest(request, 'POST', get, null, ajaxCallback);
	loadIndicator(true);
}

function loadIndicator(loading){
	var loadindicator = document.getElementById('ajaxload');
	var container = document.getElementById('ajaxcontent');
	
	if(loading){
		if(loadindicator) loadindicator.style.display = 'block';
		if(container) container.className = 'faded';
	} else {
		if(loadindicator) loadindicator.style.display = '';
		if(container) container.className = '';
	}
}
