// locatie functies
var x;
var qs = new Querystring();
var catid = qs.get('CatID');
if ( catid == null) { catid = qs.get('catid'); }
var lang = qs.get("Lang");
var displaying=0;

function set_lock() {
	var c = readCookie('locdisp'); 
	if (c == catid){ 
	toggle_loc_display(); 
	} 
}

function toggle_loc_display(){
	if(displaying==0){
		start_loc_display();
		displaying = 1;
	}else{
		end_loc_display();
		displaying = 0;
	}
	return false;
}



function start_loc_display2() {
    document.getElementById('s_selector').style.visibility = 'hidden';
    document.getElementById('scrollcounter').style.visibility = 'hidden';
    document.getElementById('google_map_Container').style.display = 'block';
    if (lang == "NL") {
        document.getElementById('toggle_loc').src = 'img/overzicht_nl.gif';
    } 
    else {
        document.getElementById('toggle_loc').src = 'img/overzicht_fr.gif';
    }
}
function end_loc_display2() {
    document.getElementById('s_selector').style.visibility = 'visible';
    document.getElementById('scrollcounter').style.visibility = 'visible';
    document.getElementById('google_map_Container').style.display = 'none';
    if (lang == "NL") {
        document.getElementById('toggle_loc').src = 'img/locatie.jpg';
    } 
    else {
        document.getElementById('toggle_loc').src = 'img/locatie_fr.jpg';
    }
}



function start_loc_display(){
	document.getElementById('s_selector').style.visibility='hidden';
	document.getElementById('s_map').style.visibility='visible';
	document.getElementById('s_bottom').style.visibility='hidden';
	document.getElementById('scrollcounter').style.visibility='hidden';
	if (lang == "NL"){
		document.getElementById('toggle_loc').src='img/overzicht_nl.gif';
	} else {
		document.getElementById('toggle_loc').src='img/overzicht_fr.gif';
	}
	createCookie('locdisp',catid,1);
	fetchXML('locaties.ashx?Lang='+lang+'&CatID='+catid);
}

function end_loc_display(){
	document.getElementById('s_selector').style.visibility='visible';
	document.getElementById('s_map').style.visibility='hidden';
	document.getElementById('s_bottom').style.visibility='visible';
	document.getElementById('scrollcounter').style.visibility='visible';
		if (lang == "NL"){
	document.getElementById('toggle_loc').src='img/locatie.jpg';
	} else {
	document.getElementById('toggle_loc').src='img/locatie_fr.jpg';
	}
	createCookie('locdisp',null,1);
}

function putItIn(parsedXML){
	x=parsedXML.documentElement;
	var adresCount = x.getElementsByTagName('item').length - 1;
	if (lang == "NL"){
	var str = "<div id=\"s_map_adres\"><span class=\"s_map_tekst\">Selecteer de locatie van uw keuze en klik voor de detailgegevens</span></div>";
	}else{
	var str = "<div id=\"s_map_adres\"><span class=\"s_map_tekst\">S&eacute;lectionnez le lieu de votre choix et cliquez pour plus de details</span></div>";
	}
	str = str+"<div id=\"s_map_pointer\" style=\"visibility: hidden;\"></div>"
	var xstr = '<div id=\"s_map_list_container\">';
	for(i=0;i<=adresCount;i++){
		yVal = x.getElementsByTagName('latitude')[i].firstChild.data;
		xVal = x.getElementsByTagName('longitude')[i].firstChild.data;
		yVal = 200 - ((yVal-50.0) * 115.0);
		xVal = 65 + ((xVal-3) * 66.0);
		var pointName = 's_map_point.gif';
		if (yVal < 10) { pointName = 's_map_up.gif'; yVal=10; }
		if (yVal > 250) { pointName = 's_map_down.gif'; yVal=250; }
		if (xVal < 10) { pointName = 's_map_left.gif'; xVal=10; }
		if (xVal > 320) { pointName = 's_map_right.gif'; xVal=320; }
		xstr = xstr+'<div id=\"s_side_data_id_'+i+'\" class=\"s_side_data\" onMouseOver=\"putAdres('+i+');\" onMouseOut=\"resetHighlight('+i+')\"><a href=\"'+ x.getElementsByTagName('detailurl')[i].firstChild.data + '\">'+(i+1)+'. '+x.getElementsByTagName('naam')[i].firstChild.data+'</a></div>';
		str = str+'<div id=\"s_map_point_id_'+i+'\" class=\"s_map_point\" style=\"left:'+xVal+'px; top:'+yVal+'px;\" onMouseOver=\"putAdres('+i+');\" onMouseOut=\"resetHighlight('+i+')\"><a href=\"'+ x.getElementsByTagName('detailurl')[i].firstChild.data + '\"><img src=\"img/'+pointName+'\" border=\"0\" alt=\"\" title=\"'+x.getElementsByTagName('naam')[i].firstChild.data+'\" /></a></div>';
	}
	xstr = xstr+'</div>';
	document.getElementById('s_map').innerHTML = xstr+str;
}
function resetHighlight(id){
	document.getElementById('s_side_data_id_'+id).style.backgroundColor='#A5AEB7';
	}
function putAdres(id){
	document.getElementById('s_map_pointer').innerHTML = '<div id=\"s_map_pointer_text_id\" class=\"s_map_pointer_text\">'+(id+1)+'</div>';
	yVal = 200 - ((x.getElementsByTagName('latitude')[id].firstChild.data-50.0) * 115.0)
	xVal = 65 + ((x.getElementsByTagName('longitude')[id].firstChild.data-3) * 66.0)
	yVal = (yVal<10)?10:yVal; yVal = (yVal>250)?250:yVal;
	xVal = (xVal<10)?10:xVal; xVal = (xVal>320)?320:xVal;
	if (yVal == 10){
		document.getElementById('s_map_pointer').style.backgroundImage= 'url(img/s_map_pointer_bottom.gif)';
		document.getElementById('s_map_pointer_text_id').style.marginTop = '8px';
			yVal=yVal+23;
	}else{
		document.getElementById('s_map_pointer').style.backgroundImage= 'url(img/s_map_pointer.gif)';
	}
	
	document.getElementById('s_map_pointer').style.left = (xVal-5)+'px';
	document.getElementById('s_map_pointer').style.top = (yVal-20)+'px';
	document.getElementById('s_map_pointer').style.visibility = 'visible';
	document.getElementById('s_side_data_id_'+id).style.backgroundColor='#868e9b';
	str = '<div class=\"s_map_titel\">'+ x.getElementsByTagName('naam')[id].firstChild.data + '</div>';
	str = '<div class=\"s_map_tekst\">'+ str + x.getElementsByTagName('adres')[id].firstChild.data +' '
	try{ str = str+x.getElementsByTagName('nummer')[id].firstChild.data + '<br>';} catch (e) { str=str+'<br>';}
	str = str + x.getElementsByTagName('postcode')[id].firstChild.data +' '+ x.getElementsByTagName('gemeente')[id].firstChild.data + '</div>';
	str = str + '<br><a href=\"'+ x.getElementsByTagName('detailurl')[id].firstChild.data +'\"><img src=\"img/s_map_go.gif\" alt=\"\" /></a>'
	document.getElementById('s_map_adres').innerHTML = str;
}

function parseXML(str){
	if (window.ActiveXObject) { //IE code
		var doc=new ActiveXObject("Microsoft.XMLDOM");
		doc.async="false";
		doc.loadXML(str);
	} else { // code for Mozilla, Firefox, Opera, etc.
		var parser=new DOMParser();
		var doc=parser.parseFromString(str,"text/xml");
	}
	putItIn(doc)
}

function fetchXML(url) {
 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('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        http_request.onreadystatechange = function() { alertContents(http_request); };
        http_request.open('GET', url, true);
        http_request.send(null);
}

function alertContents(http_request) {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            parseXML(http_request.responseText);
		} else {
			alert('There was a problem with a request.');
		}
	} 
}
	
function Querystring(qs) { // optionally pass a querystring to parse
	this.params = new Object()
	this.get=Querystring_get;
	if (qs == null) qs=location.search.substring(1,location.search.length);
	if (qs.length == 0) return
	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&');
	for (var i=0;i<args.length;i++) {
		var value;
		var pair = args[i].split('=')
		var name = unescape(pair[0]);
		if (pair.length == 2){ value = unescape(pair[1]); }else{ value = name; }
		this.params[name] = value;
	}
}

function Querystring_get(key, default_) {
	if (default_ == null) default_ = null;
	var value=this.params[key];
	if (value==null) value=default_;
	return value
}