///////
// Fix for IE
///////
if (document.all && !document.getElementById) {
	document.getElementById = function(id) {
		return document.all[id];
	}
}

///////
// Global vars
///////
var timeout = null;

///////
// Functions
///////
function openScript(url, width, height)
{
	var Win = window.open(url, "openScript", 'width=' + width + ',height=' + height + ', resizable=1, scrollbars=yes, menubar=yes, status=yes' );
}

function delete_post()
{
	if (confirm("Are you sure you want to delete this post?")) {
		return true;
	}
	return false;
}

function show_avatar()
{
	// Get preview image box
	var avatar_image = document.getElementById('useravatars');

	// Get avatar selection box
	var avatar_box = document.getElementById('avatar');

	// Get selected avatar
	var selected_avatar = avatar_box.options[avatar_box.selectedIndex].value;

	if (selected_avatar != 'none' && selected_avatar != 'personal') {
		avatar_image.style.display = 'inline';
		avatar_image.src = selected_avatar;
		var personal_box = document.getElementById('personal');
		personal_box.value = '';
	} else {
		avatar_image.style.display = 'none';
	}
}

var clckcnt = 0;

function clckcntr()
{
	clckcnt++;
	if (clckcnt > 1) {
		if (clckcnt > 2) {
			return false;
		}
		alert('Processing...\n\n' + '     Thank you for your patience.');
		return false;
	}
	return true;
}

function menu()
{
	var URL = document.jump.jumpto.options[document.jump.jumpto.selectedIndex].value;
	top.location.href = URL;
	target = '_self';
}

helpstat = false;
stprompt = true;
basic = false;
		
var head = "display:''"
		
function doit(header)
{
	var head = header.style
	if (helpstat) { 
		head.display = ""
	} else if (basic) { 
		head.display = ""
	} else if (stprompt) { 
		head.display = ""
	} else {
		head.display = "none"
	}
}
		
function xspand(header)
{
	var head = header.style
	if (head.display == "none") { 
		head.display=""
	} else {
		head.display="none"
	}
}
		
function thelp(swtch){
	if (swtch == 1){
		basic = false;
		stprompt = false;
		helpstat = true;
	} else if (swtch == 0) {
		helpstat = false;
		stprompt = false;
		basic = true;
	} else if (swtch == 2) {
		helpstat = false;
		basic = false;
		stprompt = true;
	} else {
		helpstat = false;
		basic = false;
		stprompt = false;
	}
}

function MM_preloadImages()
{
	var d = document;
	if (d.images) {
			if (!d.MM_p)
				d.MM_p = new Array();
			var i, j = d.MM_p.length, a = MM_preloadImages.arguments;
			for (i = 0; i < a.length; i++)
				if (a[i].indexOf("#") != 0) {
					d.MM_p[j] = new Image;
					d.MM_p[j++].src = a[i];
				}
		}
	}
		
function MM_swapImgRestore()
{
	var i, x, a = document.MM_sr;
	for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++)
		x.src = x.oSrc;
}

function MM_findObj(n, d)
{
	var p, i, x;
	if (!d)
		d = document;
	if ( (p = n.indexOf("?") ) > 0 && parent.frames.length) {
		d = parent.frames[ n.substring(p + 1) ].document;
		n = n.substring(0, p);
	}
	if( !(x = d[n]) && d.all)
		x = d.all[n];
	for (i = 0; !x && i < d.forms.length; i++)
		x = d.forms[i][n];
	for (i = 0; !x && d.layers && i < d.layers.length; i++)
		x = MM_findObj(n, d.layers[i].document);
  if(!x && document.getElementById)
		x = document.getElementById(n);
	return x;
}
		
function MM_swapImage()
{
	var i, j = 0, x, a = MM_swapImage.arguments;
	document.MM_sr = new Array;
	for (i = 0; i < (a.length - 2); i+=3)
		if ( (x = MM_findObj(a[i])) != null) {
			document.MM_sr[j++] = x;
			if (!x.oSrc)
				x.oSrc = x.src;
			x.src = a[i+2];
		}
}

function MM_displayStatusMsg(msgStr) {
	status = msgStr;
	document.MM_returnValue = true;
}

function get_by_id(id)
{
	if (document.getElementById) {
		return document.getElementById(id);
	} else if (document.all) {
		return document.all[id];
	} else if (document.layers) {
		return document.layers[id];
	}
	return null;
}

function get_by_id_from_opener(id)
{
	if (opener.document.getElementById) {
		return opener.document.getElementById(id);
	} else if (opener.document.all) {
		return opener.document.all[id];
	} else if (document.layers) {
		return opener.document.layers[id];
	}
	return null;
}

function toggle_visible(id)
{
	if (!id)
		return;
	item = get_by_id(id);
	if (item) {
		if (item.style.display == "none") {
			item.style.display = "";
		} else {
			item.style.display = "none";
		}
	}
}

function insert_contact(name)
{
	if (!name)
		return false;
	box = get_by_id_from_opener('to');
	box.value = name;
	window.close();
}

function toggle_checkboxes()
{
	var form = get_by_id('messages');

	for (var i = 0; i < form.elements.length; i++) {
		var item = form.elements[i];
		if (item.name == 'select') {
			item.checked = !item.checked;
		}
	}
}

window.onload = function()
{
	var avatar_box = document.getElementById('avatar');
	if (avatar_box) {
		avatar_box.onchange = show_avatar;
	}
}

///////
// Watchlist functions
///////
function watchlist_toggle_email(id)
{
	var ajax = init_ajax('watchlist.cgi', watchlist_toggle_email_aux, 5000);

	ajax.send('act=atoggle&id=' + id);

	return false;
}

function watchlist_toggle_email_aux(response)
{
	var root = response.getElementsByTagName('watchlist')[0];

	var id    = root.getElementsByTagName('id')[0].firstChild.nodeValue;
	var email = root.getElementsByTagName('email')[0].firstChild.nodeValue;

	// Change label for the link for this one
	var link = document.getElementById('toggle' + id);
	link.innerHTML = (email == 1) ? 'Yes' : 'No';
}

///////
// AJAX functions
///////
function init_ajax(url, callback, timeout_int, timeout_expr)
{
	// set up AJAX
	var xmlHttpReq = false;

	if (window.XMLHttpRequest) { // sane browsers
		xmlHttpReq = new XMLHttpRequest();
	} else if (window.ActiveXObject) { // IE
		xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	}

	if (timeout_int && timeout_int != 0 && timeout_expr) {
		timeout = setTimeout(function() { timeout_expr(xmlHttpReq); }, timeout_int);
	} else if (timeout_int && timeout_int != 0) {
		timeout = setTimeout(function() { ajax_timeout(xmlHttpReq); }, timeout_int);
	}

	// make an AJAX request for the current info
	if (callback) {
		xmlHttpReq.onreadystatechange = function()
		{
			if (xmlHttpReq.readyState == 4) {
				if (timeout != null) {
					clearTimeout(timeout);
					timeout = null;
				}
				callback(xmlHttpReq.responseXML);
			}
		}
	}
	xmlHttpReq.open('POST', url, true);
	xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

	return xmlHttpReq;
}

function ajax_timeout(ajax)
{
	ajax.onreadystatechange = null;
	ajax.abort();
}
