if (!window.XMLHttpRequest)
{
    window.XMLHttpRequest = function()
    {
        var types = [
            'Microsoft.XMLHTTP',
            'MSXML2.XMLHTTP.5.0',
            'MSXML2.XMLHTTP.4.0',
            'MSXML2.XMLHTTP.3.0',
            'MSXML2.XMLHTTP'
        ];
		
        for (var i = 0; i < types.length; i++)
        {
            try
            {
                return new ActiveXObject(types[i]);
            }
            catch(e) {}
        }
    
        return undefined;
    }
}

var requests = new Array();

function SendMailingListRequest(action, url, value)
{
	var i = requests.length;
	
	requests[i] = new XMLHttpRequest();
	requests[i].open(action, url);
	requests[i].setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    
	requests[i].onreadystatechange = function()
    {
		if (requests[i].readyState == 4)
		{
			var response = requests[i].responseText;
			var update = new Array();
			
			if (response.indexOf('|') != -1)
			{
				update = response.split('|');
				
				if (update[0] == 'true')
				{
					document.getElementById('mailinglistcontent').innerHTML = update[1];
				}
				else
				{
					alert(update[1]);
				}
			}
	    }
    }

    requests[i].send(value);
}

function SendAddressRequest(action, url, value)
{
	var i = requests.length;
	
	requests[i] = new XMLHttpRequest();
	requests[i].open(action, url);
	requests[i].setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    
	requests[i].onreadystatechange = function()
    {
		if (requests[i].readyState == 4)
		{
			var response = requests[i].responseText;
			var update = new Array();
			
			if (response.indexOf('|') != -1)
			{
				update = response.split('|');
				
				if (update[0] == 'true')
				{
					document.getElementById('adres1').innerHTML = update[1] + ' ' + document.getElementById('housenumber').value;
					document.getElementById('adres2').innerHTML = document.getElementById('zipcode').value.toUpperCase() + ' ' + update[2];
					document.getElementById('street').value = update[1];
					document.getElementById('city').value = update[2];
				}
			}
	    }
    }

    requests[i].send(value);
}

function LoadAddress()
{
	var errorflag = true;
	
	var zipcode = document.getElementById('zipcode').value.toUpperCase();
	var housenumber = document.getElementById('housenumber').value;
	
	// checken of er een een huisnummer is ingevuld.
	if (housenumber.length == 0)
	{
		errorflag = false;
	}
	
	// checken of er een spatie in de postcode zit
	var zipcodearray = zipcode.split(" ");
	if (zipcodearray.length > 1)
	{
		zipcode = zipcodearray[0] + zipcodearray[1];
	}
	
	rExp = /^[1-9]\d{3}[A-Z]{2}$/;

	if (!rExp.exec(zipcode)) 
	{
		errorflag = false;
	}
	
	if (errorflag == false)
	{
		return false;
	}
	else
	{
		// Postcode en huisnummer zijn geldig ingevuld, dus gaan we een adres-request verzenden
		SendAddressRequest('post', '/ajax/address/', 'zipcode=' + zipcode + '&housenumber=' + housenumber);		
		
	}
}

function MailingListForm () { }
	
	MailingListForm.prototype.SendForm = function ()
	{
		var name 		= document.getElementById('ML_name').value;
		var mailaddress = document.getElementById('ML_mailaddress').value;
		
		SendMailingListRequest('post', '/ajax/mailinglist/', 'name=' + name + '&mailaddress=' + mailaddress);
	}
	
	MailingListForm.prototype.NameField = function (object, state)
	{
		if (state)
		{
			if (object.value == 'voer uw naam in...') { object.value = ''; }
		}
		else
		{
			if (object.value == '') { object.value = 'voer uw naam in...'; }
		}
	}
	
	MailingListForm.prototype.MailaddressField = function (object, state)
	{
		if (state)
		{
			if (object.value == 'voer uw emailadres in...') { object.value = ''; }
		}
		else
		{
			if (object.value == '') { object.value = 'voer uw emailadres in...'; }
		}
	}

function CallMeForm () { }

	CallMeForm.prototype.SendForm = function ()
	{
		var form = document.getElementById('callme');
		
		form.action = '/neemcontactmetmijop/send/';
		form.submit();
	}
	
function Arrow (padding, imgwidth)
{
	this.padding 		= padding;		// ruimte / padding aan de rechterkant van het menuitem
	
	this.imgwidth 		= imgwidth;		// breedte van het plaatje wat uitgelijnd moet worden
	
	this.arrow			= document.getElementById('navigationarrow');
	
	this.init			= new Array();

	this.init['top']	= null;
	this.init['left']	= null;
	this.init['right']	= null;
	this.init['bottom']	= null;
}

	Arrow.prototype.Init = function ()
	{
		// we gaan eerst de eerst ul / child van de div met id header selecteren
		
		var div 	= document.getElementById('header')
		var ul  	= div.firstChild;
		
		var width	= 0;
		
		// we gaan nu alle childNodes doorlopen opzoek naar een li met een a tag met attribute class met waarde active
		
		for (var i = 0; i < ul.childNodes.length; i++)
		{
			var li	= ul.childNodes[i];
			var a	= li.firstChild;
			
			width 	= width + a.offsetWidth + this.padding;
			
			if (a.className == 'active')
			{
				var anchormiddle 	= Math.round(a.offsetWidth/2);
				var imgmiddle 		= Math.round(this.imgwidth/2);
				
				// de left van de img als initiële waarde opslaan
				
				this.init["left"]	= width - anchormiddle - imgmiddle;
			}
		}
		
		// onmousemove event aan de ul koppelen
		
		
		// onmouseout event aan de ul koppelen
		
		
		
		// de left van de img is berekend; we kunnen nu de img gaan positioneren en tonen
		
		if (this.init["left"] != null)
		{
			this.arrow.style.left 	 = this.init["left"] + 'px';
			this.arrow.style.display = "block";
		}
	}
	
	Arrow.prototype.Move = function ()
	{
		
	}