var inFade = false;
var cartFade = false;
var cartCache = new Array(3);
var hexa = new Array(16);
for (var i = 0; i < 10; i++) {
    hexa[i] = i;
}
hexa[10]="a"; hexa[11]="b"; hexa[12]="c";
hexa[13]="d"; hexa[14]="e"; hexa[15]="f";

var http = null;

if (typeof XMLHttpRequest != "undefined") {
    http = new XMLHttpRequest();
}

if (!http && typeof ActiveXObject != "undefined") {
    try {
        http = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            http = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e2) {
            try {
                http = new ActiveXObject("Msxml2.XMLHTTP.4.0");
            } catch (e3) {
                http = null;
            }
        }
    }
}

function addCart(form, session, target) {
    var post = '';
    for (i = 0; i < form.elements.length; i++) {
        if (form.elements[i].type != 'radio' || form.elements[i].checked == true) {
            if (i > 0) { post += '&'; }
            post += form.elements[i].name + '=' + encodeURIComponent(form.elements[i].value);
        }
    }
    post += '&element=' + target;
    //post += '&EGsid=' + session;
    cartCache['r'] = 255;
    cartCache['g'] = 255;
    cartCache['b'] = 0;
    showAddCart(post, target);
    return false;
}

function showAddCart(post, target) {
    if (http != null) {
        //http.abort();
        http.open("POST", 'ajaxAddCart.php', true);
        http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        //http.overrideMimeType("text/xml; charset=UTF-8");
        http.onreadystatechange = function() {
            if (!http) {
                return;
            }
            if (http.readyState == 4) {
                var response = http.responseText;
                var amp = new RegExp("&amp;", "g");
                response = response.replace(amp, '&');
                //alert(response);
                var carts = JSON.parse(response);
                document.getElementById("box_cart").innerHTML = carts.cart1;
                                document.getElementById(target).innerHTML = carts.cart2;
                displayElement(target, 'block');
                                setTimeout("displayElement('"+target+"', 'none');", 5000);
                            }
        }
        http.send(post);
    }
}

function displayElement(element, state) {
    document.getElementById(element).style.display = state;
}

function setColor(r, g, b, element_name) {
    var hr = hex(r); var hg = hex(g); var hb = hex(b);
    element = document.getElementById(element_name);
    element.style.backgroundColor = "#"+hr+hg+hb;
    cartCache['r'] = r;
    cartCache['g'] = g;
    cartCache['b'] = b;
    //console.log("#"+hr+hg+hb);
}

function hex(i) {
    if (i < 0)
    return "00";
    else if (i > 255)
    return "ff";
    else
    return "" + hexa[Math.floor(i/16)] + hexa[i%16];
}

function fade(sr, sg, sb, er, eg, eb, step, element) {
    for(var i = 0; i <= step; i++) {
        setTimeout("setColor(Math.floor(" + sr + " + ((( " + er + " - " + sr + " )/ " + step + ") * " + i + ")), Math.floor(" + sg + " + ((( " + eg + " - " + sg + " )/ " + step + ") * " + i + ")), Math.floor(" + sb + " + ((( " + eb + " - " + sb + " )/ " + step + ") * " + i + ")), '" + element + "');", i * step);
    }
    setTimeout("setInFade(false); cartFade = false;", step * step);
}

function setInFade(status) {
    inFade = status;
}

function getPrice(form) {
    var post = '';
    for (i = 0; i < form.elements.length; i++) {
        if (form.elements[i].type != 'radio' || form.elements[i].checked == true) {
            if (i > 0) { post += '&'; }
            post += form.elements[i].name + '=' + encodeURIComponent(form.elements[i].value);
        }
    }
    post += '&EGsid=kvk2pfqh2q2sg95092cd2mhp61';
    showPrice(post);
    return false;
}

function showPrice(post) {
    if (http != null) {
        //http.abort();
        http.open("POST", 'ajaxgetPrice.php', true);
        http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        //http.overrideMimeType("text/xml; charset=ISO-8859-15");
        http.onreadystatechange = function() {
            if (!http) {
                return;
            }
            if (http.readyState == 4) {
                var response = http.responseText;
                var amp = new RegExp("&amp;", "g");
                document.getElementById("info_price").innerHTML = response.replace(amp, '&');
                if (inFade == false) {
                    setColor(255, 255, 0, 'info_price');
                    setInFade(true);
                    setTimeout("fade(255, 255, 0, 204, 204, 204, 50, 'info_price');", 2000);
                }
            }
        }
        http.send(post);
    }
}