// products.js - runs the show

  var xmlReq = null;
  var file = "proc.php";
  var text = "";
  
  
  function gathering(fobj)
  {
    //this function will gather all the checkbox data and compile it to send
    //to the request information form
    var stuff = "";
    for(var i = 0;i < fobj.elements.length;i++)
    {
        if(fobj.elements[i].type == "checkbox")
        {
            if (fobj.elements[i].checked)
            {
              stuff += fobj.elements[i].name;
              stuff += "|";
            }
        }
        
    }
    text += stuff;
    
    if(text)
    {
      requestForm();
    }
    else
    {
      alert("Please select product(s) or visit the Customer Support page.");
    }
  }
  
  function requestForm()
  {   
     document.location.href="/request.php?text=" + text;
     //document.close();
  }
  
  function disabler(fobj)
  {
    for(var i = 0;i < fobj.elements.length;i++)
    {
        fobj.elements[i].disabled = true; 
    }
  }
  
  function matcher(fobj) //matches QPTs to load cap values
  {
    for(var i = 0;i < fobj.elements.length;i++)
     {
         if(fobj.elements[i].type == "select-one")
         { 
              if (fobj.elements[i].name == "filter0") //prod category
              {
                switch(fobj.elements[i].options[fobj.elements[i].selectedIndex].value)
                {
                  case "QPT-20":
                    fobj.elements[i+1].value = "8 ft-lbs. (1.1 kg-m)";
                    fobj.elements[i+1].selected = true;
                    break;
                  case "QPT-LT":
                    fobj.elements[i+1].value = "10 ft-lbs. (1.38 kg-m)";
                    fobj.elements[i+1].selected = true;
                    break;
                  case "QPT-50":
                    fobj.elements[i+1].value = "50 ft-lbs. (7 kg-m)";
                    fobj.elements[i+1].selected = true;
                    break;
                  case "QPT-90":
                    fobj.elements[i+1].value = "90 ft-lbs. (12 kg-m)";
                    fobj.elements[i+1].selected = true;
                    break;
                  case "QPT-130":
                      fobj.elements[i+1].value = "130 ft-lbs. (18 kg-m)";
                    fobj.elements[i+1].selected = true;
                    break;
                  case "QPT-200":
                    fobj.elements[i+1].value = "200 ft-lbs. (27.7 kg-m)";
                    fobj.elements[i+1].selected = true;
                    break;
                  case "QPT-500":
                    fobj.elements[i+1].value = "500 ft-lbs. (70 kg-m)";
                    fobj.elements[i+1].selected = true;
                    break;

                }
              }                             
              if(fobj.elements[i].name == "filter1") //on pt page, load cap
              {
                switch(fobj.elements[i].options[fobj.elements[i].selectedIndex].value)
                {
                  case "8 ft-lbs. (1.1 kg-m)":
                    fobj.elements[i-1].value = "QPT-20";
                    fobj.elements[i-1].selected = true;
                    break;
                  case "10 ft-lbs. (1.38 kg-m)":
                    fobj.elements[i-1].value = "QPT-LT";
                    fobj.elements[i-1].selected = true;
                    break;
                  case "50 ft-lbs. (7 kg-m)":
                    fobj.elements[i-1].value = "QPT-50";
                    fobj.elements[i-1].selected = true;
                    break;
                  case "90 ft-lbs. (12 kg-m)":
                    fobj.elements[i-1].value = "QPT-90";
                    fobj.elements[i-1].selected = true;
                    break;
                  case "130 ft-lbs. (18 kg-m)":
                    fobj.elements[i-1].value = "QPT-130";
                    fobj.elements[i-1].selected = true; 
                    break;
                  case "200 ft-lbs. (27.7 kg-m)":
                    fobj.elements[i-1].value = "QPT-200";
                    fobj.elements[i-1].selected = true;
                    break;
                  case "500 ft-lbs. (70 kg-m)":
                    fobj.elements[i-1].value = "QPT-500";
                    fobj.elements[i-1].selected = true;
                    break;
                }
              }
                  
         }//end main if
      }//end for
  }
  
  
  
  function resetme(fobj, line)
  {
    subinit("initdropdown="+line);
  }
  
  function autochecker(fobj, num) //num is the one we want checked
  {
    var junk=-1;
    for(var i = 0;i < fobj.elements.length;i++)
    {
        if(fobj.elements[i].type == "checkbox")
        {
          junk++;
          
          if (num == junk)
          {
            if (fobj.elements[i].checked == true)
            {
              fobj.elements[i].checked = false;
              sub(fobj);
            }
            else
            {
              fobj.elements[i].checked = true;
              sub(fobj);
            }          
          }
          
        }
    }
  
  }
  
  function subinit(postline) //used by the initial links
  {
     what = postline;
     ShowLoadingMessage();
     window.setTimeout("getXML(file,what)",1);
  }
  function sub(f) //special submission function
  {
     ShowLoadingMessage();
     disabler(f);
     matcher(f);
     str = getFormValues(f,""); //the last blank is a validation thing
     window.setTimeout("getXML(file,str)",1);
  }
  
  function subpcm(f,num)
  {
     autochecker(f,num);
  }
  function getXML(file,str)
  {
     var xmlhttp=false;
    /*@cc_on @*/
    /*@if (@_jscript_version >= 5)
    // JScript gives us Conditional compilation, we can cope with old IE versions.
    // and security blocked creation of the objects.
     try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
      try {
       xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
       xmlhttp = false;
      }
     }
    @end @*/
    if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    	try {
    		xmlhttp = new XMLHttpRequest();
    	} catch (e) {
    		xmlhttp=false;
    	}
    }
    if (!xmlhttp && window.createRequest) {
    	try {
    		xmlhttp = window.createRequest();
    	} catch (e) {
    		xmlhttp=false;
    	}
    }

    xmlhttp.open( "POST", file, true );
    xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
    xmlhttp.onreadystatechange=function() 
    {
      if(xmlhttp.readyState==4) 
      {
        display(xmlhttp.responseText); //responseText contains the html
      }
    }
    xmlhttp.send(str);
  }
  
  function display(html)
  {
     //blah contains html output from processor
	   var displayarea = document.getElementById("displayarea");
	   displayarea.innerHTML = html; 
  }
  function ShowLoadingMessage()
  {       
    var pleasewait = document.getElementById("pleasewait");
    pleasewait.innerHTML = "<b>LOADING...</b>  <img src='ajax-loader.gif'/>"; 
  }
  
  function getFormValues(fobj,valFunc) //form object, validation function
  {
     var str = "";
     var valueArr = null;
     var val = "";
     var cmd = "";
  
     for(var i = 0;i < fobj.elements.length;i++)
     {
         switch(fobj.elements[i].type)
         {
             case "text":
                  if(valFunc) // FOR VALIDATION LATER IF NEEDED
                  {
                      //use single quotes for argument so that the value of
                      //fobj.elements[i].value is treated as a string not a literal
                      cmd = valFunc + "(" + 'fobj.elements[i].value' + ")";
                      val = eval(cmd);
                  }

                  str += fobj.elements[i].name +
                   "=" + encodeURIComponent(fobj.elements[i].value) + "&";
                   break;
             
             case "select-one":                                   
                  str += fobj.elements[i].name +
                  "=" + (fobj.elements[i].options[fobj.elements[i].selectedIndex].value) + "&";
                  break;  
                  
            case "hidden":
                str += fobj.elements[i].name +
                   "=" + encodeURIComponent(fobj.elements[i].value) + "&";
                   break;
            case "checkbox": 
                str += fobj.elements[i].name +
                   "=" + encodeURIComponent(fobj.elements[i].checked) + "&";
                   break;
         }
     }
     str = str.substr(0,(str.length - 1));
     return str;
  }

