
//GUI effects

var PrevHeight;

function createShade() 
{
	_createShade('backgroundshade');
}

function _createShade(id)
{
	if (ShadeDisabled)
		return;

	var el = document.getElementById(id);
	if (el)
		return;

	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();

	var el;
	el = document.createElement("div");

	if (recommendedBrowser())
	{
		el.style.position = "absolute";
		el.style.top = "0px";
		el.style.left = "0px" ;
		el.style.zIndex = "4"; 
		el.style.display = "block"; 
		el.style.width = arrayPageSize[2] + "px";
		el.style.height = arrayPageSize[1] + "px";
		el.style.backgroundImage = "url(images/BlackShade.png)";
		el.style.visibility = "visible";
	}
	else
	{
		el.style.cssText = 'position: absolute;' +
			'top: 0px;' + 
			'left: 0px;' +  
			'zIndex: 4;' +  
			'display: block;' +  
			'width: ' + arrayPageSize[2] + 'px;' +
			'height: ' + arrayPageSize[1] + 'px;' +
			'visibility: visible;' +
			'backgroundImage: url(images/blank.gif);' +
			'filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="images/BlackShade.png", sizingMethod="scale");';
	}

	el.id = id;
	document.body.appendChild(el);
}

function removeShade()
{
	_removeShade('backgroundshade');
}



function _removeShade(id)
{
	var el = document.getElementById(id);
	if (typeof el != 'undefined' && el != null)
		document.body.removeChild(el);
}

function setHandCursor(el)
{
	if (isInternetExplorer())
		el.style.cursor = "hand";
	else
		el.style.cursor = "pointer";
}

function recommendedBrowser()
{
	var ar = getBrowserInfo();
	if (ar[0] == "IE" && ar[1] < 7.0)
		return false;

	return true;
}

function isStandard()
{
	var ar = getBrowserInfo();
	if (ar[0] == "IE")
		return false;
	return true;
}

function getBrowserInfo()
{
	var nav = window.navigator;
	var ret = new Array();

	ret[0] = "Gecko";
	ret[1] = 1.0;

	if (nav.appName == "Microsoft Internet Explorer")
	{
		var ars = nav.appVersion.split(";");
		ret[0] = "IE";
	
		for (var i=0; i < ars.length; i++)
		{
			ars[i] = ars[i].replace(/^\s+/g, "");
			ars[i] = ars[i].replace(/\s+$/g, "");

			if(ars[i].substr(0, 4) == "MSIE")
			{
				ret[1] = parseFloat(ars[i].split(" ")[1]);
			}
		}
	}

	return ret;
}

function trim(str)
{
	var ret;
	ret = str.replace(/^\s+/g, "");
	ret = ret.replace(/\s+$/g, "");
	return ret;
}


function streamFile(fname)
{
	var f = URLEncode("Docs/" + fname);
	var url = "getfile.php?f=" + f;

	document.getElementById('iframeFileStream').src = url;

}
function PrependDebug(str)
{
	var el = document.getElementById('divDebug');
	if (el)
		el.innerHTML = str + "<br />\n" + el.innerHTML; 
}

function checkBrowserCompatibility()
{
	var ar = getBrowserInfo();
	if (ar[0] == "IE" && ar[1] < 5.5)
	{
		document.location = "error.php?k=browser_error";
	}
}

function setLoading(name)
{
	var el = document.getElementById(name);
	if (typeof el != 'undefined' && el != null)
		el.innerHTML = 'Loading...';
}


function setLoadingText(name, text)
{
	var el = document.getElementById(name);
        if (typeof el != 'undefined' && el != null)
                el.innerHTML = '<img src="images/loading_small.gif" alt="" /> ' + text;

}

function setText(name, txt)
{
	var el = document.getElementById(name);
	if (typeof el != 'undefined' && el != null)
		el.innerHTML = txt;
}

function setValue(name, txt)
{
	var el = document.getElementById(name);
	if (typeof el != 'undefined' && el != null)
		el.value = txt;
}

function getValue(name, def)
{
	try {
		var el = document.getElementById(name);
		if (typeof el != 'undefined' && el != null)
			return el.value;
	} catch (e) { }

	if (typeof def == 'undefined' || def == null)
		return "";
	return def;
}

function setChecked(name, checked)
{
	var el = document.getElementById(name);
	if (typeof el != 'undefined' && el != null)
		el.checked = checked;
}

function isChecked(name, _rtrue, _rfalse)
{
	if (typeof _rtrue == 'undefined' || _rtrue == null)
		rtrue = true;
	else
		rtrue = _rtrue;

	if (typeof _rfalse == 'undefined' || _rfalse == null)
		rfalse = false;
	else
		rfalse = _rfalse;

	var el = document.getElementById(name);
	if (typeof el != 'undefined' && el != null)
		if (el.checked == true)
			return rtrue;
	return rfalse;
}

function setVisible(name, visible)
{
	var el = document.getElementById(name);
	if (typeof el != 'undefined' && el != null)
	{
		if (visible == true)
			el.style.visibility = "visible";
		else
			el.style.visibility = "hidden";
	}
}

function setSelectedIndex(name, i)
{
	var el = document.getElementById(name);
	if (typeof el != 'undefined' && el != null)
		el.selectedIndex = i;
}

function array_contains(list, value)
{
	for (var i = 0; i < list.length; i++)
		if (list[i] == value)
			return true;
	return false;
}

//is value in the collection list[0..N][index] where N is the total number of items in list minus 1 ?
function array_contains_subitem(list, index, value)
{
	for (var i = 0; i < list.length; i++)
		if (list[i][index] == value)
			return true;
	return false;
}

function array_copy(list)
{
	var ret = new Array();
	for (var i = 0; i < list.length; i++)
		ret.push(list[i]);
	return ret;
}

window.streamFile = function(file) {
	document.getElementById("iframeFileStream").src = "getfile.php?f=" + file;
}

window.appendValue = function(id, val)
{
	var ars = val.split(" ");
	for (var i = 0; i < ars.length; i++)
		_appendValue(id, ars[i]);
}

window._appendValue = function(id, _val)
{
	var val = trim(_val);
	if (val == "")
		return;

	var el = document.getElementById(id);
	if (!el || typeof el == 'undefined')
		return;

	var exval = el.value;
	var ars = exval.split(" ");
	var i = 0;

	for (i=0; i < ars.length; i++)
	{
		if (ars[i] == val)
			return;
	}

	if (el.value != "")
		el.value = exval + " " + val;
	else
		el.value = val;
}

window.setError = function (value)
{
	try {
		setText('divStatus', '<div class="response_error"><img src="images/no_16x16.png" alt="" />&nbsp;&nbsp;&nbsp;<b>' + value + '</b></div>');
	} catch (e) { }
	self.scrollTo(0, 0);
}

window.setBusy = function (value, _div, _scroll)
{
	var div = 'divStatus';
	if (typeof _div != 'undefined' && _div != null && _div != "")
		div = _div;

	try {
		setText(div, '<div class="response_busy"><img src="images/loading_small.gif" alt="" />&nbsp;&nbsp;&nbsp;<b>' + value + '</b></div>');
	} catch (e) { }
	if (typeof _scroll == "boolean" && _scroll == true)
		self.scrollTo(0, 0);
}

window.setOkay = function (value, _div, _scroll)
{
	var div = 'divStatus';
	if (typeof _div != 'undefined' && _div != null && _div != "")
		div = _div;
	try {
		setText('divStatus', '<div class="response_success"><img src="images/yes_16x16.png" alt="" />&nbsp;&nbsp;&nbsp;<b>' + value + '</b></div>');
	} catch (e) { }
	if (typeof _scroll == "boolean" && _scroll == true)
		self.scrollTo(0, 0);
}


