	var fShow;
	var fHide;
	//used in toggleChkBxes,refreshChkBoxes functions
	var counter=0;
	var prevChkBxName="";

	if (document.all)    {
			n=0;ie=1;ns6=0;fShow="visible";fHide="hidden";
	}
	if (document.getElementById&&!document.all)    
	{
		n=0;ie=0;ns6=1;fShow="visible";fHide="hidden";
	}
	
	if (document.layers) 
	{
			n=1;ie=0;ns6=0;fShow="show";fHide="hide";
	}

	opr6=ie&&navigator.userAgent.indexOf("Opera")!=-1

	var submenu = null;

	function toggle(obj) {
		var childObj = document.getElementById(obj.id+"OptionBox");
		if (obj.className == "itemheadclosed") {
			obj.className = "itemheadopen"
			childObj.style.display="block";
		} else {
			obj.className = "itemheadclosed";
			childObj.style.display="none";
		}
	}

	function MM_findObj(n, d) { //v4.01
	  var p,i,x;  
	  if(!d) 
	  	d=document; 
	  if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document;
		n=n.substring(0,p);		
	  }
	  if(!(x=d[n])&&d.all) 
	  	x=d.all[n];
	  for (i=0;!x&&i<d.forms.length;i++)
	  	x=d.forms[i][n];
	  for(i=0;!x&&d.layers&&i<d.layers.length;i++)
	  	x=MM_findObj(n,d.layers[i].document);
	  if(!x && d.getElementById)
	  	 x=d.getElementById(n); 
	  return x;
	}

function emailCheck (emailStr) 
{
	var emailPat = /^(.+)@(.+)$/
	var specialChars = "\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars = "\[^\\s" + specialChars + "\]"
	var quotedUser = "(\"[^\"]*\")"
	var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom = validChars + '+'
	var word = "(" + atom + "|" + quotedUser + ")"
	var userPat = new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat = new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray = emailStr.match(emailPat)
	var user,domain=null,IPArray,domainArray,atomPat,domArr,len,errStr;
	
	if (matchArray == null)
	{
		alert("Email address is incorrect (check @ and .'s)")
		return false
	}

	user=matchArray[1]
	domain=matchArray[2]	
	if (user.match(userPat) == null)
	{
		alert("Email address' username is invalid.")
		return false
	}

	//checks if there is a domain ie after '.'
	domainArray = domain.match(domainPat)
	if (domainArray == null)
	{
		alert("Email address' domain name is invalid.")
		return false
	}
	
	//donno why this is used
	IPArray = domain.match(ipDomainPat);
  
	if (IPArray != null) 
	{
		for (var i=1;i<=4;i++)
		{	
			if (IPArray[i]>255)
			{
				alert("Destination IP address is invalid!")
				return false
			}
		}
		return true
	}

//checks if there is a '.' after domain 
	atomPat = new RegExp(atom,"g")
	domArr = domain.match(atomPat)
	len = domArr.length
	if (len<2)
	{
		errStr = "Email address is missing a hostname!"
		alert(errStr);
		return false
	}
	if (domArr[len-1].length<2 || domArr[len-1].length>3)
	{
		alert("Email address must end in a three-letter domain, or two letter country.")
		return false
	}
	return true;
}

function validateMask(form) {
        var isValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
 
        var oMasked = eval('new ' + jcv_retrieveFormName(form) +  '_mask()');      
        for (var x in oMasked) {
            if (!jcv_verifyArrayElement(x, oMasked[x])) {
                continue;
            }
            var field = form[oMasked[x][0]];
            if (!jcv_isFieldPresent(field)) {
              continue;
            }

            if ((field.type == 'hidden' ||
                field.type == 'text' ||
                 field.type == 'textarea' ||
				 field.type == 'file') &&
                 (field.value.length > 0)) {

                if (!jcv_matchPattern(field.value, oMasked[x][2]("mask"))) {
                    if (i == 0) {
                        focusField = field;
                    }
                    fields[i++] = oMasked[x][1];
                    isValid = false;
                }
            }
			if (!isValid)
			{
				break;
			}
        }

        if (fields.length > 0) {
           jcv_handleErrors(fields, focusField);
        }
        return isValid;
    }

    function jcv_matchPattern(value, mask) {
       return mask.exec(value);
    }



	
	function GetXmlHttpObject(){ 
	var objXMLHttp=null
	if (window.XMLHttpRequest){
		objXMLHttp=new XMLHttpRequest()
	}else if (window.ActiveXObject){
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
	}
	return objXMLHttp
} 



var fnDateCloseCallback="closeDate";
var fnDateCallback;

function closeDate() {
	hideWindow("dateBox");
}

function showDateCal(callBack) {
	fnDateCallback = callBack;
	hideAllWindows();
	var popWindow = new PopupWindow("dateBox", 'Calendar - Select Date', 350, 300, "/js/n_calendar.html", true);
	popWindow.show();
}

function jsEncode(val) {
   var reSingle=/'/gi;
   var reDouble=/"/gi;
   val = val.replace(reSingle,"\\'");
   val= val.replace(reDouble,"\\\\\"");
	return val;
}

function htmlEncode(val) {

	re=/&/gi;
	val = val.replace(re, "&#38;");

	re=/'/gi;
	val = val.replace(re, "&#39;");

	re=/"/gi;
	val = val.replace(re, "&#34;");

	re=/</gi;
	val = val.replace(re, "&#60;");

	re=/>/gi;
	val = val.replace(re, "&#62;");

	re=/\./gi;
	val = val.replace(re, "&#46;");

	return val;
}


function convertToDateString(dateStr) {
	var outStr = "";
	var arr = dateStr.split("/");
	if (arr.length == 3)
	{
		outStr = getMonthValue(arr[1])+"/"+arr[0]+"/"+arr[2]; 
	}
	return outStr;
}
function getMonthValue(month) {
	if (month.toUpperCase() == "JAN") {
		return "01";
	} else 	if (month.toUpperCase() == "FEB") {
		return "02";
	} else 	if (month.toUpperCase() == "MAR") {
		return "03";
	} else 	if (month.toUpperCase() == "APR") {
		return "04";
	} else 	if (month.toUpperCase() == "MAY") {
		return "05";
	} else 	if (month.toUpperCase() == "JUN") {
		return "06";
	} else 	if (month.toUpperCase() == "JUL") {
		return "07";
	} else 	if (month.toUpperCase() == "AUG") {
		return "08";
	} else 	if (month.toUpperCase() == "SEP") {
		return "09";
	} else 	if (month.toUpperCase() == "OCT") {
		return "10";
	} else 	if (month.toUpperCase() == "NOV") {
		return "11";
	} else 	if (month.toUpperCase() == "DEC") {
		return "12";
	} else {
		return "-1";
	}
}

function toggleAllCheckBoxes(frm, chkboxName, allChkBoxName) {
	var j=0;
	var count=frm.length;
	var status = frm.elements[allChkBoxName].checked;
	for(var i=0; i< count; i++) {
		if(frm.elements[i].type == "checkbox" && frm.elements[i].name==chkboxName){
			j++;
			frm.elements[i].checked = status;
		}
		if (status) {
			boxCount=j;
		} else {
			boxCount=0;
		}
	}
}

function countCheckedBoxes(frm, chkboxName) {
	var j=new Array();
	j[0]=0;
	j[1]=0;
	var count=frm.length;
	for(var i=0; i< count; i++) {
		if(frm.elements[i].type == "checkbox" && frm.elements[i].name==chkboxName) {
			j[0]++;
			if (frm.elements[i].checked) {
				j[1]++;
			}
		}
	}
	return j;
}

function refreshBoxes(frm, obj, chkboxName, allChkBoxName) {
	var status = obj.checked;
	var boxCount = countCheckedBoxes(frm, chkboxName);
	if (status)
	{
		if (boxCount[0] == boxCount[1])
		{
			frm.elements[allChkBoxName].checked = true;
		}
	} else {
		if (boxCount[1] != boxCount[0])
		{
			frm.elements[allChkBoxName].checked = false;
		}
	}
}


function showTab(paneName,tabNo, totalTabs) {
	var currFocusTabIndex = getTabOnFocus(paneName,totalTabs);
	setTabFocus(paneName,tabNo, totalTabs);

	var obj = MM_findObj(paneName+"Pane"+currFocusTabIndex);
	obj.style.display='none';

	var newObj = MM_findObj(paneName+"Pane"+tabNo);
	if (newObj && newObj.style) {
		newObj.style.display='block';
	}
}

function getTabOnFocus(paneName,totalTabs) {
	for (var i=1; i<=totalTabs; i++)
	{
		var obj = MM_findObj(paneName+"Pane"+i);
		if (obj && obj.style && obj.style.display=='block')
		{
			resetTabFocus(paneName, i, totalTabs);
			return i;
		}
	}
	return -1;
}

function resetTabFocus(paneName,tabNo, totalTabs) {
	var divObj = MM_findObj(paneName+"Tab"+tabNo);
	divObj.className='tab nsel';
}

function setTabFocus(paneName, tabNo, totalTabs) {
	var divObj = MM_findObj(paneName+"Tab"+tabNo);
	divObj.className='tab sel';
}


function showImg(imgName,tabNo, totalTabs) {
	var currFocusTabIndex = getTabOnFocus(imgName,totalTabs);
	setImgFocus(imgName,tabNo, totalTabs);
	var obj = MM_findObj(imgName+"Img"+currFocusTabIndex);
	var imgSrc="/images/"+imgName+"tab"+currFocusTabIndex +"_nsel.png";
	obj.src=imgSrc;
	var newObj = MM_findObj(imgName+"Img"+tabNo);
	if (newObj && newObj.src) {
		//newObj.style.display='block';
		var imgSrc="/images/"+imgName+"tab"+tabNo +"_sel.png";
		newObj.src=imgSrc;
	}
}

function setImgFocus(imgName, tabNo, totalTabs) {
	var divObj = MM_findObj(imgName+"Img"+tabNo);
	var imgSrc="/images/"+imgName+"tab"+tabNo +"_sel.png";
	divObj.src=imgSrc;
}


function position(objName) {
	var yScroll = 0;
	if (document.layers) {
		yScroll = window.pageYOffset;
	} else {
		yScroll = document.body.scrollTop || document.documentElement.scrollTop;
	}
	browseWidth=screen.width;
	browseHeight=screen.height;

	var obj = MM_findObj(objName);
	obj.style.top= (yScroll + ((browseHeight - obj.offsetHeight) / 2)) +"px";
	obj.style.left= ((browseWidth - obj.offsetWidth) / 2)-100+"px";//subtracted 100px to display the popup within the left pane
}

function getHelp(objName) {
	var myDiv=MM_findObj(objName);
	myDiv.style.display="block";
	position(objName);
}

function closeHelp(objName) {
	var myDiv=MM_findObj(objName);
	myDiv.style.display="none";
}

function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6.
{
	var arVersion = navigator.appVersion.split("MSIE")
	var version = parseFloat(arVersion[1])
	if ((version > 5.5) && (document.body.filters) && (version < 7.0))
	{
		for(var i=0; i<document.images.length; i++)
		{
			var img = document.images[i];
			var imgName = img.src.toUpperCase();
			if (imgName.substring(imgName.length-3, imgName.length) == "PNG") {
				var imgID = (img.id) ? "id='" + img.id + "' " : "";
				var imgClass = (img.className) ? "class='" + img.className + "' " : "";
				var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ";
				var imgStyle = "display:inline-block;" + img.style.cssText;
				if (img.align == "left") imgStyle = "float:left;" + imgStyle;
				if (img.align == "right") imgStyle = "float:right;" + imgStyle;
				if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle;
				var strNewHTML = "<span " + imgID + imgClass + imgTitle
				+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
				+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
				+ "(src=\'" + img.src + "\');\"></span>";
				img.outerHTML = strNewHTML;
				i = i-1;
			}
		}
	}
}


 function urlEncode(str)
 {
  var newStr="";
  for (var i=0;i<str.length;i++)
  {
   var chr = str.charAt(i);
   var asciiVal = str.charCodeAt(i);
   //alert(asciiVal);
   if (asciiVal>=65 && asciiVal <= 90)
   {
    //do nothing
    newStr+=chr;
   }
   else if (asciiVal>=97 && asciiVal <= 122)
   {
    //do nothing
    newStr+=chr;
   }
   else if (asciiVal>=48 && asciiVal <= 57)
   {
    //do nothing
    newStr+=chr;
   }
   else if (chr=='_' || chr=='-')
   {
    //do nothing
    newStr+=chr;
   }
   else if (chr==' ')
   {
    newStr+='+';
   }
   else
   {
    var tempStr='%'+convertHexa(asciiVal);
    newStr+=tempStr;
   }
  }
  return newStr;
 }

 function convertHexa(num)
 {
  var str="";
  
  while(parseInt(num/16)>0)
  {
   var temp=parseInt(num/16);
   if (temp==10)
    str+='A';
   else if (temp==11)
    str+='B';
   else if (temp==12)
    str+='C';
   else if (temp==13)
    str+='D';
   else if (temp==14)
    str+='E';
   else if (temp==15)
    str+='F';
   else
    str+=temp;
    
   num=parseInt(num%16)
  // alert(num);
  }
  temp=parseInt(num%16);
  if (temp==10)
   str+='A';
  else if (temp==11)
   str+='B';
  else if (temp==12)
   str+='C';
  else if (temp==13)
   str+='D';
  else if (temp==14)
   str+='E';
  else if (temp==15)
   str+='F';
  else
   str+=temp;
  
  return str;
 }

var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])
function fixPNG(myImage) 
{
    if ((version >= 5.5) && (version < 7) && (document.body.filters)) 
    {
       var imgID = (myImage.id) ? "id='" + myImage.id + "' " : ""
	   var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : ""
	   var imgTitle = (myImage.title) ? 
		             "title='" + myImage.title  + "' " : "title='" + myImage.alt + "' "
	   var imgStyle = "display:inline-block;" + myImage.style.cssText
	   var strNewHTML = "<span " + imgID + imgClass + imgTitle
                  + " style=\"" + "width:" + myImage.width 
                  + "px; height:" + myImage.height 
                  + "px;" + imgStyle + ";"
                  + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                  + "(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>"
	   myImage.outerHTML = strNewHTML	  
    }
}



 function trackIt(e) {
		if (ie&&!opr6)
		{
			yScroll=0;
			if (document.layers) {
				yScroll = window.pageYOffset;
			} else {
				yScroll = document.body.scrollTop || document.documentElement.scrollTop;
			}

			xPos = document.body.scrollLeft + window.event.clientX;
			yPos = yScroll + window.event.clientY;
		}
		if (n||ns6)
		{
			xPos = e.pageX;
			yPos = e.pageY;
		}
	}

	var selected_Menu_Tab = '';

function changLiStyle(liObjName, flag){
	var liObj = MM_findObj(liObjName);
	if(selected_Menu_Tab != liObjName){
		if(flag){
			liObj.className="sel";
		}else{
			liObj.className="";
		}
	}
}

function showMainMenu(arrayIndex, mainIndex, parentObjName, fixedXPos) {

		keepVisible(parentObjName);
		var obj = MM_findObj(parentObjName);

		var element = MM_findObj("liObj_"+mainIndex);
		var valueT = 0, valueL = 0;
		do {
			  valueT += element.offsetTop  || 0;
			  valueL += element.offsetLeft || 0;
			  element = element.offsetParent;
		} while (element);

			var browseWidth = 0;
			if (document.layers) {
			   browseWidth=window.outerWidth;
			} else {
			   browseWidth=document.body.clientWidth;
			}
			var width = fixedXPos;
			if (browseWidth < 1260){
				var diff = (1260 - browseWidth) / 2;
				if (browseWidth < 1010)
				{
					width = width - diff + ((1010 - browseWidth)/2); //(screen.width * 838) / 1280 ;
				} else {
					width = width - diff;
				}
			}else if (browseWidth > 1260){
				var diff = (1260 - browseWidth) / 2;
				width = width - diff;
			}
			obj.style.left = (parseInt(valueL,10) - 5) +"px";
			obj.style.top = (parseInt(valueT,10) + 36)+"px";
		
		obj.style.visibility=fShow;
	}


	function hideMenu(objName) {
		var obj = MM_findObj(objName);
		obj["hideJob"] =  setTimeout("hideObject('"+objName+"')", 200);
		var parObjName = obj["parent"];
		if (parObjName != null)
		{
			hideMenu(parObjName);
		}
	}

	function hideObject(objName) {
		var obj = MM_findObj(objName);
		obj.style.visibility=fHide;
	}

	function keepVisible(objName) {
		var obj = MM_findObj(objName);
		clearTimeout(obj["hideJob"]);// =  setTimeout("hideObject('"+objName+"')", 10);
		obj.style.visibility=fShow;
		var parObjName = obj["parent"];
		if (parObjName != null) {
			keepVisible(parObjName);
		}
	}
