    SHOW_ADDED = 1; // set 0 if you no need show
    Offset_X = -10;
    Offset_Y = -30;

    var xmlHttp;

    function AddCartPost(form) {

        showLoading();

        xmlHttp=GetXmlHttpObject();

        if (xmlHttp==null) {
            alert ("Browser does not support HTTP Request");
            return;
        }

        var url = "ajax_shopping_cart.php";

        var params = '';
        var form_elements = form.elements;

        for(var i=0 ; i<form_elements.length ; i++) {

            if ( form_elements[i].type=="radio" || form_elements[i].type=="checkbox" ) {
                if ( form_elements[i].checked ) {
                    params += (params == '' ? '' : '&');
                    params += form_elements[i].name+'='+form_elements[i].value;
                }
            } else {
                params += (params == '' ? '' : '&');
                params += form_elements[i].name+'='+form_elements[i].value;
            }
        }

        xmlHttp.onreadystatechange = function() {
            if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
                //alert(xmlHttp.responseText);
                document.getElementById('divShoppingCard').innerHTML = '<table border="0" width="100%" cellspacing="0" cellpadding="2">'+xmlHttp.responseText+'</table>';

                hideLoading();
                if ( SHOW_ADDED ) {
                    showOk();
                    setTimeout("hideOk()", 500);
                }
            }
        }

        xmlHttp.open('POST', url+'?action=add_product'+'&osCsid='+getSid('osCsid'), true);
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("Content-length", params.length);
        //xmlHttp.setRequestHeader("Connection", "close");
        xmlHttp.send(params);
    }

    function AddBuylistCartPost(form) {

        showLoading();

        xmlHttp=GetXmlHttpObject();

        if (xmlHttp==null) {
            alert ("Browser does not support HTTP Request");
            return;
        }

        var url = "ajax_buylist_cart.php";

        var params = '';
        var form_elements = form.elements;

        for(var i=0 ; i<form_elements.length ; i++) {

            if ( form_elements[i].type=="radio" || form_elements[i].type=="checkbox" ) {
                if ( form_elements[i].checked ) {
                    params += (params == '' ? '' : '&');
                    params += form_elements[i].name+'='+form_elements[i].value;
                }
            } else {
                params += (params == '' ? '' : '&');
                params += form_elements[i].name+'='+form_elements[i].value;
            }
        }

        xmlHttp.onreadystatechange = function() {
            if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
                //alert(xmlHttp.responseText);
                document.getElementById('divBuylistCard').innerHTML = '<table border="0" width="100%" cellspacing="0" cellpadding="2">'+xmlHttp.responseText+'</table>';

                hideLoading();
                if ( SHOW_ADDED ) {
                    showOk();
                    setTimeout("hideOk()", 500);
                }
            }
        }

        xmlHttp.open('POST', url+'?action=add_product&actual_action=sell'+'&osCsid='+getSid('osCsid'), true);
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("Content-length", params.length);
        //xmlHttp.setRequestHeader("Connection", "close");
        xmlHttp.send(params);
    }

    function AddCartGet(link) {
        showLoading();

        xmlHttp=GetXmlHttpObject();

        if (xmlHttp==null) {
            alert ("Browser does not support HTTP Request");
            return;
        }

        xmlHttp.onreadystatechange = function() {
            if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
                //alert(xmlHttp.responseText);

                document.getElementById('divShoppingCard').innerHTML = '<table border="0" width="100%" cellspacing="0" cellpadding="2">'+xmlHttp.responseText+'</table>';
                hideLoading();
                if ( SHOW_ADDED ) {
                    showOk();
                    setTimeout("hideOk()", 500);
                }
            }
        }

        xmlHttp.open('GET', link, true);
        xmlHttp.send(null);
    }

    function AddMultipleCartGet(link, products_id)
    {
        showLoading();

        xmlHttp=GetXmlHttpObject();

        if (xmlHttp==null) {
            alert ("Browser does not support HTTP Request");
            return;
        }

        xmlHttp.onreadystatechange = function()
        {
            if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
            {
                document.getElementById('divShoppingCard').innerHTML = '<table border="0" width="100%" cellspacing="0" cellpadding="2">'+xmlHttp.responseText+'</table>';
                hideLoading();
                if ( SHOW_ADDED ) {
                    showOk();
                    setTimeout("hideOk()", 500);
                }
            }
        }
        link = link + '&multiple_quantity_'+products_id+'=' + document.getElementById('multiple_quantity_'+products_id).value;
        xmlHttp.open('GET', link, true);
        xmlHttp.send(null);
    }

    function AddMultipleCartGetPopup(link, products_id)
    {
        showLoading();

        xmlHttp=GetXmlHttpObject();

        if (xmlHttp==null) {
            alert ("Browser does not support HTTP Request");
            return;
        }

        xmlHttp.onreadystatechange = function()
        {
            if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
            {
                window.opener.document.getElementById('divShoppingCard').innerHTML = '<table border="0" width="100%" cellspacing="0" cellpadding="2">'+xmlHttp.responseText+'</table>';
                hideLoading();
                if ( SHOW_ADDED ) {
                    showOk();
                    setTimeout("hideOk()", 500);
                }
            }
        }
        link = link + '&multiple_quantity_'+products_id+'=' + document.getElementById('multiple_quantity_'+products_id).value;
        xmlHttp.open('GET', link, true);
        xmlHttp.send(null);
    }

    function AddMultipleCartGetBackPopup(link, getback, products_id)
    {
        showLoading();

        xmlHttp=GetXmlHttpObject();

        if (xmlHttp==null) {
            alert ("Browser does not support HTTP Request");
            return;
        }

        xmlHttp.onreadystatechange = function()
        {
            if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
            {
                window.opener.location.href = getback;
                hideLoading();
                if ( SHOW_ADDED ) {
                    showOk();
                    setTimeout("hideOk()", 500);
                }
            }
        }
        link = link + '&multiple_quantity_'+products_id+'=' + document.getElementById('multiple_quantity_'+products_id).value;
        xmlHttp.open('GET', link, true);
        xmlHttp.send(null);
    }

    function AddBuylistGet( link, products_id )
    {
        showLoading();

        xmlHttp=GetXmlHttpObject();

        if (xmlHttp==null)
        {
            alert ("Browser does not support HTTP Request");
            return;
        }

        xmlHttp.onreadystatechange = function()
        {
            if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
            {
                document.getElementById('divBuylistCard').innerHTML = '<table border="0" width="100%" cellspacing="0" cellpadding="2">'+xmlHttp.responseText+'</table>';
                hideLoading();
                if ( SHOW_ADDED )
                {
                    showOk();
                    setTimeout("hideOk()", 500);
                }
            }
        }

        link = link + '&multiple_quantity=' + document.getElementById('multiple_quantity_'+products_id).value;
        xmlHttp.open('GET', link, true);
        xmlHttp.send(null);

    }

    function AddWatchListGet(link) {
        showLoading();

        xmlHttp=GetXmlHttpObject();

        if (xmlHttp==null) {
            alert ("Browser does not support HTTP Request");
            return;
        }

        xmlHttp.onreadystatechange = function() {
            if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
                //alert(xmlHttp.responseText);

                document.getElementById('watch_list').innerHTML = '<span class="textNote">'+xmlHttp.responseText+'</span>';
                hideLoading();
                if ( SHOW_ADDED )
                {
                    showOk();
                    setTimeout("hideOk()", 500);
                }
            }
        }

        xmlHttp.open('GET', link, true);
        xmlHttp.send(null);
    }

    function GetXmlHttpObject() {
        var xmlHttp=null;

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

    var x, y;
    var loadingImage = new Image();
    var okImage = new Image();

    loadingImage.src = "images/loading.gif";
    okImage.src = "images/ok.gif";

    if (window.opera || (navigator.userAgent.indexOf('MSIE') > -1)) { //IE + Opera

        getM_x = function () { return event.clientX ? event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) : event.pageX; }
        getM_y = function () { return event.clientY ? event.clientY + (document.documentElement.scrollTop || document.body.scrollTop) : event.pageY; }
    } else { // Mozilla
        addHandler(document, 'mousemove', function(e) {
            x = e.pageX;
            y = e.pageY;
        });

        getM_x = function () { return x; }
        getM_y = function () { return y; }
    }

    function showOk() {
        var imgLoading = document.getElementById("_loading_");

        with (imgLoading) {
            src = okImage.src;
            style.visibility = "visible";
        }
    }

    function hideOk() {
        if(document.getElementById("_loading_")) document.getElementById('_loading_').style.visibility = "hidden";
    }

    function showLoading() {

        var imgLoading = document.getElementById("_loading_");

        if(!imgLoading) {

            imgLoading = document.createElement("img");

            with(imgLoading) {
                id = "_loading_";
                style.position = "absolute";
                style.visibility = "hidden";
            }

            document.body.appendChild(imgLoading);
        }

        with(imgLoading) {
            src = loadingImage.src;
            style.left = (getM_x() + Offset_X) + "px";
            style.top = (getM_y() + Offset_Y) + "px";
            style.visibility = "visible";
        }
    }

    function hideLoading() {
        if(document.getElementById("_loading_")) document.getElementById("_loading_").style.visibility = "hidden";
    }

    function addHandler(object, event, handler) {

        if (typeof object.addEventListener != 'undefined') {
            object.addEventListener(event, handler, false);
        } else if (typeof object.attachEvent != 'undefined') {
            object.attachEvent('on' + event, handler);
        } else {

            var handlersProp = '_handlerStack_' + event;
            var eventProp = 'on' + event;

            if (typeof object[handlersProp] == 'undefined') {
                object[handlersProp] = [];

                if (typeof object[eventProp] != 'undefined') {
                    object[handlersProp].push(object[eventProp]);
                }

                object[eventProp] = function(e) {

                    var ret = true;

                    for (var i = 0; ret != false && i < object[handlersProp].length; i++) {
                      ret = object[handlersProp][i](e);
                    }
                    return ret;
                }
            }
            object[handlersProp].push(handler);
        }
    }

    function removeHandler(object, event, handler) {

        if (typeof object.removeEventListener != 'undefined') {

            object.removeEventListener(event, handler, false);
        } else if (typeof object.detachEvent != 'undefined') {

            object.detachEvent('on' + event, handler);
        } else {

            var handlersProp = '_handlerStack_' + event;

            if (typeof object[handlersProp] != 'undefined') {

                for (var i = 0; i < object[handlersProp].length; i++) {
                    if (object[handlersProp][i] == handler) {

                        object[handlersProp].splice(i, 1);
                        return;
                    }
                }
            }
        }
    }

    function getSid(session_name) {
        var m = document.location.search.match(new RegExp('[&?]'+session_name+'=([^&?]*)'));
        var sid = null;

        if (m) {
            sid = m[1];
        } else {
            var m = document.cookie.match(new RegExp(s='(;|^)\\s*'+session_name+'=([^;]*)'));
            if (m) sid = m[2];
        }

        return sid;
    }