  var doAll = (document.all!=null);
  var x = 0;
  var y = 0;
  
    var ie4 = (document.all)
    var ns4 = (document.layers)
    var isDHTML = ie4 || ns4

  function getCSSPElement(id) {    
    if (doAll)       
      return parent.Display.document.all[id]    
    else
      return parent.Display.document.layers[id]  
     }

  function getHeaderElement(id) {    
    if (doAll)       
      return parent.Header.document.all[id]    
    else
      return parent.Header.document.layers[id]  
     }
	 
function PrintPage() {
		if (window.print)
		    window.print()
		else 
			alert("To Print this page, please click on File | Print from your toolbar above.");
	}

function noDisplayElement(elmID) {
	for (i = 0; i < parent.Display.document.all.tags(elmID).length; i++) {
		obj = parent.Display.document.all.tags(elmID)[i];
		if (! obj || ! obj.offsetParent)
			continue;

		objLeft = obj.offsetLeft; objTop    = obj.offsetTop;	objParent = obj.offsetParent;
		while (objParent.tagName.toUpperCase() != "BODY") {
			objLeft  += objParent.offsetLeft;
			objTop   += objParent.offsetTop;
			objParent = objParent.offsetParent;
			objWidth = (obj.offsetLeft + obj.offsetWidth);
		}
		obj.style.visibility = "hidden";
	}
}

function displayElement(elmID) {
	for (i = 0; i < parent.Display.document.all.tags(elmID).length; i++) {
		obj = parent.Display.document.all.tags(elmID)[i];
		if (! obj || ! obj.offsetParent)
			continue;
		obj.style.visibility = "";
	}
}

    function showElement(id, daddy, cHeight) {        
      var pEl = getCSSPElement(id);
	  var daddy = null;
      if (pEl != null)          
        if (doAll) {
	      	if (!daddy)	{
				pEl.style.pixelTop = parent.Display.document.body.scrollTop + 10;
    	  		pEl.style.pixelLeft = parent.Display.document.body.clientWidth - 340;
				}
				pEl.style.visibility = "visible"
			return
			}
        else {
	      	if (!daddy) {
				pEl.top = window.pageYOffset; //src.y + 20 //window.event.y + 15
	      		pEl.left = document.width - 350; //src.x //window.event.x
				}
            pEl.visibility = "show"
			return
			}      
     }      
  
     function hideElement(id) {
        var pEl = getCSSPElement(id)        
        if (pEl != null)          
        if (doAll) {
			pEl.style.visibility = "hidden";
			}
        else
			pEl.visibility = "hide"      
     }

	function openNewWindow(fileName,windowName,theWidth,theHeight,theScroll) {
		if (doAll) {
		showLeft = parent.Display.document.body.clientWidth - theWidth - 40;
		}
		else {
		showLeft = 	parent.Display.document.width - theWidth - 40;
		}
		window.open(fileName,windowName,"toolbar=0,location=0,directories=0,status=0,menubar=1,scrollbars="+theScroll+",resizable=0,left=0,top=0,width="+theWidth+",height="+theHeight);
	}
	
			function showBubble(toolTip,dir,step,speed) {
            var dir;
            var step;
            var speed;
			var Tip = getCSSPElement('Bubble')
			var nsTip = Tip //getHeaderElement('HeaderBubble')
				clearTimeout("TheTimer")
				if (doAll) {
					var i = parent.Display.event.srcElement;
			  		Tip.innerHTML = toolTip;
					Tip.style.pixelLeft = getRealPos(i,"Left") + i.offsetWidth + 5 
					Tip.style.pixelTop=getRealPos(i,"Top")-Tip.offsetHeight;	
						if(Tip.style.pixelTop<parent.Display.document.body.scrollTop) {
						Tip.style.pixelTop=parent.Display.document.body.scrollTop;
						}
						if(Tip.style.pixelLeft>(parent.Display.document.body.clientWidth - 270)) {
						Tip.style.pixelLeft = parent.Display.document.body.clientWidth - 270;	
						}		
						Tip.style.visibility="visible";
						noDisplayElement("SELECT");	
						noDisplayElement("IFRAME");	
						if (Tip.offsetHeight > 200) {
						parent.Display.icon_bubble.style.pixelHeight = Tip.offsetHeight+35;
						}
				}
				else {
				if (location.hostname.indexOf("companyintranet.com") == -1) {
				nsTip.background.src = "/companyintranet/companyintranet/graphics/icons/icon_bubble_small_ns.gif";
				} else {
				nsTip.background.src = "/companyintranet/graphics/icons/icon_bubble_small_ns.gif";
				}
				nsTip.width = 250;		
				nsTip.document.writeln("<table height='110' width='250'><tr><td valign='top'><font face='Verdana,Arial' size='-4' color='333366'>"+toolTip+"</td></tr></table>");
				nsTip.document.close();
				nsTip.left = 0
				nsTip.top= parent.Display.window.pageYOffset;
				nsTip.visibility="show";
				nsTip.zIndex = "5555";
				}
			}
			
			function hideBubble() {
			var Tip = getCSSPElement('Bubble');
			var nsTip = Tip //getHeaderElement('HeaderBubble');
				if (doAll) {
				Tip.style.visibility="hidden";
				displayElement("SELECT");
				displayElement("IFRAME");
				}
				else {
				nsTip.visibility="hide";
		  		nsTip.document.clear();	
				}
			}

		function doNothing(){
		var temp;
		}
	
function toggleMenu(showHide) { 
	if (showHide == false) {
		newSize = "170,*"
    } else {
		newSize = "0,*"
	}
    	parent.MenuBar.cols = newSize
}

function getRealPos(i,which) {
  iPos = 0
  while (i!=null) {
    iPos += i["offset" + which]
    i = i.offsetParent
  }
  return iPos
}

//window.onerror = function(){return true;}

var new_fieldname = ""
var form_name = ""
var error_color = "EEEEEE"
var form_color = "FFFFFF"


function check(ele_count,formName,formFrame) {
 var x = eval(formFrame+"."+formName+".elements.length");
 script_name = "Form Validator ver 2.0";
 var message = "";
 var more_message = "";
 var formFrame = "Display";
 var showmsg = "no";
 x = x - 1;
  for (var i = 0; i <= x; i++) {
   var messenger = eval(formFrame+"."+formName+".elements[i].name");
   messenger = messenger.substring(0, 8);
   var fieldname = eval(formFrame+"."+formName+".elements[i].name");
   fieldname = fieldname.substring(8); 
   if (messenger.substring(0,6) == "valid_") {
    changeColorBack(fieldname,formName,formFrame);
   } else if (messenger.substring(0,5) == "v_two") {
	    var fieldname = eval(formFrame+"."+formName+".elements[i].value");
		var fieldname1 = fieldname.substring(0,fieldname.indexOf("|")); 
		var fieldname2 = fieldname.substring(fieldname.indexOf("|")+1,fieldname.lastIndexOf("|")); 
		var fieldoperator = fieldname.substring(fieldname.lastIndexOf("|")+1,fieldname.length); 
		var fieldvalue1 = eval(formFrame+"."+formName+"."+fieldname1+'.value');
		var fieldvalue2 = eval(formFrame+"."+formName+"."+fieldname2+'.value');
	   	changeColorBack(fieldname1,formFrame);
	   	changeColorBack(fieldname2,formFrame);
		if (fieldoperator == '!=' && fieldvalue1 != fieldvalue2) {
			err_msg = fieldname1 + " must be equal to " + fieldname2;
			err_msg = err_msg.replace(/_/g,' ');
	    	alert(err_msg);
	   		return false;			
		} else if (fieldoperator == '>' && fieldvalue1 > fieldvalue2) {
			err_msg = fieldname1 + " must be less than " + fieldname2;
			err_msg = err_msg.replace(/_/g,' ');
	    	alert(err_msg);
	   		return false;
		}		
 	 }
 }
 
  for (var i = 0; i <= x; i++) {
     var messenger = eval(formFrame+"."+formName+".elements[i].name");
    messenger = messenger.substring(0, 8);
    var fieldname = eval(formFrame+"."+formName+".elements[i].name");
    fieldname = fieldname.substring(8); {
      if (messenger == "valid_r_") {
        more_message = ValidateRequired(formName,x,fieldname,i,formFrame);
      } else if (messenger == "valid_q_") {
        more_message = ValidateDependent(formName,x,fieldname,i,formFrame);
      } else if (messenger == "valid_n_") {
        more_message = ValidateNumeric(formName,x,fieldname,i,formFrame);
      } else if (messenger == "valid_c_") {
        more_message = ValidateCurrency(formName,x,fieldname,i,formFrame);
      } else if (messenger == "valid_d_") {
        more_message = ValidateDate(formName,x,fieldname,i,formFrame);
      } else if (messenger == "valid_e_") {
        more_message = ValidateEmail(formName,x,fieldname,i,formFrame);
      } 
      if (more_message != "") {
        if (message == "") {
         message = more_message;
         more_message="";
        } else {
               message = message + "\n" + more_message;
         more_message="";
        }
      }
      if (message > "")	  
       showmsg = "yes"           
	   
      } 
    }
  
  if (showmsg == "yes") {
   alert("The following form field(s) were incomplete or incorrect:\n\n" + message + "\n\n Please complete or correct the form and submit again.")
   return false;
  } else {
   return true;
   //eval(formFrame+"."+formName+"submit()");
   }
   return true;
} 
 
function ValidateCurrency(formName,x,fieldname,i,formFrame) {
 var form_field_value = eval(formFrame+"."+formName+"."+fieldname+'.value');
 var msg_addition = "";
 var objRegExp = /(^\$\d{1,3}(,\d{3})*\.\d{2}$)|(^\(\$\d{1,3}(,\d{3})*\.\d{2}\)$)/;
    if (form_field_value != "") {
    if (!objRegExp.test(form_field_value)) {
      msg_addition = eval(formFrame+"."+formName+".elements[i].value");
   changeColor(fieldname,formName,formFrame);
   }
 }
 return(msg_addition);
}
 
function ValidateEmail(formName,x,fieldname,i,formFrame) {
 var form_field_value = eval(formFrame+"."+formName+"."+fieldname+'.value');
 var msg_addition = "";
 var objRegExp  = /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,3}(\.[a-z]{2}){0,2})$/i;
    if (form_field_value != "") {
    if (!objRegExp.test(form_field_value)) {
      msg_addition = eval(formFrame+"."+formName+".elements[i].value");
   changeColor(fieldname,formName,formFrame);
   }
 }
 return(msg_addition);
}
 
function  ValidateNumeric(formName,x,fieldname,i,formFrame) {
 var form_field_value = eval(formFrame+"."+formName+"."+fieldname+'.value');
 var form_field = eval(formFrame+"."+formName+"."+fieldname);
 var strValue = form_field_value;
 form_field.value=removeCurrency(form_field_value);
 form_field_value = form_field.value;
 var msg_addition = "";
 var objRegExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/; 
    if (form_field_value != "") {
    if (!objRegExp.test(form_field_value)) {
      msg_addition = eval(formFrame+"."+formName+".elements[i].value");
   changeColor(fieldname,formName,formFrame);
   }
 }
 return(msg_addition);
}
 
function ValidateInteger(formName,x,fieldname,i,formFrame) {
 var form_field_value = eval(formFrame+"."+formName+"."+fieldname+'.value');
 var msg_addition = "";
 var objRegExp  = /(^-?\d\d*$)/;
    if (form_field_value != "") {
    if (!objRegExp.test(form_field_value)) {
      msg_addition = eval(formFrame+"."+formName+".elements[i].value");
   changeColor(fieldname,formName,formFrame);
   }
 }
 return(msg_addition);
}
 
function ValidateTime (formName,x,fieldname,i,formFrame) {
 var form_field_value = eval(formFrame+"."+formName+"."+fieldname+'.value');
 var msg_addition = "";
 var objRegExp = /^([1-9]|1[0-2]):[0-5]\d(:[0-5]\d(\.\d{1,3})?)?$/;
    if (!objRegExp.test(form_field_value)) {
      msg_addition = eval(formFrame+"."+formName+".elements[i].value");
   changeColor(fieldname,formName,formFrame);
   }
  return(msg_addition);
}
 
function ValidateRequired(formName,x,fieldname,i,formFrame) {
 var form_field_type = eval(formFrame+"."+formName+"."+fieldname+'.type');
 var form_field_value = "";
 if (form_field_type == 'select-one') {
  var l = eval(formFrame+"."+formName+"."+fieldname+'.selectedIndex');
  var form_field_value = eval(formFrame+"."+formName+"."+fieldname+'.options[l].value');
 } else if (form_field_type == 'select-multiple') {
  var l = eval(formFrame+"."+formName+"."+fieldname+'.selectedIndex');
  if (l < 0) 
  	var form_field_value = "";
  else
  	var form_field_value = "selected";  	
 } else if (form_field_type == "text" || form_field_type == "password" || form_field_type == "textarea") {
  var form_field_value = eval(formFrame+"."+formName+"."+fieldname+'.value');
 } else {
  new_fieldname = fieldname;
  for (var y = 0; y <= x; y++) {
   var form_element_type = eval(formFrame+"."+formName+".elements[y].type");
   if ((form_element_type == "radio" || form_element_type == "checkbox") && eval(formFrame+"."+formName+".elements[y].name") == new_fieldname && eval(formFrame+"."+formName+".elements[y].checked") == true) {
    form_field_value = eval(formFrame+"."+formName+".elements[i].value");
    msg_addition = "";
    break;
   } else if ((form_element_type == "radio" || form_element_type == "checkbox") && eval(formFrame+"."+formName+".elements[y].name") == new_fieldname && eval(formFrame+"."+formName+".elements[y].checked") == false) {
      msg_addition = eval(formFrame+"."+formName+".elements[i].value");
   }
  }
 }
 var msg_addition = "";
   var strTemp = form_field_value;
 strTemp = trimAll(strTemp);
    if(strTemp.length == 0){
      msg_addition = eval(formFrame+"."+formName+".elements[i].value");
  changeColor(fieldname,formName,formFrame);
    }  
 return(msg_addition);
}
 
function changeColor(fieldname,formName,formFrame) {
  var el_win = eval(formFrame+"."+formFrame);
  if (document.all) {   	
	  var el = eval(formFrame+".document.all."+formName+"."+fieldname);
	  var el_style = (el.style)? el.style:'';
	  if (el_style != '') {
	     el_style.backgroundColor = error_color;
	     //el_style.borderColor = 'red';		 
		 //el_style.borderStyle = 'solid';
		 //el_style.borderWidth = 1;
		}
  }  
}
 
function changeColorBack(fieldname,formName,formFrame) {
  var el_win = eval(formFrame+"."+formFrame);  
  if (document.all) {
	  var el = eval(formFrame+".document.all."+formName+"."+fieldname);
	  var el_style = (el.style)? el.style:'';
	  if (el_style != '') {
	  	el_style.backgroundColor = form_color;
	     //el_style.borderColor = 'red';		 
		 //el_style.borderStyle = 'solid';
		 //el_style.borderWidth = 1;
		}
  }
}
function whichRequired(prefix,formName,formFrame) {
 	if (!prefix) prefix = "valid_";
	if (!formFrame) formFrame = "Display";
	var _elements = eval(formFrame+"."+formName+".elements");
  	if (document.all) 
	 for (x=0; x < _elements.length; x++)	
	  if (_elements[x].name.indexOf(prefix) == 0)
	   changeColor(_elements[x].name.substring(8), formName, formFrame);	
	return 0;
 }	
 //RL end
 
function removeCurrency( strValue ) {
  var objRegExp = /\(/;
  var strMinus = '';
  var strValue = removeCommas(strValue);
  objRegExp = /\)|\(|[,]/g;
  strValue = (strValue)? strValue.replace(objRegExp,''):'';
  if(strValue.indexOf('$') >= 0){
    strValue = strValue.substring(1, strValue.length);
  }
  return strValue;
}

function removeCommas( strValue ) {
  var objRegExp = /,/g; //search for commas globally
  //replace all matches with empty strings
  return (strValue)? strValue.replace(objRegExp,''):'';
}

function trimAll( strValue ) {
  var objRegExp = /^(\s*)$/;
    //check for all spaces
    if(objRegExp.test(strValue)) {
       strValue = strValue.replace(objRegExp, '');
       if( strValue.length == 0)
          return strValue;
    }
   //check for leading & trailing spaces
   objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
   if(objRegExp.test(strValue)) {
       //remove leading and trailing whitespace characters
       strValue = strValue.replace(objRegExp, '$2');
    }
  return strValue;
}
