shit = (navigator.appName.indexOf("Microsoft") > -1);


function write(t) {
	document.write(t);
}

function option(value, text) {
	return '<option value="' + value + '">' + text + '</option>';
}

function writeOption(value, text) {
	write(option(value, text));
}


function byID(id) {
	return document.getElementById(id);
}


function show(id) {
	byID(id).style.display = '';
}

function hide(id) {
	byID(id).style.display = 'none';
}


function enable(id) {
	byID(id).disabled = false;
}

function disable(id) {
	byID(id).disabled = true;
}


function mailSane(mail) {
	mail = mail.toLowerCase();
	exp = /^[a-z0-9_\+-]+(\.[a-z0-9_\+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,4})$/;
	return exp.exec(mail);
}

function call(call, data)
{
	if (window.XMLHttpRequest) {
		re = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		re = new ActiveXObject('Microsoft.XMLHTTP');
	}
	
	re.onreadystatechange = processResponse;
	
	try {
		pa = 'data=' + data;
		re.open('POST', '?run=ajax&call=' + call, true);
		re.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		re.setRequestHeader("Content-length", pa.length);
		re.setRequestHeader("Connection", "close");
		re.send(pa);
	} catch (e) {
		alert(e);
	}
}

function processResponse()
{
	switch (re.readyState) {
		case 1: case 2: case 3: callback(false, false, false); break;
		case 4:
			if (re.status == 200) {
				callback(true, true, re.responseText);
			} else {
				callback(true, false, false);
			}
		break;
	}
}

function showProgress(id)
{
	byID(id).innerHTML = '<img src="design/images/progress.gif" class="progress" alt="…"/>';
}


function setCookie(name, value)
{
	document.cookie = name + '=' + value + '; path=/';
}

function getCookie(name)
{
	var name = name + '=';
	var list = document.cookie.split(';');
	for (i = 0; i < list.length; i++)
	{
		var c = list[i];
		while (c.charAt(0) == ' ') c = c.substring (1, c.length);
		if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
	}
	return false;
}


function sortFuncAsc(a, b)
{
	var va = a.optText.toLowerCase();
	var vb = b.optText.toLowerCase();
	if (va > vb) return 1;
	if (va < vb) return -1;
	return 0;
}

function sortSelect(selectToSort, selected)
{
	var myOptions = [];
	
	for (var i = 0; i < selectToSort.options.length; i++)
	{
		myOptions[i] = { optText:selectToSort.options[i].text, optValue:selectToSort.options[i].value };
	}
	
	myOptions.sort(sortFuncAsc);

	selectToSort.options.length = 0;
	
	for (var i = 0; i < myOptions.length; i++)
	{
		var optObj = document.createElement('option');
		optObj.text = myOptions[i].optText;
		optObj.value = myOptions[i].optValue;
		if (myOptions[i].optText == selected) optObj.selected = 'selected';
		selectToSort.options.add(optObj);
	}
}
