﻿// JScript File
<!--

var word = /(\bBITCH\b|\bFUCK|\bCUNT\b|\bASSHOLE\b|\bPOES\b|\bSHIT\b|\bDICK HEAD\b|\bDICKHEAD\b|\bPUSSY\b|\bWHORE\b|\bFAGGAT\b)/;

function CheckNameString(objName, objStr, isReq)
{
  var name = objName.value;
  name = name.toUpperCase();
  var msg = "";
  
  name = name.replace(/^\s+|\s+$/,'');
  
  if (name == "")
  {
    if (isReq == true)
      msg += "- Please enter " + objStr + ".\n";
  }
  else
  {
    if (name.length < 2 )
      msg += "- Please enter two or more characters for " + objStr + ".\n";
	
    if (name.match(word))
      msg += "- No vulgarity allowed, please re-enter " + objStr + ".\n";
  }
	
  return msg;
}

function CheckDOB(objDD, objMM, objYY, isReq)
{
  var dd = objDD.value;
  var mm = objMM.value;
  var yy = objYY.value;
  var msg = "";
 
  if (!(dd != ""  && mm != ""  && yy != "" )) {
    if (isReq == true)
      msg += "- Please enter date of birth.\n";
  }
  else {
    if(!(Isdate(dd,mm,yy)==true))
      msg += "- Please enter a valid date of birth (dd-mm-yyyy).\n";
  }
  
  return msg;
}

function CheckAreaContactNo(objAreaCode, objContactNo, isReq)
{
  var RexTelno = /^\d{7}$/;
  var RexAreaCode = /^\d{3}(\d)?$/;
  var AreaCode = objAreaCode.value;
  var ContactNo = objContactNo.value;
  var msg = "";
  
  if (AreaCode == "" && ContactNo == "")
  {
    if (isReq == true)
      msg += "- Please enter an area code and telephone number.\n";
  }
  else
  {
    if (AreaCode == "" || ContactNo == "")
    {
      msg += "- Make sure you have entered both telephone areacode and telephone number .\n";
    }
    if (AreaCode != "")
    {
      if (!(AreaCode.match(RexAreaCode))) {
        msg += "- Please enter a valid telephone area code without spaces and characters eg: 011 .\n";
      }
    }
    if (ContactNo != "")
    {
      if (!(ContactNo.match(RexTelno))) {
        msg += "- Please enter a valid telephone number without spaces and characters eg: 4890000 .\n";
      }
    }
  }
 
  return msg;
}

function CheckFullContactNo(objFullContactNo, isReq)
{
  var RexTelno = /^0[1-9]\d{8}$/;
  var ContactNo = objFullContactNo.value;
  var msg = "";
  
	if (ContactNo != "") {
		if (!(ContactNo.match(RexTelno))) {
			msg += "- Please enter a valid telephone number without spaces and characters eg: 0114890000 .\n";
		}
	}
  else
  {
    if (isReq == true)
      msg += "- Please enter valid telephone number eg: 0114890000.\n";
  }
  
  return msg;
}

function CheckCellNo(objCellNo, isReq)
{
  var RexCellno = /^0(71|72|73|74|76|78|79|81|82|83|84)\d{7}$/;
  var CellNo = objCellNo.value;
  var msg = "";
  
  if (CellNo != "") 
  {
    if (!(CellNo.match(RexCellno))) {
      msg += "- Please enter a valid cellphone number without spaces and characters eg: 0721234567.\n";
    }
  }
  else
  {
    if (isReq == true)
       msg += "- Please enter a cellphone number eg: 0721234567.\n";
  }
  
  return msg;
}

function CheckEmail(objEmail, word, isReq)
{
  var Email=objEmail.value;
  var RexEmail = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
  var invalidChars = ',;:\'\/\\ "?!()[]\{\}^|`<>';
  var msg = "";
  
  if (Email == "") {
    if (isReq == true)
      msg += "- Please enter email address.\n";
  }
  else {
    if (!(Email.match(RexEmail)) || Email.charAt(Email.length - 1) == "." || Email.indexOf("..",0) > -1 || Email.indexOf('@',Email.indexOf('@',0)+1) > -1 ) {
      msg += "- Please enter a valid email address.\n";
    }
    else {
      for (i=0; i<invalidChars.length; i++) {
        if (Email.indexOf(invalidChars.charAt(i),0) > -1) {
          msg += "- Email address contains invalid characters. eg: " + invalidChars + "\n";
          return msg;
        }
      }
    }
	  
    var UEmail = Email.toUpperCase();
    if (UEmail.match(word))
    {
      msg += "- No vulgarity allowed, please re-enter email.\n";
    }
  }
  
  return msg;
}

function CheckSuburb(objSuburb, isReq)
{
  var suburb = objSuburb.selectedIndex;
  var msg = "";

  if (suburb <= 0) {
    if (isReq == true)
      msg += "- Please search for a suburb and confirm it.\n";
  }
  
  return msg;
}

function IsOneContactNumber(objAreaCode, objContactNo, objCellNo)
{
  var AreaCode = objAreaCode.value;
  var ContactNo = objContactNo.value;
  var CellNo = objCellNo.value;
  var msg = "";
  
  if ((AreaCode == "" && ContactNo == "") && CellNo == "")
  {
    msg += "- Please enter either a cellphone number or a telephone number.\n";
  }
 
  return msg;
}


function IsOneContactNumberFull(objContactNo, objCellNo)
{
  var ContactNo = objContactNo.value;
  var CellNo = objCellNo.value;
  var msg = "";
  
  if (ContactNo == "" && CellNo == "")
  {
    msg += "- Please enter either a cellphone number or a telephone number.\n";
  }
 
  return msg;
}

function CheckTitleGender(objTitle, objGender)
{
  var msg = "";
  var TitleVal = objTitle.value.replace(/^\s+|\s+$/,'');
  var TitleGender = TitleVal.split("-")[0];

  if (TitleGender != "B")
  {
    var i;

    for (i=0; i < objGender.length-1; i++)
    {
    if (objGender[i].checked) break;
    }
    
    if (objGender[i].value != TitleGender)
        msg += "- Title and gender do not correspond.\n";
  }

  return msg;
}


function CheckHomeContents(objHome, isReq)
{
  var home = objHome.value;
  var RexHome = /^\d+$/;
  var msg = "";

  if ((home == "") || (home == "0")){
    if (isReq == true)
	    msg += "- Please enter home contents value.\n";
	}
  else
  {
	  if (!(home.match(RexHome))) {
		  msg += "- Please enter a numeric value greater than 0 for home contents value, without spaces.\n";
	  }
  }
  
  return msg;
}

function CheckBuilding(objBuild, isReq)
{
  var build = objBuild.value;
  var RexBuild = /^\d+$/;
  var msg = "";

  if ((build == "") || (build == "0")){
    if (isReq == true)
	    msg += "- Please enter building value.\n";
	}
  else
  {
	  if (!(build.match(RexBuild))) {
		  msg += "- Please enter a numeric value greater than 0 for building value, without spaces.\n";
	  }
  }
  
  return msg;
}

function CheckPortable(objUnspecified, objSpecified, objSpectacles, objCells, objBicycles, objEquipment, isReq)
{
  var unspecified = objUnspecified.value;
  var specified = objSpecified.value;
  var spectacles = objSpectacles.value;
  var cells = objCells.value;
  var bicycles = objBicycles.value;
  var equipment = objEquipment.value;
  
  var RexPortable = /^\d+$/;
  var msg = "";

  if (
       ((unspecified == "") || (unspecified == "0")) && ((specified == "") || (specified == "0")) && ((spectacles == "") || (spectacles == "0"))
       && ((cells == "") || (cells == "0")) && ((bicycles == "") || (bicycles == "0")) && ((equipment == "") || (equipment == "0"))
     )
  {
    if (isReq == true)
	    msg += "- Please enter a portable possesion value.\n";
	}
  else
  {
    if (!((unspecified == "") || (unspecified == "0")))
    {
	      if (!(unspecified.match(RexPortable))) {
		      msg += "- Please enter a numeric value greater than 0 for unspecified value, without spaces.\n";
	      }    
    }
    if (!((specified == "") || (specified == "0")))
    {
	      if (!(specified.match(RexPortable))) {
		      msg += "- Please enter a numeric value greater than 0 for specified value, without spaces.\n";
	      }
    }
    if (!((spectacles == "") || (spectacles == "0")))
    {
	      if (!(spectacles.match(RexPortable))) {
		      msg += "- Please enter a numeric value greater than 0 for spectacles value, without spaces.\n";
	      }
    }
    if (!((cells == "") || (cells == "0")))
    {
	      if (!(cells.match(RexPortable))) {
		      msg += "- Please enter a numeric value greater than 0 for cellphones value, without spaces.\n";
	      }
    }
    if (!((bicycles == "") || (bicycles == "0")))
    {
	      if (!(bicycles.match(RexPortable))) {
		      msg += "- Please enter a numeric value greater than 0 for bicycles value, without spaces.\n";
	      }
    }
    
    if (!((equipment == "") || (equipment == "0")))
    {
	      if (!(equipment.match(RexPortable))) {
		      msg += "- Please enter a numeric value greater than 0 for equipment value, without spaces.\n";
	      }
    }
  }
  
  return msg;
}


function CheckCarDropDown(objVehYY, objVehDes)
{
  var vehyy = objVehYY.selectedIndex;
  var msg = "";
  
  if (vehyy == 0)
  {
      msg += "- Please select car year, make, model and description.\n";;
  }
  else
  {
    var vehdes = objVehDes.selectedIndex;
    if (vehdes < 1)
      msg += "- Please select car year, make, model and description.\n";
  }
  
  return msg;
}

function CheckMotorbikeDropDown(objVehYY, objVehMake, objVehDes, minReg)
{
  var vehyy = objVehYY.value;
  var vehmake = objVehMake.selectedIndex;
  var msg = "";
  
  if (vehyy.match(/^\d{4}$/))
  {
    if (vehyy < minReg)
        msg += "- We cannot insure motorcycles registered before " + minReg + ".\n"; 
  }
  else
  {
    msg += "- Please enter a valid year registered.\n"; 
  }
      
  if (vehmake == 0)
  {
    msg += "- Please select motorbike make and description.\n";
  }
  else
  {
    var vehdes = objVehDes.selectedIndex;
    if (vehdes < 1)
      msg += "- Please select motorbike make and description.\n";
  }
  
  return msg;
}

function CheckMotorbikeDetails(objVal, objMin, objMax)
{
  var vehval = objVal.value;
  var msg = "";
  
  if (vehval.match(/^\d+$/))
  {
    if (vehval < objMin)
        msg += "- Minimum motorbike value is " + objMin + ".\n";
    else if (vehval > objMax)
        msg += "- Maximum motorbike value is " + objMax + ".\n";
  }
  else
  {
    msg += "- Please enter a numeric value greater than 0 for motorbike value without spaces or characters.\n";
  }
    
  return msg;
}


function CheckCaravanDropDown(objVehYY, objVehDes, minReg)
{
  var vehyy = objVehYY.value;
  var vehdes = objVehDes.selectedIndex;
  var msg = "";
  
  if (vehyy.match(/^\d{4}$/))
  {
    if (vehyy < minReg)
        msg += "- We cannot insure caravans registered before " + minReg + ".\n"; 
  }
  else
  {
    msg += "- Please enter a valid year registered.\n"; 
  }
      
  if (vehdes == 0)
  {
    msg += "- Please select caravan description.\n";
  }
  
  return msg;
}

function CheckCaravanDetails(objVal, objContVal, objMin, objMax, objContMin, objContMax)
{
  var vehval = objVal.value;
  var contval = objContVal.value;
  var msg = "";
  
  if (vehval.match(/^\d+$/))
  {
    if (vehval < objMin)
        msg += "- Minimum caravan value is " + objMin + ".\n";
    else if (vehval > objMax)
        msg += "- Maximum caravan value is " + objMax + ".\n";
  }
  else
  {
    msg += "- Please enter a numeric value greater than 0 for caravan value without spaces or characters.\n";
  }
  
  if (contval != '')
  {
      if (contval.match(/^\d+$/))
      {
        if (contval > 0)
        {
            if (contval < objContMin)
                msg += "- Minimum caravan content value is " + objContMin + ".\n";
            else if (contval > objContMax)
                msg += "- Maximum caravan content value is " + objContMax + ".\n";
        }
      }
      else
      {
        msg += "- Please enter a numeric value greater than 0 for caravan content value without spaces or characters.\n";
      }
  }
    
  return msg;
}


function CheckTrailerDropDown(objVehYY, objVehDes, minReg)
{
  var vehyy = objVehYY.value;
  var vehdes = objVehDes.selectedIndex;
  var msg = "";
  
  if (vehyy.match(/^\d{4}$/))
  {
    if (vehyy < minReg)
        msg += "- We cannot insure trailers registered before " + minReg + ".\n"; 
  }
  else
  {
    msg += "- Please enter a valid year registered.\n"; 
  }
      
  if (vehdes == 0)
  {
    msg += "- Please select trailer description.\n";
  }
  
  return msg;
}

function CheckTrailerDetails(objVal, objMin, objMax)
{
  var vehval = objVal.value;
  var msg = "";
  
  if (vehval.match(/^\d+$/))
  {
    if (vehval < objMin)
        msg += "- Minimum trailer value is " + objMin + ".\n";
    else if (vehval > objMax)
        msg += "- Maximum trailer value is " + objMax + ".\n";
  }
  else
  {
    msg += "- Please enter a trailer value greater than 0 for trailer value without spaces or characters.\n";
  }
    
  return msg;
}

function CheckDriverLicence(objLic, objLicYY, objLicMM, dobYY)
{
  var licval = objLic.value;
  var msg = "";
  
  if (licval == "")
  {
    msg += "- Please select which type of licence the driver has.\n";
  }
  else if (licval == "0")
  {
    msg += "- We are unfortunately unable to provide cover for this vehicle if the regular driver does not have a driver's or learner's licence.\n";
  }
  else if (licval != "3")
  {
    var licYY, licMM;
	var now = new Date();
	 
    licYY = objLicYY.value;
    licMM = objLicMM.value;
    
    if (licYY.match(/^\d{4}$/) && licMM.match(/^\d{1,2}$/) && dobYY.match(/^\d{4}$/))
    {
      if (parseInt(licYY,10) - parseInt(dobYY,10) < 15)
        msg += "- Please select a validate licence date.\n";
	  else if (parseInt(licYY,10) > now.getFullYear() || (parseInt(licYY,10) == now.getFullYear() && parseInt(licMM,10) > now.getMonth() + 1))
		msg += "- Licence date cannot be a future date.\n";
    }
    else
    {
      msg += "- Please enter a valid date of birth and licence date.\n";
    }
  }
    
  return msg;
}


function Isdate(dd,mm,yy)
{
	  var now = new Date();
  	
	  if((dd>0 && dd<32) && (mm>0 && mm<13) && ((yy > (now.getFullYear() - 90))&& (yy < (now.getFullYear() - 15))))
	  { 
		  if(dd==31)
		  {
			  if((mm%2==1 && mm < 8)||(mm%2==0 && mm >= 8))
				  return true;
			  else
				  return false;
		  }
		  else if(dd==30)
		  {
			  if(mm!=2)
				  return true;
			  else
				  return false;
		  }
		  else if(dd==29)
		  {
			  if(mm!=2)	
				  return true;
			  else
			  {
				  if(yy%4==0)
					  return true;
				  else
					  return false;
			  }
		  }
		  else 
		  {
			  return true;
		  }
	  }
	  else
	  {
		  return false;
	  }
} 
//-->
