function $get(id)
{
  return document.getElementById(id);
}

function $getByClass(tagName, className)
{
  var results = [];
  var zr = 0;
  var tags = document.getElementsByTagName(tagName);
  for(var z = 0; z < tags.length; z++)
  {
    if(tags[z].className == className)
    {
      results[zr] = tags[z];
      zr++;
    }
  } 
      
  return results;
}

function createXHR()
{
  if (typeof XMLHttpRequest != "undefined")
  {
    return new XMLHttpRequest();
  }
  else
  {
    var aVersions = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0"];
    for (var z=0; z < aVersions.length; z++)
    {
      try
      {
        var oXHR = new ActiveXObject(aVersions[z]);
        return oXHR;
      }
      catch (oError)
      {
      }
    }
  }
  throw new Error("XMLHttpRequest or XMLHttp could not be created");
}

function dupUserName(userName)
{
  if(userName == '')
  {
    $get('username').className = 'errorField';
    $get('userNameError').innerHTML = 'User name cannot be blank'; 
    return
  }

  var xhr = createXHR();
  xhr.open("POST", "/ajaxServers/dupUserName.php", true);
  xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  xhr.onreadystatechange = function()
                           {
                             if (xhr.readyState == 4)
                             {
                               var fields = xhr.responseText.split("\n");
                               if(fields[0] == 0)
                               {
                                 $get('username').className = '';
                                 $get('userNameError').innerHTML = '';
                               }
                               else
                               {
                                 $get('username').className = 'errorField';
                                 $get('userNameError').innerHTML = 'User name is already used'; 
                               }
                               
                               summarizeErrors();
                             }
                           }

  xhr.send('userName='+userName);
}

function checkViewCartForm()
{
  var uname = $get('username');
  if(uname)
  {
    dupUserName(uname.value);
  }
  
//  validCoupon($get('').value);
//  summarizeErrors();
}

function validCoupon(couponCode)
{
  if(couponCode == '')
  {
    $get('coupon').className = '';
    $get('couponError').innerHTML = '';
    return
  }
    
  var xhr = createXHR();
  xhr.open("POST", "/ajaxServers/validCoupon.php", true);
  xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  xhr.onreadystatechange = function()
                           {
                             if (xhr.readyState == 4)
                             {
                               var fields = xhr.responseText.split("\n");
                               if(fields[0] == 1)
                               {
                                 $get('coupon').className = '';
                                 $get('couponError').innerHTML = '';
                               }
                               else
                               {
                                 $get('coupon').className = 'errorField';
                                 $get('couponError').innerHTML = 'Invalid Coupon Code'; 
                               }
                               
                               summarizeErrors();
                             }
                           }

  xhr.send('couponCode='+couponCode);
}

function summarizeErrors()
{
  var fldErrs = $getByClass('div', 'fieldError');
  var errCount = 0;
  for(var z = 0; z < fldErrs.length; z++)
  {
    if(fldErrs[z].innerHTML != '')
      errCount++;
      
  }
  
  var submits = document.getElementsByName('submit');
  if(errCount > 0)
  {
    $get('errorSummary').style.visibility = 'visible';
    for(var z = 0; submits.length; z++)
      submits[z].disabled = true;
      
  }
  else
  {
    $get('errorSummary').style.visibility = 'hidden';
    for(var z = 0; submits.length; z++)
      submits[z].disabled = false;

  }
}

