//***********************************************************************
function CheckInput(ThisForm)
{
 if(!CheckTempPermitFields(ThisForm))return;
 ThisForm.submit();
}
//***********************************************************************
function CheckTempPermitFields(ThisForm)
{
  if(!VerifyField(ThisForm.PermitId,"Permit Id","numeric",0))return 0;
  if(!VerifyField(ThisForm.Surname,"Surname","required",0))return 0;
  if(!VerifyField(ThisForm.ReplacementRegNum,"Replacement Vehicle Rego","required",0))return 0;
  if(!VerifyField(ThisForm.ReplacementMake,"Replacement Vehicle Make","required",0))return 0;
  if(!VerifyField(ThisForm.StartDate,"StartDate","date",0))return 0;

  return 1;
}
//*********************************************************************************************************
 function AddAppeal(ThisForm)
 {
   var TimeStampIndex,BothStrings,StringArray,FieldString,DataString;
   var ok,co,Result,ASPPage,ChangeCase="",UpperCaseFields="",CapsFields="",LowerCaseFields="",DoNotAlterFields="";
   var FieldsToUse="",FieldsToIgnore="";

    if(!CheckAppeal(ThisForm,0))return;
    ThisForm.AppellantType.value=GetRadioValue(ThisForm.radio1);
    ThisForm.submit();

    //FieldString=StringArray[0];
	//DataString=StringArray[1];
	//TimeStampIndex=StringArray[2]; 
    //AddType="External"
	//RSAddAppeal(AddType,FieldString, DataString,TimeStampIndex);
  }
//*******************************************************************************************
function CheckAppeal(ThisForm,Panel)
{
 var CheckAddressDetails=0,AppealType="";

      if(!VerifyField(ThisForm.InfringeId,"Infringement Id","numeric",0))return 0;
	  if(!VerifyField(ThisForm.VehicleRegNum,"VehicleRegNum","required",0))return 0;
	  if(!CheckForCompulsoryRadio(ThisForm.radio1,"Please Check 'Staff','Student' or 'Visitor'"))return 0;
      if(!VerifyField(ThisForm.ContactName,"Contact Name","required",0))return 0;
      if(!VerifyField(ThisForm.Email,"Email Address","email",1))return 0;
      if(!VerifyField(ThisForm.Address1,"Address1","required",0))return 0;
      if(!VerifyField(ThisForm.Address2,"Address2","required",0))return 0;
	  if(!VerifyField(ThisForm.Address3,"Address3","required",0))return 0;
	  if(!VerifyField(ThisForm.PostCode,"Address4","required",1))return 0;
      if(!VerifyField(ThisForm.Explanation,"Explanation","required",0))return;
 
  return 1;
}
//*********************************************************************************************************
function VerifyField(Field,FieldName,DataType,Optional)
{
  if(Field.value.length>=1 && Optional || !Optional)
   {
    switch(DataType)
           {
            case "date":
		          if(Field.value.length>=1 && NoSpaces(Field))
                     {
                      if(!CheckField(Field.value,"date")){ShowMessage(Field,FieldName,"Date Field (dd/mm/yyyy): ");return 0;}
		              else {if(!CheckDate(Field.value)){ShowMessage(Field,FieldName,"Date Field (dd/mm/yyyy): ");return 0;}}
                      }
	              else {ShowMessage(Field,FieldName,"Required Field: ");return 0;}
                  break;

            case "time":
                  if(Field.value.length>=1 && NoSpaces(Field))
                     {
                      if(!CheckField(Field.value,"time")){ShowMessage(Field,FieldName,"Time Field (hh:mm): ");return 0;}
					  else {if(!CheckTime(Field.value)){ShowMessage(Field,FieldName,"Time Field (hh:mm): ");return 0;}}
                     }
	              else {ShowMessage(Field,FieldName,"Required Field: ");return 0;}
                  break;


            case "numeric":
                  if(Field.value.length>=1 && NoSpaces(Field))
	                {
	                 if(!CheckField(Field.value,"numeric")){ShowMessage(Field,FieldName,"Numeric Field: ");return 0;}
                    }
	               else {ShowMessage(Field,FieldName,"Required Field: ");return 0;}
                  break;

            case "alphaonly":
                  if(Field.value.length>=1 && NoSpaces(Field))
	                {
	                 if(!CheckField(Field.value,"alphaonly")){ShowMessage(Field,FieldName,"Character Field: ");return 0;}
                    }
	               else {ShowMessage(Field,FieldName,"Required Field: ");return 0;}
                  break;

            case "numericnonzero":
                  if(Field.value.length>=1 && NoSpaces(Field))
	                {
		             if(!CheckField(Field.value,"numeric")){ShowMessage(Field,FieldName,"Non Numeric Field: ");return 0;}
                     if(Field.value<=0){ShowMessage(Field,FieldName,"Non Zero Numeric Field: ");return 0;}
		            }
	               else {ShowMessage(Field,FieldName,"Required Field: ");return 0;}
                  break;

           case "GST":
                  if(Field.value.length>=1 && NoSpaces(Field))
	                {
		             if(!CheckField(Field.value,"currency")){ShowMessage(Field,FieldName,"Non Numeric Field: ");return 0;}
					 if(!CheckSingleDecPoint(Field.value)){ShowMessage(Field,FieldName,"One Decimal Point Only: ");return 0;}
                     if(Field.value*1>35){ShowMessage(Field,FieldName,"Exceeeds 35%: ");return 0;}
                     //if(Field.value<=0){ShowMessage(Field,FieldName,"Non Zero Numeric Field: ");return 0;}
		            }
	               else {ShowMessage(Field,FieldName,"Required Field: ");return 0;}
                  break;

            case "decimalnonzero":
                  if(Field.value.length>=1 && NoSpaces(Field))
	                {
		             if(!CheckField(Field.value,"currency")){ShowMessage(Field,FieldName,"Non Numeric Field: ");return 0;}
					 if(!CheckSingleDecPoint(Field.value)){ShowMessage(Field,FieldName,"One Decimal Point Only: ");return 0;}
                     if(Field.value<=0){ShowMessage(Field,FieldName,"Non Zero Numeric Field: ");return 0;}
		            }
	               else {ShowMessage(Field,FieldName,"Required Field: ");return 0;}
                  break;

            case "currency":
                  if(Field.value.length>=1 && NoSpaces(Field))
	                {
	                 if(!CheckField(Field.value,"currency")){ShowMessage(Field,FieldName,"Currency Field: ");return 0;}
					 if(!CheckSingleDecPoint(Field.value)){ShowMessage(Field,FieldName,"One Decimal Point Only: ");return 0;}
                    }
	               else {ShowMessage(Field,FieldName,"Currency Field: ");return 0;}
                  break;

            case "required":
                  if(Field.value.length>=1 && NoSpaces(Field))
				  {
				  }
	              else {ShowMessage(Field,FieldName,"Required Field: ");return 0;}
                  break;

            case "creditcard":
                  if(Field.value.length>=1 && NoSpaces(Field))
	                {
	                 if(!CheckCard(Field.value)){ShowMessage(Field,FieldName,"Credit Card Number appears to be invalid, please check and re-enter ");return 0;}
                    }
	               else {ShowMessage(Field,FieldName,"Credit Card Field: ");return 0;}
                  break;
  
           case "email":
                  if(Field.value.length>=1 && NoSpaces(Field))
	                {
	                 if(!CheckEmailAddress(Field.value)){ShowMessage(Field,FieldName,"Email Address appears to be invalid, please check and re-enter ");return 0;}
                    }
	               else {ShowMessage(Field,FieldName,"Email Field: ");return 0;}
                  break;
  

	        default:
			      alert("Unsupported validation type: " + DataType);return 0;
                  break;
           }
     }
 return 1;
}
//*********************************************************************************************************
function ShowMessage(Field,FieldName,Message)
{
  if(Field.disabled==false)Field.focus();
  if(Field.type!="select-one")Field.select();
  alert(Message + FieldName);
 }
//*******************************************************************************************
function CheckField(number,fieldname)
 {
  len=number.length;
  pdigits= new String(number);
  
   for(var y=0;y<len;y++)
      {
       ok=IsValid(pdigits.charAt(y),fieldname);
       if(!ok)
	     {
		  return false;
		 }
      }
  return true;
 }
//*********************************************************************************************************
function CheckDate(sDate)
{
 var DateSeperator="/",len=0,Seperator=0;
 len=sDate.length;
 
 if(len<6)return 0;
 if(sDate.charAt(0)==DateSeperator)return 0;
 if(sDate.charAt(len-1)==DateSeperator)return 0;

 for(cnt=0;cnt<len;cnt++)if(sDate.charAt(cnt)==DateSeperator)Seperator++;
 if(Seperator!=2)return 0;
 DateString=sDate.split(DateSeperator);
 if(DateString[0]*1>31 || DateString[0]*1==0)return 0;
 if(DateString[1]*1>12 || DateString[1]*1==0)return 0;

 return 1;
}
//*********************************************************************************************************
function CheckEmailAddress(Email)
 {
  var theChar,at=0,dot=0;
  for(var x=2;x < Email.length-1; x++)
     {
      theChar=Email.charAt(x);
	  if(theChar=="@")at++;
	  if(theChar==".")dot++;
  	  }
  if(at!=1 || dot<1 || Email.length< 10)return false; else return true;
 }
//*********************************************************************************************************
function NoSpaces(text,name)
 {
  var spacefound=0,ctr=0,input,len=0;
  input= new String(text.value);
  len=input.length;
  for(var y=0;y<len;y++)if(input.charAt(y)==" " || input.charAt(y)=="\n" || input.charAt(y)=="\r" || input.charAt(y)=="\t"){spacefound++;ctr++;}
  if(ctr==len && spacefound)return false;
  return true;
 }
//*********************************************************************************************************
function IsValid(character,field)
 {
  var TestChar="";
  
  if(field=="numeric")digits= new Array('0','1','2','3','4','5','6','7','8','9');
  if(field=="currency")digits= new Array('0','1','2','3','4','5','6','7','8','9','.');
  if(field=="date")digits= new Array('0','1','2','3','4','5','6','7','8','9','/');
  if(field=="time")digits= new Array('0','1','2','3','4','5','6','7','8','9',':','p','m','a',' ');
  if(field=="alphaonly")digits= new Array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');

  for(var x=0;x<digits.length;x++)
     {
	  TestChar=character.toLowerCase();
      //alert("TestChar=" + TestChar + " digits[" + x + "]=" + digits[x]); 
	  if(TestChar==digits[x])return true;
	 }
   return false;
 }
//*********************************************************************************************************
 function CheckForCompulsoryRadio(RadioGroup,Message)
{
  var cnt;
  for(cnt=0;cnt<RadioGroup.length;cnt++)
   {
    if(RadioGroup[cnt].checked)return 1;
   }
   alert(Message);
   return 0;
}
//*********************************************************************************************************
function GetRadioValue(RadioGroup)
 {
  var i = GetSelectedButton(RadioGroup)
  return RadioGroup[i].value;
  }
//*********************************************************************************************************
function GetSelectedButton(RadioGroup)
{
	for (var i = 0; i < RadioGroup.length; i++)if (RadioGroup[i].checked)return i;
	return 0;
}
//*********************************************************************************************************






 