﻿// Core javascript
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}
 
// RedDot specific
function showWindow(url, title, width, height, left, top)
{
    var windowParameters;
    windowParameters = "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,"
    windowParameters = windowParameters + "width=" + width + ",height=" + height + ",left=" + left + ",top=" + top;
    window_1 = window.open(url, "_blank", windowParameters);
    window_1.focus();
}
// Product Literature
var gArrModels = new Array();
    
    function GetProductXML(url)
    {
    
        //Create HttpRequest Object 
        //Allow for IE / Non-ie browsers  
        if(window.XMLHttpRequest) {
           xmlProductDoc = new XMLHttpRequest();
        } else {
            xmlProductDoc = new ActiveXObject("msxml2.DOMDocument.3.0");
            xmlProductDoc.async = false;
            xmlProductDoc.resolveExternals = false;
            xmlProductDoc.validateOnParse = false;
        }
        
        //assign delegate function and open url.     
        if(window.XMLHttpRequest) {
            xmlProductDoc.async="true";
            xmlProductDoc.onreadystatechange=InitProductDropdown;
            xmlProductDoc.open("GET", url, true);
            xmlProductDoc.send(null);
        } else {
            xmlProductDoc.async="true";
            xmlProductDoc.onreadystatechange=InitProductDropdown;
            xmlProductDoc.load(url);
        }
    }
    
    function InitProductDropdown()
    {
        //Disable model dropdown.
        document.getElementById("")
        
        //Disable literature button
        document.getElementById("cmdFindLiterature").disabled = true
        
        
    
        //check XML has been loaded. 
        if (xmlProductDoc.readyState == 4) {
            
            //Get response xml
            if(window.XMLHttpRequest) {
                xmlProductDocResponse = xmlProductDoc.responseXML;
                
                // check for IE7
                if(document.epando) { 
                    xmlProductObj=xmlProductDocResponse.childNodes[0];
                }
                else {
                    xmlProductObj=xmlProductDocResponse.documentElement;
                }
            } 
            else {
                //xmlProductDocResponse = xmlProductDoc
                //xmlProductObj=xmlProductDocResponse.documentElement;
            xmlProductObj=xmlProductDoc;
            }
            if (xmlProductObj==null || xmlProductObj.childNodes.length == 0) {
              //no data found.
            } 
            else {
                //Nodeset found - extract all product groups            
                var arrProdGroup = xmlProductObj.getElementsByTagName("productGroup")
                var objOptGroup;
                
                //Get reference to Product Dropdown
                var objProdDropdown = document.getElementById("prodDropdown");
                                
                for (var i=0; i<arrProdGroup.length; i++)
                {
                    objOptGroup = ProcessProductGroup(arrProdGroup[i]);
                    if (objOptGroup != null)
                    {
                        objProdDropdown.appendChild(objOptGroup);
                    }
                    objOptGroup = null;
                }
                
           }
           //Add onChange event handling        
           objProdDropdown.onchange = productChanged;      
           
      }
 }
  
 
 function ProcessProductGroup(objProdGroup)
 {
    //Create Option Group
    var strProdGroupName = objProdGroup.getElementsByTagName("name")[0].childNodes[0].nodeValue;
    objOptGroup = CreateOptGroup(strProdGroupName);
    
    //Parse product list and generate SELECT OPTION entries.
    var arrProducts = objProdGroup.getElementsByTagName("product")
    
    var objOption;
    for (var n=0; n<arrProducts.length; n++)
    {
        var strLabel = arrProducts[n].getElementsByTagName("name")[0].childNodes[0].nodeValue;
        objOption = document.createElement('OPTION');
        objOption.value = arrProducts[n].getAttribute('id');
        objOption.appendChild(document.createTextNode(strLabel));
        objOptGroup.appendChild(objOption);
        
        //Extract models belonging to this product to in-memory array.
        GetModels(arrProducts[n], arrProducts[n].getAttribute('id'));
        
    }
    
    return objOptGroup;
 }
 
 
 function CreateOptGroup(name)
 {
    var optGroup = document.createElement('optgroup');
    optGroup.label = name;
    return optGroup;   
 }
 
 function GetModels(objProduct, strProductId)
 {
    //Get list of models belonging to this product
    var arrProdModels = objProduct.getElementsByTagName("model");
    
    //create object representing each model, assign its parent product id.
    for (var j=0; j<arrProdModels.length; j++)
    {
        var objModel = {
        name: arrProdModels[j].getElementsByTagName("name")[0].childNodes[0].nodeValue,
        url: arrProdModels[j].getElementsByTagName("url")[0].childNodes[0].nodeValue,
        productid: strProductId
        };
        
        //Add to global model array.
        gArrModels[gArrModels.length] = objModel;       
    }
 }
 
 function productChanged()
 {
    //Get id of selected product.
    var strProdId = this[this.selectedIndex].value;
    
    //Clear any existing model dropdown entries.
    objModelDropDown = document.getElementById("modelDropDown");
    objModelDropDown.options.length = 0;
    
    //add 'Select' entry 
    objModelDropDown.options[0] = new Option('Seleziona','0');
       
    //find models from global model array with matching product id, and add to model dropdown.
    for (var n=0; n<gArrModels.length; n++)
    {
        if (gArrModels[n].productid == strProdId)
        {
            objModelDropDown.options[objModelDropDown.options.length] = new Option(gArrModels[n].name,gArrModels[n].url);
        }
    }
    
    //add model dropdown event handler
    objModelDropDown.onchange = modelChanged;
    
 } 
 
 function modelChanged()
 {
    
    //enable 'find literature' button
    document.getElementById("cmdFindLiterature").disabled = false;
 }
 
 
 function FindLiterature()
 {
    objModelDropDown = document.getElementById("modelDropDown")
    location.href = objModelDropDown[objModelDropDown.selectedIndex].value;
    
 }


