/*---------------UNIQUE FORM VARIABLES-----------------*/
var gFrmDescrp = 'ib_uidpin'; //short description of each form to ensure cookies for each form are unique
var gMaxSteps = 1; //number of steps in this form EXCLUDING confirmation and complete page

/*-----------------------------------------------------*/
// Modified - 20080919
// Global vars
var errorArr = new Array();
var fieldIds = new Array(
  'frmRBsalutation',
  'frmTFnricName',
  'frmTFnricNum',
  'frmTFaccountNum',
  'frmRBaccountType',
  'myContactDetails'
  );

var fieldNames = new Array(
  'Salutation',
  'Name as in NRIC/Passport',
  'NRIC/Passport number',
  'Account Number',
  'Account Type',
  'Contact Details'
  );

// Service Request Options
var chkboxes = new Array(
  'frmCBuserid',
  'frmCBdevice',
  'frmCBregCode',
  'frmCBprimary'
  );

// Initialise form
function init() {
  var divs = new Array('tblUserid','tblDevice','tblRegCode','tblPrimary');
  var x;

  for (x in chkboxes) {
    var chkbox = document.getElementById(chkboxes[x]);
    var div = document.getElementById(divs[x]);
    if (chkbox.checked==true) {
      div.style.display='';
    } else {
      div.style.display='none';
    }
  }
}

function chkAccount(e) {
  var keyCode = (e.keyCode) ? e.keyCode : e.which;
  if ((keyCode<48 || keyCode>57) && keyCode!=8 && keyCode!=9 && keyCode!=13) { 
    alert("Only digits to be entered");
    cancelIllegal(e);
  }
}

function checkEmail(el) {
  var obj = document.getElementById(el);
  var checkEmail = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/; 

  if ((!checkEmail.test(obj.value)) && (obj.value !== '')) {
    alert("Sorry, a valid email must be entered.");
  }
}

function checkPhoneChar(el,charLength) {
  var obj = document.getElementById(el);

  if ((obj.value.length < charLength) && (obj.value !== '')) {
    alert("Sorry, Phone number should contain of "+charLength+"-digits.");
  }
}

function chkEmptyVal(i) {
  if ((fieldIds[i]!=='frmRBsalutation') && (fieldIds[i]!=='frmRBaccountType') && (fieldIds[i]!=='myContactDetails')) {
    var el = document.getElementById(fieldIds[i]);
    if (el.value == '') {
      el.style.backgroundColor = '#FFDDDD';  // Change colour
      errorArr[errorArr.length] = fieldNames[i];  // Add to errors array
    } else {
      el.style.backgroundColor = '#FFFFFF';
    }
  } else if (fieldIds[i]=='myContactDetails') {
    var contactArr = new Array('frmTFphoneHome', 'frmTFphoneOffice', 'frmTFphoneMobile', 'frmTFphoneOthers', 'frmTFemail');
    var checkStatus = false;
    for (i = 0; i < contactArr.length; i++) {
      var el = document.getElementById(contactArr[i]);
      if (el.value !== '') {
        checkStatus = true;
        break;
      }
    }    

    var el = document.getElementById('myContactDetailsBox');
    if (checkStatus == false) {
      el.style.backgroundColor = '#FF0000';  // Change colour
      errorArr[errorArr.length] = fieldNames[i];  // Add to errors array
    } else {
      el.style.backgroundColor = 'transparent';
    }
  } else {
    var total, restoreColor;
    var checkStatus = false;
    if (fieldIds[i]=='frmRBsalutation') {
      total = 5;
      restoreColor = '#F7F7F7';
	} else if (fieldIds[i]=='frmRBaccountType') {
      total = 6;
      restoreColor = '#F0F0F0';
	}

    for (j=0; j<total; j++) {
      var el = document.getElementById(fieldIds[i]+[j]);
      if (el.checked == true) {
        checkStatus = true;
        break;
      }
    }

    var el = document.getElementById(fieldIds[i]+'Box');
    if (checkStatus == false) {
      el.style.backgroundColor = '#FFDDDD';  // Change colour
      errorArr[errorArr.length] = fieldNames[i];  // Add to errors array
    } else {
      el.style.backgroundColor = restoreColor;
    }
  }
}

// Step 1 Validation - Check for mandatory fields
function chkStep1() {
  var alertMsg = 'Please fill in all the mandatory information\n';

  //Empty error array - if form has been validated before
  errorArr = [];

  // run thru each field
  for (i = 0; i < fieldIds.length; i++) {
    chkEmptyVal(i);
  }
  
  // If error array not empty... prompt
  if (errorArr.length == 0) {
    return true;
  } else {
	for (i = 0; i < errorArr.length; i++) { // loop join errors
      alertMsg = alertMsg + '\n' + (i+1) + '. ' + errorArr[i];
	}
    alert(alertMsg);
    return false;
  }
}

// Step 2 Validation - Select at least one of four service requests below
function chkStep2() {
  var x;
  var chkStep2Status = false;

  for (x in chkboxes) {
    if (document.getElementById(chkboxes[x]).checked==true) chkStep2Status = true;
  }

  if (chkStep2Status == false) {
    location.href = "#myServiceRequest";
    document.getElementById('myServiceRequestBox').bgColor = '#FF0000';
    alert('You have not selected any service request.');
    return false;
  } else {
    document.getElementById('myServiceRequestBox').bgColor = '#E0E0E0';
    return true;
  }
}

// Step 3 Validation - Last level validation
function chkStep3() {
  var status1 = status2 = status3 = status4 = false;
  // Vars for Checkbox 1
  var frmCBuserid = document.getElementById('frmCBuserid');
  var frmCBuseridBox = document.getElementById('frmCBuseridBox');
  var frmCBUserIdPin = document.getElementById('frmCBUserIdPin');
  var frmCBUserIdVia = document.getElementById('frmCBUserIdVia');
  var frmTFMobile = document.getElementById('frmTFMobile');
  var frmCBUserIdViaBox = document.getElementById('frmCBUserIdViaBox');
  var frmRBmailsms0 = document.getElementById('frmRBmailsms0');
  var frmRBmailsms1 = document.getElementById('frmRBmailsms1')
  // Vars for Checkbox2
  var frmCBdevice = document.getElementById('frmCBdevice');
  var frmTFnewNum = document.getElementById('frmTFnewNum');
  var frmCBnewReasonBox = document.getElementById('frmCBnewReasonBox');
  var frmCBnewReason0 = document.getElementById('frmCBnewReason0');
  var frmCBnewReason1 = document.getElementById('frmCBnewReason1');
  var frmCBnewReason2 = document.getElementById('frmCBnewReason2');
  var frmCBnewReason3 = document.getElementById('frmCBnewReason3');
  var frmCBnewReason4 = document.getElementById('frmCBnewReason4');
  /*var frmCBnewReason0 = document.all.frmCBnewReason[0];
  var frmCBnewReason1 = document.all.frmCBnewReason[1];
  var frmCBnewReason2 = document.all.frmCBnewReason[2];
  var frmCBnewReason3 = document.all.frmCBnewReason[3];
  var frmCBnewReason4 = document.all.frmCBnewReason[4];*/
  // Vars for Checkbox3
  var frmCBregCode = document.getElementById('frmCBregCode');
  // Vars for Checkbox4
  var frmCBprimary = document.getElementById('frmCBprimary');
  var frmCBprimaryTerms = document.getElementById('frmCBprimaryTerms');
  var frmTFUpdateAccNum = document.getElementById('frmTFUpdateAccNum');
  var frmRBUpdateTypeBox = document.getElementById('frmRBUpdateTypeBox');
  var frmRBUpdateType0 = document.getElementById('frmRBUpdateType0');
  var frmRBUpdateType1 = document.getElementById('frmRBUpdateType1');
  var frmRBUpdateType2 = document.getElementById('frmRBUpdateType2');
  var frmRBUpdateType3 = document.getElementById('frmRBUpdateType3');
  var frmRBUpdateType4 = document.getElementById('frmRBUpdateType4');
  var frmRBUpdateType5 = document.getElementById('frmRBUpdateType5');
  /*var frmRBUpdateType0 = document.all.frmRBUpdateType[0];
  var frmRBUpdateType1 = document.all.frmRBUpdateType[1];
  var frmRBUpdateType2 = document.all.frmRBUpdateType[2];
  var frmRBUpdateType3 = document.all.frmRBUpdateType[3];
  var frmRBUpdateType4 = document.all.frmRBUpdateType[4];
  var frmRBUpdateType5 = document.all.frmRBUpdateType[5];*/

  // BOF Checkbox 1
  if (frmCBuserid.checked==true) {
    // User ID/PIN Request
    if (frmCBUserIdPin.checked==true) {
      status1 = true;
	}
    if (frmCBUserIdVia.checked==true) {
      // Either ‘Mail’ or ‘SMS’ must be selected if “Please send me my User ID via…” checkbox is ticked.
      frmCBuseridBox.style.backgroundColor = '#F0F0F0';
      if (frmRBmailsms0.checked==true) {
        frmCBUserIdViaBox.style.backgroundColor = 'transparent';
        status1 = true;
	  }
	  if (frmRBmailsms1.checked==true) {
        frmCBUserIdViaBox.style.backgroundColor = 'transparent';
        // If customer choose ‘SMS’, mobile phone must be provided
        if (frmTFMobile.value=='') {
          frmTFMobile.style.backgroundColor = '#FFDDDD';
          alert('Please provide the mobile phone number.');
          return false;
		} else {
          frmTFMobile.style.backgroundColor = '#FFFFFF';
          status1 = true;
		}
      }
	  if ((frmRBmailsms0.checked==false) && (frmRBmailsms1.checked==false)) {
        frmCBUserIdViaBox.style.backgroundColor = '#FFDDDD';
        alert('Please select if you would like to receive your User ID via Mail or SMS.');
        return false;
	  }
	}
	if ((frmCBUserIdPin.checked==false) && (frmCBUserIdVia.checked==false)) {
      // At least one of the checkboxes on the right (Please …) must be ticked.
      frmCBuseridBox.style.backgroundColor = '#FFDDDD';
      alert('Please select if you would like to change your USER ID and/or PIN request.');
      return false;      
	}
  } else {
    status1 = true;
  }
  // EOF Checkbox 1

  // BOF Checkbox 2
  if (frmCBdevice.checked==true) {
    // New DBS iB Secure Device
    // If customer click ‘New DBS iB Secure Device’
    if (frmTFnewNum.value=='') {
      // Account Number must be filled up
      frmTFnewNum.style.backgroundColor = '#FFDDDD';
      alert('Please provide the Account Number.');
      return false;
	} else {
      frmTFnewNum.style.backgroundColor = '#FFFFFF';
	}
	var CBnewReasonStatus = false;
	if(frmCBnewReason0.checked == true)
	{
		CBnewReasonStatus = true;
	}
	else if(frmCBnewReason1.checked == true)
	{
		CBnewReasonStatus = true;
	}
	else if(frmCBnewReason2.checked == true)
	{
		CBnewReasonStatus = true;
	}
	else if(frmCBnewReason3.checked == true)
	{
		CBnewReasonStatus = true;
	}
	else if(frmCBnewReason4.checked == true)
	{
		CBnewReasonStatus = true;
	}
	if(!CBnewReasonStatus)
	{
		frmCBnewReasonBox.style.backgroundColor = '#FFDDDD';
		alert('Please select the reason for a New DBS iB Secure Device.');
		return false;
	}
    /*if ((frmCBnewReason0.checked==false) && (frmCBnewReason1.checked==false) && (frmCBnewReason2.checked==false) && (frmCBnewReason3.checked==false) && (frmCBnewReason4.checked==false)) {
      // Reason must be chosen
      frmCBnewReasonBox.style.backgroundColor = '#FFDDDD';
      alert('Please select the reason for a New DBS iB Secure Device.');
      return false;
	}*/ else {
      frmCBnewReasonBox.style.backgroundColor = '#F7F7F7';
	}
	if ((frmTFnewNum.value!=='') && CBnewReasonStatus)
	{	
		status2 = true;
	}
    /*if ((frmTFnewNum.value!=='') && ((frmCBnewReason0.checked==true) || (frmCBnewReason1.checked==true) || (frmCBnewReason2.checked==true) || (frmCBnewReason3.checked==true) || (frmCBnewReason4.checked==true))) {
      status2 = true;
	}*/
  } else {
    status2 = true;
  }
  // EOF Checkbox 2

  // BOF Checkbox 3
  if (frmCBregCode.checked==true) {
    // Registration Code
    status3 = true;
  } else {
    status3 = true;
  }
  // EOF Checkbox 3

  // BOF Checkbox 4
  if (frmCBprimary.checked==true) {
    // iB Primary Account Update
    frmCBprimaryTerms.value=='I understand that this iB Primary Account is used for correspondences &amp; debiting of fees (where applicable).';
    if (frmTFUpdateAccNum.value=='') {
      frmTFUpdateAccNum.style.backgroundColor = '#FFDDDD';
      alert('Please provide the Account Number.');
      return false;
	} else {
      frmTFUpdateAccNum.style.backgroundColor = '#FFFFFF';
	}
	var frmCBnewReasonStatus = false;
	if(frmRBUpdateType0.checked == true)
	{
		frmCBnewReasonStatus = true;
	}
	else if(frmRBUpdateType1.checked == true)
	{
		frmCBnewReasonStatus = true;
	}
	else if(frmRBUpdateType2.checked == true)
	{
		frmCBnewReasonStatus = true;
	}
	else if(frmRBUpdateType3.checked == true)
	{
		frmCBnewReasonStatus = true;
	}
	else if(frmRBUpdateType4.checked == true)
	{
		frmCBnewReasonStatus = true;
	}
	else if(frmRBUpdateType5.checked == true)
	{
		frmCBnewReasonStatus = true;
	}

	if(!frmCBnewReasonStatus)
	{
		frmRBUpdateTypeBox.style.backgroundColor = '#FFDDDD';
		alert('Please select the Account Type of your new iB Primary Account.');
		return false;
	}
	/*if ((frmRBUpdateType0.checked==false) && (frmRBUpdateType1.checked==false) && (frmRBUpdateType2.checked==false) && (frmRBUpdateType3.checked==false) && (frmRBUpdateType4.checked==false) && (frmRBUpdateType5.checked==false)) {
      frmRBUpdateTypeBox.style.backgroundColor = '#FFDDDD';
      alert('Please select the Account Type of your new iB Primary Account.');
      return false;
	}*/ else {
      frmRBUpdateTypeBox.style.backgroundColor = '#F7F7F7';
	}
	if ((frmTFUpdateAccNum.value!=='') && frmCBnewReasonStatus)
	{
		status4 = true;
	}
    /*if ((frmTFUpdateAccNum.value!=='') && ((frmRBUpdateType0.checked==true) || (frmRBUpdateType1.checked==true) || (frmRBUpdateType2.checked==true) || (frmRBUpdateType3.checked==true) || (frmRBUpdateType4.checked==true) || (frmRBUpdateType5.checked==true))) {
      status4 = true;
	}*/
  } else {
    frmCBprimaryTerms.value=='';
    status4 = true;
  }
  // EOF Checkbox 4

  if ((status1 == true) && (status2 == true) && (status3 == true) && (status4 == true)) 
  {
	return true;
  }
  else 
  {
	return false;
  }
}

function formValidation() {
  if ((chkStep1()) && (chkStep2()) && (chkStep3())) {
    writeArysToCookie(1,'name');
    return true;
  } else {
    return false;
  }
}

function validateStepConfirm_uidpin() {
	//I Agree
	if (!getRBValue(gFrmName,'frmRBiagree') || getRBValue(gFrmName,'frmRBiagree')=='no') 
        { alert("Please ensure that fields marked * are filled \nPlease enter the following\n------------------------------------------------\n 1.I agree");
               return false;}
        else
		{return true;}
}
