i_collapse = new Image(9,9);
i_expand = new Image(9,9);
i_collapse.src="/static/gids/closed.gif";
i_expand.src="/static/gids/open.gif";

	
var i = new XHConn();                   
if (!i) alert("XMLHTTP not available. Try a newer/better browser.");

// return cursor position
function findPos(obj) 
{
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}


// bedrijf in bedrijfsinfo div zetten

function bedrijf_div(data)
{
	var div = document.getElementById('bedrijfsinfo');	
	div.innerHTML = data.responseText;
}
	
function bedrijf(parent, id)
{
	//var div = document.getElementById('bedrijfsinfo');	
	//div.innerHTML = '<img class="wait" src="/static/gids/icon_wait.gif">';
	
	$('#bedrijfsinfo').load("/gids/toonbedrijf/"+ id);

	$("#bedrijfsinfo").dialog({ 
	     modal: true, 
	     height: 420,
		 width: 500,
	     overlay: { 
	         opacity: 0.5, 
	         background: "black"} 
	});
	
	$("#bedrijfsinfo").dialog('open');
	
}

function hidebedrijf()
{
	//var div = document.getElementById('bedrijfsinfo');	
	//div.style.display = "none";
	$("#bedrijfsinfo").dialog("close");
	
}


// setup for first visit
function init(sectie)
{
	i = new XHConn();	
	i.connect("/gids/kenmerken/", "GET", "type="+sectie, opties_div);	
	j = new XHConn();                   	
	j.connect("/gids/resultaten/", "GET", "type="+sectie, resultaten_div);
	
	document.getElementById('naam').onkeydown = keyDown;
	document.getElementById('plaats').onkeydown = keyDown;
	document.getElementById('postcode').onkeydown = keyDown;
	document.getElementById('tekst').onkeydown = keyDown;
	
	// tonen bij MOB
	if (sectie=='MOB')
	{
		document.getElementById('optiekeuze_moa').style.display = 'block';
	}
	
	if (sectie=='OG')
	{
		document.getElementById('opties').style.display = 'none';
	}
}

// walk the form and collect all checked attributes
function opties_selected()
{
	var fform = document.forms['kenmerken_filter'];
	var checked = new Array();
	
	if (fform!=undefined)
	{
		for (var i=0; i<fform.elements.length; i++)
		{
			if (fform.elements[i].name=='attrib' && fform.elements[i].checked) checked.push(fform.elements[i].value);
		}
	
		var fform = document.forms['filter'];
		for (var i=0; i<fform.elements.length; i++)
		{
			if (fform.elements[i].name=='attrib' && fform.elements[i].checked) checked.push(fform.elements[i].value);
		}
	}
	
	return checked.join(',');
}

function crumbs_ui(data)
{
	document.getElementById('crumb').innerHTML = "<p>" + data.responseText + "</p>";
}

function crumbs_opties_selected(sectie)
{
	var fform = document.forms['kenmerken_filter'];
	var checked = new Array();
	
	if (fform)
	{	
		for (var i=0; i<fform.elements.length; i++)
		{
			if (fform.elements[i].name=='attrib' && fform.elements[i].checked) checked.push(fform.elements[i].value);
		}
	
		var fform = document.forms['filter'];
		for (var i=0; i<fform.elements.length; i++)
		{
			if (fform.elements[i].name=='attrib' && fform.elements[i].checked) checked.push(fform.elements[i].value);
		}
	}
	
	s = new XHConn();
	s.connect("/gids/crumbs/"+sectie, "GET", "i="+checked.join(','), crumbs_ui);	
	return true;
	//return checked.join(',');
}




// fill the div id="resultaten" with a html table
function resultaten_div(data)
{
	document.getElementById('resultaten').innerHTML = data.responseText;
	sortables_init();
		
}

// fill the div id="opties" with the attributes available for sectie
function opties_div(data)
{
	//alert("in optiesdiv");
	if (data.responseText != 'Geen opties beschikbaar')
	{
		document.getElementById('opties').innerHTML = data.responseText;
		document.getElementById('opties').style.display = 'block';
	} else {
		document.getElementById('opties').style.display = 'none';
		document.getElementById('resultaten').style.width = "668px";
		
	}
}

// callback for showinfo()
function info_div(data)
{
	document.getElementById('info').innerHTML = data.responseText;
}

// get and show company details
function showinfo(record, divje)
{
	i = new XHConn();
	i.connect("bedrijf/"+record, "GET", "", info_div);	
	document.getElementById('info').style.display = "block";
	document.getElementById('info').style.top = (divje.offsetTop)+20 +"px";		
}

// hide the info div containing company details
function hideinfo(record)
{
	document.getElementById('info').style.display = "none";
}


function setup_kenmerken(sectie)
{
	var fform = document.forms['filter'];
	for (var i=0; i<fform.elements.length; i++)
	{
		if (fform.elements[i].name=='sectie')
		{
			if (fform.elements[i].value==sectie)
			{
				fform.elements[i].checked = 1;
			} else {
				fform.elements[i].checked = 0;
			}
		}
	}
	
	// update crumbs path with current info
	crumbs_opties_selected(sectie);
}

function update_kenmerken()
{
	// haal huidige aangevinkte sectie op
	for (i=0;i<document.filter.sectie.length;i++)
	{
		if (document.filter.sectie[i].checked)
		{
			sectie = document.filter.sectie[i].value;
		}
	}
		
	//alert("update_kenmerken met "+sectie);

	var did = 0;

	// uncheck MOB attributes als we een switch van sectie doen
	// anders blijven ze actief in het filter
	if (sectie != 'MOB')
	{
		var fform = document.forms['filter'];
		for (var i=0; i<fform.elements.length; i++)
		{
			if (fform.elements[i].name=='attrib')
			{
				fform.elements[i].checked = 0;
			}
		}
		
		var fform = document.forms['kenmerken_filter'];
		if (fform)
		{
			for (var i=0; i<fform.elements.length; i++)
			{
				if (fform.elements[i].name=='attrib')
				{
					fform.elements[i].checked = 0;
				}
			}		
		}
	}
	
	switch (sectie)
	{
		case "MOB":
		j = new XHConn(); 
		j.connect("/gids/kenmerken/", "GET", "type="+sectie, opties_div);		
		document.getElementById('optiekeuze_moa').style.display = 'block';
		document.getElementById('opties').style.display='block';		
		//document.getElementById('resultaten').style.width='383px';
		document.getElementById('sectielabel1').innerHTML = 'Marktonderzoekbureaus';
		document.getElementById('sectielabel2').innerHTML = 'Marktonderzoekbureaus';
		did=1;
		break;
				

		case "TL":
		j = new XHConn(); 
		j.connect("/gids/kenmerken/", "GET", "type="+sectie, opties_div);		
		document.getElementById('opties').style.display = 'block';
		//document.getElementById('resultaten').style.width = "383px";
		document.getElementById('optiekeuze_moa').style.display = 'none';
		document.getElementById('sectielabel1').innerHTML = 'Toeleveranciers';
		document.getElementById('sectielabel2').innerHTML = 'Toeleveranciers';
		did=1;
		break;
		
		case "OG":
		document.getElementById('sectielabel1').innerHTML = 'Opdrachtgevers';
		document.getElementById('sectielabel2').innerHTML = 'Opdrachtgevers';
		did=0;
		break;
		
		
		case "SB":
		j = new XHConn(); 
		j.connect("/gids/kenmerken/", "GET", "type="+sectie, opties_div);		
		document.getElementById('optiekeuze_moa').style.display = 'block';
		document.getElementById('opties').style.display='block';		
		//document.getElementById('resultaten').style.width='383px';		
		document.getElementById('sectielabel1').innerHTML = 'Selectiebureaus';
		document.getElementById('sectielabel2').innerHTML = 'Selectiebureaus';
		did=1;
		break;
	} 
	
	if (!did)
	{
		document.getElementById('opties').style.display = 'none';	
		//document.getElementById('resultaten').style.width = "100%";
		document.getElementById('optiekeuze_moa').style.display = 'none';
		document.getElementById('opties').style.display='none';
		
		if (BrowserDetect.browser=='Explorer' && BrowserDetect.version == 6)
		{
			document.getElementById('resultaten').style.width='669px';
		} else {
			document.getElementById('resultaten').style.width='669px';
		}
	}
	
	update_q();
}

function update_q()
{
	
	// mob = ('mob_rkg', 'mob_bkb', 'mob_gs', 'mob_iso', 'mob_infofilter');
	mobs = ''
	// 
	// if (document.filter.mob_rkg.checked)
	// {
	// 	mobs += '|RKG';
	// }
	// 
	// if (document.filter.mob_bkb.checked)
	// {
	// 	mobs += '|BKB';
	// }
	// 
	// if (document.filter.mob_gs.checked)
	// {
	// 	mobs += '|GS';
	// }	
	// 
	// if (document.filter.mob_iso.checked)
	// {
	// 	mobs += '|ISO';
	// }	
	// 
	// if (document.filter.mob_infofilter.checked)
	// {
	// 	mobs += '|INFOFILTER';
	// }
		
	/*for (i=1; i<6; i++)
	{
		x = document.filter.mob_selectie.item(i);
		s = s + 'xx: ' + x.nodeValue + '\n';
		
	}*/
	
	for (i=0;i<document.filter.sectie.length;i++)
	{
		if (document.filter.sectie[i].checked)
		{
			sectie = document.filter.sectie[i].value;
		}
	}	
	
	// update crumbs path with current info
	crumbs_opties_selected(sectie);
		
	query = "type=" + sectie;
	//query += "&mobs=" + mobs;	
	query += "&opts=" + opties_selected();
	query += "&naam=" + document.filter.naam.value;
	query += "&plaats=" + document.filter.plaats.value;
	query += "&postcode=" + document.filter.postcode.value;
	query += "&tekst=" + document.filter.tekst.value;

	// avoid agressive IE cache
	//d = new Date()
	//query += "&iesucks="+ d.getTime();
	
	//alert(query);
	i = new XHConn();
	i.connect("/gids/resultaten/", "GET", query, resultaten_div);	
	
}


/** XHConn - Simple XMLHTTP Interface - brad@xkr.us - 2005-01-24             **
 ** Code licensed under Creative Commons Attribution-ShareAlike License      **
 ** http://creativecommons.org/licenses/by-sa/2.0/                           **/
function XHConn()
{
  var xmlhttp;
  var active;
  try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
  catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
  catch (e) { try { xmlhttp = new XMLHttpRequest(); }
  catch (e) { xmlhttp = false; }}}
  if (!xmlhttp) return null;
  this.connect = function(sURL, sMethod, sVars, fnDone)
  {
    if (!xmlhttp) return false;
    sMethod = sMethod.toUpperCase();

    try {
      if (sMethod == "GET")
      {
        xmlhttp.open(sMethod, sURL+"?"+sVars, true);
        sVars = "";
      }
      else
      {
        xmlhttp.open(sMethod, sURL, true);
        xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
        xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      }
      xmlhttp.onreadystatechange = function(){ if (xmlhttp.readyState == 4) {
        fnDone(xmlhttp); }};
      xmlhttp.send(sVars);
    }
    catch(z) { return false; }
    return true;
  };
  this.abort = function()
  {
    try {
      xmlhttp.abort();
    }
    catch(z) { return false; }
  }
  
  return this;
}

// handel naam+plaats+postcode filter af
function keyDown(e)
{
	//ignore arrow-keys
	if (!e) e = event;
	if (e.keyCode>=37 && e.keyCode<=40) return e.returnValue;
	else
	{
		//window.setTimeout('do_find("'+this.id+'")',10);		
		window.setTimeout('update_q()',10);		
		return e.returnValue;
	}
}


function kenmerkClick(kenmerk)
{
	if (document.getElementById('optiekeuze_'+kenmerk).style.display=='block')
	{
		document.getElementById('optiekeuze_'+kenmerk).style.display='none';
		document.images['trigger_'+kenmerk].src=i_collapse.src;
		
	} else {
		document.getElementById('optiekeuze_'+kenmerk).style.display='block';
		document.images['trigger_'+kenmerk].src=i_expand.src;
	}
}