var currFSize=null;
var currRSize=null;
var tmpRegTextF1="YOUR REG";
var tmpRegTextF2="";
var tmpRegTextR1="YOUR REG";
var tmpRegTextR2="";

// dynamically create reg fields appropriate for the plate size selected
function setRegFields(sizeElm){
  plate=sizeElm.name;
  size=sizeElm.value;
  if (sizeElm.name=='FrontSize'){
    document.frm_designer.FrontRegSize.value = document.frm_designer.FrontSize.options[document.frm_designer.FrontSize.selectedIndex].text;
    if (currFSize != size) {
      document.frm_designer.FrontRegSize.value = document.frm_designer.FrontSize.options[document.frm_designer.FrontSize.selectedIndex].text; 
      if (size=='O'){
        reg1 = Trim(Trim(tmpRegTextF1) + " " + Trim(tmpRegTextF2));
        reg2 = "";
        regStr = '<input name="RegTextF1" id="RegTextF1" type="text" value="' + reg1 + '" onblur="tmpRegTextF1=this.value;" onkeyup="tmpRegTextF1=this.value;" maxlength="50" /><input type="hidden" name="RegTextF2" id="RegTextF2" value="" onblur="tmpRegTextF2=this.value;" onkeyup="tmpRegTextF2=this.value;" /> <input type="button" name="RegBtnF" value="Enter" onclick="updateReg()" />';
      } else {
        len=tmpRegTextF1.length;
        len2=len;
        len = Math.round(len/2);
        reg1 = Trim(tmpRegTextF1.substring(0, len));
        reg2 = Trim(tmpRegTextF1.substring(len,len2));
        regStr = '<input type="text" name="RegTextF1" id="RegTextF1" value="' + reg1 + '" maxlength="50" onblur="tmpRegTextF1=this.value;" onkeyup="tmpRegTextF1=this.value;" style="width:70;" />&nbsp;<input type="text" name="RegTextF2" id="RegTextF2" value="' + reg2 + '" maxlength="50" style="width:70;" onblur="tmpRegTextF2=this.value;" onkeyup="tmpRegTextF2=this.value;" /> <input type="button" name="RegBtnF" value="Enter" onclick="updateReg()" />';
      }
      MM_findObj('FrontRegDiv').innerHTML=regStr;
      currFSize = size;
      tmpRegTextF1 = reg1;
      tmpRegTextF2 = reg2;
    }
  } else {
    document.frm_designer.RearRegSize.value = document.frm_designer.RearSize.options[document.frm_designer.RearSize.selectedIndex].text;
    if (currRSize != size) {
      if (size == 'O') {
        reg1 = Trim(Trim(tmpRegTextR1) + " " + Trim(tmpRegTextR2));
        reg2 = "";
        regStr = '<input name="RegTextR1" id="RegTextR1" type="text" value="' + reg1 + '" maxlength="50" onblur="tmpRegTextR1=this.value;" onkeyup="tmpRegTextR1=this.value;" /><input type="hidden" name="RegTextR2" id="RegTextR2" value="" onblur="tmpRegTextR2=this.value;" onkeyup="tmpRegTextR2=this.value;" /> <input type="button" name="RegBtnR" value="Enter" onclick="updateReg()" />';
      } else {
        len=tmpRegTextR1.length;
        len2=len;
        len = Math.round(len/2);
        reg1 = Trim(tmpRegTextR1.substring(0,len));
        reg2 = Trim(tmpRegTextR1.substring(len,len2));
        regStr = '<input type="text" name="RegTextR1" id="RegTextR1" value="' + reg1 + '" maxlength="50" style="width:70;" onblur="tmpRegTextR1=this.value;" onkeyup="tmpRegTextR1=this.value;" />&nbsp;<input type="text" name="RegTextR2" id="RegTextR2" value="' + reg2 + '" style="width:70;" onblur="tmpRegTextR2=this.value;" onkeyup="tmpRegTextR2=this.value;" /> <input type="button" name="RegBtnR" value="Enter" onclick="updateReg()" />';
      }
      MM_findObj('RearRegDiv').innerHTML=regStr;
      currRSize=size;
      tmpRegTextR1 = reg1;
      tmpRegTextR2 = reg2;
    }
  }
}

// form validation
function TestValid(){
  var bValid = true;
  if (((document.frm_designer.FrontQuantity.selectedIndex > 0) && ((document.frm_designer.RegTextF1.value==''&&document.frm_designer.RegTextF2.value=='')||document.frm_designer.RegTextF1.value=='YOUR REG'||(document.frm_designer.RegTextF1.value=='YOUR'&&document.frm_designer.RegTextF2.value=='REG'))) && (bValid==true)){
    bValid = false;
    alert ("Please enter the registration number for your front plate.");
    document.frm_designer.RegTextF1.select();
    document.frm_designer.RegTextF1.focus();  
  }
  if (((document.frm_designer.RearQuantity.selectedIndex > 0) && ((document.frm_designer.RegTextR1.value==''&&document.frm_designer.RegTextR2.value=='')||document.frm_designer.RegTextR1.value=='YOUR REG'||(document.frm_designer.RegTextR1.value=='YOUR'&&document.frm_designer.RegTextR2.value=='REG'))) && (bValid==true)){
    bValid = false;
    alert ("Please enter the registration number for your rear plate.");
    document.frm_designer.RegTextR1.select();
    document.frm_designer.RegTextR1.focus();
  }
  if (bValid==true){
    if (!CheckReg()) {
      bValid = false;
    }
  }
  if (bValid==true){
    if (!CheckSlogan()) {
      bValid = false;
    }
  }
  return bValid;
}

// form submission - called by Flash button
function submitFrm() {
  updatePlates();
  if (TestValid()){
    document.frm_designer.submit();
  }
}

// price calculation
function updatePrice() {
  var iPlateQuantity;
  var dBasePrice;
  var dFrontPrice, dRearPrice;
  var dFontPrice;
  var dBadgePrice;
  var dBackgroundPrice;
  var dBorderPrice;
  var dSloganPrice;
  var dTotalPrice;
  var dFrontPrice;
  var dRearPrice;
  var dPlateUpliftPrice;

  switch (document.frm_designer.PlateTypeStore.value) {
      case "S":
          dBasePrice = 7.99;
          dPlateUpliftPrice = 1.81;
          break;
  
      case "G":
          dBasePrice = 10.40;
          dPlateUpliftPrice = 1.81;
          break;
  
      case "B":
          dBasePrice = 11.50;
          dPlateUpliftPrice = 1.81;
          break;
  
      case "P":
          dBasePrice = 16.00;
          dPlateUpliftPrice = 7.98;
          break;
  
      case "I":
          dBasePrice = 39.93;
          dPlateUpliftPrice = 2.48;
          break;
  }
  
  iFrontPlateQuantity = document.frm_designer.FrontQuantity.selectedIndex;
  iRearPlateQuantity = document.frm_designer.RearQuantity.selectedIndex;
  iPlateQuantity = iFrontPlateQuantity + iRearPlateQuantity;
  
  if (iFrontPlateQuantity>0) {
    if ((document.frm_designer.FrontSize.options[document.frm_designer.FrontSize.selectedIndex].text!="FRONT SIZE STD") && (document.frm_designer.FrontSize.options[document.frm_designer.FrontSize.selectedIndex].text!='STD 20.5" X 4.5"')) {
      dFrontPrice=dPlateUpliftPrice;
    } else {
      dFrontPrice=0.0; 
    }
  } else {
    dFrontPrice=0.0;
  }
  
  if (iRearPlateQuantity>0) {
    if ((document.frm_designer.RearSize.options[document.frm_designer.RearSize.selectedIndex].text!="REAR SIZE STD") && (document.frm_designer.RearSize.options[document.frm_designer.RearSize.selectedIndex].text!='STD 20.5" X 4.5"')) {
      dRearPrice=dPlateUpliftPrice;
    } else {
      dRearPrice=0.0;
    }
  } else {
    dRearPrice=0.0;
  }
  
  if (document.frm_designer.RegFontStyle.selectedIndex==0) {
    dFontPrice = 0.0;
  } else {
    dFontPrice = 0.95; 
  }
  if ((document.frm_designer.LeftBadge.value=="nobadge") && (document.frm_designer.RightBadge.value == "nobadge")) {
    dBadgePrice = 0;
  } else {
    dBadgePrice = 1.60; 
  }
  if (document.frm_designer.Background.value == "nobackground") {
    dBackgroundPrice = 0.0;
  } else {
    dBackgroundPrice = 1.50;
  }
  if ((document.frm_designer.BorderWidth.selectedIndex == 0)) {
    dBorderPrice = 0.0;
  } else {
    dBorderPrice = 0.80; 
  }
  if (document.frm_designer.SloganText.value=="") {
    dSloganPrice = 0.0;
  } else {
    dSloganPrice =0.60;  
  }
  dFrontPrice = (iFrontPlateQuantity * (dBasePrice + dFontPrice + dBorderPrice + dBadgePrice + dBackgroundPrice + dSloganPrice + dFrontPrice));
  dRearPrice = (iRearPlateQuantity * (dBasePrice + dFontPrice + dBorderPrice + dBadgePrice + dBackgroundPrice + dSloganPrice + dRearPrice));
  dTotalPrice = dFrontPrice + dRearPrice;

  dFrontPrice = (Math.round(dFrontPrice * 100) / 100).toFixed(2);
  document.frm_designer.FrontPrice.value = dFrontPrice;

  dRearPrice = (Math.round(dRearPrice * 100) / 100).toFixed(2);
  document.frm_designer.RearPrice.value = dRearPrice;

  dTotalPrice = (Math.round(dTotalPrice * 100) / 100).toFixed(2);
  document.frm_designer.TotalPrice.value = dTotalPrice;

  // set flash price display
  setFlashVariables('price','price='+dTotalPrice);
}

// set the form element visibility and values appropriate to the quantity selected
function setSupply(plate, index) {
    if ((document.frm_designer.FrontQuantity.selectedIndex == 0) && (document.frm_designer.RearQuantity.selectedIndex == 0)) {
        alert("You must opt to have at least one plate supplied.");
        if (plate == 'front') {
            document.frm_designer.FrontQuantity.selectedIndex = 1;
            document.frm_designer.SupplyFront.checked = true;
        } else {
            document.frm_designer.RearQuantity.selectedIndex = 1;
            document.frm_designer.SupplyRear.checked = true;
        }
        return false;
    } else {
        if (index > 0) {
            state = true;
        } else {
            state = false;
        }
        if (plate == 'front') {
            document.frm_designer.FrontSize.disabled=!state;
            document.frm_designer.RegTextF1.disabled=!state;
            document.frm_designer.RegTextF2.disabled=!state;
            document.frm_designer.RegBtnF.disabled=!state;
            if (index > 0) {
                document.frm_designer.RegTextF1.value=tmpRegTextF1;
                document.frm_designer.RegTextF2.value=tmpRegTextF2;
                document.frm_designer.SupplyFront.checked=true;
            } else {
                document.frm_designer.RegTextF1.value="";
                document.frm_designer.RegTextF2.value="";
                document.frm_designer.SupplyFront.checked=false;
            }
        } else {
            document.frm_designer.RearSize.disabled=!state;
            document.frm_designer.RegTextR1.disabled=!state;
            document.frm_designer.RegTextR2.disabled=!state;
            document.frm_designer.RegBtnR.disabled=!state;
            if (index > 0) {
                document.frm_designer.RegTextR1.value = tmpRegTextR1;
                document.frm_designer.RegTextR2.value = tmpRegTextR2;
                document.frm_designer.SupplyRear.checked=true;
            } else {
                document.frm_designer.RegTextR1.value = "";
                document.frm_designer.RegTextR2.value = "";
                document.frm_designer.SupplyRear.checked=false;
            }
        }
    } 
}

function supplyFront(){
  if (document.frm_designer.SupplyFront.checked == true) {
    document.frm_designer.FrontQuantity.selectedIndex = 1;
  } else {
    document.frm_designer.FrontQuantity.selectedIndex = 0;
  }
  setSupply('front', document.frm_designer.FrontQuantity.selectedIndex);
  updatePlates();
}

function supplyRear(){
  if (document.frm_designer.SupplyRear.checked == true) {
    document.frm_designer.RearQuantity.selectedIndex = 1;
  } else {
    document.frm_designer.RearQuantity.selectedIndex = 0;
  }
  setSupply('rear', document.frm_designer.RearQuantity.selectedIndex);
  updatePlates();
}

function checkBorder(){
  borderColour = document.frm_designer.BorderColour.options[document.frm_designer.BorderColour.selectedIndex].text;
  if (borderColour == "Blue"){
    alert("Please be aware that a blue border will appear much\ndarker (almost black) when applied to a yellow plate.");
  }
  if (borderColour == "Dark Blue") {
      alert("Please be aware that a dark blue border will appear much\ndarker (almost black) when applied to a yellow plate.");
  }
  if (borderColour == "Pink") {
    alert("Please be aware that a pink border will appear much\ndarker (almost red) when applied to a yellow plate.");
  }
  updatePlates();
}

function updateRegFontColour() {
    sColour = document.frm_designer.RegFontColour.options[document.frm_designer.RegFontColour.selectedIndex].text;
    checkColour(sColour);
}

function updateSloganFontColour() {
    sColour = document.frm_designer.SloganFontColour.options[document.frm_designer.SloganFontColour.selectedIndex].text;
    checkColour(sColour);
}

function checkColour(sColour) {
    if (sColour == "Blue") {
        alert("Please be aware that blue text will appear much\ndarker (almost black) when applied to a yellow plate.");
    }
    if (sColour == "Dark Blue") {
        alert("Please be aware that dark blue text will appear much\ndarker (almost black) when applied to a yellow plate.");
    }
    if (sColour == "Pink") {
        alert("Please be aware that pink text will appear much\ndarker (almost red) when applied to a yellow plate.");
    }
    updatePlates();
}


// set the flash plate display
function updatePlates() {

    platetype = document.frm_designer.PlateTypeStore.value;

    if (document.frm_designer.FrontQuantity.selectedIndex > 0) {
        f1string = document.frm_designer.FrontSize.options[document.frm_designer.FrontSize.selectedIndex].value + document.frm_designer.RegTextF1.value;
        f2string = document.frm_designer.RegTextF2.value;
    } else {
        f1string = 'N';
        f2string = '';
    }

    if (document.frm_designer.RearQuantity.selectedIndex > 0) {
        r1string = document.frm_designer.RearSize.options[document.frm_designer.RearSize.selectedIndex].value + document.frm_designer.RegTextR1.value;
        r2string = document.frm_designer.RegTextR2.value;
    } else {
        r1string = 'N';
        r2string = '';
    }

    var fontvars = { TTFFileName: '', TTFSize: '', TTFVertOffset: '', TTFHorzOffset: '' };
    setFontVariables(document.frm_designer.RegFontStyle.value, fontvars);
    fcolour = document.frm_designer.RegFontColour.options[document.frm_designer.RegFontColour.selectedIndex].value;
    document.frm_designer.RegFontColourName.value = document.frm_designer.RegFontColour.options[document.frm_designer.RegFontColour.selectedIndex].text;

    if (document.frm_designer.LeftBadge.value == "nobadge") {
        badgel = 'N';
    } else {
        badgel = 'Y' + document.frm_designer.LeftBadge.value;
    }

    if (document.frm_designer.RightBadge.value == "nobadge") {
        badger = 'N';
    } else {
        badger = 'Y' + document.frm_designer.RightBadge.value;
    }

    // set badgebackgrounds to none in this instance
    badgebl = 'N';
    badgebr = 'N';
    
    stext = document.frm_designer.SloganText.value;
    var sfontvars = { TTFFileName: '', TTFSize: '' };
    setSloganFontVariables(document.frm_designer.SloganFontStyle.value, sfontvars);
    scolour = document.frm_designer.SloganFontColour.options[document.frm_designer.SloganFontColour.selectedIndex].value;
    document.frm_designer.SloganFontColourName.value = document.frm_designer.SloganFontColour.options[document.frm_designer.SloganFontColour.selectedIndex].text;
    if (document.frm_designer.Background.selectedIndex < 1) {
        background = 'N';
        document.frm_designer.BackgroundName.value = 'No Background';
    } else {
        background = 'Y' + document.frm_designer.Background.options[document.frm_designer.Background.selectedIndex].value;
        document.frm_designer.BackgroundName.value = document.frm_designer.Background.options[document.frm_designer.Background.selectedIndex].text;
    }

    brdrcol = document.frm_designer.BorderColour.options[document.frm_designer.BorderColour.selectedIndex].value;
    document.frm_designer.BorderColourName.value = document.frm_designer.BorderColour.options[document.frm_designer.BorderColour.selectedIndex].text;
    brdrwid = document.frm_designer.BorderWidth.value;
    document.frm_designer.BorderWidthName.value = document.frm_designer.BorderWidth.options[document.frm_designer.BorderWidth.selectedIndex].text;

    varStr = 'image.aspx?FR=' + f1string;
    varStr = varStr + '&FR2=' + f2string;
    varStr = varStr + '&RR=' + r1string;
    varStr = varStr + '&RR2=' + r2string;
    varStr = varStr + '&FT=' + fontvars.TTFFileName;
    varStr = varStr + '&FS=' + fontvars.TTFSize;
    varStr = varStr + '&FH=' + fontvars.TTFHorzOffset;
    varStr = varStr + '&FV=' + fontvars.TTFVertOffset;
    varStr = varStr + '&FC=' + fcolour;
    varStr = varStr + '&SL=' + stext;
    varStr = varStr + '&SF=' + sfontvars.TTFFileName;
    varStr = varStr + '&SS=' + sfontvars.TTFSize;
    varStr = varStr + '&SC=' + scolour;
    varStr = varStr + '&BD=' + brdrwid + brdrcol;
    varStr = varStr + '&BL=' + badgel;
    varStr = varStr + '&BR=' + badger;
    varStr = varStr + '&CL=' + badgebl;
    varStr = varStr + '&CR=' + badgebr;
    varStr = varStr + '&BK=' + background;
    varStr = varStr + '&TP=' + platetype;
    document.images["plates"].src = varStr;
    updatePrice();
    writeCookie('des2', 300000);
}

// set cookie vars
pathname = location.pathname;
myDomain = pathname.substring(0,pathname.lastIndexOf('/')) +'/';
// write cookie
function writeCookie(cName, duration){
  var largeExpDate = new Date ();
  largeExpDate.setTime(largeExpDate.getTime() + duration);

  index = 0;
  len = document.frm_designer.PlateType.length

  for (i = 0; i < len; i++) {
      if (document.frm_designer.PlateType[i].checked) {
          index = i;
          break;
      }
  }
  cStr = index + "|";
  cStr = cStr + tmpRegTextF1 + "|"
  cStr = cStr + tmpRegTextF2 + "|"
  cStr = cStr + document.frm_designer.FrontQuantity.selectedIndex+"|"
  cStr = cStr + document.frm_designer.FrontSize.selectedIndex + "|"
  cStr = cStr + tmpRegTextR1 + "|"
  cStr = cStr + tmpRegTextR2 + "|"
  cStr = cStr + document.frm_designer.RearQuantity.selectedIndex + "|"
  cStr = cStr + document.frm_designer.RearSize.selectedIndex + "|"
  cStr = cStr + document.frm_designer.RegFontStyle.selectedIndex + "|"
  cStr = cStr + document.frm_designer.RegFontColour.selectedIndex + "|"
  cStr = cStr + document.frm_designer.LeftBadge.value + "|"
  cStr = cStr + document.frm_designer.LeftBadgeName.value + "|"
  cStr = cStr + document.frm_designer.LeftBadgeBtn.value + "|"
  cStr = cStr + document.frm_designer.RightBadge.value + "|"
  cStr = cStr + document.frm_designer.RightBadgeName.value + "|"
  cStr = cStr + document.frm_designer.RightBadgeBtn.value + "|"
  cStr = cStr + document.frm_designer.SloganText.value + "|"
  cStr = cStr + document.frm_designer.SloganFontStyle.selectedIndex + "|"
  cStr = cStr + document.frm_designer.SloganFontColour.selectedIndex + "|"
  cStr = cStr + document.frm_designer.Background.selectedIndex + "|"
  cStr = cStr + document.frm_designer.BorderColour.selectedIndex + "|"
  cStr = cStr + document.frm_designer.BorderWidth.selectedIndex + "|"
  SetCookie(cName, cStr, largeExpDate, myDomain); 
}

// read saved plate designs and set the control panel options / flash elements accordingly
function setFormOptions(opts){
  if (opts.length) {

    index = opts[0];
    updatePlateTypeB(index);
    document.frm_designer.RegTextF1.value = opts[1];
    document.frm_designer.RegTextF2.value = opts[2];
    document.frm_designer.FrontQuantity.selectedIndex = opts[3];
    document.frm_designer.FrontSize.selectedIndex = opts[4];
    PSize = document.frm_designer.FrontSize.options[document.frm_designer.FrontSize.selectedIndex].value;
    if (PSize == "O") {
        tmpRegTextF1 = opts[1];
        tmpRegTextF2 = opts[2];
    } else {
        tmpRegTextF1 = opts[1] + ' ' + opts[2];
        tmpRegTextF2 = '';
    }
    setRegFields(document.frm_designer.FrontSize);
    setSupply('front', opts[3])
    document.frm_designer.RegTextR1.value = opts[5];
    document.frm_designer.RegTextR2.value = opts[6];
    document.frm_designer.RearQuantity.selectedIndex = opts[7];
    document.frm_designer.RearSize.selectedIndex = opts[8];
    PSize = document.frm_designer.RearSize.options[document.frm_designer.RearSize.selectedIndex].value;
    if (PSize == "O") {
        tmpRegTextR1 = opts[5];
        tmpRegTextR2 = opts[6];
    } else {
        tmpRegTextR1 = opts[5] + ' ' + opts[6];
        tmpRegTextR2 = '';
    }
    setRegFields(document.frm_designer.RearSize);
    setSupply('rear', opts[7]);
    document.frm_designer.RegFontStyle.selectedIndex = opts[9];
    document.frm_designer.RegFontColour.selectedIndex = opts[10];
    document.frm_designer.LeftBadge.value = opts[11];
    document.frm_designer.LeftBadgeName.value = opts[12];
    document.frm_designer.LeftBadgeBtn.value = opts[13];
    document.frm_designer.RightBadge.value = opts[14];
    document.frm_designer.RightBadgeName.value = opts[15];
    document.frm_designer.RightBadgeBtn.value = opts[16];
    document.frm_designer.SloganText.value = opts[17];
    document.frm_designer.SloganFontStyle.selectedIndex = opts[18];
    document.frm_designer.SloganFontColour.selectedIndex = opts[19];
    document.frm_designer.Background.selectedIndex = opts[20];
    document.frm_designer.BorderColour.selectedIndex = opts[21];
    document.frm_designer.BorderWidth.selectedIndex = opts[22];
  }
}

// validate registration entry
function CheckReg() {
  var bValid = true;

  if (document.frm_designer.FrontQuantity.selectedIndex > 0) {
      if (document.frm_designer.RearQuantity.selectedIndex > 0) {
        plate='both';
      } else {
        plate='front';
      }
  } else {
    plate = 'rear';
  }
  
  if ((plate=='front' || plate=='both')){
    if (bValid==true) {
      bValid = CheckReg2(document.frm_designer.RegTextF1, document.frm_designer.FrontSize.options[document.frm_designer.FrontSize.selectedIndex].value);
    }
    if (bValid==true) {
      bValid = CheckReg2(document.frm_designer.RegTextF2, document.frm_designer.FrontSize.options[document.frm_designer.FrontSize.selectedIndex].value);
    }
  }
  if ((plate=='rear' || plate=='both')){
    if (bValid==true) {
      bValid = CheckReg2(document.frm_designer.RegTextR1, document.frm_designer.RearSize.options[document.frm_designer.RearSize.selectedIndex].value);
    }
    if (bValid==true) {
      bValid = CheckReg2(document.frm_designer.RegTextR2, document.frm_designer.RearSize.options[document.frm_designer.RearSize.selectedIndex].value);
    } 
  }
  return bValid;
}

// validate registration field element
function CheckReg2(RegElm, PSize){
  RegNumb = RegElm.value;
  RegSize = 0;
  NumbOfSpaces = 0;
  RegNumbCharNumb = RegNumb.length
  var charact = /[0-9A-Za-z]/
  var splitchar = /[\+]/
  var space = /[\ .]/
  for (i= 0; i<RegNumbCharNumb; i++) {
    if (RegNumb.charAt(i).match(space)) {
      RegSize = RegSize-1
      NumbOfSpaces = NumbOfSpaces + 1
    }
    if (!RegNumb.charAt(i).match(charact) && !RegNumb.charAt(i).match(space) && !RegNumb.charAt(i).match(splitchar)) {
      alert("Illegal Character(s) in Registration Number, please correct.");
      RegElm.select();
      RegElm.focus();
      return false;
    }
    if (!RegNumb.charAt(i).match(splitchar)) {RegSize= RegSize + 1;}
    if (document.frm_designer.PlateType[3].checked) {
      if (PSize=='O') {
        if (RegSize>8) {
          alert("No more than 8 characters are allowed.");
          RegElm.select();
          RegElm.focus();
          return false;
        }  
      } else {
        if (RegSize>4) {
          alert("No more than 4 characters are allowed.");
          RegElm.select();
          RegElm.focus();
          return false;
        }  
      }
    } else {
      if (RegSize>50) {
        alert("No more than 50 characters are allowed.");
        RegElm.select();
        RegElm.focus();
        return false;
      }  
    }
  }
  return true;
}

// validate slogan
function CheckSlogan() {
  sSlogan = document.frm_designer.SloganText.value;
  iSloganCharNumb = sSlogan.length;
  var charact = /[0-z]/
  var comma= /[\,]/
  var dot= /[\.]/
  var dash= /[\-]/
  var space = /[\ ]/
  var ampas = /[\&]/
  var doubleq = /[\"]/
  var singleq = /[\']/
  for (i=0; i < iSloganCharNumb; i++) {
    if ((!sSlogan.charAt(i).match(doubleq)) & (!sSlogan.charAt(i).match(singleq)) & (!sSlogan.charAt(i).match(charact)) & (!sSlogan.charAt(i).match(space)) & (!sSlogan.charAt(i).match(comma)) & (!sSlogan.charAt(i).match(dot)) & (!sSlogan.charAt(i).match(ampas)) & (!sSlogan.charAt(i).match(dash))){
      alert("Illegal Character(s) in Slogan, please correct.")
      document.frm_designer.SloganText.select();
      document.frm_designer.SloganText.focus();
      return false;
    }
  }
  return true;
}

// initialise the control panel
function initForm(){
  var optStr = '0|YOUR REG||1|0|YOUR REG||1|0|0|0|nobadge|NO BADGE|SELECT A BADGE|nobadge|NO BADGE|SELECT A BADGE||0|0|0|0|0';
  setFormOptions(optStr.split("|"));
}

// called by the left badge popup to apply badges
function setLeftBadge(FileName, BadgeName){
  document.frm_designer.LeftBadge.value = FileName; 
  document.frm_designer.LeftBadgeName.value = BadgeName; 
  if (BadgeName.length > 20){
    BadgeName = Trim(BadgeName.substring(0,18)) + "...";
  }
  document.frm_designer.LeftBadgeBtn.value = BadgeName; 
  updatePlates(); 
}

function setRightBadge(FileName, BadgeName) {
    document.frm_designer.RightBadge.value = FileName;
    document.frm_designer.RightBadgeName.value = BadgeName;
    if (BadgeName.length > 20) {
        BadgeName = Trim(BadgeName.substring(0, 18)) + "...";
    }
    document.frm_designer.RightBadgeBtn.value = BadgeName;
    updatePlates();
}

function updatePlateTypeB(index) {
    document.frm_designer.PlateType[index].checked = true;
    updatePlateType();
}

function updatePlateType() {
    sOption = ""
    sOldColour = document.frm_designer.RegFontColour.value
    len = document.frm_designer.PlateType.length

    for (i = 0; i < len; i++) {
        if (document.frm_designer.PlateType[i].checked) {
            sOption = frm_designer.PlateType[i].value
        }
    }
    document.frm_designer.PlateTypeStore.value = sOption;
    updateFonts(sOption);
    
    switch (sOption) {

        case "S":  // Showplates - Anything goes!
            // if white or silver font colour flip to black
            if ((sOldColour == "FFFFFF") || (sOldColour == "C7C7C7")) {
                document.frm_designer.RegFontColour.value = "000000";
            }
            document.frm_designer.RegFontStyle.disabled = false;
            document.frm_designer.RegFontColour.disabled = false;
            document.frm_designer.LeftBadgeBtn.disabled = false;
            document.frm_designer.RightBadgeBtn.disabled = false;
            document.frm_designer.SloganText.disabled = false;
            document.frm_designer.SloganTextBtn.disabled = false;
            document.frm_designer.SloganFontStyle.disabled = false;
            document.frm_designer.SloganFontColour.disabled = false;
            document.frm_designer.Background.disabled = false;
            document.frm_designer.BorderColour.disabled = false;
            document.frm_designer.BorderWidth.disabled = false;
            break;

      case "I": // Illuminated
          // if white or silver font colour flip to black
          if ((sOldColour == "FFFFFF") || (sOldColour == "C7C7C7")) {
              document.frm_designer.RegFontColour.value = "000000";
          }
          document.frm_designer.RegFontColour.disabled = false;
          break;

      case "G":  // Black Plates
          document.frm_designer.RegFontStyle.disabled = false;
          document.frm_designer.RegFontColour.value = "C7C7C7";
          document.frm_designer.RegFontColour.disabled = true;
          document.frm_designer.LeftBadgeBtn.disabled = true;
          document.frm_designer.LeftBadge.value = "nobadge";
          document.frm_designer.RightBadgeBtn.disabled = true;
          document.frm_designer.RightBadge.value = "nobadge";
          document.frm_designer.SloganText.value = '';
          document.frm_designer.SloganText.disabled = true;
          document.frm_designer.SloganTextBtn.disabled = true;
          document.frm_designer.SloganFontStyle.disabled = true;
          document.frm_designer.SloganFontColour.disabled = true;
          document.frm_designer.Background.disabled = true;
          document.frm_designer.Background.selectedIndex = 0;
          document.frm_designer.BorderColour.disabled = true;
          document.frm_designer.BorderWidth.selectedIndex = 0;
          document.frm_designer.BorderWidth.disabled = true;
          break;

      case "B":  // Black Silver Mirror
          document.frm_designer.RegFontStyle.disabled = false;
          document.frm_designer.RegFontColour.value = "FFFFFF";
          document.frm_designer.RegFontColour.disabled = true;
          document.frm_designer.LeftBadgeBtn.disabled = true;
          document.frm_designer.LeftBadge.value = "nobadge";
          document.frm_designer.RightBadgeBtn.disabled = true;
          document.frm_designer.RightBadge.value = "nobadge";
          document.frm_designer.SloganText.value = '';
          document.frm_designer.SloganText.disabled = true;
          document.frm_designer.SloganTextBtn.disabled = true;
          document.frm_designer.SloganFontStyle.disabled = true;
          document.frm_designer.SloganFontColour.disabled = true;
          document.frm_designer.Background.disabled = true;
          document.frm_designer.Background.selectedIndex = 0;
          document.frm_designer.BorderColour.disabled = true;
          document.frm_designer.BorderWidth.selectedIndex = 0;
          document.frm_designer.BorderWidth.disabled = true;
          break;

      case "P": // Pressed Metal - Standard Font, Silver Lettering, No Options
          document.frm_designer.RegFontStyle.selectedIndex = 0
          document.frm_designer.RegFontStyle.disabled = true;
          document.frm_designer.RegFontColour.value = "C7C7C7";
          document.frm_designer.RegFontColour.disabled = true;
          document.frm_designer.LeftBadgeBtn.disabled = true;
          document.frm_designer.LeftBadge.value = "nobadge";
          document.frm_designer.RightBadgeBtn.disabled = true;
          document.frm_designer.RightBadge.value = "nobadge";
          document.frm_designer.SloganText.value = '';
          document.frm_designer.SloganText.disabled = true;
          document.frm_designer.SloganTextBtn.disabled = true;
          document.frm_designer.SloganFontStyle.disabled = true;
          document.frm_designer.SloganFontColour.disabled = true;
          document.frm_designer.Background.disabled = true;
          document.frm_designer.Background.selectedIndex = 0;
          document.frm_designer.BorderColour.disabled = true;
          document.frm_designer.BorderWidth.selectedIndex = 0;          
          document.frm_designer.BorderWidth.disabled = true;
          showFixedPopup('pressedmetalplateswarning', event);
          break;

  }
  updatePlateSizes(sOption);
}

function updateReg() {
    if (CheckReg()) {
        updatePlates();
    }
}

function updateSlogan() {
    if (CheckSlogan()) {
        updatePlates();
    }
}

window.onload = function() {
    var cInit = GetCookie('des2');
    if (cInit != null) {
        setFormOptions(cInit.split("|"));
    } else {
        initForm();
    }
    updatePlates();
}