String.prototype.trim = function () {
	return this.replace(/^[ \t\n\r\0\x0B]+|[ \t\n\r\0\x0B]+$/g,'');
}

function add_s(link) {
	suggest_s_disable();
	s = document.getElementById('input_s').value.trim();
	href = link.href;
	o = href.indexOf('?');
	if (o != -1) { href = href.substr(0, o); }
	if (s != '') { link.href = href + '?s=' + escape(s); } else { link.href = href; }
}

function suggest_s_disable() {
	if (suggest_s) {
		document.getElementById('input_s').value = '';
		document.getElementById('input_s').style.color = 'black';
		document.getElementById('input_s').focus();
		setTimeout("document.getElementById('input_s').focus();", 0);		/* FF fix */
		suggest_s = false;
	}
}

function suggest_s_bottom_disable() {
	if (suggest_s_bottom) {
		document.getElementById('input_s_bottom').value = '';
		document.getElementById('input_s_bottom').style.color = 'black';
		document.getElementById('input_s_bottom').focus();
		setTimeout("document.getElementById('input_s_bottom').focus();", 0);	/* FF fix */
		suggest_s_bottom = false;
	}
}

//getting cross-browser xmlhttp object
function getXMLHTTP() {
	var xmlhttpO;

	try { xmlhttpO = new ActiveXObject("Msxml2.XMLHTTP"); }
	catch (e) { try { xmlhttpO = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { xmlhttpO = false; } }

	if (!xmlhttpO && typeof XMLHttpRequest != 'undefined') {
		try { xmlhttpO = new XMLHttpRequest();	} catch (e) { xmlhttpO = false; }
	}

	return xmlhttpO;
}

function loadMap(md5, lat, lng, bedrijfsnaam) {
	var map = new google.maps.Map(document.getElementById('map_' + md5), {
		zoom: 13,
		center: new google.maps.LatLng(lat, lng),
		mapTypeId: google.maps.MapTypeId.ROADMAP
	});
	var marker = new google.maps.Marker({
		position: new google.maps.LatLng(lat, lng),
		map: map,
		title: bedrijfsnaam
	});
}

function moreInfoToggle(md5) {
	var buttons = buttonsDivGet(md5);
	for (var i = 0; i < buttons.childNodes.length; i++) {
		var cN = buttons.childNodes[i];
		if (cN.title && (cN.title.indexOf('meer info') >= 0)) {
			if (cN.style.display == 'none') { cN.style.display = 'inline'; } else { cN.style.display = 'none'; }
		}
	}
}

function buttonsDivGet(md5) {
	var item = document.getElementById('md5_' + md5);	//modified, but deprecated
	for (var i = 0; i < item.childNodes.length; i++) { if (item.childNodes[i].className == 'buttons') { return item.childNodes[i]; } }
	return false;
}

function extraInfoGet(md5) {
	var item = document.getElementById('md5_' + md5);	//modified, but deprecated
	for (var i = 0; i < item.childNodes.length; i++) { if (item.childNodes[i].className == 'extraInfo') { return item.childNodes[i]; } }
	return false;
}

var xmlhttp, eILoadingMd5;
function extraInfoOpen(md5) {
	var eI = extraInfoGet(md5);
	if (eI) {
		eI.style.display = 'block';
		moreInfoToggle(md5);
	} else {
		eILoadingMd5 = md5;
		xmlhttp = getXMLHTTP();
		xmlhttp.open('GET', '/rpcs/extraInfo_xml.php?md5=' + md5, true);
		xmlhttp.onreadystatechange = extraInfoLoaded;
		xmlhttp.send(null);
	}

	return false;
}

function extraInfoClose(md5) {
	var eI = extraInfoGet(md5);
	eI.style.display = 'none';
	moreInfoToggle(md5);

	return false;
}

function extraInfoLoaded() {
	if (xmlhttp.readyState==4 && xmlhttp.status==200) {
		var item = document.getElementById('md5_' + eILoadingMd5);	//modified, but deprecated
		item.innerHTML += xmlhttp.responseText;

		moreInfoToggle(eILoadingMd5);

		var loadMapCall = xmlhttp.responseText.match(new RegExp(/loadMap\([^\)]*\)/));
		eval(loadMapCall[0]);
	}
}

function advancedSearchToggle() {
	var aSs = document.getElementById('advancedSearch').style;
	if (aSs.display == 'block') { aSs.display = 'none'; } else { aSs.display = 'block'; }
}

function s_single(s, field) {
	s.maxLength = s.maxLength + 5;
	s.value = field + ': ' + s.value;
}

function regioActive(row) {
	var mForm = document.forms['multi'];
	for (var i = 0; i < mForm.elements.length; i++) {
		var formElm = mForm.elements[i];
		var pRow = formElm.parentNode.parentNode;
		if (pRow == row) {
			if (!regio) { var regio = formElm.name; }
			formElm.style.backgroundColor = '#ffffff';
			formElm.style.color = '#000000';
		} else if (pRow.onclick) {
			formElm.style.backgroundColor = '#f8f8f8';
			formElm.style.color = '#c0c0c0';
		}
	}
	mForm.regio.value = regio;
}

var staticVals = new Array();
function keyEvent(e) {
	var formElm;
	if (e.srcElement) { formElm = e.srcElement; } else { formElm = e.target; }

	if (e.type == 'keydown') { staticVals[formElm.name] = formElm.value; }
	else if (e.type == 'keyup' && typeof staticVals[formElm.name] == 'string' && staticVals[formElm.name] != formElm.value) {
		staticVals[formElm.name] = false;
		regioActive(formElm.parentNode.parentNode);
	}
}

var map_markers = [];
function showMapIcon(nr, lat, lng, bedrijfsnaam) {
	var mapicon = new google.maps.MarkerImage('/images/layout/mapicons/' + nr + '.png', new google.maps.Size(33, 34), new google.maps.Point(0,0), new google.maps.Point(15, 14));

	var marker = new google.maps.Marker({
		position: new google.maps.LatLng(lat, lng),
		map: map,
		title: bedrijfsnaam,
		icon: mapicon,
		flat: true,
		zIndex: 1
	});

	if (document.getElementById('a_' + nr)) {
		google.maps.event.addListener(marker, 'click', function() { window.location = document.getElementById('a_' + nr).href; });
	} else {
		var infowindow = new google.maps.InfoWindow({content: createInfoNode(nr)});

		map_markers[nr] = [];
		map_markers[nr][0] = function() { infowindow.open(map, marker); }
		map_markers[nr][1] = function() { infowindow.close(); }

		google.maps.event.addListener(marker, 'mouseover', function() {
			for (var nr_i in map_markers) { map_markers[nr_i][1](); }
			map_markers[nr][0]();
		});
	}
}

function createInfoNode(nr) {
	var li_div = document.getElementById('li_div_' + nr).cloneNode(true);
	li_div.style.display = 'block';

	return li_div;
}

function set_local_search(regio) {
	if (!confirm('Wilt u ' + unescape(regio).substr(2) + ' instellen als uw regio?')) { return false; }

	//cookie
	exp = new Date(); exp.setTime(exp.getTime() + (365 * 24 * 60 * 60 * 1000));
	document.cookie = 'local_search=1; expires=' + exp.toGMTString() + '; path=/';
	document.cookie = 'local_regio=' + regio + '; expires=' + exp.toGMTString() + '; path=/';

	//visual
	document.getElementById('local_regio').innerHTML = unescape(regio).substr(2);
	document.getElementById('local_regio').parentNode.nextSibling.innerHTML = '(wijzig)';
	document.getElementById('local_search').checked = true;

	//visual search_adv
//	sync_local_to_multi(regio);

	return false;
}

function toggle_local_search(clr) {
	if (clr.checked) {
		//local_regio should be set
		if (!document.cookie.match('local_regio=[^;]+')) { clr.checked = false; return; }

		//cookie
		exp = new Date(); exp.setTime(exp.getTime() + (365 * 24 * 60 * 60 * 1000));
		document.cookie = 'local_search=1; expires=' + exp.toGMTString() + '; path=/';

		//visual search_adv
//		cstr = document.cookie; spos = cstr.indexOf('local_regio=') + 12; epos = cstr.indexOf(';', spos);
//		if (epos == -1) { epos = cstr.length; }
//		sync_local_to_multi(cstr.substring(spos, epos));
	} else {
		//cookie
		document.cookie = 'local_search=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/';

		//visual search_adv
//		sync_local_to_multi(false);
	}
}

function getScrollXY() {
	var scrOfX = 0, scrOfY = 0;
	if (typeof(window.pageYOffset) == 'number' ) {
		//Netscape compliant
		scrOfY = window.pageYOffset;
		scrOfX = window.pageXOffset;
	} else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
		scrOfX = document.body.scrollLeft;
	} else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
		scrOfX = document.documentElement.scrollLeft;
	}
	return [scrOfX, scrOfY];
}

function getViewPort() {
	var vPw = 0, vPh = 0;

	//the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
	if (typeof window.innerWidth != 'undefined') {
		vPw = window.innerWidth, vPh = window.innerHeight;

	//IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)
	} else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0) {
		vPw = document.documentElement.clientWidth, vPh = document.documentElement.clientHeight;

	//older versions of IE
 	} else {
		vPw = document.getElementsByTagName('body')[0].clientWidth, vPh = document.getElementsByTagName('body')[0].clientHeight;
	}
	return [vPw, vPh];
}

function applyFog() {
	var f = document.getElementById('fog');
	var fc = document.getElementById('fog_center');

	f.style.display = 'block';
	if (f.clientHeight < 20) { /* IE6 needs a fix */
		var dcH = document.documentElement.clientHeight;
		var bcH = (document.body.offsetHeight + 255);
		if (dcH > bcH) { f.style.height = dcH + 'px'; } else { f.style.height = bcH + 'px'; }
	}

	fc.style.display = 'block';

	return fc;
}

function closeFog() {

	if (document.getElementById('eo_form')) {
		if (document.getElementById('eo_form').style.display == 'block') {
			eo_form_close();
			return;
		}
	}

	if (document.getElementById('eo_help')) {
		if (document.getElementById('eo_help').style.display == 'block') {
			eo_help_close();
			return;
		}
	}

	var f = document.getElementById('fog');
	var fc = document.getElementById('fog_center');

	while (fc.firstChild) { fc.removeChild(fc.firstChild); }

	if (document.getElementById('ctrlDiv')) { document.body.removeChild(document.getElementById('ctrlDiv')); }

	fc.style.display = 'none';
	f.style.display = 'none';
}

var currActiveBlock = null;
function toggleBlock(blockName) {
	var block = document.getElementById(blockName+'Wrapper');

	//default adresselectieWrapper is active
	if (currActiveBlock == null) { currActiveBlock = document.getElementById('adresselectieWrapper'); }

	if(currActiveBlock == null && block.style.display == 'block') {
		currActiveBlock = block;
	}

	prevActiveBlock = currActiveBlock;
	if(currActiveBlock != null) {
		currActiveBlock.style.display = 'none';
		currActiveBlock = null;
	}

	if(prevActiveBlock != block) {
		block.style.display = 'block';
		currActiveBlock = block;
	}

	//default adresselectieWrapper is active
	if (currActiveBlock == null) {
		currActiveBlock = document.getElementById('adresselectieWrapper');
		currActiveBlock.style.display = 'block';
	}
}

function openKlasse(code) {
	unhighlightAllKlasseSelectors();
	highlightKlasseSelector(code);

	closeAllKlassen();
	var klasse = document.getElementById('klasse'+code);
	klasse.style.display = 'block';
}

function closeAllKlassen() {
	var sectorKeywords = document.getElementById('sectorKeywords');
	var children = sectorKeywords.childNodes;
	var nrElements = children.length;
	for(var i = 0; i < nrElements; i++) {
		var currChild = children[i];
		if(currChild.style) {
			currChild.style.display = 'none';
		}
	}
}

function unhighlightAllKlasseSelectors() {
	_sectorHeader = document.getElementById('sectorHeader');
	_unhighlightAllKlasseSelectors(_sectorHeader);
}

function _unhighlightAllKlasseSelectors(anObject) {
	var regex = /klasseSelector/;
	if(anObject.id && anObject.id.match(regex)) {
		anObject.style.color = '#496068';
		anObject.style.fontWeight = 'normal';
		return;
	}

	var nrElements = anObject.childNodes.length;
	for(var i = 0; i < nrElements; i++) {
		var currRelative = anObject.childNodes[i];
		_unhighlightAllKlasseSelectors(currRelative);
	}
}

function highlightKlasseSelector(code) {
	selector = document.getElementById('klasseSelector'+code);
	selector.style.color = '#c5006a';
}

var currActiveLetter = null;
function alphabet(code) {
	if(currActiveLetter != null) {
		currActiveLetter.style.backgroundColor = '';
		currActiveLetter.style.color = '';
	}

	letterDiv = document.getElementById('alphabet'+code);
	if(letterDiv) {
		letterDiv.style.backgroundColor = '#c5006a';
		letterDiv.style.color = '#ffffff';
		currActiveLetter = letterDiv;
	}

	window.location = '#'+code;
}

function showUponFog(elementId) {
	var elm = document.getElementById(elementId);
	//add class fogCenter if not exists
	if (!elm.className.match(/( |^)fogCenter( |$)/)) { elm.className = (elm.className + ' xfogCenter').trim(); }

	//display fog
	var f = document.getElementById('xfog');
	f.style.display = 'block';
	if (f.clientHeight < 20) { /* IE6 needs a fix */
		var viewPort = getViewPort();
		var bcW = document.body.clientWidth + parseInt(document.body.currentStyle['marginLeft']) + parseInt(document.body.currentStyle['marginRight']);
		var bcH = document.body.clientHeight + parseInt(document.body.currentStyle['marginTop']) + parseInt(document.body.currentStyle['marginBottom']);
		f.style.width = (bcW > viewPort[0] ? bcW : viewPort[0]) + 'px';
		f.style.height = (bcH > viewPort[1] ? bcH : viewPort[1]) + 'px';
	}

	//display requested element (should be rendered first before offsetWidth is known)
	elm.style.display = 'block';

	//adjust margins by it's actual width, height and current scroll position
	var sXY = getScrollXY();
	elm.style.marginTop = (-0.5 * elm.offsetHeight + sXY[1]) + 'px';
	elm.style.marginLeft = (-0.5 * elm.offsetWidth + sXY[0]) + 'px';

	//cancel href
	return false;
}

function showFolder(rel) {
	if (!$defined($('xfog'))) {
		var xfog = new Element('div', {id: 'xfog'});
		xfog.inject($(document.body));	
		xfog.addEvent('click',function(){
			//search elements with fogCenter class applied (by showUponFog)
			var fogCenterElms = $$('.xfogCenter');
				
			for (i = 0; i < fogCenterElms.length; i++) {
				//remove class fogCenter
				fogCenterElms[i].className = fogCenterElms[i].className.replace(/( |^)fogCenter( |$)/, ' ').trim();
		
				//hide element
				fogCenterElms[i].style.display = 'none';
			}
		
			//hide fog itself
			document.getElementById('xfog').style.display = 'none';
				
		});
	}
	var fid = rel.split('.');
	
	if ($('folderPH')) $('folderPH').destroy();
	var folderPH = new Element('div', {id: 'folderPH'});
	var folderFF = new Element('div',{id: 'folder_ff'});
	folderPH.setStyles({
			width: '500px',
			height: '375px',
			border: '4px solid #ddd',							
			position: 'absolute',
			display: 'none'
	});
	
	var fclose = new Element('div', {id: 'folderCloseBtn'});

	fclose.setStyles({
		width: '15px',
		height: '16px',
		position: 'absolute',
		right: '5px',
		top: '5px',
		backgroundImage: 'url(/images/layout/default/delete.gif)',
		backgroundRepeat: 'no-repeat',
		backgroundPosition: 'top right',
		cursor: 'pointer'			
	});
	
	fclose.cloneEvents($('xfog'));

	folderFF.inject(folderPH);
	fclose.inject(folderPH);	
	folderPH.inject($(document.body));
	
	var get = new Request({method: 'get', url: '/rpcs/loadFolder.php',onSuccess: function(rT,rX) {
		/*var aclose = new Element('div', {id: 'advertCloseBtn'});
		aclose.addClass('advertCloseBtn');
		aclose.set('text','Sluiten');
		aclose.addEvent('click',function() {
			closeFog();
			if ($('advertCloseBtn')) $('advertCloseBtn').destroy();
		});*/						
		showUponFog('folderPH');
		/*aclose.inject('fog');*/
	}}).send('md5='+fid[0]+'&id='+fid[1]);
}

