var oUndefined;
  var prod_id = '';
  
  var requiredVariants=Array(50);
  var disabledVariants=Array(50);
  var currentReqInt=0;
  var currentDisInt=0;


function createRequestObject() {
      var ro;
      var browser = navigator.appName;
      if(browser == "Microsoft Internet Explorer"){ro = new ActiveXObject("Microsoft.XMLHTTP");}
          else{ro = new XMLHttpRequest();}
      return ro;
  }
  
  //var http = createRequestObject();
  
  
  function handleSwatch() {
      if(httpSwatch.readyState == 4)
      {  
          var response = httpSwatch.responseText; 
          if(response != "") 
          {
             
              // do something with the results.
              document.getElementById('swatches').innerHTML = response;
          }
        }
  }
  
  function handleFabric() {
      if(httpFab.readyState == 4)
      {  
          var response = httpFab.responseText; 
          if(response != "") 
          {
              // do something with the results.
              document.getElementById('fabric_changer').innerHTML = response;
          }
        }
  }
  
  function handleFabricVars() {
      if(httpFabVars.readyState == 4)
      {  
          var response = httpFabVars.responseText; 
          if(response != "") 
          {
              // do something with the results.
              document.getElementById('variants_changer').innerHTML = response;
              if(document.getElementById('javascript_loader').value!='')
              {
                eval(document.getElementById('javascript_loader').value);  
              }
              
          }
        }
  }
  
  function addFabric(fab_id)
  {
    if(fabsIsFull())
    {
        alert('PLEASE NOTE: We currently have a 10 samples per customer limit.');
    }else{
    
      if(!fabsInArray(fab_id))
      {
   
         httpSample = createRequestObject(); 
         httpSample.open('get', 'php/insert_sample.php?type=fabric&fab='+fab_id);
            
            httpSample.onreadystatechange=function()
             {
              if(httpSample.readyState == 4)
                {  
                   
                    var response = httpSample.responseText; 
                   
                    if(response != "") 
                    {
                      
                      document.getElementById('sampleBasketMSG').innerHTML = "The requested sample has been added to the <b>Sample Basket</b>.";    
                      document.getElementById('sampleBasketLink').innerHTML = "<a href='fabric_samples.html' class='techlink' style='float:none'>View Sample Basket<a >";    
                      fabs[currentInt] = fab_id;       
                      currentInt=currentInt+1;         
                        
                    }
                }
           }
            httpSample.send(null); 
       }
     }   
   }
 //Added now
 function fabsHasValue()
  {
    
    hasValue = false;
 
    for(var x=0;x<fabs.length;x++)
    {
      if(fabs[x]!='' && fabs[x]!=oUndefined)
      {
        hasValue=true;  
      }
    }
    return hasValue;    
  }
  
  function fabsInArray(val)
  {
    hasValue = false;
    for(var x=0;x<fabs.length;x++)    {
      if(fabs[x]==val)
      {
        hasValue=true;  
      }
    }
    return hasValue;    
  }
  
  function fabsIsFull()
  {
        
    hasValues = true;
   
    for(var x=0;x<10;x++)
    {
      
      if(fabs[x]=='' || fabs[x]==oUndefined )
      {
        hasValues=false;  
      }
    }      
    return hasValues;  
  }
  //End   
         
  function handleCalc() {
      if(httpCalc.readyState == 4)
    {            
          if(!document.getElementById)
      {
        box1 = document.all.price_changer;
      }else{
        box1 = document.getElementById('price_changer');  
      }
         var response = httpCalc.responseText; 
            if(response != "") 
      {   
        if(parseFloat(response)>0)
        {   
                          
                  box1.innerHTML = '&pound;' + response;
                  box1.className = 'price';
                  
          document.getElementById('add_to_basket_button').disabled = false;
        }else{          
                  box1.innerHTML = 'Sorry, that option has no price please email us your sizes!';
          document.getElementById('add_to_basket_button').disabled = true;  
                  box1.className = 'price_changer';
        }
            }else{
        box1.innerHTML = 'Please select your options';
        document.getElementById('add_to_basket_button').disabled = true;
        box1.className = 'price_changer';
      }
         }
  }
  
  
  function calc(w,h,f,vars) {
    httpCalc = createRequestObject(); 
      httpCalc.open('get', 'php/calculator.php?h='+h+'&w='+w+'&fab='+f+'&vars='+vars);
      //alert('php/calculator.php?h='+h+'&w='+w+'&fab='+f+'&vars='+vars);
      httpCalc.onreadystatechange = handleCalc;
      httpCalc.send(null);
  }
    
  function getSwatch(sec,lib) {
    httpSwatch = createRequestObject(); 
      httpSwatch.open('get', 'php/getdata.php?type=swatch&sec='+sec+'&lib='+lib);
      httpSwatch.onreadystatechange = handleSwatch;
      httpSwatch.send(null);
  }
  
  function getFabric(sec,fab) {
    httpFab = createRequestObject(); 
    httpFab.open('get', 'php/getdata.php?type=fabric&sec='+sec+'&fab='+fab);
    httpFab.onreadystatechange = handleFabric;
    httpFab.send(null);    
    httpFabVars = createRequestObject(); 
    httpFabVars.open('get', 'php/variants.php?fab='+fab+'&sec='+sec);
    //alert('php/variants.php?fab='+fab+'&sec='+sec);
    httpFabVars.onreadystatechange = handleFabricVars;
    httpFabVars.send(null);    
  }
  
  
      
  function loadSwatches(secid,library)
  {
    getSwatch(secid,library);  
  }
    
  function loadFabric(secid,fab)
  {
    document.getElementById('width').value='';
    document.getElementById('drop').value='';
    x=0;
    for(x=0;x<requiredVariants.length;x++){requiredVariants[x]=oUndefined;}
    for(x=0;x<disabledVariants.length;x++){disabledVariants[x]=oUndefined;}
    getFabric(secid,fab);  
    obj = document.getElementById('swatch');
    javascript:scroll(0,obj.offsetTop);
  }

  
  function convert()
  {
    /* 
      Size:     c_size_value
      From Type:   c_size_type
      To Type:   c_to_type
      Type Text:   c_result_type
      value:     c_to_value
    */
    
    var fromType = document.getElementById('c_size_type').value;
    var toType = document.getElementById('c_to_type').value;
    
    var size = document.getElementById('c_size_value').value;
    
    var resultText = document.getElementById('c_result_type');
    var resultValue = document.getElementById('c_to_value');
    
    switch(fromType)
    {
      case 'inches':
        // convert to mm's, by *25.4
        switch(toType)
        {
          case 'inches':
            // do nothing.
            break;
          case 'mm':
            size = (parseFloat(size) * 25.4);
            break;    
          case 'cm':
            size = (parseFloat(size) * 2.54);
            break;          
        }
        break;  
      case 'mm':
        // convert to mm's, by *25.4
        switch(toType)
        {
          case 'inches':
            size = (parseFloat(size) / 25.4);
            break;
          case 'mm':
            // do nothing
            break;              
          case 'cm':
            size = (parseFloat(size) / 10);
            break;            
        }
        break;
      case 'cm':
        // convert to mm's, by *25.4
        switch(toType)
        {
          case 'inches':
            size = (parseFloat(size) / 2.54);
            break;
          case 'mm':
            size = (parseFloat(size) * 10);
            break;              
          case 'cm':
            // do nothing
            break;            
        }
        break;
    }
    
    size = size.toString();
    
    // fix decimals. :) 
    if(size.lastIndexOf(".")>0)
    {
      size = size.substring(0,size.lastIndexOf(".")+3);
    }
    
    resultText.innerHTML = toType;
    resultValue.value = size;    
  }
  
  function formInit(){
    document.getElementById('add_to_basket_button').disabled=true;
    document.getElementById('price_changer').innerHTML = 'Please select your options';
    document.getElementById('price_changer').className = 'price_changer';
  }
  
  function getCheckedValue(radioObj) {
    if(!radioObj)
      return "";
    var radioLength = radioObj.length;
    if(radioLength == undefined)
      if(radioObj.checked)
        return radioObj.value;
      else
        return "";
    for(var i = 0; i < radioLength; i++) {
      if(radioObj[i].checked) {
        return radioObj[i].value;
      }
    }
    return "";
  }
  
  
  function makePrice() {    
    
    if (document.getElementById('width').value > 999 || document.getElementById('drop').value > 999) {
        alert("Please enter dimensions in CM \n(For example 1785mm would be 178.5cm)");
    }
      
    if(prod_id!='' && document.getElementById('width').value!='' && document.getElementById('drop').value!='')
    {
      if(checkRequiredVariants())
      {        
        ars=document.getElementsByTagName('input');  
        var variants='';
        if(ars.length>0)
        {  
          for(i=0;i<=ars.length;i++)
          {
            if(ars[i] && ars[i].id)
            {
              if(ars[i].name.substr(0,7) == 'variant')
              {        
                $isDisabled=false;
                              
                if(!$isDisabled)
                {    
                  if(ars[i].checked)
                  {
                    variants = variants + ars[i].name.substr(7)+'|'+ars[i].value.replace(ars[i].id+': ','') + ";";
                  }
                }
              }
            }
          }
        }
        
        w=parseFloat(document.getElementById('width').value);
        h=parseFloat(document.getElementById('drop').value);
        calc(w,h,prod_id,variants);        
      }  
    }
  }  
  
  function prodChoice(val)
  {
    prod_id = val;
    document.getElementById('prod_id').value = prod_id;
    makePrice();
  }
  
  
  function makeRequired(variantgroups)
  {
    variantgroups='0,'+variantgroups;
    vargroups = variantgroups.split(",");
    var z=0;
    for(z=0;z<vargroups.length;z++)
    {
      if(vargroups[z]!='0')
      {
        variantgroup=vargroups[z];
        requiredVariants[currentReqInt]='variant'+variantgroup;    
        // remove from disabled variants
        for(x=0;x<disabledVariants.length;x++)
        {
          if(disabledVariants[x]!='' && disabledVariants[x]!=oUndefined)
          {
            if(disabledVariants[x] == 'variant'+variantgroup)
            {          
              disabledVariants[x]=oUndefined;
            }
          }              
        }    
        currentReqInt++;
      }
    }
    disabler();        
  }
  function makeDisabled(variantgroups)
  {
    variantgroups='0,'+variantgroups;
    vargroups = variantgroups.split(",");
    var z=0;
    for(z=0;z<vargroups.length;z++)
    {
      if(vargroups[z]!='0')
      {
        variantgroup=vargroups[z];
        disabledVariants[currentReqInt]='variant'+variantgroup;    
        // remove from disabled variants
        for(x=0;x<requiredVariants.length;x++)
        {
          if(requiredVariants[x]!='' && requiredVariants[x]!=oUndefined)
          {
            if(requiredVariants[x] == 'variant'+variantgroup)
            {          
              requiredVariants[x]=oUndefined;
            }
          }              
        }  
        currentReqInt++;
      }
    }
    
    disabler();    
  }
  
  function disabler()
  {
    ars=document.getElementsByTagName('input');  
    var variants='';
    if(ars.length>0)
    {  
      for(i=0;i<=ars.length;i++)
      {
        if(ars[i] && ars[i].id)
        {
          hasBeenDisabled=false;
          if(ars[i].name.substr(0,7) == 'variant')
          {        
            // check that this is not disabled.
            for(x=0;x<disabledVariants.length;x++)
            {
              if(disabledVariants[x]!='' && disabledVariants[x]!=oUndefined)
              {
                if(disabledVariants[x] == ars[i].name)
                {
                  ars[i].disabled=true;                  
                  ars[i].parentNode.style.color='#BBBBBB';  
                  if(document.getElementById)
                  {
                    document.getElementById(disabledVariants[x]+'_legend').className='greylegend';
                  }
                  ars[i].checked=false;
                  hasBeenDisabled=true;  
                }
              }              
            }
          }
          if(!hasBeenDisabled)
          {
            if(ars[i].name.substr(0,5)=='varia')
            {
              ars[i].disabled=false;              
              ars[i].parentNode.style.color='black';            
              if(document.getElementById)
              {
                if(document.getElementById(ars[i].name+'_legend'))
                {
                  document.getElementById(ars[i].name+'_legend').className='';  
                }              
              }
            }
          }
        }
      }
    }  
    formInit();    
  }
  
  function checkRequiredVariants()
  {
    
    ars=document.getElementsByTagName('input');  
    
    for(x=0;x<requiredVariants.length;x++)
    {
      if(requiredVariants[x]!='' && requiredVariants[x]!=oUndefined)
      {  
        //alert('required:'+requiredVariants[x]);          
        checked=false;
        optName='';
        
        if(ars.length>0)
        {  
          for(i=0;i<=ars.length;i++)
          {
            if(ars[i] && ars[i].id)
            {
              if(ars[i].name == requiredVariants[x])
              {      
                
                  if(optName=='')
                  {
                    optName = ars[i].id;
                  }
                
                              
                if(ars[i].checked)
                {
                  checked=true;
                }                
              }
            }
          }
        }

        if(checked==false)
        {
          document.getElementById('add_to_basket_button').disabled=true;  
          document.getElementById('price_changer').innerHTML = '<b><span class="red">Please select an option for:</span> '+optName+'</b>';
          document.getElementById('price_changer').className = 'price_changer';
          //formInit();
          return false;
        }  
      }              
    }      
    return true;
  }
  
  function setMenu(menuValue) {
    
    document.getElementById('swatch_library').value = menuValue;
        
  }
  
  function addSample(sampleID, sampleName) {
    
    document.getElementById('samples_selected').style.display = 'block';
    
    
    return true;
  }
