/* Creates a random string to the defined length. */
function randomString(string_length) {
	var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
	if (!string_length) string_length = 8;
	var randomstring = '';
	for (var i=0; i<string_length; i++) {
		var rnum = Math.floor(Math.random() * chars.length);
		randomstring += chars.substring(rnum,rnum+1);
	}
	return randomstring;
}

/* Alert user to errors. */
function ValidationError(element,message) {
	//alert(message +' / '+ element);
	alert(message);
}

/* AJAX Requests & recieves data. */
var element;
var pagereload = false;
var http_request = false;

function makePOSTRequest(url, parameters) {
	http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			// set type accordingly to anticipated content type
			//http_request.overrideMimeType('text/xml');
			http_request.overrideMimeType('text/html');
		}
	} 
	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('Cannot create XMLHTTP instance');
		return false;
	}
      
	//if (element) http_request.onreadystatechange = alertContents;
	if (element || pagereload) http_request.onreadystatechange = alertContents;
	http_request.open('POST', url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(parameters);
}

/* Insert the data recieved into the element defined. */
function alertContents() {
	//alert(element);
	if (http_request.readyState == 4) {
		//alert(http_request.status);
		if (http_request.status == 200) {
			result = http_request.responseText;
			if (pagereload) window.location.reload(false);
			if (element) document.getElementById(element).innerHTML = result;            
		}
		else {
			alert('There was a problem with the request.');
		}
	}
}

/* Temporary Admin functions to be removed & replaced with a real admin system running sessions. */

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function adminCookie() {
	var x = readCookie('admin');
	if (x) eraseCookie('admin')
	else createCookie('admin','admin',2);
	window.location.reload(false);
}
