function toggleDropDown(id, id2){
var div=document.getElementById(id);
var lin=document.getElementById(id2);
if(div.className=="slide-show"){
	div.className="slide-hide";
}else{
	div.className="slide-show";
}
try{
if(lin.className=="plus"){
	lin.className="min";
}else{
	lin.className="plus";
}
}catch(e){}
return (false);
}
function hideit(id, id2){
	return (toggleDropDown(id, id2));
}

function getEl(id)
{
	return document.getElementById(id);
}

function crEl(el)
{
	return document.createElement(el);
}

function checkForm(El)
{
	var tElement = El.getElementsByTagName("INPUT");
	for (var i=0; i<tElement.length; i++)
	{
		if ((tElement[i].getAttribute('required') != null) && (tElement[i].getAttribute('required') != '') && (tElement[i].value == ''))
		{
			alert(tElement[i].getAttribute('required'));
			tElement[i].focus();
			return false;
		}
		if ((tElement[i].getAttribute('required') != null) && (tElement[i].getAttribute('required') != '') && (tElement[i].type == 'checkbox') && !tElement[i].checked)
		{
			alert(tElement[i].getAttribute('required'));
			tElement[i].focus();
			return false;
		}
		if ((tElement[i].getAttribute('equal') != null) && (tElement[i].getAttribute('equal') != ''))
		{
			var tt = getEl(tElement[i].getAttribute('equal'));
			if ((tt != null) && (tt.value != tElement[i].value))
			{
				alert(tElement[i].getAttribute('equaltext'));
				tt.focus();
				return false;
			}
		}
		if ((tElement[i].getAttribute('minlength') != null) && (tElement[i].getAttribute('minlength') != '') && (tElement[i].value.length < tElement[i].getAttribute('minlength')))
		{
			alert(tElement[i].getAttribute('mintext'));
			tElement[i].focus();
			return false;
		}
		if ((tElement[i].getAttribute('is_email') != null) && (tElement[i].getAttribute('is_email') != ''))
		{
			var re = /^[0-9a-z]([\+%-_.]?[0-9a-z_])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-wyz][a-z](g|l|m|pa|t|u|v)?$/;
			if (!tElement[i].value.match(re)) {
				alert(tElement[i].getAttribute('is_email'));
				tElement[i].focus();
				return false;
			}
		}
		if ((tElement[i].getAttribute('is_float') != null) && (tElement[i].getAttribute('is_float') != '') && (tElement[i].value != ''))
		{
			if (parseFloat(tElement[i].value) != tElement[i].value)
			{
				alert(tElement[i].getAttribute('is_float'));
				tElement[i].focus();
				return false;
			}
		}
/*   if ((tElement[i].getAttribute('maxvalue') != null) && (tElement[i].getAttribute('maxvalue') != '') && (tElement[i].value+1 > tElement[i].getAttribute('maxvalue')+1))
		{
			alert(tElement[i].getAttribute('maxvaluetext'));
			tElement[i].focus();
			return false;
		}*/
	}

	tElement = El.getElementsByTagName("SELECT");
	for (var i=0; i<tElement.length; i++)
	{
		if ((tElement[i].getAttribute('required') != null) && (tElement[i].getAttribute('required') != '') && (tElement[i].value == ''))
		{
			alert(tElement[i].getAttribute('required'));
			tElement[i].focus();
			return false;
		}
	}
	return true;
}

function checkForm2()
{
	var Form;
	if (typeof arguments[0] == 'object')
	{
		Form = arguments[0];
	}
	else
	{
		Form = document.getElementById(arguments[0]?arguments[0]:'mainform');
	}

	if (Form != null)
	{
		var tElement = Form.getElementsByTagName("INPUT");

		for (var i=0; i<tElement.length; i++)
		{
			if (tElement[i].type == "text" || tElement[i].type == "password")
			{
				if ((tElement[i].getAttribute('req') != null) && (tElement[i].getAttribute('req') != '') && (tElement[i].value == '' && tElement[i].getAttribute('maynull') != '1'))
				{
					alert(tElement[i].getAttribute('req'));
					tElement[i].focus();
					return false;
				}
				if ((tElement[i].getAttribute('req') != null) && (tElement[i].getAttribute('req') != '') && (tElement[i].type == 'checkbox') && !tElement[i].checked)
				{
					alert(tElement[i].getAttribute('req'));

					
					tElement[i].focus();
					return false;
				}
				if ((tElement[i].getAttribute('equal') != null) && (tElement[i].getAttribute('equal') != ''))
				{
					var t = tElement[i].getAttribute('equal');
					eval("var tt = Form." + t);
					if ((tt != null) && ((tt.value != tElement[i].value) && !(tElement[i].getAttribute('maynull') == '1' && tElement[i].value=='' && tt.value=='')))
					{
						alert(tElement[i].getAttribute('equaltext'));
						tt.focus();
						return false;
					}
				}
				
				if ((tElement[i].getAttribute('minlength') != null) && (tElement[i].getAttribute('minlength') != '') && (tElement[i].value.length < tElement[i].getAttribute('minlength'))&& !(tElement[i].getAttribute('maynull') == '1' && tElement[i].value==''))
				{
					
					alert(tElement[i].getAttribute('mintext'));
					tElement[i].focus();
					return false;
				}

				var regexp = /email/;
				if (tElement[i].name.match(regexp))
				{
					if (!checkEmail(tElement[i].value))
					{
						alert('Email?');
						tElement[i].focus();
						return false;
					}
				}


			}
			else
			{
				if ((tElement[i].getAttribute('req') != null))
				{
					var selected = false;
					var all_group = document.getElementsByName(tElement[i].name);
					for (var j=0; j<all_group.length; j++)
						if (all_group[j].checked)
							selected = true;
					
					if (!selected)
					{
						var v;
						if (tElement[i].required && tElement != 'undefined')
							v = 'Required field';
						else
							v = tElement[i].getAttribute('req'); 
						alert(v);
						tElement[i].focus();
						return false;
					}
				}
			}
		}

		tElement = Form.getElementsByTagName("SELECT");
		for (var i=0; i<tElement.length; i++)
		{
			if ((tElement[i].getAttribute('req') != null) && (tElement[i].getAttribute('req') != '') && (tElement[i].value == ''))
			{
				alert(tElement[i].getAttribute('req'));
				tElement[i].focus();
				return false;
			}
		}


		tElement = Form.getElementsByTagName("TEXTAREA");
		for (var i=0; i<tElement.length; i++)
		{
			if ((tElement[i].getAttribute('req') != null) && (tElement[i].getAttribute('req') != '') && (tElement[i].value == ''))
			{
				alert(tElement[i].getAttribute('req'));
				tElement[i].focus();
				return false;
			}
		}
		return true;
	}
	else
	{
		return false;
	}
}

function checkEmail(e)
{
	ok = "1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";

	for(i=0; i < e.length ;i++)
		if(ok.indexOf(e.charAt(i))<0)
			return (false);

	if (document.images)
	{
		re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
		re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
		if (!e.match(re) && e.match(re_two))
			return true;
		else
			return false;

	}
	return true;

}

nextObject = function(n) {
do n = n.nextSibling;
while (n && n.nodeType != 1);
return n;
}

previousObject = function(p) {
do p = p.previousSibling;
while (p && p.nodeType != 1);
return p;
}

function trim(str, chars) {
	if (str)
		return ltrim(rtrim(str, chars), chars);
	return '';
    
}

function ltrim(str, chars) {
    chars = chars || "\\s";
	if (str)
	    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
	return '';
}

function rtrim(str, chars) {
    chars = chars || "\\s";
	if (str)
	    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
	return '';
}

function sendXAction()
{
	//arguments[0] - action
	//arguments[1] - module
	//other arguments - parameters, ex. sendXAction('update', 'user', 'id', 5);
	//         sendXAction('update', 'user', 'id', 5, 'pid', 10);

	el = getEl('xForm');
	if (el)
		document.body.removeChild(el);

	var xForm = crEl('FORM');
	var elemAction = crEl('INPUT');

	xForm.id = 'xForm';

	elemAction.setAttribute('type', 'hidden');
	elemAction.setAttribute('name', 'action');
	elemAction.setAttribute('value', arguments[0]);
	xForm.appendChild(elemAction);

	var elemModule = crEl('INPUT');
	elemModule.setAttribute('name', 'module');
	elemModule.setAttribute('type', 'hidden');
	elemModule.setAttribute('value', arguments[1]);
	xForm.appendChild(elemModule);

	for (var i=2; i<arguments.length; i+=2)
	{
		var elem = crEl('INPUT');
		elem.setAttribute('name', arguments[i]);
		elem.setAttribute('type', 'hidden');
		try{elem.setAttribute('value', arguments[i+1]); }catch(e){};
		xForm.appendChild(elem);
	}
	xForm.setAttribute('method', 'post');
	document.body.appendChild(xForm);
	xForm.submit();
}

function showHide_()
{
	if (getEl(arguments[0]).style.display == 'none')
	{
		getEl(arguments[0]).style.display = '';
		getEl(arguments[0]+'_').style.display = 'none';
	}
	else
	{
		getEl(arguments[0]).style.display = 'none';
		getEl(arguments[0]+'_').style.display = '';
	}
	
}




function getBounds(tElement)
{
	var left = tElement.offsetLeft,
		top = tElement.offsetTop,
		parent;
	for (parent = tElement.offsetParent; parent; parent = parent.offsetParent)
	{
		left += parent.offsetLeft;
		top += parent.offsetTop;
	}
	return {left: left, top: top, width: tElement.offsetWidth, height: tElement.offsetHeight};
}



function setPosition()
{
	var scrollTop = document.documentElement.scrollTop,
		tElement = arguments[0],
		tBounds = arguments[1],
		w = tElement.clientWidth,
		h = tElement.clientHeight,
		winW = document.documentElement.clientWidth,
		winH = document.documentElement.clientHeight,
		vPX = 0,
		tHeightNotSet = true;

	if ((w + tBounds.left > winW) && (winW - w + tBounds.left > w))
	{
		tElement.style.left = tBounds.left - w + tBounds.width + 'px';
	}
	else
	{
		tElement.style.left = tBounds.left + 'px';
	}

	if (h + tBounds.top > winH + scrollTop)
	{
		if (h - tBounds.top > 0)
			if (h + tBounds.top - winH - scrollTop > h - tBounds.top)
				tHeightNotSet = false;
	}
	
	if ((tBounds.top + h > winH + scrollTop) && tHeightNotSet)
		if (tBounds.top - h - scrollTop > 0)
			tHeightNotSet = false;
	
	if ((winH - tBounds.top + scrollTop - h - tBounds.height < 0) && (tBounds.top - scrollTop - h > winH - tBounds.top + scrollTop - h - tBounds.height))
		tHeightNotSet = false;

	if (tHeightNotSet)
		tElement.style.top = tBounds.top + tBounds.height + vPX + 'px';
	else
		tElement.style.top = tBounds.top - h - vPX + 'px';
}