
var objWTArea = '';

function givefocus(contrname){
 
 contrname.focus();
 contrname.select();
 
}

function nolinebreaks(wordin){
 
 return wordin;
 
 var starter = 0;
 var ender = (wordin.length)-1;
 var wordout = '';
 
 while (starter<=ender){
  
  if (wordin.charCodeAt(starter)==13){
   
   wordout += '<br>';
   starter++;
   
  }else{
   
   if (wordin.charCodeAt(starter)>=32){
    
    wordout += wordin.charAt(starter);
    
   }else{
    
    wordout += '&nbsp;&nbsp;&nbsp;';
    
   }
   
  }
  
  starter++;
  
 }
 
 return wordout;
 
}

function toHTML (wordin) {
 
 var WordOut = '';
 
 WordOut = nolinebreaks(wordin);
 
 return WordOut;
 
}

function validplaintext(worder, frmid, boname, boxnamer, require){
 
 var oktogo = true;
 var starter = 0;
 var ender = worder.length;
 var outvalue = '';
 
 while (starter<=ender){
  
  if (worder.charCodeAt(starter)<32){
   
   oktogo = true;
   starter = ender;
   
  }
  
  starter += 1;
  
 }
 
 if (!oktogo){
  
  alert('The ' + boxnamer + ' value you entered contains illegal characters! Please retype it.');
  givefocus(document.forms[frmid].elements[boname]);
  
 }else{
  
  if ((require)&&(ender<=0)){
   
   alert('The ' + boxnamer + ' value you entered is empty! Please retype it.');
   givefocus(document.forms[frmid].elements[boname]);
   oktogo = false;
   
  }
  
 }
 
 return oktogo;
 
}

function validunpw(worder, frmid, boname, boxnamer){
 
 var oktogo = true;
 var starter = 0;
 var ender = worder.length;
 
 if (ender<=0){
  
  oktogo = false;
  starter = ender + 1;
  
 }
 
 while (starter<=ender){
  
  if ((ender<=0)||(worder.charAt(starter)=="'")||(worder.charAt(starter)=='"')||(worder.charCodeAt(starter)<=32)){
   
   oktogo = false;
   starter = ender + 1;
   
  }
  
  starter += 1;
  
 }
 
 if (!oktogo){
  
  if (ender<=0){
   
   alert('The ' + boxnamer + ' value you entered is empty! Please type a value.');
   
  }else{
   
   alert('The ' + boxnamer + ' value you entered contains illegal characters! Please retype it.');
   
  }
  
  givefocus(document.forms[frmid].elements[boname]);
  
 }
 
 return oktogo;
 
}

function isanemail(mailin, frmid, boname, boxnamer){
 
 success = true;
 
 inthere = mailin.indexOf('@', 1);
 
 if (inthere>0){
  
  inthere = mailin.indexOf('.', 1);
  
  if (inthere>0){
   
   inthere = mailin.length
   
   if (inthere<5){
    
    success = false;
    
   }
   
  }else{
   
   success = false;
   
  }
  
 }else{
  
  success = false;
  
 }
 
 if (!success){
  
  alert('The ' + boxnamer + ' value you entered does not seem to be a valid E-Mail address! Please retype it.');
  givefocus(document.forms[frmid].elements[boname]);
  
 }
 
 return success;
 
}

function checkdater(inval, frmid, boname, boxnamer){
 
 var err=0;
 
 var a=inval;
 
 if ((a.length>10)||((a.length<8))){
  
  err=1;
  
 }
 
 var sl1, sl2
 
 sl1 = a.indexOf('/', 0);
 sl2 = a.indexOf('/', sl1 + 1);
 
 var b = a.substring(0, sl1);// month
 var c = a.substring((sl1), (sl1+1));// '/'
 var d = a.substring((sl1+1), sl2);// day
 var e = a.substring((sl2), (sl2+1));// '/'
 var f = a.substring((sl2+1), a.length);// year
 
 if ((b<1)||(b>12)){
  
  err = 1;
  
 }
 
 if ((d<1)||(d>31)){
  
  err = 1;
  
 }
 
 if (f<1900){
  
  err = 1;
  
 }
 
 if ((b==4)||(b==6)||(b==9)||(b==11)){
  
  if (d==31){
   
   err=1;
   
  }
  
 }
 
 if (b==2){
  
  var g=parseInt(f/4);
  
  if (isNaN(g)){
   
   err=1;
   
  }
  
  if (d>29){
   
   err=1;
   
  }
  
  if ((d==29)&&((f/4)!=parseInt(f/4))){
   
   err=1;
   
  }
  
 }
 
 if (err!=0){
  
  alert('The ' + boxnamer + ' value you entered does not seem to be a valid date! Please retype it.');
  givefocus(document.forms[frmid].elements[boname]);
  
  return false;
  
 }else{
  
  return true;
  
 }
 
} //checkdater(inval)

function checktracktime(inval, frmid, boname, boxnamer){
 
 var into = inval;
 
 var colonpos = into.indexOf(':')
 
 var goval = true;
 
 if (colonpos < 0){
  
  goval = false;
  
 }else{
  
  if (into.length>5){
   
   goval = false;
   
  }else{
   
   var min = into.substring(0, (colonpos));
   var sec = into.substring((colonpos + 1), into.length);
   
   if ((isNaN(parseInt(min, 10)))||(isNaN(parseInt(sec, 10)))){
    
    goval = false;
    
   }else{
    
    if ((min>99)||(sec>59)){
     
     goval = false;
     
    }
    
   }
   
  }
  
 }
 
 if (!goval){
  
  alert('The ' + boxnamer + ' value you entered is not a valid track time. Please retype it.');
  givefocus(document.forms[frmid].elements[boname]);
  
 }
 
 return goval;
 
} //checktracktime(inval, frmid, boname, boxnamer)

function checkmoney(inval, frmid, boname, boxnamer){
 
 var into = inval;
 
 var colonpos = into.indexOf('.')
 
 var goval = true;
 var cents;
 var rands;
 
 if (colonpos <= 0){
  
  cents = '00';
  rands = into;
  
 }else{
  
  cents = into.substring((colonpos + 1), into.length);
  rands = into.substring(0, (colonpos));
  
 }
 
 if ((isNaN(parseInt(rands, 10)))||(isNaN(parseInt(cents, 10)))){
  
  goval = false;
  
 }else{
  
  if (cents>99){
   
   goval = false;
   
  }
  
 }
 
 if (!goval){
  
  alert('The ' + boxnamer + ' value you entered is not a valid money value. Please retype it.');
  givefocus(document.forms[frmid].elements[boname]);
  
 }
 
 return goval;
 
} //checkmoney(inval, frmid, boname, boxnamer)

function checknumber(inval, frmid, boname, boxnamer){
 
 if (inval == "") {
  return true;
 }
 
 var testnum = parseInt(inval, 10);
 
 if (isNaN(testnum)) {
  
  for (var cncnt = 0; cncnt <= inval.length; cncnt++){
   
   if (isNaN(parseInt(inval.substring(cncnt, 1), 10))){
    
    alert('The ' + boxnamer + ' value you entered is not a valid numeric value. Please retype it.');
    givefocus(document.forms[frmid].elements[boname]);
    return false;
    
   }
   
  }
  
  alert('The ' + boxnamer + ' value you entered is not a valid numeric value. Please retype it.');
  givefocus(document.forms[frmid].elements[boname]);
  return false;
  
 }else{
  
  return true;
  
 }
 
}

function formcheck(acturl, formind){
 
 var icnt, start, inptype, inpdispname, strstart, strend, inval, testval;
 var submitme, vallen;
 
 submitme = false;
 
 start = 0;
 
 icnt = document.forms[formind].length - 1;
 
 if (icnt > 1){
  
  while (start<=icnt){
   
   if (document.forms[formind].elements[start].name!='') {
    
	var ObjectName = new String (document.forms[formind].elements[start].name);
	
	if (ObjectName.indexOf ('IgnoreNext') > 0) {
	 //alert (start);
	 start = start + parseFloat (document.forms[formind].elements[start].value);
	 //alert (start);
	 //alert (document.forms[formind].elements[start].name);
	}
	
    if (document.forms[formind].elements[start].name!='endofinputs'){
     
     inval = document.forms[formind].elements[start].value;
     strend = inval.indexOf(';#;');
     strstart = 0;
     inptype = inval.substring(strstart, strend);
     inval = inval.substring(strend + 3, inval.length);
     strend = inval.indexOf(';#;');
     inpdispname = inval.substring(strstart, strend);
     vallen = inval.substring(strend + 3, inval.length);
     
     start ++;
     
     var RStr = new String;
     
     //RStr = document.forms[formind].elements[start].value;
     //RStr.replace ("'", "`");
     //document.forms[formind].elements[start].value = RStr;
     
     testval = document.forms[formind].elements[start].value;
     
     if (vallen>testval.length){
      
      if ((inptype=='username')||(inptype=='password')){
       
       submitme = validunpw(testval, formind, start, inpdispname);
       
      }else{
       
       if (inptype=='plaintext'){
        
        submitme = validplaintext(testval, formind, start, inpdispname, false);
        
       }else{
        
        if (inptype=='reqtext'){
         
         submitme = validplaintext(testval, formind, start, inpdispname, true);
         
        }else{
         
         if (inptype=='plaintextarea'){
          
          testval = nolinebreaks(document.forms[formind].elements[start].value);
          submitme = validplaintext(testval, formind, start, inpdispname, false);
          
         }else{
          
          if (inptype=='reqtextarea'){
           
           testval = nolinebreaks(document.forms[formind].elements[start].value);
           submitme = validplaintext(testval, formind, start, inpdispname, true);
           
          }else{
           
           if (inptype=='email'){
            
            submitme = isanemail(testval, formind, start, inpdispname);
            
           }else{
            
            if (inptype=='date'){
             
             submitme = checkdater(testval, formind, start, inpdispname);
             
            }else{
             
             if (inptype=='tracktime'){
              
              submitme = checktracktime(testval, formind, start, inpdispname);
              
             }else{
              
              if (inptype=='money'){
               
               submitme = checkmoney(testval, formind, start, inpdispname);
               
              }else{
               
               if (inptype=='number'){
                
                submitme = checknumber(testval, formind, start, inpdispname);
                
               }else{
                
                if (inptype=='plainhtml'){
                 
                 document.forms[formind].elements[start].value = nolinebreaks(document.forms[formind].elements[start].value);
                 testval = document.forms[formind].elements[start].value;
                 submitme = validplaintext(testval, formind, start, inpdispname, false);
                 
                }else{
                 
                 submitme = true;
                 
                }
                
               }
               
              }
              
             }
             
            }
            
           }
           
          }
          
         }
         
        }
        
       }
       
      }
      
     }else{
      
      alert('The ' + inpdispname + ' value is too long. Please retype it.');
      givefocus(document.forms[formind].elements[start]);
      start = icnt + 1;
      submitme = false;
      
     }
     
    }else{
     
     start = icnt + 1;
     
    }
   }
   
   if (submitme){
    
    start++;
    
   }else{
    
    start = icnt + 1;
    
   }
   
  }
  
 }else{
  
  submitme = true;
  
 }
 
 if (submitme){
  
  document.forms[formind].action = acturl;
  
  if (objWTArea != '') {
   updateTextArea(objWTArea);
  }
  
  document.forms[formind].submit();
  
 }
 
}

function Preview(PVString, PVObj) {
 //PVObj.innerHTML = toHTML(PVString);
 PVObj.innerHTML = PVString;
}

