/* showCities()
 * allows the select city dropdown to be dynamic
 * this function is called when the user clicks on the select publication dates link
 * and shows the form for selecting a date
 */
function showCities(citylist) {
   document.getElementById("citySelector").innerHTML = "<select name='citylist' id='markets' onchange='updateZip(document.DealerForm)'>"+ citylist + "</select>";
}
/* updateZip(form)
 * @form - the form name to fill the zip code in on
 * updates the zipcode 
 * this function is called when the user chooses a market
 * it updates the radius and zip code fields accordingly
 */
function updateZip(form) {
   with (form) {
      var params = form.citylist.options[citylist.selectedIndex].value;
      var zipCode = params.substring(0,5);
      var rad = params.substring(6,params.length);
      
      form.zc.value = zipCode;
      
      for(i=0; i<rd.length; i++) {
         if(rd[i].value == rad) {
            rd[i].selected = 'selected';
         }
      }
   }
}

function getNumChecked(fieldname) {
   var numChecked = 0; 
   var checkboxes = document.getElementsByName(fieldname)
   for(i=0; i < checkboxes.length; i++) {
      if(checkboxes[i].checked == true) {
         numChecked += 1
      }
   }
   return numChecked;
}

function persistChecks(fieldName){
   var checkedBoxes = "";
   var count = 0;
   var checkedBoxesArray = new Array();
   var checkboxes = document.getElementsByName(fieldName);
   for(i=0; i < checkboxes.length; i++) {
      if(checkboxes[i].checked == true) {
         checkedBoxesArray[count] = checkboxes[i].value
         count += 1;
      }           
   }
   checkedBoxes = checkedBoxesArray.toString();
   setCookie("checkedDealers",checkedBoxes);
}

function getCheckedBoxes(fieldName){
   var checkboxes = document.getElementsByName(fieldName)
   var checkedBoxes = getCookie("checkedDealers");
   if(checkedBoxes.length > 0) {
      for(i=0; i < checkboxes.length; i++) {
         checkboxes[i].checked = false;
      }
      var checkedBoxesArray = checkedBoxes.split(",");
      for(i=0; i < checkedBoxesArray.length; i++) {
         if(document.getElementById(checkedBoxesArray[i])) {
            document.getElementById(checkedBoxesArray[i]).checked = true;
         }
      }  
   }    
}

function checkLimit(field, maxChecked) {
   if(getNumChecked(field.name) > maxChecked){
      field.checked = false;     openPopup('/go/dealersearch/tooManyDealersSelectedPopUp.jsp','tooManyDealers','width=500,height=180,left=100,top=100');
   }
   else {
      persistChecks('dlid');
   }
}
   
function groomContactDealerForm(form) {
   if(getNumChecked('dlid') == 0){
      alert("Please select a dealer to contact");
   }
   else {
         form.submit();
   }
}


function groomDistanceForm(form) {
   if(findSelectedValue(form.rd) == ""){
      alert("Please choose a radius.");
   }
   else {
		form.submit();
   }
}             

function groomReviseDealerForm(form) {
   var errorFound = 'false';
   
   var errorFound = checkAnyPlusMake(form);
   
   if(errorFound == 'true'){
      alert(error["make,ANY_PLUS_MAKE"]);
      return;
   }
   if(isWhitespace(form.zc.value)) {
      alert(error["zc,NO_DL_ZIP"]);
      return;
   }
   if(!isZIPCode(form.zc.value)){
      alert(error["zc,ERR_INV_ZC"]);
      return;
   }
   else {
       form.submit();
   } 
}

function groomFindDealerForm(form) {
   var errorText = error_start_text + error_header;
   errorText += "<p class='errorInstructions'>" + validation_error_header + "</p>"; 
   var errorFound = 'false';
   
   var errorFound = checkAnyPlusMake(form);
   
   if(errorFound == 'true'){
      alert(error["make,ANY_PLUS_MAKE"]);
      return;
   }
   else {
      if(isWhitespace(form.zc.value)) {
         alert(error["zc,NO_DL_ZIP"]);
         return;
      }
      if(!isZIPCode(form.zc.value)){
         errorFound = 'true';
         errorText += "<ul><li>" + error["zc,label"] + ": " + error["zc,ERR_INV_ZC"] + "</li></ul>";
         document.getElementById("DealerFormzcContainer").className="fieldError";
      }
      
      if(errorFound == 'true'){
         errorText += error_end_text
         document.getElementById("errorText").innerHTML = errorText;
         errorText = "";  
         window.scrollTo(0,0);
      }
      else {
         form.submit();
      } 
   }  
}

function checkAnyPlusMake(form){
   var errorFound = 'false';
   var selectedMakes = new Array();
   var x = 0;
   for(var i=0; i < form.mkid.length; i++) {
      if(form.mkid.options[i].selected == true) {
         selectedMakes[x]=form.mkid.options[i].value;
         x += 1;
      }
   }
   if(selectedMakes.length > 1) {
      for(var i=0; i < selectedMakes.length; i++) {
         if(selectedMakes[i]==""){            
            errorFound = 'true';
         }
      }
   }
   return errorFound;
}
