window.onload = function() {
	initCrossfade();
	//GetTTFonts();
	//defineImageBarHeight();
}

//window.onresize = function(evt) {
//	defineImageBarHeight();
//}


/****************************/
/* AJAX						*/
/****************************/




function makeRequest(url, callback, postParams) {
	var request;

	if (window.XMLHttpRequest) { //Mozilla, Safari,...
		request = new XMLHttpRequest();
	} else if (window.ActiveXObject) { // IE
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!request) {
		alert('Cannot create an XMLHTTP instance');
	}

	request.onreadystatechange = function() {
		if (request.readyState == 4)
		{
			if (request.status == 200) {
				callback(request);
			} else {
				alert('Fout bij het ophalen van ' + url + '.');
			}
		}
	};

	if (postParams) {
		request.open("POST", url, true);

		//Send the proper header information along with the request
		request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		request.setRequestHeader("Content-length", postParams.length);
		request.setRequestHeader("Connection", "close");

		request.send(postParams);
	}
	else {
		request.open('GET', url, true);
		request.send(null);
	}
}

/***************************/




function defineImageBarHeight() {
	var maxHeight = 220;
	var minHeight = 30;

	var newHeight = 30;

	var fotobar = document.getElementById('fotobar');

	var hoogte = getDocumentHeight() - getContainerHeight() - 70;	//laatste is van footer

	if (hoogte > maxHeight)
	{
		newHeight = maxHeight;
	} else if (hoogte < minHeight) {
		newHeight = minHeight;
	} else {
		newHeight = hoogte;
	}

	fotobar.style.height = newHeight + 'px';
}

function getContainerHeight() {
	var container = document.getElementById('container');
	return container.offsetHeight;
}

function getDocumentHeight() {
	if (typeof(window.innerWidth) == 'number') {
		return window.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		return document.documentElement.clientHeight;
	}
}



/************** TTF ********************/


/*function GetTTFonts()
{

	var h1s = document.getElementsByTagName('h1');
	for (var i in h1s)
	{
		ttfReplaceElement(h1s[i], 26, "rgb(204, 69, 46)");
	}

	var h2s = document.getElementsByTagName('h2');
	for (var j in h2s)
	{
		ttfReplaceElement(h2s[j], 18, "#324792");
	}
}

function ttfReplaceElement(element, defaultSize, defaultColor)
{
	var color_defs = [
	{
	    re: /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,
	    example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],
	    process: function (bits){
		return [
		    parseInt(bits[1]),
		    parseInt(bits[2]),
		    parseInt(bits[3])
		];
	    }
	},
	{
	    re: /^\#?(\w{2})(\w{2})(\w{2})$/,
	    example: ['#00ff00', '336699'],
	    process: function (bits){
		return [
		    parseInt(bits[1], 16),
		    parseInt(bits[2], 16),
		    parseInt(bits[3], 16)
		];
	    }
	},
	{
	    re: /^(\w{1})(\w{1})(\w{1})$/,
	    example: ['#fb0', 'f0f'],
	    process: function (bits){
		return [
		    parseInt(bits[1] + bits[1], 16),
		    parseInt(bits[2] + bits[2], 16),
		    parseInt(bits[3] + bits[3], 16)
		];
	    }
	}
	];




	var text = element.innerHTML;
	var size = getSize(element, defaultSize);
	var color = getColor(element, defaultColor);
	var red = 0;
	var green = 0;
	var blue = 0;

	// search through the definitions to find a match
	for (var i = 0; i < color_defs.length; i++) {
		var re = color_defs[i].re;
		var processor = color_defs[i].process;
		var bits = re.exec(color);
		if (bits) {
		    channels = processor(bits);
		    red = channels[0];
		    green = channels[1];
		    blue = channels[2];
		}
	}

	element.innerHTML = '<img src="/TrueFontFamily/tff.php?f=Handel_Gothic.ttf&s=' + size + '&c=' + red + ',' + green + ',' + blue + '&t=' + text +'" alt="' + text + '">';
}

function getSize(element, defaultSize) {
	if (element.style != null && element.style.fontSize != null && element.style.fontSize != "" && parseInt(element.style.fontSize) > 0)
		return parseInt(element.style.fontSize);

	if (element.parentNode != null)
		return getSize(element.parentNode, defaultSize);

	 return defaultSize;
}

function getColor(element, defaultColor) {
	if (element.style != null && element.style.color != null && element.style.color != "")
		return element.style.color;

	if (element.parentNode != null)
		return getColor(element.parentNode, defaultColor);

	 return defaultColor;
}*/

/****************************************/



/*****************************
 * login gedeelte
 ****************************/

function showLoginBox(parent) {
	parent.innerHTML = '<form>' +
		'<table>'+
			'<tr><td>Gebruikersnaam</td></tr>' +
			'<tr><td><input style="width: 120px;" type="text" name="username" value="" /></td></tr>' +
			'<tr><td>Wachtwoord</td></tr>' +
			'<tr><td><input style="width: 120px;" type="password" name="password" value="" /></td></tr>' +
			'<tr><td>' +
				'<input type="submit" value="Log in" onclick="doLogin(this); return false;" />' +
				'<input type="button" value="Annuleren" onclick="hideLoginBox(this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode)" />' +
			'</td></tr>' +
		'</table>' +
	'</form><div id="loginErrorDiv" class="error"></div><br />Nog geen account? <a href="Registreren">Registreer</a> snel.';

	parent.getElementsByTagName('input')[0].focus();
}

function doLogin(node) {
	var parent = node.parentNode.parentNode.parentNode.parentNode;
	var loginErrorDiv = document.getElementById('loginErrorDiv');

	login(loginErrorDiv, parent.getElementsByTagName('input')[0].value, parent.getElementsByTagName('input')[1].value);
}

function hideLoginBox(parent) {
	parent.innerHTML = '<div>' +
		'<a href="#" onclick="showLoginBox(this.parentNode); return false;">Inloggen</a><br />' +
		'<a href="Registeren">Registreren</a>' +
	'</div>';
}

function login(container, username, password) {
	makeRequest("/ucms_content/json/login.php", function(request) {

		response = eval('(' + request.responseText + ')');

		if (response.status == 'ok')
		{
			window.location="/";
		} else {
			container.innerHTML = response.error;
		}

	}, "username=" + username + "&password=" + password);
}

function logout(container) {
	makeRequest("/ucms_content/json/logout.php", function(request) {

		response = eval('(' + request.responseText + ')');

		if (response.status == 'ok')
		{
			window.location="/";
		}

	});
}
