﻿var sPath = window.location.pathname;
var sPathArray = new Array();
sPathArray = sPath.split('/');
//get IIS root folder
var APP_ROOT = "";
if (sPathArray[0] != "") {
    APP_ROOT = '/' + sPathArray[0] + '/';
}
else {
    APP_ROOT = '/' + sPathArray[1] + '/';
}

var XmlHttpBasket;
var ie = true;

var AJAX_FILE_PATH_BASKET = APP_ROOT + "Scripts/Basket/";

function aaa() {
    alert('aaa');
}
//Creating and setting the instance of appropriate XMLHTTP Request object to a “XmlHttp” variable  
function CreateXmlHttpBasket() {
    //Creating object of XMLHTTP in IE
    try {
        XmlHttpBasket = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
        try {
            XmlHttpBasket = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (oc) {
            XmlHttpBasket = null;
        }
    }
    //Creating object of XMLHTTP in Mozilla and Safari
    if (!XmlHttpBasket && typeof XMLHttpRequest != "undefined") {
        XmlHttpBasket = new XMLHttpRequest();
        ie = false;
    }
}

window.getYPos = function(obj) {
    var curtop = 0;
    if (document.getElementById || document.all) {
        while (obj.offsetParent) {
            curtop += obj.offsetTop;
            if (typeof (obj.scrollTop) == 'number')
                curtop -= obj.scrollTop;
            obj = obj.offsetParent;
        }
    }
    else if (document.layers)
        curtop += obj.y;
    return curtop;
}
window.getXPos = function(obj) {
    var curleft = 0;
    if (document.getElementById || document.all) {
        while (obj.offsetParent) {
            curleft += obj.offsetLeft
            obj = obj.offsetParent;
        }
    }
    else if (document.layers)
        curleft += obj.x;
    return curleft;
}


function mouseX(evt) {
    if (evt.pageX) return evt.pageX;
    else if (evt.clientX)
        return evt.clientX + (document.documentElement.scrollLeft ?
   document.documentElement.scrollLeft :
   document.body.scrollLeft);
    else return null;
}
function mouseY(evt) {
    if (evt.pageY) return evt.pageY;
    else if (evt.clientY)
        return evt.clientY + (document.documentElement.scrollTop ?
   document.documentElement.scrollTop :
   document.body.scrollTop);
    else return null;
}

function hideMessageAddBox(divMessageId) {
    var msgDiv = document.getElementById(divMessageId);
    if (msgDiv == null)
        return;
    msgDiv.style.display = "none";
    msgDiv.FadeState = 1;
    //    msgDiv.style.opacity = 0;
    //    msgDiv.style.filter =
    //      'alpha(opacity = ' + (0) + ')';
}

function showMessageAddBox(divMessageId) {
    var msgDiv = document.getElementById(divMessageId);
    if (msgDiv == null)
        return;

    msgDiv.style.display = '';
    msgDiv.style.opacity = 1;
    msgDiv.style.filter =
      'alpha(opacity = ' + (100) + ')';
    if (ie == true) {
        msgDiv.FadeState = 2;
    }
    else {
        msgDiv.FadeState = -1; //do not fade (any number except 2 and -2)
    }
}

//Gets called when MeasType ddl box selection changes
function updateBasket(divMessageId, numberOfProductsId, basketTotalPriceId, imgAddBoxId, imgLoadingId, itemId, quantity, instId, evt) {

    var language = 'en';

    var quantityString = {
        en: 'Please enter quantity.',
        el: 'Παρακαλούμε όπως δηλώσετε ποσότητα.'
    }

    var errorString = {
        en: 'There seems to be a communication problem. Please try again.',
        el: 'Υπάρχει κάποιο πρόβλημα με την επικοινωνία. Παρακαλούμε όπως δοκιμάσετε ξανά.'
    }

    var imgAdd = document.getElementById(imgAddBoxId);
    var imgLoad = document.getElementById(imgLoadingId);
    imgAdd.style.display = "";
    imgLoad.style.display = "";

    var numberOfProducts = document.getElementById(numberOfProductsId);
    var basketTotalPrice = document.getElementById(basketTotalPriceId);
    var msgDiv = document.getElementById(divMessageId);

    if (!evt) evt = window.event;
    
    msgDiv.scrollLeft = mouseX(evt);
    msgDiv.scrollTop = mouseY(evt);

    //imgLoad.src = "";
    if (quantity <= 0) {
        alert(quantityString[language]);
    }
    else {
        //this is needed to store in the cache a different page for every page call 
        //so that XML files do not get mixed up!
        var CurrentDateTime = document.lastModified;

        // URL to get conditions for a given base
        var requestUrl = AJAX_FILE_PATH_BASKET + "AjaxServerBasket.aspx" + "?productId=" + encodeURIComponent(itemId) +
		"&quantity=" + encodeURIComponent(quantity) + "&instId=" + encodeURIComponent(instId) +
		"&CurrentDateTime=" + CurrentDateTime;

        CreateXmlHttpBasket();

        // If browser supports XMLHTTPRequest object
        if (XmlHttpBasket) {
            //Initializes the request object with GET (METHOD of posting),
            //Request URL and sets the request as synchronous.
            XmlHttpBasket.open("GET", requestUrl, true);
            //Setting the event handler for the response
            XmlHttpBasket.onreadystatechange = function() {
                if (ie == true) {
                    // To make sure receiving response data from server is completed
                    if (XmlHttpBasket.readystate == 4) {

                        // To make sure valid response is received from the server, 200 means response received is OK
                        if (XmlHttpBasket.status == 200) {
                            if (XmlHttpBasket.responseText.toUpperCase() == "ERROR") {
                                msgDiv.style.display = "none";
                                alert(errorString[language]);

                            }
                            else {

                                imgLoad.style.display = 'none';
                                numberOfProducts.innerHTML = XmlHttpBasket.responseText.split(';')[0];
                                basketTotalPrice.innerHTML = XmlHttpBasket.responseText.split(';')[1];
                                if (XmlHttpBasket.responseText != "0") {
                                    //document.getElementById("ctl00_imgBasket").src = "/taste/images/basketNotEmpty.gif";
                                }
                                else {
                                    //document.getElementById("ctl00_imgBasket").src = "/taste/images/basket.gif";
                                }
                                //msgDiv.style.display = "";
                                showMessageAddBox(divMessageId);
                                var fadeTimerID = setTimeout("fade('" + divMessageId + "')", 2000)//; alert("Το κουτί σας έχει ενημερωθεί.");
                                //var messageTimerID = setTimeout("hideMessageAddBox('" + divMessageId + "')", 3000)
                                //msgDiv.style.display = "none";
                            }
                        }
                        else {

                            imgLoad.style.display = 'none';
                            msgDiv.style.display = "none";
                            alert(errorString[language]);
                        }
                    };
                }
                else {

                    // To make sure receiving response data from server is completed
                    //if (XmlHttpBasket.readystate == 4 || xmlhttp.readyState=="complete") {

                    // To make sure valid response is received from the server, 200 means response received is OK
                    //if (XmlHttpBasket.status == 200) {
                    if (XmlHttpBasket.responseText.toUpperCase() == "ERROR") {
                        msgDiv.style.display = "none";
                        alert(errorString[language]);

                    }
                    else {
                        imgAdd.style.display = '';
                        imgLoad.style.display = 'none';
                        numberOfProducts.innerHTML = XmlHttpBasket.responseText.split(';')[0];
                        basketTotalPrice.innerHTML = XmlHttpBasket.responseText.split(';')[1];
                        //msgDiv.style.display = "";
                        showMessageAddBox(divMessageId);
                        var fadeTimerID = setTimeout("fade('" + divMessageId + "')", 2000)//; alert("Το κουτί σας έχει ενημερωθεί.");
                        //var messageTimerID = setTimeout("hideMessageAddBox('" + divMessageId + "')", 6000)
                        //msgDiv.style.display = "none";
                    }

                    //                    }
                    //                    else {
                    //                        imgAdd.style.display = '';
                    //                        imgLoad.style.display = 'none';
                    //                        msgDiv.style.display = "none";
                    //                        alert("Υπάρχει κάποιο πρόβλημα με την επικοινωνία. Παρακαλούμε όπως δοκιμάσετε αργότερα.");
                    //                    }
                    //};
                }
            };


            //Sends the request to server
            XmlHttpBasket.send(null);


        }
    }


}

function startLoading(imgAddBoxId, imgLoadingId) {
    var imgAdd = document.getElementById(imgAddBoxId);
    var imgLoad = document.getElementById(imgLoadingId);
    imgAdd.style.display = "";
    imgLoad.style.display = "";
}
function stopLoading(imgAddBoxId, imgLoadingId) {
    var imgAdd = document.getElementById(imgAddBoxId);
    var imgLoad = document.getElementById(imgLoadingId);
    imgAdd.style.display = '';
    imgLoad.style.display = 'none';
}

var TimeToFade = 1000.0;

function fade(eid) {
    var element = document.getElementById(eid);
    if (element == null)
        return;

    if (element.FadeState == null) {
        if (element.style.opacity == null
        || element.style.opacity == ''
        || element.style.opacity == '1') {
            element.FadeState = 2;
        }
        else {
            element.FadeState = -2;
        }
    }

    if (element.FadeState == 1 || element.FadeState == -1) {
        element.FadeState = element.FadeState == 1 ? -1 : 1;
        element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
    }
    else {
        element.FadeState = element.FadeState == 2 ? -1 : 1;
        element.FadeTimeLeft = TimeToFade;
        setTimeout("animateFade(" + new Date().getTime()
        + ",'" + eid + "')", 33);
    }

    var messageTimerID = setTimeout("hideMessageAddBox('" + eid + "')", TimeToFade)
}

function animateFade(lastTick, eid) {
    var curTick = new Date().getTime();
    var elapsedTicks = curTick - lastTick;

    var element = document.getElementById(eid);

    if (element.FadeTimeLeft <= elapsedTicks) {
        element.style.opacity = element.FadeState == 1 ? '1' : '0';
        element.style.filter = 'alpha(opacity = '
        + (element.FadeState == 1 ? '100' : '0') + ')';
        element.FadeState = element.FadeState == 1 ? 2 : -2;
        return;
    }

    element.FadeTimeLeft -= elapsedTicks;
    var newOpVal = element.FadeTimeLeft / TimeToFade;
    if (element.FadeState == 1)
        newOpVal = 1 - newOpVal;

    element.style.opacity = newOpVal;
    element.style.filter =
      'alpha(opacity = ' + (newOpVal * 100) + ')';

    setTimeout("animateFade(" + curTick
      + ",'" + eid + "')", 33);

}
