// browser checks
function isOpera()
{
	if(navigator.userAgent.toLowerCase().indexOf('opera')  > -1) {
		return true;
	} else {
		return false;
	}
}
function isIE()
{
	if(navigator.userAgent.toLowerCase().indexOf('msie')  > -1) {
		return true;
	} else {
		return false;
	}
} 
function oldIE()
{
	var ua = navigator.userAgent.toLowerCase();
	var i = ua.indexOf('msie');
	if(i<0) {
		return false;
	}
	var uatrimmed = ua.substr(i);
	var j = uatrimmed.indexOf(';');
	var vers = uatrimmed.substring(5,j);
	vers = parseFloat(vers);
	if(vers < 7)
	{
		return true;
	}
	else
	{
		return false;
	}
}



// DOM
function getElem(eid)
{
	if(document.getElementById(eid))
	{
		return document.getElementById(eid);
	}
	else
	{
		return null;
	}
}
function showElem(elem)
{
	if(elem)
	{
		elem.style.visibility = 'visible';
	}
}
function hideElem(elem)
{
	if(elem)
	{
		elem.style.visibility = 'hidden';
	}
}
function radiobuttonValue(f, ename)
{
	var oRB, len, opt, i;
	oRB = f.elements[ename];
	len = oRB.length;
	for(i = 0; i < len; i++)
	{
		opt = oRB[i];
		if(opt.checked == true)
		{
			return opt.value;
		}
	} 
	return false;
}
function G(selector, container)
{
	container = container || document;
	var oNode = null;
	if (selector.substr(0, 1) == '#')
		oNode = document.getElementById(selector.substr(1)) || new Object();
	else if (selector == '*')
		return container.getElementsByTagName('*');
	else if (/^[a-z0-9]*\.[a-z0-9_-]+$/i.test(selector))
	{
		var aPart = selector.split('.');
		var aNodes = [];
		var sTagName = aPart[0] == '' ? '*' : aPart[0].toUpperCase();
		var aTNodes = container.getElementByTagName(sTagName);
		var count = aTNodes.length;
		if (count == 0) return false;
		for (var i = 0; i < count; i++)
		{
			if (aTNodes[i].className == aPart[1])
				aNodes.push(aTNodes[i]);
		}
		return aNodes;
	}
	else if (/^[a-z0-9]+$/i.test(selector))
	{
		return container.getElementsByTagName(selector.toUpperCase()) || false;
	}
	else return false;

	if (!!oNode && typeof(oNode) == 'object')
	{
		oNode.hide = function()
		{
			this.style.display = 'none';
			return this;
		}

		oNode.show = function()
		{
			this.style.display = '';
			return this;
		}
		oNode.setClass = function(sClass)
		{
			this.className = sClass;
			return this;
		}
	}
	return oNode;
}


// dimensions
function getDocumentHeight() 
{
	var h1 = document.compatMode != 'CSS1Compat' ? document.body.scrollHeight : document.documentElement.scrollHeight;
	var h2 = getViewportHeight();
	return Math.max(h1, h2);
}
function getViewportHeight() {
  return ((document.compatMode || isIE()) && !isOpera()) ? (document.compatMode == 'CSS1Compat') ? document.documentElement.clientHeight : document.body.clientHeight : (document.parentWindow || document.defaultView).innerHeight;
}



// formats and checks
function isNotEmpty(str)
{
	var PatternEmpty = /^[\s]*$/i;
	if(PatternEmpty.test(str))
	{
		return false;
	}
	else
	{
		return true;
	}
}
function isValidEmail(str)
{
	var PatternEmail = /^([a-zA-Z0-9_\.\-]+)@([a-zA-Z0-9\.\-]+)\.([a-zA-Z]{2,4})$/;
	if(!PatternEmail.test(str))
	{
		return false;
	}
	else
	{
		return true;
	}
}
function formatPositive(str)
{
	var pattern = /[^0-9\.]+/gi;
	var nstr = str.toString();
	nstr = nstr.replace(/,/g, ".");
	nstr = nstr.replace(pattern, "");
	if(!nstr || nstr.length == 0) {
		nstr = '0';
	}
	var aft, bef, i;
	i = nstr.indexOf('.');
	if(i > -1)
	{
		bef = nstr.substr(0, i+1);
		aft = nstr.substr(i);
		aft = aft.replace(/\./g, "");
		if(aft == '') {
			bef = bef.substr(0, i);
		}
		if(bef == '' || bef == '.') {
			bef = '0' + bef;
		}
		nstr = bef + aft;
	}
	return nstr;	
}
function formatPositiveInteger(str)
{
	var pattern = /[^0-9\.]+/gi;
	var nstr = str.toString();
	nstr = nstr.replace(/,/g, ".");
	nstr = nstr.replace(pattern, "");
	if(!nstr || nstr.length == 0) {
		nstr = '0';
	}
	var i;
	i = nstr.indexOf('.');
	if(i > -1)
	{
		nstr = nstr.substr(0, i);
	}
	return parseInt(nstr, 10);
}
function formatLTrim(str) {
	var pattern = /\s*((\S+\s*)*)/;
	return str.replace(pattern, "$1");
}
function formatRTrim(str) {
	var pattern = /((\s*\S+)*)\s*/;
	return str.replace(pattern, "$1");
}
function formatTrim(str) {
	return formatLTrim(formatRTrim(str));
}
function formatTrimSpaces(str) {
	var pattern = /\s*/g;
	return str.replace(pattern, '');
}

// array
function arRemoveValue(arr, val)
{
	for(i = 0; i < arr.length; i++)
	{
		if(arr[i] == val)
		{
			arr.splice(i, 1);
		}
	}
	return arr;
}



// cookies
function setCookie(c_name, value, expiredays)
{
	var exdate = new Date();
	exdate.setDate(exdate.getDate() + expiredays);
	document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires="+exdate.toGMTString());
} 
function getCookie(c_name)
{
	if (document.cookie.length > 0)
	{
		c_start = document.cookie.indexOf(c_name + "=");
		if (c_start != -1)
		{ 
			c_start = c_start + c_name.length + 1;
			c_end = document.cookie.indexOf(";", c_start);
			if (c_end == -1) 
			{
				c_end = document.cookie.length;
			}
			
			return unescape(document.cookie.substring(c_start, c_end));
		} 
	}
	
	return "";
}


// old xyz functions
function flip(item)
{
	if (item.style.display == 'none')
	{
		item.style.display = 'inline';
	}
	else
	{
		item.style.display = 'none';
	}
}
function OpenWindow(url, w, h) 
{
	window.open(url, '', 'toolbar=0,menubar=0,location=0,status=0,scrollbars=0,resizable=0,height='+h+',width='+w+',left=50,top=50');
}
function scrolled()
{
	parent.leftFrame.document.body.scrollTop=document.body.scrollTop;
	parent.rightFrame.document.body.scrollTop=document.body.scrollTop;
}