function GetXmlHttpObject()
{
    var xmlHttp=null;
    try
    {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    }
    catch (e)
    {
        // Internet Explorer
        try
        {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}

function addToCart(sku)
{
    xmlHttp = GetXmlHttpObject();
    var url="/scripts/mini_cart.php?add=" + sku;

    xmlHttp.onreadystatechange = updateCart;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}

function addProductToCart(theForm)
{
    xmlHttp = GetXmlHttpObject();
    var url     ="/scripts/mini_cart.php";
    var data    = "action=add&sku=" + theForm.sku.value + "&qty=" + theForm.qty.value ;
    
    if (theForm.eng)
    {
        if (theForm.eng.checked)
        {
            var font = getCheckedValue(theForm.font);
            var lines = new Array();
            var l = 0;

            for(i=0; i<theForm.elements.length; i++)
            {
                if(theForm.elements[i].name == "text[]")
                {
                    lines[l] = "text[]=" + URLEncode(theForm.elements[i].value);
                    l++;
                }
            }
            
            var text = lines.join("&");
            data = data + "&eng=1&font="+font+"&"+text;
        }
    }
    
    xmlHttp.onreadystatechange = updateCart;
    xmlHttp.open("POST",url,true);
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttp.send(data);

    return false;
}

function increaseInCart(id)
{
    xmlHttp = GetXmlHttpObject();
    var url="/scripts/mini_cart.php?plus=" + id;

    xmlHttp.onreadystatechange = updateCart;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}

function decreaseInCart(id)
{
    xmlHttp = GetXmlHttpObject();
    var url="/scripts/mini_cart.php?minus=" + id;

    xmlHttp.onreadystatechange = updateCart;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}

function removeFromCart(id)
{
    xmlHttp = GetXmlHttpObject();
    var url="/scripts/mini_cart.php?del=" + id;

    xmlHttp.onreadystatechange = updateCart;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}

function emptyCart(id)
{
    xmlHttp = GetXmlHttpObject();
    var url="/scripts/mini_cart.php?action=empty";

    xmlHttp.onreadystatechange = updateCart;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}

function updateCart()
{
    if (xmlHttp.readyState==4)
    { 
        document.getElementById("miniCart").innerHTML = xmlHttp.responseText;

        // re-initialize thickbox when the minicart is updated
        tb_init('a.ajaxthickbox, area.ajaxthickbox, input.ajaxthickbox');
    }
}

function checkEngraving(theForm)
{
    theForm.eng.checked = true;
}

function confirm_entry()
{
    input_box=confirm("You will now be redirected to the main Northwest Territorial Mint website to complete your order.");
    if (input_box==true)
    { 
        return(true); 
    }

    else
    {
        return(false);
    }
}

function URLEncode (clearString) {
  var output = '';
  var x = 0;
  clearString = clearString.toString();
  var regex = /(^[a-zA-Z0-9_.]*)/;
  while (x < clearString.length) {
    var match = regex.exec(clearString.substr(x));
    if (match != null && match.length > 1 && match[1] != '') {
        output += match[1];
      x += match[1].length;
    } else {
      if (clearString[x] == ' ')
        output += '+';
      else {
        var charCode = clearString.charCodeAt(x);
        var hexVal = charCode.toString(16);
        output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
      }
      x++;
    }
  }
  return output;
}

