function ValidateEmailFormat(emailVal){
    var isValid = false;
    if(emailVal){
        var emailParts = emailVal.split("@");
        if(!emailParts)
            return isValid;
        var localPart = "";
        var domainPart = "";
        if(emailParts.length > 2)
        {
            for(i = 0; i < emailParts.length - 1; i++){
                if(localPart != "")
                    localPart += "@";
                localPart += emailParts[i];
            }
            domainPart = emailParts[emailParts.length - 1];
        }
        else if(emailParts.length == 2){
            localPart = emailParts[0];
            domainPart = emailParts[1];
        }
        if(localPart != "" && domainPart != "")
        {
            var objLocalReg = /^[a-z0-9!#\$%\*\/\?\|\^{}`~&'\+\-=_][a-z0-9!#\$%\*\/\?\|\^{}`~&'\+\-=_\.]+[a-z0-9!#\$%\*\/\?\|\^{}`~&'\+\-=_]$/i;
            var objLocalRegQuotes = /^\"[a-z0-9!#\$%\*\/\?\|\^{}`~&'\+\-=_][a-z0-9!#\$%\*\/\?\|\^{}`~&'\+\-=_\.@\s\\]+[a-z0-9!#\$%\*\/\?\|\^{}`~&'\+\-=_]\"$/i;
            var objLocalRegOneTwo = /^[a-z0-9!#\$%\*\/\?\|\^{}`~&'\+\-=_]{1,2}$/i;
            var objLocalDoubleDot = /\.\./;
            var objDomainReg = /[a-z0-9\-]+\.[a-z0-9\-]+/i
            var objInvalidChars = /[\"\'\;\#\%\&\|\~\:\<\>\(\)\+]+/
            
            isValid = ((objLocalReg.test(localPart) && !objLocalDoubleDot.test(localPart)) || (objLocalRegQuotes.test(localPart) && !objLocalDoubleDot.test(localPart)) || (objLocalRegOneTwo.test(localPart) && !objLocalDoubleDot.test(localPart))) && objDomainReg.test(domainPart) && !objInvalidChars.test(emailVal);
        }
    }
    return isValid;    
}
function HidePopupDivCenter(divID)
{
    var div = document.getElementById(divID);
    
    div.style.left = "-1000px";
    div.style.top = "-1000px";
    div.style.position = "absolute";
    div.style.visiblity = "hidden";
}
function ShowPopupDivCenter(divID)
{
    var div = document.getElementById(divID);
    var yOffset = 0;
    var xOffset = 0;
    var availHeight = 0;
    var availWidth = 0;
    var divWidth = 0;
    var divHeight = 0;
    var top = 0;
    var left = 0;
    
    //get the y offset
    if(self.pageYOffset)
        yOffset = self.pageYOffset;
    else if (document.documentElement && document.documentElement.scrollTop)
        yOffset = document.documentElement.scrollTop;
    else if (document.body)
        yOffset = document.body.scrollTop;
        
    //get the x offset
    if(self.pageXOffset)
        xOffset = self.pageXOffset;
    else if (document.documentElement && document.documentElement.scrollLeft)
        xOffset = document.documentElement.scrollLeft;
    else if (document.body)
        xOffset = document.body.scrollLeft;
        
    //get the browser height and width
    if(typeof(window.innerHeight) == 'number')
    {
        availHeight = window.innerHeight;
        availWidth = window.innerWidth;
    }
    else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight))
    {
        availHeight = document.documentElement.clientHeight;
        availWidth = document.documentElement.clientWidth;
    }
    else if (document.body.clientHeight)
    {
        availHeight = document.body.clientHeight;
        availWidth = document.body.clientWidth;
    }
    
    //get the div width
    if (div.offsetWidth)
    {
        divWidth = div.offsetWidth;
    }
    else if(div.style.width)
    {
        divWidth = parseInt(div.style.width);
    }
    
    //get the div height
    if (div.offsetHeight)
    {
        divHeight = div.offsetHeight;
    }
    else if (div.style.height)
    {
        divHeight = parseInt(div.style.height);
    }
    
    top = ((availHeight/2)+yOffset) - (divHeight/2);
    left = ((availWidth/2)+xOffset) - (divWidth/2);
    
    div.style.zIndex = "999";
    div.style.position = "absolute";
    div.style.top = top+"px";
    div.style.left = left+"px";
    div.style.visibility = "visible";
}
function GoToNextFieldWithEnter(thisID, nextID, charcount, e, buttonid)
{
    clickButton(e, buttonid);
    GoToNextField(thisID, nextID, charcount);
}
function GoToNextField(thisID, nextID, charcount){
    var thisFld = document.getElementById(thisID);
    var nextFld = document.getElementById(nextID);
    if(thisFld.value.length >= charcount){
        nextFld.select();
        nextFld.focus();
    }
}
function clickButton(e, buttonid){ 
    var evt = e ? e : window.event;
    var bt = document.getElementById(buttonid);
    if (bt){ 
        var key = evt.keyCode ? evt.keyCode : evt.charCode;
        if (key == 13){ 
            jsClickThisButton(buttonid);
            return false; 
        } 
    } 
}
function jsClickThisButton(buttonid)
{
    var btn = $get(buttonid);
    if(btn.dispatchEvent)
    {
        var e = document.createEvent("MouseEvents");
        e.initEvent("click", true, true);
        btn.dispatchEvent(e);
    }
    else
    {
        btn.click();
    }
}
function ShowToolTip(divID, text){
    var div = document.getElementById(divID);
    div.innerHTML = text;
    AssignPosition(div);
    div.style.visibility = "visible";
}

function CloseToolTip(divID)
{
    document.getElementById(divID).style.visibility = "hidden";
}
        
       
var cX = 0; var cY = 0;
var moveID = "";
var highlight = false;
function SetFollowMouseMove(divID)
{
    moveID = divID;
    highlight = true;
}
function ClearFollowMouseMove()
{
    moveID = "";
    highlight = false;
}
//function UpdateCursorPosition(e){ cX = e.pageX; cY = e.pageY;}
//function UpdateCursorPositionDocAll(e){ cX = event.clientX; cY = event.clientY;}

function GetMousePosition(e){    
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
	cX = posx;
	cY = posy;
	
	if(moveID != "")
	{
	    var moveDiv = $get(moveID);
	    if(moveDiv)
	    {
	        AssignPosition(moveDiv);
	        moveDiv.style.visibility = "visible";
	    }
	}
}
function StartMouseMoveTracking(e){
    document.onmousemove = GetMousePosition;
//    if(document.all) 
//    { document.onmousemove = UpdateCursorPositionDocAll; }
//    else    
//    { document.onmousemove = UpdateCursorPosition; }
}
function AssignPosition(d) {
//    var yOffset = 0;
//    var xOffset = 0;
//    
//    if(window.pageYOffset)
//        yOffset = window.pageYOffset;       
////    else if (document.documentElement && !document.documentElement.scrollTop)
////        yOffset = 0;
//    else if (document.documentElement && document.documentElement.scrollTop)
//        yOffset = document.documentElement.scrollTop;
//    else if (document.body)
//        yOffset = document.body.scrollTop;
//        
//    //get the x offset
//    if(window.pageXOffset)
//        xOffset = window.pageXOffset;
////    else if (document.documentElement && !document.documentElement.scrollLeft)
////        xOffset = 0;
//    else if (document.documentElement && document.documentElement.scrollLeft)
//        xOffset = document.documentElement.scrollLeft;
//    else if (document.body)
//        xOffset = document.body.scrollLeft;
//        
//   //alert(cY + ' ' + self.pageYOffset + ' ' + document.documentElement.scrollTop + ' ' + document.body.scrollTop);
//        
//    if(window.pageYOffset)
//        d.style.top = (cY) + "px";
//    else
//        d.style.top = (cY+yOffset) + "px";
    
//    d.style.left = (cX+xOffset) + "px";
    
    d.style.left = (cX+10) + "px";
    d.style.top = (cY) + "px";
}
function HideSelectBoxes()
{
    var frm = document.forms[0];
    for(var i = 0; i < frm.elements.length; i++)
    {
        if(frm.elements[i].type == "select-one" || frm.elements[i].type == "select-multiple")
        {
            frm.elements[i].style.visibility = "hidden";
        }
    }    
}
function ShowSelectBoxes()
{
    var frm = document.forms[0];
    for(var i = 0; i < frm.elements.length; i++)
    {
        if(frm.elements[i].type == "select-one" || frm.elements[i].type == "select-multiple")
        {
            frm.elements[i].style.visibility = "visible";
        }
    }
}

function WatermarkOn(txtbox, text, cssClass) 
{
    var isWhitespace = /^\s*$/;
    if (txtbox.type == "text" && isWhitespace.test(txtbox.value)) 
    {
        txtbox.value = text;
        txtbox.className = cssClass;
    }
}

function WatermarkOff(txtbox, text, cssClass) 
{
    if (txtbox.type == "text" && txtbox.value == text) 
    {
        txtbox.value = "";
        txtbox.className = cssClass;
    }        
}