function XmlHttp() {}

XmlHttp.create = function () {
  var xmlHttp;
  try
  {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
  }
  catch (e)
  {
    // Internet Explorer
    try
    {
      xmlHttp=new ActiveXObject("Msxml3.XmlHttp");
    }
    catch (e)
    {
      try
      {
        xmlHttp=new ActiveXObject("Msxml2.XmlHttp");
      }
      catch(e)
      {
        try
        {
          xmlHttp=new ActiveXObject("Msxml.XMLHTTP");
        }
        catch (e)
        {
          try
          {
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
          catch (e)
          {
            alert("Your browser will not run this version of eCampus, please upgrade. (FireFox 2.0, IE 6.0, Opera 9 supported)");
            return false;
          }
        }
      }
    }
  }
  return xmlHttp;
};

function hideSelects()
{
  var sels = document.getElementsByTagName('select');
  for (var i=0; i<sels.length; i++)
  {
    document.getElementById(sels[i].id).style.visibility = 'hidden';
  }
}

function showSelects()
{
  var sels = document.getElementsByTagName('select');
  for (var i=0; i<sels.length; i++)
  {
    document.getElementById(sels[i].id).style.visibility = 'visible';
  }
}

function continueToAddText()
{
  document.getElementById('pid').value = document.getElementById('products').value;
  document.getElementById('lid').value = document.getElementById('logos').value;
  document.addTextForm.submit();
}

function continueToCart()
{
  var http;
  var url = '/process_product.php';
  var postdata = "pid="+document.getElementById('products').value+"&lid="+document.getElementById('logos').value;

  if (http = XmlHttp.create())
  {
    http.open("POST", url, true);
    http.setRequestHeader("Method", "POST" + url + " HTTPS/1.1");
    http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    http.onreadystatechange = function(){
      if (http.readyState == 4)
      {
        var prodObj = eval(http.responseText);
        window.location = '/osc/product_info.php?products_id='+prodObj[0].pid;
      }
      else
      {
        // wait.
      }};
    http.send(postdata);
  }
  else
  {
    alert("Unable to send data request.");
  }
}

function setLogoOperator(val)
{
  switch (val)
  {
    case '30':
      logoOperator = '-1';
      break;
    case '31':
      logoOperator = '-2';
      break;
    default:
      logoOperator = '-1';
      break;
  }
}

function hideEl(el)
{
  document.getElementById(el).style.visibility = 'hidden';
}

function showEl(el)
{
  document.getElementById(el).style.visibility = 'visible';
}

function loadSelect(type, value)
{
  var http;
  var url = '/process_select.php';
  var postdata = "type="+type;
  var disable = false;
  var orderSet = 0;
  hideEl('galleryLink');
  for (var j=0; j<order.length; j++)
  {
    if (order[j] == type)
    {
      disable = true;
      orderSet = j;
    }
    if (disable)
    {
      document.getElementById(order[j]).options.length = 0;
    }
    document.getElementById(order[j]).disabled = disable;
  }
  document.getElementById('addText').disabled = true;
  document.getElementById('continue').disabled = true;
  switch (type)
  {
    case 'fittypes':
        setDefaultImages('BOTH');
        var selectName = 'Vehicle Type';
        break;
    case 'makes':
        setDefaultImages('BOTH');
        var selectName = 'Vehicle Make';
        postdata = postdata + "&ft_id=" + value;
        break;
    case 'models':
        setDefaultImages('BOTH');
        var selectName = 'Vehicle Model';
        postdata = postdata + "&m_id=" + value;
        break;
    case 'years':
        setDefaultImages('BOTH');
        var selectName = 'Vehicle Year';
        postdata = postdata + "&mo_id=" + value;
        break;
    case 'products':
        setDefaultImages('LOGO');
        var selectName = 'Product';
        postdata = postdata + "&my_id=" + value + "&ltype=" + ltype;
        break;
    case 'logos':
        showEl('galleryLink');
        var selectName = 'Logo';
        postdata = postdata + "&p_id=" + value + "&ltype=" + ltype;
        break;
    default:
        break;
  }

  if (value != '0')
  {
    if (http = XmlHttp.create())
    {
      http.open("POST", url, true);
      http.setRequestHeader("Method", "POST" + url + " HTTPS/1.1");
      http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      http.onreadystatechange = function(){
        if (http.readyState == 4)
        {
          if (eval(http.responseText) == "ALL")
          {
            document.getElementById('makes').options.length = 1;
            document.getElementById('makes').options[0].value = 0;
            document.getElementById('makes').options[0].text = 'All';
            document.getElementById('models').options.length = 1;
            document.getElementById('models').options[0].value = 0;
            document.getElementById('models').options[0].text = 'All';
            document.getElementById('years').options.length = 1;
            document.getElementById('years').options[0].value = 0;
            document.getElementById('years').options[0].text = 'All';

            loadSelect('products','CAR')
          }
          else
          {
            var newOptions = eval(http.responseText);
            var sel = document.getElementById(type);
            sel.options.length = newOptions.length+1;
            sel.options[0].value = 0;
            sel.options[0].text = "Select a " + selectName;
            for (var i=0; i<newOptions.length; i++)
            {
              sel.options[i+1].value = newOptions[i].ID;
              sel.options[i+1].text = newOptions[i].Name;
            }
            sel.disabled = false;

            if (newOptions.length == 1)
            {
              sel.options[1].selected = true;
              loadSelect(order[orderSet+1],sel.options[1].value);
              if (preLoadImage && (type=='products' || type=='logos'))
              {
                if (type == 'products')
                {
                  loadImage(type, sel.options[1].value, 'prodImg');
                }
                else if (type == 'logos')
                {
                  loadImage(type, sel.options[1].value, 'logoImg');
                }
              }
            }
          }
        }
        else
        {
          // wait.
        }};
      http.send(postdata);
    }
    else
    {
      alert("Unable to send data request.");
    }
  }
}

function loadImage(type, value, imageID)
{
  var http;
  var url = '/process_image.php';
  var postdata = "type="+type+"&id="+value;

  if (http = XmlHttp.create())
  {
    http.open("POST", url, true);
    http.setRequestHeader("Method", "POST" + url + " HTTPS/1.1");
    http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    http.onreadystatechange = function(){
      if (http.readyState == 4)
      {
        var imageObj = eval(http.responseText);
        if (type=='logos')
        {
          logoCode = imageObj[0].src;
          document.getElementById(imageID).src = '/osc/images/'+type+'/'+imageObj[0].src+logoOperator+'.jpg';
        }
        else
        {
          productCode = imageObj[0].src;
          document.getElementById(imageID).src = '/osc/images/'+type+'/'+imageObj[0].src+'.jpg';
        }
      }
      else
      {
        // wait.
      }};
    http.send(postdata);
  }
  else
  {
    alert("Unable to send data request.");
  }
}

function loadFullImage(lid, pid, imageID)
{
  var http;
  var url = '/process_image.php';
  var postdata = "type=full&pid="+pid+"&lid="+lid;

  if (http = XmlHttp.create())
  {
    http.open("POST", url, true);
    http.setRequestHeader("Method", "POST" + url + " HTTPS/1.1");
    http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    http.onreadystatechange = function(){
      if (http.readyState == 4)
      {
        var imageObj = eval(http.responseText);
        document.getElementById(imageID).src = '/osc/images/'+imageObj[0].src+'.jpg';
        if (imageID == 'fullImg')
        {
          document.getElementById('addText').src = '/images/button_add_text.jpg';
          document.getElementById('continue').src = '/images/continue_to_cart.jpg';
          document.getElementById('addText').disabled = false;
          document.getElementById('continue').disabled = false;
        }
      }
      else
      {
        // wait.
      }};
    http.send(postdata);
  }
  else
  {
    alert("Unable to send data request.");
  }
}

function setDefaultImages(type)
{
  switch (type)
  {
    case 'BOTH':
        document.getElementById('prodImg').src = defaultProdImg;
        document.getElementById('logoImg').src = defaultLogoImg;
        document.getElementById('fullImg').src = defaultFullImg;
        document.getElementById('addText').src = defaultAddTextImg;
        document.getElementById('continue').src = defaultContinueImg;
        break;
    case 'LOGO':
        document.getElementById('logoImg').src = defaultLogoImg;
        document.getElementById('fullImg').src = defaultFullImg;
        document.getElementById('addText').src = defaultAddTextImg;
        document.getElementById('continue').src = defaultContinueImg;
        break;
    case 'PROD':
        document.getElementById('prodImg').src = defaultProdImg;
        document.getElementById('fullImg').src = defaultFullImg;
        document.getElementById('addText').src = defaultAddTextImg;
        document.getElementById('continue').src = defaultContinueImg;
        break;
    default:
        break;
  }
}

function showLarge(src)
{
  hideSelects();
  document.getElementById('largeImg').src = src; 
  showEl('largeImgDiv');
  hideEl('graphicGallery');
}

function hideLarge()
{
  showSelects();
  hideEl('largeImgDiv');
}

function hideGraphicGallery()
{
  showSelects();
  document.getElementById('graphicGallery').innerHTML = '';
  hideEl('graphicGallery');
}

function showGraphicGallery()
{
  hideSelects();
  hideEl('largeImgDiv');
  showEl('graphicGallery');
  var gg = document.getElementById('graphicGallery');
  var options = document.getElementById('logos').options;
  var html = '<table width="100%" border="0" cellspacing="0" cellpadding="5">';
  html += '<tr>';
  html += '<td colspan="4"><p class="p12-white">Click on an Image to select it</p></td>';
  html += '</tr><tr>';
  html += '<td colspan="4"><p class="p12-white"><a href="#" onClick="hideGraphicGallery();">Close</a></p></td>';
  html += '</tr><tr>';
  var count = 0;
  for (var i=1; i<options.length; i++)
  {
    if (count == 4)
    {
        count = 0;
        html += '</tr><tr>';
    }
    html += '<td align="center" width="200" height="200">'+options[i].text+'<br /><a href="#" onClick="document.getElementById(\'logos\').value = '+options[i].value+'; loadImage(\'logos\','+options[i].value+',\'logoImg\'); loadFullImage('+options[i].value+',document.getElementById(\'products\').value,\'fullImg\');"><img id="gg-'+i+'" src="" border="0" width="175" height="175" /></a></td>';
    count++;
  }
  html += '</tr><tr>';
  html += '<td colspan="4"><p class="p12-white"><a href="#" onClick="hideGraphicGallery();">Close</a></p></td>';
  html += '</tr>';
  html += '</table>';

  document.getElementById('graphicGallery').innerHTML = html;

  for (var i=1; i<options.length; i++)
  {
    loadImage('logos',options[i].value,"gg-"+i);
  }
}

