﻿function createAjaxRequest() {

    // create an Ajax Request

    var ajaxRequest;

    try {
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e1) {
        try {
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e2) {
            ajaxRequest = new XMLHttpRequest();
        }
    }

    return ajaxRequest;
}

function postToCart(iProductID, iCatID, sSearch) {
    var sMessage;
    var ajax_connection = createAjaxRequest();
    iQuantity = document.getElementById('Quantity' + iProductID).value;

    if (sSearch == '') {
        ajax_connection.open('GET', "AddToCart.aspx?Type=a&catid=" + iCatID + "&ProductID=" + iProductID + "&Quantity=" + iQuantity);
    }
    else {
        ajax_connection.open('GET', "AddToCart.aspx?Type=as&pageNumber=" + iCatID + "&ProductID=" + iProductID + "&Quantity=" + iQuantity + "&sc=" + sSearch);
    }

    // setup the function to deal with the reply
    ajax_connection.onreadystatechange = function () {
        if (ajax_connection.readyState == 4) {
            var xmlDoc = ajax_connection.responseXML;
            var markers = xmlDoc.documentElement.getElementsByTagName("cart");

            if (markers.length > 0) {
                var resultPrice = markers[0].getAttribute('price');
                var resultNoItems = markers[0].getAttribute('noitems');
                //document.getElementById("ctl00_TrolleySummary_labelItems").innerHTML = resultNoItems;
                document.getElementById("ctl00_Header_TrolleySummary_labelItems").innerHTML = resultNoItems;
                //document.getElementById("ctl00_TrolleySummary_labelPrice").innerHTML = resultPrice;
                document.getElementById("ctl00_Header_TrolleySummary_labelPrice").innerHTML = resultPrice;
            } else {
                //document.getElementById("ctl00_TrolleySummary_labelItems").innerHTML = "0";
                document.getElementById("ctl00_Header_TrolleySummary_labelItems").innerHTML = "0";
                //document.getElementById("ctl00_TrolleySummary_labelPrice").innerHTML = "0";
                document.getElementById("ctl00_Header_TrolleySummary_labelPrice").innerHTML = "0";
            }

            var markers = xmlDoc.documentElement.getElementsByTagName("product");

            if (markers.length > 0) {
                sMessage = "<h3>Related Products</h3>";
                sMessage += "<ul>";
                for (var x = 0; x <= (markers.length - 1); x++) {
                    if (markers[x] == null) {
                        document.getElementById("resultRelated").innerHTML = "";
                    }
                    else {
                        var resultProduct = markers[x].getAttribute('id');
                        var resultName = markers[x].getAttribute('name');
                        if (resultName.length > 30) {
                            var space = resultName.indexOf(' ', 20);
                            resultName = resultName.substring(0, space) + '<br />' + resultName.substring(space);
                        }
                        if (resultName.length > 60) {
                            var space = resultName.indexOf(' ', 50);
                            resultName = resultName.substring(0, space) + '<br />' + resultName.substring(space);
                        }
                        if (resultName.length > 90) {
                            var space = resultName.indexOf(' ', 80);
                            resultName = resultName.substring(0, space) + '<br />' + resultName.substring(space);
                        }
                        var resultPrice = markers[x].getAttribute('price');
                        sMessage += "   <li><a href='/ProductDetails.aspx?ProductID=" + resultProduct + "'>" + resultName + "</a><br /><b>(" + resultPrice + ")</b><br /><span class='addRelated'><a href='/AddToCart.aspx?Type=c&ProductID=" + resultProduct + "&Add=True'>+ Add to Trolley</a></span></li>";
                    }
                }
                sMessage += "</ul>";
                setResultsVisible(sMessage, iProductID);
                setCheckoutLinkVisible();
            }
            else {
                document.getElementById("resultRelated").innerHTML = "";
                nodeObj = document.getElementById("slider");
                nodeObj.style.display = 'block';
                setTrolleyLinkVisible(iProductID);
                setCheckoutLinkVisible();
            }
        }
    }
    ajax_connection.send(null);
}

// setResultsVisible

function setResultsVisible(sMessage, iProductID) {
    var nodeObj = document.getElementById("resultRelated");
    nodeObj.innerHTML = sMessage;
    nodeObj.style.display = 'block';

    nodeObj = document.getElementById("slider");
    nodeObj.style.display = 'none';

    setStyleByClass("div", "trolley_link", "display", "none");

    var elementname = "link" + iProductID;
    nodeObj = document.getElementById(elementname);
    sMessage = "<a href='#trolleyitems'>Related Products</a>";
    nodeObj.innerHTML = sMessage;
    nodeObj.style.display = 'block';
}

function setTrolleyLinkVisible(iProductID) {

    setStyleByClass("div", "trolley_link", "display", "none");

    var elementname = "link" + iProductID;
    var nodeObj = document.getElementById(elementname);
    sMessage = "<a href='/ShoppingCart.aspx'>View Trolley</a>";
    nodeObj.innerHTML = sMessage;
    nodeObj.style.display = 'block';
}

function setCheckoutLinkVisible() {
    var elementname = "ctl00_Header_TrolleySummary_panelNotCheckout";
    var nodeObj = document.getElementById(elementname);
    if (nodeObj.innerHTML.toString() != "") {
        sMessage = "<span id='checkout_button'><a href='/CheckOut.aspx' style='font-weight:bold;'>Checkout</a></span>";
        nodeObj.innerHTML = sMessage;
        nodeObj.style.display = 'block';
        nodeobj.style.height = '20px';
    }
    else {
        nodeObj.innerHTML = "";
        nodeobj.style.height = '26px';
    }
}

function ScrollToElement(theElement) {

    var selectedPosX = 0;
    var selectedPosY = 0;

    while (theElement != null) {
        selectedPosX += theElement.offsetLeft;
        selectedPosY += theElement.offsetTop;
        theElement = theElement.offsetParent;
    }

    window.scrollTo(selectedPosX, selectedPosY);

}

// setStyleByClass: given an element type and a class selector,
// style property and value, apply the style.
// args:
//  t - type of tag to check for (e.g., SPAN)
//  c - class name
//  p - CSS property
//  v - value
var ie = (document.all) ? true : false;

function setStyleByClass(t,c,p,v){
	var elements;
	if(t == '*') {
		// '*' not supported by IE/Win 5.5 and below
		elements = (ie) ? document.all : document.getElementsByTagName('*');
	} else {
		elements = document.getElementsByTagName(t);
	}
	for(var i = 0; i < elements.length; i++){
		var node = elements.item(i);
		for(var j = 0; j < node.attributes.length; j++) {
			if(node.attributes.item(j).nodeName == 'class') {
				if(node.attributes.item(j).nodeValue == c) {
					eval('node.style.' + p + " = '" +v + "'");
				}
			}
		}
	}
}
