function opener(page){
window.open(page, "popup", "location=no,menubar=no,resizable=no,width=550,height=580,scrollbars=yes");
}

function validateTextSize(element,size)
{
  if (element.value.length > size)
  {
    alert("You have exceeded " + size + " characters, which is the maximum number of characters allowed for this field.");
	element.focus();
	return false;
  }
  
  return true;
}

function formatMask( obj, evnt, enforceSize, mask ) {
    if(!obj) return;
    if(!document.all&&evnt.type!='blur')return;
    var isBlur = false;
    if( evnt ) {
      isBlur = evnt.type=='blur';
      //if( isBlur && obj.iMaskDone==true) return;            // don't need to check on blur if already done.
      if( evnt.type=='keyup' ) {                            // ignore normal navigation keys.
        if( isNavigationKey(evnt.keyCode, evnt.shiftKey) ) return;
      }
    }
    //obj.iMaskDone = false;                                  // reset mask validation status
    //sMask = mask ? mask: (obj.iMask?obj.iMask:"");          // use supplied mask, object mask or no mask.
    sMask = mask;
    var maxsize = (sMask.length>0 && sMask.length <= obj.maxLength) ? sMask.length : obj.maxLength;
    var minsize = (sMask.length>0 && sMask.length <= maxsize) ? maxsize : 1;
    if( sMask.length>0 ) {                                  // check mask.
      if( obj.value.length > sMask.length ) 
          obj.value = obj.value.slice(0,sMask.length);      // remove extra characters.
      for( i=0; i<sMask.length; i++ ) {
        if( i<obj.value.length ) {
          if( !isNaN(sMask.charAt(i)) && sMask.charAt(i)!=' ' ) { // mask character is a digit.
            if( isNaN( obj.value.charAt(i) )
                || obj.value.charAt(i) > sMask.charAt(i))   // input must be a digit less than mask digit.
              obj.value = obj.value.substring(0,i) + obj.value.substring(i+1);
          }
          else if( sMask.charAt(i) != obj.value.charAt(i) ) // add mask characters if not present.
            obj.value = obj.value.substring(0,i) + sMask.charAt(i) + obj.value.substring(i);
        }
      }
    }
    if( obj.value.length==maxsize ) {                       // goto next field if mask size reached.
      //obj.iMaskDone = true;                                 // set mask status to prevent blur from checking.
      if(!isBlur) focusNext(obj);                           // don't set focus if already going somewhere.
    }
    else if( enforceSize ) {// check entered size, usually only on blur.
      if(obj.value.length > 0 && obj.value.length < minsize ) {
        alert( "Partial data not permited. \nSize required is "+minsize + "\n mask: "+sMask );
        obj.focus();                                        // refocus to offending object.
      }
    }
  }
  
function isNavigationKey( keyCode, shifted ) {
    if( !shifted ) {
      var keyList = [0,9,16,17,18,33,34,35,36,37,38,39,40,45];
      var index = 0;
      while( index < keyList.length) {
        if(keyList[index] == keyCode) return true;
        index++;
      }
    }
    return false;
}
  
function focusNext(obj) {
    if( !obj ) return;
    var index = -1, i = 0;
    while (i < obj.form.length && index == -1) {
      if (obj.form[i] == obj) index = i;
      else i++;
    }
    if( ++i < obj.form.length && ( obj.form[i].tabIndex<0 || obj.form[i].type=="hidden" || obj.form[i].style.display=="none") ){
      obj.form[ i % obj.form.length].focus();
    }
}







function LTrim (strValue) {
	return strValue.replace(/^\s*/,"");
}
function RTrim (strValue) {
	return strValue.replace(/\s*$/,"");
}
function Trim(strValue) {
	return RTrim(LTrim(strValue));
}
function HighlightInvalid(objEle) {
	if (objEle.style) {
		objEle.style.background="#d3d3d3";
		objEle.style.border = 'solid medium red';
	} else {
		alert('The element ' + objEle.name + ' is required.');
	}

}
function UnHighlightInvalid(objEle) {
	if (objEle.style) {
		objEle.style.background="white";
		objEle.style.border = 'inset thin';
	}
}
function ValidateElement(objEle) {
var blnProblem;

	switch(objEle.type.toLowerCase()) {
		case 'text':
		case 'textarea':
		case 'password':
			objEle.value=Trim(objEle.value);
			blnProblem = (objEle.value=="");
//alert('objEle.name:' + objEle.name + ' Problem:' + blnProblem);			
		break;
		case 'select-one':
		alert('select-one');
		break;
		default:
		break;
	}
	if (blnProblem==true) {
		HighlightInvalid(objEle);
	} else if (blnProblem==false) {
		UnHighlightInvalid(objEle);
	}
	return blnProblem;
}
function ValidateForm(objForm) {
var i;
var objEle;
var blnProblem = false;
var blnReturn = true;
var objFirstControl;

	for (i=0; i< objForm.length; i++) {
		objEle = objForm.elements[i];
		if (objEle.IntegrysRequired=="true") {
		blnProblem = ValidateElement(objEle);
		if (blnProblem==true) {
			blnReturn = false;
			objFirstControl = (objFirstControl?objFirstControl:objEle);
		}			
		}

		objEle.value = objEle.value.replace(/\'/,"''");
	}
	if (objFirstControl) {
		objFirstControl.focus();
	}
	buildXML(objForm,objForm.xmlString)
	return blnReturn;
}
	
//Build XML
	function buildXML(oForm, xmlInput){
 var XMLString     = "<records>"
 XMLString += "<table>" + oForm.name + "</table>";
 XMLString += "<record>";
 for( i = 0; i < oForm.elements.length; i++ ) {
   var oField = oForm.elements[i];
   if (oField.type!="submit"&&oField.type!="reset"&&oField!=xmlInput){
   XMLString += "<action>new</action>";
   XMLString += "<data>";
   XMLString += "<" + oField.name + " fieldname='" + oField.name + "'";
   if(oField.name.indexOf('RequestId')>-1){
   XMLString += " isauto = 'True' isprimary='True'";
   }
   XMLString += " ischanged='True'>";
   XMLString += "<![CDATA[";
      switch( oField.type ) {
        case 'textarea':
            XMLString += oField.value; 
            break;
        case 'text':
            XMLString += oField.value; 
            break;
        case 'hidden':
            XMLString += oField.value; 
            break;
        case 'select-one':
            XMLString += (oField.options)?oField.options[oField.selectedIndex].value:"";
            break;
        case 'checkbox':
            XMLString += (oField.checked)?"1":"0";
            break;
        default:
            break;
       }
   XMLString += "]]>";
   XMLString += "</" + oField.name + ">";
   XMLString += "</data>";
   }
   }
   XMLString += "</record>"
   XMLString += "</records>";

   if(xmlInput){
    xmlInput.value = XMLString;	
   }
   //alert(XMLString);
   return true;
}
//end Build XML





