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(id)
{
    xmlHttp = GetXmlHttpObject();
    var url="/scripts/mini_cart.php";

    xmlHttp.onreadystatechange = updateCart;
    xmlHttp.open("POST",url,true);
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttp.send("action=additem&id="+id+"&qty=1");
}

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

            for(i=0; i<theForm.elements.length; i++)
            {
                if(theForm.elements[i].name == "text_obv[]")
                {
                    lines[l] = "text_obv[]=" + escape(theForm.elements[i].value);
                    l++;
                }
                if(theForm.elements[i].name == "text_rev[]")
                {
                    lines[l] = "text_rev[]=" + escape(theForm.elements[i].value);
                    l++;
                }

                if(theForm.elements[i].name == "font_obv")
                {
                    fonts[f] = "font_obv=" + getCheckedValue(theForm.font_obv);
                    f++;
                }
                if(theForm.elements[i].name == "font_rev")
                {
                    fonts[f] = "font_rev=" + getCheckedValue(theForm.font_rev);
                    f++;
                }
            }

            var font = fonts.join("&");
            var text = lines.join("&");
            data = data + "&eng=1&"+font+"&"+text;
        }
    }

    for(i=0; i<theForm.elements.length; i++)
    {
        if(theForm.elements[i].name == "options[]")
        {
            data = data + "&options[]="+theForm.elements[i].value;
        }
    }

    if (theForm.version)
    {
        data = data + "&version=" + theForm.version.value;
    }

    xmlHttp.onreadystatechange = updateCart;
    xmlHttp.open("POST",url,true);
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttp.send(data);

    return false;
}

function raincheck(theForm)
{
    xmlHttp = GetXmlHttpObject();
    var url     = "/scripts/mini_cart.php";
    var data    = "action=raincheck&id=" + theForm.id.value + "&expected=" + theForm.expected.value + "&email=" + theForm.email.value ;
    
    xmlHttp.onreadystatechange = function()
    {
        if (xmlHttp.readyState==4)
        { 
            document.getElementById("notify").innerHTML = xmlHttp.responseText;
        }
        else
        {
            document.getElementById("notify").innerHTML = 'Contacting Server...';
        }
    };
    xmlHttp.open("POST",url,true);
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttp.send(data);

    return false;
}

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

    xmlHttp.onreadystatechange = updateCart;
    xmlHttp.open("POST",url,true);
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttp.send("action=removeitem&cart_id="+id);
}

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

    xmlHttp.onreadystatechange = updateCart;
    xmlHttp.open("POST",url,true);
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttp.send("action=emptycart");
}

function initMaxChars()
{
    var theForm = document.getElementById("addProduct");

    for(i=0; i<theForm.elements.length; i++)
    {
        if ((theForm.elements[i].name == "font_obv") && (theForm.elements[i].checked == true))
        {
            setMaxChars(theForm.elements[i],'obv');
        }

        if ((theForm.elements[i].name == "font_rev") && (theForm.elements[i].checked == true))
        {
            setMaxChars(theForm.elements[i],'rev');
        }
    }
}

function setMaxChars(font,side)
{
    var theForm = font.form;

    if (side == "obv")
    {
        var engDie = theForm.die_obv.value;
    }
    else
    {
        var engDie = theForm.die_rev.value;
    }

    var engFont = font.value;

    xmlHttp = GetXmlHttpObject();
    var url="/scripts/engraving_fonts.php";

    xmlHttp.onreadystatechange = function(){

        if (xmlHttp.readyState == 4)
        { 
            var values = xmlHttp.responseText.split(',');

            var labels = document.getElementsByTagName('label');

            var k = 0;

            for(i=0; i<theForm.elements.length; i++)
            {
                if (theForm.elements[i].name == "text_"+side+"[]")
                {
                    if (theForm.elements[i].getAttributeNode("maxlength")) {
                      for (var x = 0; x < theForm.elements[i].attributes.length; x++) {
                        var attrName = theForm.elements[i].attributes[x].name.toUpperCase();
                        if (attrName == 'MAXLENGTH') {
                          theForm.elements[i].attributes[x].value = values[k];
                        }
                      }
                    } else {
                      theForm.elements[i].setAttribute("maxlength", values[k]);
                    }
                    //theForm.elements[i].setAttribute('maxlength', values[k]);
                    theForm.elements[i].value = theForm.elements[i].value.substring(0,values[k]);

                    var l = 0;

                    for(j=0; j<labels.length; j++)
                    {
                        if (labels[j].htmlFor == theForm.elements[i].name)
                        {
                            if (l == k)
                            {
                                if (values[k] > 0)
                                {
                                    labels[j].innerHTML = "Up to " + values[k] + " characters";
                                }
                                else
                                {
                                    labels[j].innerHTML = "Empty Space";
                                }
                            }

                            l++;
                        }
                    }         

                    k++;
                }
            }
        }

    };
    xmlHttp.open("POST",url,true);
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttp.send("font="+engFont+"&die="+engDie);
}

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

function updateCartQty()
{
    xmlHttp = GetXmlHttpObject();
    var url="/scripts/mini_cart.php";
    var insertText = "";

    xmlHttp.onreadystatechange = function () {
    
        if (xmlHttp.readyState==4)
        { 
            insertText = xmlHttp.responseText + " Items";
            
            document.getElementById("cart_qty").innerHTML = insertText;
        }
    
    };
    xmlHttp.open("POST",url,true);
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttp.send("action=itemcount");
}

