/**
 * @projectDescription DDMS | Data driven marketing solutions
 * @author Victor Zuydweg
 * @version 0.1
 */

// Initial loads

// Hardcodes link for AJAX-call in function loadContent
var file = "js/source.js"

if(window.addEventListener)
	window.addEventListener("load", init, false);
else if (window.attachEvent)
	window.attachEvent("onload", init);
else
	window.onload=init;

var mensen;
function init()
{
	loadContent(file);
	anchorToBlock();
	setTarget();
	submitValidation();
	printButton();
}
	
function afterContentLoad()
{
	if(document.getElementById('mensen')) doThePeopleThing();
}

/*
	Load language files
	Languagefile url is hardcoded at line nr. 8
*/

function loadContent(url)
{ 
	var xmlRequest = null;
	
	if(window.XMLHttpRequest)
		xmlRequest = new XMLHttpRequest(); 
	else if (window.ActiveXObject)  
		xmlRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
	
	xmlRequest.onreadystatechange = function()
	{
		if(xmlRequest.readyState == 4)
		{
			if(xmlRequest.status == 200)
			{
				eval(xmlRequest.responseText);
				afterContentLoad();
			}
		} 
	}
	xmlRequest.open("GET", url, true); 
	xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xmlRequest.setRequestHeader("If-Modified-Since", "Sat, 1 Oct 2007 00:00:00 GMT");
	xmlRequest.send(null);
}

/*
	set an anchor in div.blokken to the whole block
*/

function anchorToBlock()
{
	var items = document.getElementsByTagName('ul');
	for(i=0; i<items.length; i++)
	{
		if(
			items[i].className == "blokken" ||
			items[i].className == "list"
		  )
		{
			setAnchorToBlock(items[i]);
		}
	}
}

function setAnchorToBlock(block)
{
	var items = block.getElementsByTagName('li');
	for(i=0; i<items.length; i++)
	{
		items[i].onclick = function()
		{
			document.location = this.getElementsByTagName('a')[0].href;
		}
		items[i].onmouseover = function()
		{
			this.className = "hover";
		}
		items[i].onmouseout = function()
		{
			this.className = "";
		}
	}
}

/*
	do the people thing
*/

var li;
function doThePeopleThing()
{
	beginTimer();
	setInfoBlock();
	if(document.getElementById('mensen'))
	{
		li = document.getElementById('mensen').getElementsByTagName('li');
		for(i=0; i<li.length; i++)
		{
			li[i].mens = mensen["mens" + (i + 1)];
			li[i].i = (i + 1);
			li[i].className = "model_" + (i + 1);
			li[i].onmouseover = mouseOver;
			li[i].onmouseout = mouseOut;
			//li[i].onclick = mouseClick;
		}
	}
}

var div;
function mouseOver()
{
	stopCount();
	div.innerHTML = this.mens;
	this.className = "model_" + this.i + " hover";
}

function mouseOut()
{
	removeInfoBlock();
	this.className = this.css;
	beginTimer();
}

function mouseClick()
{
	document.location = '/Mensen';
}

/* Info block */

function removeInfoBlock()
{
	for(i=0; i<li.length; i++)
	{
		li[i].className = li[i].css;
	}
	div.innerHTML = '';
}

function setInfoBlock()
{
	div = document.createElement('div');
	div.className = 'info';
	document.body.appendChild(div);
}

/* Timer */

var timer;

function beginTimer()
{
	timer = setTimeout("timedSetCount()",1000);
}

var randMens;
function timedSetCount()
{
	randMens = setRandomInfo();

	div.innerHTML = randMens.mens;
	randMens.css = randMens.className;	
	randMens.className = "model_" + randMens.i + " hover";

	timer = setTimeout("timedRemoveCount()",4500);
}

function timedRemoveCount()
{
	removeInfoBlock();
	beginTimer();
}

function stopCount()
{
	removeInfoBlock();
	clearTimeout(timer);
}

function setRandomInfo()
{
	var rand = Math.floor(li.length * Math.random());
	return li[rand];
}

/*
 * Set target-attribute to '_blank'
 */

function setTarget()
{
	var a = document.getElementsByTagName('a');
	for(i=0; i<a.length; i++)
	{
		if(a[i].className == "target") a[i].target = "_blank";
	}
}


/*
 * set validation on contact form
 */

function submitValidation()
{
	if(document.getElementById('contactForm'))
	{
		var form = document.getElementById('contactForm');
		var error;
		var css = 'error';
		var title;
		
		form.onsubmit = function()
		{
			error = false;
			
			title = form.getElementsByTagName('h2')[0];
			title.original = title.innerHTML;
			
			var name = document.getElementById('name');
			if(name.value == "") setError(name);
			else resetError(name);
			
			var email = document.getElementById('email');
			if(email.value == "" || !isEmail(email)) setError(email);
			else resetError(email);
			
			var message = document.getElementById('message');
			if(message.value == "") setError(message);
			else resetError(message);

			if(error) return false;
			else return true;
		}

		function setError(obj)
		{
			error = true;
			setLabelClass(obj, css);
			title.innerHTML = teksten.formulierValidatie;
			obj.className = css;
		}

		function resetError(obj)
		{
			setLabelClass(obj,'');
			obj.className = '';
		}

		function setLabelClass(obj, css)
		{
			var label = obj.parentNode.getElementsByTagName('label');
			for(i=0; i<label.length; i++)
			{
				if(label[i].getAttribute('for') == obj.id) label[i].className = css;
			}
		}

		function isEmail(email)
		{
			var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
			return reg.test(email.value);
		}
	}
}

function printButton()
{
	if(document.getElementById('print'))
	{
		document.getElementById('print').onclick = function()
		{
			print();
		}
	}
}
