

var MOL=new Array(); 
function MenuObj(_A,_B,_C,_D,_E,_F,_G,_H,_I)
{
	this.name=_A;
	this.bOn=_E;
	this.bOf=_F;
	this.bA=_G;
	this.SBS=SBS;
	this.showing=false;
	this.TM=TM;
	document.onclick=MCH;
	this.Direction=_I;
	MOL[MOL.length]=this;
	this.divObj=eval('document.all.' + _B);
	this.divStyleObj=eval('document.all.' + _B + '.style');
	this.refTDObj=eval('document.all.' + _C);
	if (_D)
	this.DdTDObj=eval('document.all.' +  _D);
	this.frmObj=eval('document.all.' +  _H);
	this.strShow='visible';
	this.strHide='hidden';
}

function ROP(ObjRef)
{
	var theObj=null;
	if (ObjRef)
	{
	if (typeof ObjRef != 'object')
	theObj=eval(ObjRef);
	else
	theObj=ObjRef;
	return theObj;
	}
	else
	return false;
}
function TM()
{
	if (!this.showing)
	{
	var RelObjCords=getXY(this.refTDObj);
	if (this.Direction)
	{
	this.divStyleObj.top =  RelObjCords.top + -this.divObj.offsetHeight;
	this.divStyleObj.left =  RelObjCords.left;
	}
	else
	{
	this.divStyleObj.top =  RelObjCords.top + 18;
	this.divStyleObj.left =  RelObjCords.left;
	}
	var pCurrMenuObj=ROP(this);
	CM(this);
	this.SBS('clicked');
	this.divStyleObj.visibility =  this.strShow;
	this.showing=true;
	}
	else
	{
	this.divStyleObj.visibility =  this.strHide;
	this.showing=false;
	this.SBS();
	}
}
function CM(callerObj)
{
	for (aIndex=0;aIndex < MOL.length; aIndex++)
	{
	if ((callerObj) && (callerObj.name != MOL[aIndex].name))
	{	
	if (MOL[aIndex].showing)
	{
	MOL[aIndex].TM();
	MOL[aIndex].SBS();
	}
	}
	else
	{
	if (MOL[aIndex].showing)
	{
	MOL[aIndex].TM();
	MOL[aIndex].SBS();
	}
	}
}
}
function MCH(e, srcObj, srcIsMenuDiv)
{
	var srcElem;
	if (!e)
	var e=window.event;
	e.cancelBubble=true;
	if (srcObj)
	{
	var pCurrMenuObj=ROP(srcObj); 
	if (!srcIsMenuDiv)
	pCurrMenuObj.divObj.onclick="MCH(event,"+srcObj+",true)";
	pCurrMenuObj.TM();
	}
	else
	CM();
}

function MME(e, srcObj)
{
	if (!e) 
	var e=window.event;
	var pCurrMenuObj=ROP(srcObj);
	if (!pCurrMenuObj.showing)
	{
	if (e.type == 'mouseover')
	pCurrMenuObj.SBS('on');
	else if ((e.type == 'mouseout') || (e.type == 'blur'))
	pCurrMenuObj.SBS();
	}
}

function SBS(wS)
{
	if (typeof this.refTDObj != "undefined")
	{
	if (wS == 'on')
	{
	if (this.bOn)
	{
	if (typeof this.DdTDObj != "undefined")
	this.DdTDObj.className=this.bOn;
	this.refTDObj.className=this.bOn;
	}
	}
	else if (wS == 'clicked')
	{
	if (this.bA)
	{
	if (typeof this.DdTDObj != "undefined")
	this.DdTDObj.className=this.bA;
	this.refTDObj.className=this.bA;
	}
	}
	else
	{
	if (this.bOf)
	{
	if (typeof this.DdTDObj != "undefined")
	this.DdTDObj.className=this.bOf;
	this.refTDObj.className=this.bOf;
	}
	}
	}
}
function getXY(Obj) 
{
	for (var sumTop=0,sumLeft=0;Obj!=document.body;sumTop+=Obj.offsetTop,sumLeft+=Obj.offsetLeft, Obj=Obj.offsetParent);
	return {left:sumLeft,top:sumTop}
}
function MO(e)
	{
	if (!e)
	var e=window.event;
	var S=e.srcElement;
	while (S.tagName!="TD")
	{S=S.parentElement;}
	S.className="T";
}
function MU(e)
{
	if (!e)
	var e=window.event;
	var S=e.srcElement;
	while (S.tagName!="TD")
	{S=S.parentElement;}
	S.className="P";
}
function MOD(e)
{
	if (!e)
	var e=window.event;
	var S=e.srcElement;
	while (S.tagName!="TD")
	{S=S.parentElement;}
	S.className="S";
}
function MUD(e)
{
	if (!e)
	var e=window.event;
	var S=e.srcElement;
	while (S.tagName!="TD")
	{S=S.parentElement;}
	S.className="R";
}
function MO_D(e)
{
	if (!e)
	var e=window.event;
	var S=e.srcElement;
	while (S.tagName!="TD")
	{S=S.parentElement;}
	S.className="X";
}
function MU_D(e)
{
	if (!e)
	var e=window.event;
	var S=e.srcElement;
	while (S.tagName!="TD")
	{S=S.parentElement;}
	S.className="W";
}
function MOD_D(e)
{
	if (!e)
	var e=window.event;
	var S=e.srcElement;
	while (S.tagName!="TD")
	{S=S.parentElement;}
	S.className="Y";
}
function MUD_D(e)
{
	if (!e)
	var e=window.event;
	var S=e.srcElement;
	while (S.tagName!="TD")
	{S=S.parentElement;}
	S.className="Y";
}
function DoHL()
{
	var e=window.event.srcElement;
	while (e.tagName!="TR"){e=e.parentElement;}
	if (e.className!='SL') e.className='HL';
}
function DoLL()
{
	var e=window.event.srcElement;
	while (e.tagName!="TR"){e=e.parentElement;}
	if (e.className!='SL')	e.className='';
}
function DoSL()
{
	var TB=e=window.event.srcElement;
	while (TB.tagName!="TABLE")
	{TB=TB.parentElement;}
	for (var i=0;i<TB.rows.length;i++){TB.rows[i].className='';}
	while (e.tagName!="TR"){e=e.parentElement;}
	e.className='SL';
}



var aCh="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var dCh="0123456789";
var asCh=aCh + dCh + "!\"#$%&'()*+,-./:;<=>?@[\]^_`{}~";
ie=document.all?1:0

function isAlphaNum(S){
	var AlphaNum=aCh + dCh;
	for (var i=0; i < S.length; i++)
	{
	if (AlphaNum.indexOf(S.charAt(i)) == -1)
	return false;
	}
	return true;
}

function isASCII(S){
	for (var i=0; i < S.length; i++)
	{
	if (asCh.indexOf(S.charAt(i)) == -1)
	return false;
	}
	return true;
}
function ValidateEmail(S)
{
	var R=false;
	if (typeof(S) != "undefined")
	{
	if (/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/.test(S))
	R=S;
	}
	return R;
}
function ValidateLooseEmail(S){
	var resultS=S.replace(/ /gi, "");
	var atIndex  =resultS.indexOf("@");
	var dotIndex =resultS.lastIndexOf(".");
	if( resultS == "" || !isASCII(resultS) || dotIndex == -1)
	return "";
	if ( resultS.lastIndexOf("@") != atIndex || resultS.charAt(atIndex+1) == ".")
	return "";
	if ( atIndex <= 0 || dotIndex < atIndex ||  dotIndex >= resultS.length-1)
	return "";
	return resultS;
}
function ValidateDomain(S){
	var resultS=S.replace(/ /gi, "");
	var atIndex  =resultS.indexOf("@");
	var dotIndex =resultS.lastIndexOf(".");
	if( resultS=="" || !isASCII(resultS) || dotIndex == -1)
	return "";
	if ( atIndex > 0 || resultS.charAt(atIndex+1) == "." || dotIndex >= resultS.length-1 )
	return "";
	return resultS.replace(/@/i, "");
}
function isEmail(S) {
	var pass=0;
	if (window.RegExp) {
	var tempS="a";
	var tempReg=new RegExp(tempS);
	if (tempReg.test(tempS)) pass=1;
	}
	if (!pass)
	return (S.indexOf(".") > 2) && (S.indexOf("@") > 0);
	var r1=new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	var r2=new RegExp("^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\}\\~]*[a-zA-Z0-9\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\}\\~]\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
	return (!r1.test(S) && r2.test(S));
}

