function ShowQuickHelp(div, title, desc)
{
	div = document.getElementById(div);
	div.style.display = 'inline';
	div.style.position = 'absolute';
	div.style.width = '185';
	div.style.backgroundColor = '#FEFCD5';
	div.style.border = 'solid 1px #E7E3BE';
	div.style.padding = '10px';
	div.innerHTML = '<span class=helpTip><b>' + title + '</b></span><br><img src=images/1x1.gif width=1 height=5><br><div style="display:inline; padding-left:10; padding-right:5" class=helpTip>' + desc + '</div>';
}

function ShowHelp(div, title, desc)
{
	div = document.getElementById(div);
	div.style.display = 'inline';
	div.style.position = 'absolute';
	div.style.width = '240';
	div.style.backgroundColor = '#FEFCD5';
	div.style.border = 'solid 1px #E7E3BE';
	div.style.padding = '10px';
	div.innerHTML = '<span class=helpTip><b>' + title + '</b></span><br><img src=images/1x1.gif width=1 height=5><br><div style="padding-left:10; padding-right:5" class=helpTip>' + desc + '</div>';
}

function HideQuickHelp(div)
{
	div = document.getElementById(div);
	div.style.display = 'none';
}

function toggleAllCheckboxes(check)
{
	formObj = check.form;
	for (var i=0;i < formObj.length;i++) {
		fldObj = formObj.elements[i];
		if (fldObj.type == 'checkbox' && !fldObj.disabled) {
			fldObj.checked = check.checked;
		}
	}
}

function toggleAllCheckboxesOff()
{
	formObj = document.forms[0];
	for (var i=0;i < formObj.length;i++) {
		fldObj = formObj.elements[i];
		if (fldObj.type == 'checkbox' && !fldObj.disabled) {
			fldObj.checked = false;
		}
	}
}

function isSomethingChecked(formObj)
{
	for (var i=0;i < formObj.length;i++) {
		fldObj = formObj.elements[i];
		if (fldObj.type == 'checkbox'
			&&fldObj.name != 'toggle'
			&& fldObj.checked) {
			return true;
		}
	}
	return false;
}

function checkBulkAction(button, msg)
{
	if (isSomethingChecked(button.form)) {
		return true;
	} else if (msg) {
		alert(msg);
		return false;
	} else {
		alert("Please tick a checkbox.");
		return false;
	}
}

function selectOn(trObject)
{
	for (i = 0; i <= 5; i++) {
		trObject.childNodes[i].className = 'body bevel4 rowSelectOn';
	}
}

function selectOut(trObject, whichStyle)
{
	for (i = 0; i <= 5; i++) {
		trObject.childNodes[i].className = 'body '+whichStyle;
	}
}

function ToggleDisplay(obj) {
	if (obj.style.display == 'none') {
		obj.style.display = 'block';
	} else {
		obj.style.display = 'none';
	}
	return true;
}

function BulkAction(field, action, msg, verifymsg)
{
	if (checkBulkAction(field, msg)) {
		if (!verifymsg) {
			verifymsg = 'Are you sure you want to do that ? Click ok to confirm.'
		}
		if (confirm(verifymsg)) {
			field.form.bulkaction.value = action;
			field.form.submit();
		}
	}
}

function leadingZero(x){
	return (x>9)?x:'0'+x;
}

function getFullISODateString(d)
{
	var year	= d.getFullYear();
	var month	= leadingZero(d.getMonth()+1);
	var day		= leadingZero(d.getDate());

	var date = year+"-"+month+"-"+day;
	return date;
}

function AJAX_fetch_populate(div,file,method,params_string) {
	$.ajax({
		type: method,
		url: file,
		data: params_string,
		timeout: 20000,
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			AJAX_error(XMLHttpRequest, textStatus, errorThrown);
		},
		success: function(html){
			$("#" + div).html(html);
			AJAX_success();
		}
	});
}

function AJAX_success() {
	document.body.style.cursor = "auto";
}

function AJAX_error(XMLHttpRequest, textStatus, errorThrown) {
	alert("I'm sorry there has been an error trying to grab remote data.\n\nPlease try again later.");
}

function delete_rating(rateid,msg) {
	var chkname = document.getElementsByName('item[' + rateid + ']');
	toggleAllCheckboxesOff();
	if (chkname) {
		chkname[0].checked = true;
	}
	
	if (!msg) {
		msg = "Are you sure you wish to do this?";
	}
	
	if (confirm(msg)) {
		$("#action")[0].selectedIndex = 1;
		$("#frmBulk").submit();	
	}
}

function REMOTE_admin_table(div,url,todo,direction,field,page) {
	var ua = navigator.userAgent;
	var bcurs = ((ua.indexOf("Safari") != -1) && (ua.indexOf("Mac OS X") != -1)) ? "wait" : "progress";
	
	document.body.style.cursor = bcurs;
	
	var atloading = "#adminTableLoading_" + todo;
	
	try {
		$(atloading).css("display","block");
	} catch (e) {
		alert(atloading);
	}
	
	AJAX_fetch_populate(div,url,"get","direction=" + direction + "&field=" + field + "&page=" + page + "&todo=" + todo);
}

function PrintChart(contents) {
	document.write(contents);
}

function JSLoggedOut() {
	var cHref = location.href;
	var hashIndex = cHref.indexOf('#');
	
	if (hashIndex != -1) {
		cHref = cHref.substr(0,hashIndex);
	}
	
	location.href = cHref;
}

function FV(elName,elValue) {
	return $(":input[name='" + elName + "']").val(elValue);
}
