function getKey(oEvent){
var key;
if(window.event){
key=window.event.keyCode;
} else if (oEvent){
key=oEvent.which;
} else {
return false;
}
return key;
}
function valKeyPress(oEvent, sValType, submitFunction, valClientExtra){
var key;
var valString;
var valExtra;
key=getKey(oEvent);
if(key==13){
if(submitFunction){
eval(submitFunction);
return false;
}
}
if(!valClientExtra){
valClientExtra="";
valExtra = "_&@.- ";
}else{
valExtra="";
}
switch (sValType){
case "numeric" :
valString = "0123456789" + valClientExtra;
break;
case "alpha" :
valString = "abcdefghijklmnopqrstuvwxyz" + valExtra + valClientExtra;
break;
case "alphanumeric" :
valString = "0123456789abcdefghijklmnopqrstuvwxyz" + valExtra + valClientExtra;
break;
default :
valString = "0123456789abcdefghijklmnopqrstuvwxyz" + valExtra + valClientExtra;
break;
}
keychar=String.fromCharCode(key);
keychar=keychar.toLowerCase();
if( (key==null)|| (key==0)||(key==8)||(key==9)||(key==27) ){
return true;
} else if (valString.indexOf(keychar) > -1){
return true;
} else {
return false;
}
}
function restrictLength(objItem,viLength)
{
var data=objItem.value;
if(data.length>=viLength)
objItem.value=data.substr(0,viLength);
}
var A = "abcdefghijklmnopqrstuvwxyz";
var N = "0123456789";
function Validation(){
Validation.prototype.gaFields=new Array();
document.onkeypress=this.validateField;
if(navigator.userAgent.indexOf("Netscape")>-1) document.captureEvents(Event.KEYPRESS);
}
function Validation.prototype.setMask(name, value, blur){
var gaFields=Validation.prototype.gaFields;
if(document.forms.length){
if(document.forms[0][name]){
if(!gaFields[name]){
gaFields[name]=new Object();
Validation.prototype[name]=gaFields[name];
}
gaFields[name].blur=false;
if(blur){
gaFields[name].blur=true;
if(document.forms[0][name].length){
for(i=0;i<document.forms[0][name].length;i++){
document.forms[0][name][i].onblur=this.validateField;
}
}else{
document.forms[0][name].onblur=this.validateField;
}
}
gaFields[name].mask=value;
return true;
}else{
return false;
}
}else{
return false;
}
}
function Validation.prototype.removeMask(name){
var gaFields=Validation.prototype.gaFields;
gaFields[name].mask="";
}
function Validation.prototype.setFieldProperty(name, property, value){
if(property.toLowerCase=="mask"){
Validation.prototype.setMask(name,value);
}else{
var gaFields=Validation.prototype.gaFields;
if(!gaFields[name])gaFields[name]=new Object();
gaFields[name][property]=value;
}
}
function Validation.prototype.getFieldProperty(name, property){
var gaFields=Validation.prototype.gaFields;
if(gaFields[name])
return gaFields[name][property];
}
function Validation.prototype.validateField(nEvent){;
var eventType="";
var field="";
var key=0;
var valString="";
var gaFields=Validation.prototype.gaFields;
if(window.event){
field=window.event.srcElement;
key=window.event.keyCode;
eventType=event.type;
if(event.ctrlkey)key=0;
}else{
field=nEvent.target;
key=nEvent.which;
eventType=nEvent.type;
if(nEvent.modifiers=="CONTROL_MASK")key=0;
}
var keychar=String.fromCharCode(key).toLowerCase();
if(gaFields[field.name]){
valString=gaFields[field.name].mask;
}
if(!valString)valString="";
switch(eventType){
case "keypress" :
if( (key==null)|| (key==0)||(key==8)||(key==9)||(key==27)||(valString=="")){
return true;
} else if (valString.indexOf(keychar) > -1){
return true;
} else {
return false;
}
break;
case "blur" :
for(iStringIndex=0;iStringIndex<field.value.length;iStringIndex++){
keychar=field.value.substr(iStringIndex, 1);
if(valString=="")return true;
if(valString.indexOf(keychar)== -1){

msgString = "An invalid character '" + keychar + "' has been entered";
msgString+=".  Please redefine your input. "
alert (msgString);
field.focus();
return false;
}
}
break;
}
}
function Validation.prototype.validDate(vsDate)
{
var lbValidDate=true;
dd=vsDate.substr(0,2);
mm=vsDate.substr(2,2);
ccyy=vsDate.substr(4,4);
if(mm<1||mm>12)
lbValidDate=false;
if(dd<1||dd>31)
lbValidDate=false;
if(ccyy<1900||ccyy>2003)
lbValidDate=false;
if((mm==4||mm==6||mm==9||mm==11)&& dd==31)
lbValidDate=false;
if(lbValidDate&&mm==2)
if(isNaN(parseInt(ccyy/4))||(dd>29)||dd==29&&((ccyy/4)!=parseInt(ccyy/4)))
lbValidDate=false;
return(lbValidDate);
}


