      /*
      	Dynamic Dependent List Updater
      	v1.6 (for version log, see techguide.php)
      	
      	Updates and populates a set of dependent form lists, either
      	as a select menu or as a list of checkboxes. Also updates 
      	product images live based on selection. Used exclusively
      	on the techsupport pages.
      */
      
      var homeadsl = new Array("Netcomm NB6+4W", "Netcomm NB6", "Netcomm NB9WMAXX", "Netcomm NB9WMAXXn", "Netcomm V220");
      var adamdirect = new Array("Netcomm NB6+4W", "Netcomm NB6", "Netcomm NB9WMAXX", "Netcomm NB9WMAXXn", "Netcomm V220");
      var nakeddsl = new Array("Netcomm NB9WMAXX", "Netcomm NB9WMAXXn", "Netcomm V220");
      var adammax = new Array("Billion 6404VGP R3", "Alvarion BreezeMAX PRO 5000", "Alvarion Wireless Networking Gateway", "Alvarion Voice Gateway");
      var vdsl2 = new Array("Netcomm NB11W", "Netcomm V220");
      var adamfibre = new Array("Netcomm NP803n");

      // reset form data
      function resetForm(){
      	  browser = navigator.appName;

      	  document.guides.serviceType.selectedIndex = 0;
      	  document.guides.hardwareModel.selectedIndex = 0;
      	  uncheckAll();
      }
      
      function uncheckAll(){
      	  document.guides.hardwareCheck.checked = false;
      	  document.guides.loginCheck.checked = false;
      	  document.guides.voipCheck.checked = false;
      	  document.guides.wirelessCheck.checked = false;
      	  document.iconHardware.src = "./images/hardware_icon_empty.png";
      	  document.iconLogin.src = "./images/login_icon_empty.png";
      	  document.iconVoip.src = "./images/voip_icon_empty.png";
      	  document.iconWireless.src = "./images/wireless_icon_empty.png";
      }
    
      function updateHardwareModel(index, field, form){

        var fieldArray = eval(field[index].value);
        
        for (i = form.elements["hardwareModel"].options.length - 1; i >= 0; i--) {
            form.elements["hardwareModel"].options[i] = null;
        }
        for (i = 0; i < fieldArray.length; i++){
            form.elements["hardwareModel"].options[i] = new Option(fieldArray[i], fieldArray[i], false, false);
        }

        // find the guides for the hardware
        element = document.getElementById("hardwareModel");
        getGuides(element.value);
      }

      // dependencies here for hardware
      function getGuides(hardware){
      	  switch(hardware){
      	  case "Netcomm NB6" :
      	  	  showElement("Hardware Setup");
      	  	  showElement("Login");
      	  	  hideElement("VoIP");
      	  	  hideElement("Wireless");
      	  	  break;
      	  case "Netcomm NB6+4W" :
      	  	  showElement("Hardware Setup");
      	  	  showElement("Login");
      	  	  hideElement("VoIP");
      	  	  showElement("Wireless");
      	  	  break;
      	  case "Netcomm NB9WMAXX" :
      	  	  showElement("Hardware Setup");
      	  	  showElement("Login");
      	  	  showElement("VoIP");
      	  	  showElement("Wireless");
      	  	  break;
      	  case "Netcomm NB9WMAXXn" :
      	  	  showElement("Hardware Setup");
      	  	  showElement("Login");
      	  	  showElement("VoIP");
      	  	  showElement("Wireless");
      	  	  break;
      	  case "Alvarion BreezeMAX PRO 5000" :
      	  	  showElement("Hardware Setup");
      	  	  hideElement("Login");
      	  	  hideElement("VoIP");
      	  	  hideElement("Wireless");
      	  	  break;
      	  case "Alvarion Wireless Networking Gateway" :
      	  	  showElement("Hardware Setup");
      	  	  showElement("Login");
      	  	  hideElement("VoIP");
      	  	  showElement("Wireless");
      	  	  break;
      	  case "Alvarion Voice Gateway" :
      	  	  showElement("Hardware Setup");
      	  	  hideElement("Login");
      	  	  showElement("VoIP");
      	  	  hideElement("Wireless");
      	  	  break;
      	  case "Netcomm V220" :
      	  	  hideElement("Hardware Setup");
      	  	  hideElement("Login");
      	  	  showElement("VoIP");
      	  	  hideElement("Wireless")
      	  	  uncheckAll();
      	  	  break;
      	  case "Netcomm NB11W" :
      	  	  hideElement("Hardware Setup");
      	  	  showElement("Login");
      	  	  hideElement("VoIP");
      	  	  showElement("Wireless");
      	  	  uncheckAll();
      	  	  break;
      	  case "Netcomm NP803n" :
      	  	  hideElement("Hardware Setup");
      	  	  showElement("Login");
      	  	  hideElement("VoIP");
      	  	  showElement("Wireless");
      	  	  break;
      	  case "Billion 6404VGP R3" :
      	  	  hideElement("Hardware Setup");
      	  	  showElement("Login");
      	  	  showElement("VoIP");
      	  	  showElement("Wireless");
      	  	  break;
      	  }
      }
			
      function hideElement(id){
      	  element = document.getElementById(id);
      	  if(element.style.display != 'none'){
      	  	  element.style.display = 'none';
      	  }
      	  uncheckAll();
      }

      function showElement(id){
      	  element = document.getElementById(id);
      	  if(element.style.display == 'none'){
      	  	  element.style.display = 'block';
      	  }
      	  uncheckAll();
      }

      // updates the displayed image for the service type selected
      function getServiceImage(){
      	  if(document.images){
      	  	  var selectedService = document.getElementById("serviceType").value;

      	  	  switch(selectedService){
      	  	  case "homeadsl" :
      	  	  	  document.serviceImage.src = "./images/homeadsl_logo.png";
      	  	  	  break;
      	  	  case "adamdirect" :
      	  	  	  document.serviceImage.src = "./images/adamdirect_logo.png";
      	  	  	  break;
      	  	  case "nakeddsl" :
      	  	  	  document.serviceImage.src = "./images/nakeddsl_logo.png";
      	  	  	  break;
      	  	  case "anyg" :
      	  	  	  document.serviceImage.src = "./images/anyg_logo.png";
      	  	  	  break;
      	  	  case "adammax" :
      	  	  	  document.serviceImage.src = "./images/adammax_logo.png";
      	  	  	  break;
      	  	  case "vdsl2" :
      	  	  	  document.serviceImage.src = "./images/vdsl2_logo.png";
      	  	  	  break;
      	  	  case "adamfibre" :
      	  	  	  document.serviceImage.src = "./images/adamfibre_logo.png";
      	  	  	  break;
      	  	  }
      	  }
      }
	      
      // updates the image of the selected hardware
      function getHardwareImage(){
      	  if(document.images){
      	  	  var selectedHardware = document.getElementById("hardwareModel").value;
      	  	  switch(selectedHardware){
      	  	  case "Netcomm NB9WMAXX" :
      	  	  	  document.hardwareImage.src = "./images/netcomm_nb9wmaxx.png";
      	  	  	  break;
      	  	  case "Netcomm NB9WMAXXn" :
      	  	  	  document.hardwareImage.src = "./images/netcomm_nb9wmaxxn.png";
      	  	  	  break;
      	  	  case "Netcomm NB6+4W" :
      	  	  	  document.hardwareImage.src = "./images/netcomm_nb6plus4w.png";
      	  	  	  break;
      	  	  case "Netcomm NB6" :
      	  	  	  document.hardwareImage.src = "./images/netcomm_nb6.png";
      	  	  	  break;
      	  	  case "Alvarion BreezeMAX PRO 5000" :
      	  	  	  document.hardwareImage.src = "./images/alvarion_breezemax_pro_5000.png";
      	  	  	  break;
      	  	  case "Alvarion Wireless Networking Gateway" :
      	  	  	  document.hardwareImage.src = "./images/alvarion_te1088.png";
      	  	  	  break;
      	  	  case "Alvarion Voice Gateway" :
      	  	  	  document.hardwareImage.src = "./images/alvarion_vg-1d1v-sip.png";
      	  	  	  break;
      	  	  case "Netcomm NB11W" :
      	  	  	  document.hardwareImage.src = "./images/netcomm_nb11w.png";
      	  	  	  break;
      	  	  case "Netcomm V220" :
      	  	  	  document.hardwareImage.src = "./images/netcomm_v220.png";
      	  	  	  break;
      	  	  case "Netcomm NP803n" :
      	  	  	  document.hardwareImage.src = "./images/netcomm_np803n.png";
      	  	  	  break;
      	  	  case "Billion 6404VGP R3" :
      	  	  	  document.hardwareImage.src = "./images/billion_6404vgp_r3.png";
      	  	  	  break;
      	  	  }
      	  }
      }
	      
      // draws the icons based on the chosen guides, inspects the checkboxes for the correct state
      function getGuideIcons(element){
      	  switch(element.value){
      	  case "Hardware Setup" :
      	  	  if(element.checked){
      	  	  	  document.iconHardware.src = "./images/hardware_icon.png";
      	  	  	  break;
      	  	  }else{
      	  	  	  document.iconHardware.src = "./images/hardware_icon_empty.png";
      	  	  	  break;
      	  	  }
      	  case "Login" :
      	  	  if(element.checked){
      	  	  	  document.iconLogin.src = "./images/login_icon.png";
      	  	  	  break;
      	  	  }else{
      	  	  	  document.iconLogin.src = "./images/login_icon_empty.png";
      	  	  	  break;
      	  	  }
      	  case "VoIP" :
      	  	  if(element.checked){
      	  	  	  document.iconVoip.src = "./images/voip_icon.png";
      	  	  	  break;
      	  	  }else{
      	  	  	  document.iconVoip.src = "./images/voip_icon_empty.png";
      	  	  	  break;
      	  	  }
      	  case "Wireless" :
      	  	  if(element.checked){
      	  	  	  document.iconWireless.src = "./images/wireless_icon.png";
      	  	  	  break;
      	  	  }else{
      	  	  	  document.iconWireless.src = "./images/wireless_icon_empty.png";
      	  	  	  break;
      	  	  }
      	  }
      }

