function P7_Snap() { //v2.62 by PVII
  var x,y,ox,bx,oy,p,tx,a,b,k,d,da,e,el,args=P7_Snap.arguments;a=parseInt(a);
  for (k=0; k<(args.length-3); k+=4)
   if ((g=MM_findObj(args[k]))!=null) {
    el=eval(MM_findObj(args[k+1]));
    a=parseInt(args[k+2]);b=parseInt(args[k+3]);
    x=0;y=0;ox=0;oy=0;p="";tx=1;da="document.all['"+args[k]+"']";
    if(document.getElementById) {
     d="document.getElementsByName('"+args[k]+"')[0]";
     if(!eval(d)) {d="document.getElementById('"+args[k]+"')";if(!eval(d)) {d=da;}}
    }else if(document.all) {d=da;} 
    if (document.all || document.getElementById) {
     while (tx==1) {p+=".offsetParent";
      if(eval(d+p)) {x+=parseInt(eval(d+p+".offsetLeft"));y+=parseInt(eval(d+p+".offsetTop"));
      }else{tx=0;}}
     ox=parseInt(g.offsetLeft);oy=parseInt(g.offsetTop);var tw=x+ox+y+oy;
     if(tw==0 || (navigator.appVersion.indexOf("MSIE 4")>-1 && navigator.appVersion.indexOf("Mac")>-1)) {
      ox=0;oy=0;if(g.style.left){x=parseInt(g.style.left);y=parseInt(g.style.top);
      }else{var w1=parseInt(el.style.width);bx=(a<0)?-5-w1:-10;
      a=(Math.abs(a)<1000)?0:a;b=(Math.abs(b)<1000)?0:b;
      x=document.body.scrollLeft + event.clientX + bx;
      y=document.body.scrollTop + event.clientY;}}
   }else if (document.layers) {x=g.x;y=g.y;var q0=document.layers,dd="";
    for(var s=0;s<q0.length;s++) {dd='document.'+q0[s].name;
     if(eval(dd+'.document.'+args[k])) {x+=eval(dd+'.left');y+=eval(dd+'.top');break;}}}
   if(el) {e=(document.layers)?el:el.style;
   var xx=parseInt(x+ox+a),yy=parseInt(y+oy+b);
   if(navigator.appName=="Netscape" && parseInt(navigator.appVersion)>4){xx+="px";yy+="px";}
   if(navigator.appVersion.indexOf("MSIE 5")>-1 && navigator.appVersion.indexOf("Mac")>-1){
    xx+=parseInt(document.body.leftMargin);yy+=parseInt(document.body.topMargin);
    xx+="px";yy+="px";}e.left=xx;e.top=yy;}}
}

//----------------------------------------------------------------------

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_reloadPage(init) {  //Updated by PVII. Reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

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 MM_changeProp(objName,x,theProp,theValue) { //v6.0
  var obj = MM_findObj(objName);
  if (obj && (theProp.indexOf("style.")==-1 || obj.style)){
    if (theValue == true || theValue == false)
      eval("obj."+theProp+"="+theValue);
    else eval("obj."+theProp+"='"+theValue+"'");
  }
}

//----------------------------------------------------------------------

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

//----------------------------------------------------------------------
//No Right Click menu
if (window.Event) 
document.captureEvents(Event.MOUSEUP); 
function nocontextmenu()  
{
event.cancelBubble = true
event.returnValue = false;
return false;
}
function norightclick(e)	
{
if (window.Event)	
{
if (e.which == 2 || e.which == 3)
return false;
}
else
if (event.button == 2 || event.button == 3)
{
event.cancelBubble = true
event.returnValue = false;
return false;
}	
}
document.oncontextmenu = nocontextmenu;		
document.onmousedown = norightclick;

//----------------------------------------------------------------------

function statusOn(txt) {
self.status = txt
}

function statusOff() {
self.status = ""
}

//----------------------------------------------------------------------

function show(ele) {
  var srcElement = document.getElementById(ele);
  if(srcElement != null) {
	  if(srcElement.style.display == "block") {
		srcElement.style.display= 'none';
	  }
	  else {
		srcElement.style.display='block';
	  }
  }
  //return false;
}

function hide(ele) {
  var srcElement = document.getElementById(ele);
  if(srcElement != null) {
	  if(srcElement.style.display == "block") {
		srcElement.style.display= 'none';
	  }
	  else {
		srcElement.style.display='block';
	  }
  }
  //return false;
}

function toggleImage(id,imageName){
	document.getElementById(id).style.backgroundImage="url('"+imageName+"')";
}


//----------------------------------------------------------------------

function ShowDiv(DivID){

	objDiv = document.getElementById(""+ DivID);
	
	// set the active elements
	objDiv.style.display = "block";
	
	// set the inactive elements
	for(i=1;i<=3;i++){
		if(i != DivID){
			HideDiv(i);
		}
	}
	
	objDiv = null;
	
}

function HideDiv(DivID){

	objDiv = document.getElementById(""+ DivID);
	
	objDiv.style.display = "none";
	
	objDiv = null;
}

//----------------------------------------------------------------------

function Trim(varString){

	var strTemp = varString.toString();
		
	if(strTemp.indexOf(" ") >= 0){
	
		// Left Trim
		for (i=0; i < strTemp.length; i++) {
			if(strTemp.charAt(i) == " "){
				strTemp = strTemp.substring(i + 1);
			}
			else{
				break
			}
		}
		
		// Right Trim
		for (i=strTemp.length - 1;  i >= 0; i--) {
			if(strTemp.charAt(i) == " "){
				strTemp = strTemp.substring(0, i);
			}
			else{
				break
			}
		}
	}
	
	return strTemp
}

//----------------------------------------------------------------------

/*
 CheckValidDate Procedure
 This function determines if the date is valid and has been entered in dd/mm/yy
 form. This ensures that the date can be converted to Medium Date
 format on the server without any problems.
*/

function IsDate(strDate){

	var blnResult = true;

	// check that the string is at least 6 characters long ie. 1/1/03.		
	if (strDate.length < 6){ 
		blnResult = false;
	} else {
		// check that there are 3 values separated by forward slashes.
		var arrDate = strDate.split("/")
	
		if(arrDate.length != 3){ 
			blnResult = false;
		} else {
			// check that each of the 3 values are numeric
			for (i = 0; i <= 2; i++){
				if(isNaN(arrDate[i])){
					blnResult = false;
				} else {
					/*
					 check that the month (array element 1) is between 1 and 12
					 and the days (array element 0) do not exceed the number of days in the month
					 */
					if (i == 1) {	// Jan, Mar, May, July, Aug, Oct, Dec
						if (arrDate[i] == 1 || arrDate[i] == 3 || arrDate[i] == 5 || arrDate[i] == 7 ||
							arrDate[i] == 8 || arrDate[i] == 10 || arrDate[i] == 12){
							if(arrDate[0] < 1 || arrDate[0] > 31){
								blnResult = false;
							}
						}			// Apr, Jun, Sep, Nov
						else if(arrDate[i] == 4 || arrDate[i] == 6 || arrDate[i] == 9 || arrDate[i] == 11){
								if(arrDate[0] < 1 || arrDate[0] > 30){
									blnResult = false;
								}
						}
						else if (arrDate[i] == 2){ 		// Feb
							
							if (arrDate[2] % 4 == 0){ 	// leap year
								if(arrDate[0] < 1 || arrDate[0] > 29){
									blnResult = false;
								}
							}
							else{ 						// non leap year
								if(arrDate[0] < 1 || arrDate[0] > 28){
									blnResult = false;
								}
							}
						}
						else{
							blnResult = false;
						}
					}

					/* check that there are either 2 or 4 digits in the year */

					if(arrDate[2].length != 2 && arrDate[2].length != 4){
						blnResult = false;
					}
				}
			}
		}
	}
	
	return blnResult;
}

//----------------------------------------------------------------------

function IsValidEmail(strEmail) {

	invalidChars = " /:,;"

	if (strEmail == "") {
		return false;
	}

	for (i=0; i<invalidChars.length; i++) {
		badChar = invalidChars.charAt(i)
		if (strEmail.indexOf(badChar,0) > -1) {
			return false;
		}
	}
		
	atPos = strEmail.indexOf("@",1)
	if (atPos == -1) {
		return false;
	}

	periodPos = strEmail.indexOf(".",atPos)
	if (periodPos == -1) {
		return false;
	}

	if (periodPos + 3 > strEmail.length) {
		return false
	}

	return true;
	
}

function IsNumeric(varValue) {
	
	varValue = varValue.toString();

	if (varValue.length == 0){
		return false;
	}
	
	for (var n = 0; n < varValue.length; n++){
	
		if (isNaN(varValue.substring(n, n+1)) && (varValue.substring(n, n+1) != "."))
			return false;
		}
		
	return true;
}

//----------------------------------------------------------------------

function SQLInjection(strText) {

	var	arrBadChars = new Array("&", "'", "\"", "+", ",", "(", ")");

	for (i=0; i < arrBadChars.length; i++) {
		if (strText.indexOf(arrBadChars[i], 0) > -1) {
			return true;
			break;
		}
	}
	return false;
}

//----------------------------------------------------------------------

function Popup(strWindowName, strURL, intWidth, intHeight){
	
	var posX = (screen.width / 2) - (intWidth / 2);
	
	window.open(strURL, strWindowName ,"height="+ intHeight +",width="+ intWidth +",left="+ posX +",top=100,toolbar=0,scrollbars=0,resizable=yes");

}

function PopupScroll(strWindowName, strURL, intWidth, intHeight){
	
	var posX = (screen.width / 2) - (intWidth / 2);
	
	window.open(strURL, strWindowName ,"height="+ intHeight +",width="+ intWidth +",left="+ posX +",top=100,toolbar=0,scrollbars,resizable=yes");

}

function PopupDynamic(strWindowName, strURL, intWidth, intHeight, intTop, blnToolbar, blnScrollBar, strResize, blnStatusBar){
	
	var intTop = (intTop == null) ? 100 : intTop;
	var blnToolbar = (blnToolbar == null) ? 0 : blnToolbar;
	var blnScrollBar = (blnScrollBar == null) ? 0 : blnScrollBar;
	var blnStatusBar = (blnStatusBar == null) ? 1 : blnStatusBar;
	var strResize = (strResize == null) ? 'yes' : strResize;

	var posX = (screen.width / 2) - (intWidth / 2);
	
	window.open(strURL, strWindowName ,"height="+ intHeight +",width="+ intWidth +",left="+ posX +",top="+ intTop +",toolbar="+ blnToolbar +",scrollbars="+ blnScrollBar +",statusbar="+ blnStatusBar +",resizable="+ strResize);

}

//----------------------------------------------------------------------

function AbsolutePosition(strObjectName, strAxis){
	
	if (document.getElementById) {	//  IE 5+, NS6+, Mozilla
		objHTMLObject = document.getElementById(strObjectName);
	} else if(document.all) { 
		objHTMLObject = document.all.item(strObjectName);
	}
	
	if (strAxis.toUpperCase() == 'Y'){
	
		var intTempPos = objHTMLObject.offsetTop;
		var strTagName = objHTMLObject.tagName;
					
		while(strTagName != "BODY"){
			
			objHTMLObject = objHTMLObject.offsetParent;
			intTempPos = intTempPos + objHTMLObject.offsetTop;
			strTagName = objHTMLObject.tagName;
		} 
		
	} else if (strAxis.toUpperCase() == 'X'){
	
		var intTempPos = objHTMLObject.offsetLeft;
		var strTagName = objHTMLObject.tagName;
					
		while(strTagName != "BODY"){
			
			objHTMLObject = objHTMLObject.offsetParent;
			intTempPos = intTempPos + objHTMLObject.offsetLeft;
			strTagName = objHTMLObject.tagName;
		} 
		
	} else {
		
		var intTempPos = 0;
		
	}
	
	return intTempPos;
	
}

function ShowSubMenu(MenuID){
	
	var objMenu = document.getElementById("SubMenu"+ MenuID);
	var intPosY = AbsolutePosition("Menu" + MenuID , "Y") + 21;
	var intPosX = AbsolutePosition("Menu" + MenuID , "X") - 6;
				
	objMenu.style.left = intPosX + "px";
	objMenu.style.top = intPosY + "px";
	objMenu.style.display = "block";
	
	objMenu = null;
		
}

function HideSubMenu(MenuID){
	
	var objMenu = document.getElementById("SubMenu"+ MenuID);
	objMenu.style.display = "none";
	objMenu = null;
}