function AJAXInteraction(url, act, parentid, newquant) {


    var action; var req = init();
    var NewQuantity = newquant;
    var parent = parentid;
    req.onreadystatechange = ProcessRequestChange; action = act; function init() {
        if (typeof XMLHttpRequest != "undefined") {
            var r = new XMLHttpRequest(); if (r.overrideMimeType)
            { IsIE = false; r.overrideMimeType('text/xml'); }
            else
            { IsIE = true; }
            return r;
        }
        else if (window.ActiveXObject) {
            var aVersions = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHTTP"]; for (var i = 0; i < aVersions.length; i++) {
                try
{ var objHttp = new ActiveXObject(aVersions[i]); IsIE = true; return objHttp; }
                catch (oError)
{ }
            }
            throw new Error("XMLHttp Object could not be created.");
        }
    }

    function ProcessRequestChange() {
        if (req.readyState == "4") {
            if (req.status == 200) {
                var objXMLDom; var result = ""; if (IsIE) {
                    var parentElement; result = req.responseText; objXMLDom = new ActiveXObject("Microsoft.XMLDOM"); objXMLDom.loadXML(result); try {
                        if (objXMLDom.documentElement.selectSingleNode('//input[@id="hidLocation"]').getAttribute('value') != null && objXMLDom.documentElement.selectSingleNode('//input[@id="hidLocation"]').getAttribute('value').toLowerCase() == 'yes') {
                            //   location.href = 'dyn.aspx?ContentID=dyn0001';
                            document.getElementById('anchWarning').click();
                          //  return;
                         }
                    }
                    catch (ex)
{ }
                }
                else {
                    result = req.responseText; objXMLDom = req.responseXML; try {
                        if (objXMLDom.documentElement.selectSingleNode('//input[@id="hidLocation"]').hasAttribute('value') && objXMLDom.documentElement.selectSingleNode('//input[@id="hidLocation"]').getAttribute('value') != null && objXMLDom.documentElement.selectSingleNode('//input[@id="hidLocation"]').getAttribute('value').toLowerCase() == 'yes') {
                           
                         // location.href = 'dyn.aspx?ContentID=dyn0001';
                            //   return ;

                            jqry("#anchWarning").click();
                          
                         }
                    }
                    catch (ex)
{ }
                }
                switch (action) {
                    case "addtocart": if (result != null) {

                            $("ctl00_ContentPlaceHolder1_divShoppingCart").innerHTML = "";
                            $("ctl00_ContentPlaceHolder1_divShoppingCart").innerHTML = result;

                            var ResultingProductId = getValueById(objXMLDom, 'hidProductId');
                            HideIndicators(ResultingProductId);
                            var docElement = objXMLDom.documentElement;
                            var s = ResultingProductId;
                            ResultingProductId = 'p' + ResultingProductId;
							
                            try {
                                var qtyInTextBox = docElement.selectSingleNode('//div[@id="' + ResultingProductId + '"]/input').getAttribute("value");
								
                            }
                            catch (e) {
								try{
                                //Start:Added By Pankaj Mahajan
                                var st = parent;
                                st = st + 'Add';
                                $(st).click()
                                //Added By Pankaj Mahajan
								}catch(e){  $('Add').click()}
                            }
                            //End:Added By Pankaj Mahajan
                            
                            DisplayQtyTextBoxAndUpDownButtonsByProductIdForAddToCart(ResultingProductId, qtyInTextBox);


                        }

                        break;
                    case "deletecart": 
                        $("ctl00_ContentPlaceHolder1_divShoppingCart").innerHTML = "";
                        $("ctl00_ContentPlaceHolder1_divShoppingCart").innerHTML = result;
                        hideAllQTyTextBoxesAndShowAddToCartInGrid();
                        var productIdsInGrid = objXMLDom.selectSingleNode('//input[@id="hidProductIdsInGrid"]').getAttribute('value');
                        var quantitiesInGrid = objXMLDom.selectSingleNode('//input[@id="hidQuantitiesInGrid"]').getAttribute('value');
                        if (productIdsInGrid != null && productIdsInGrid != '' && quantitiesInGrid != null && quantitiesInGrid != "")
                        { hideQTyTextBoxesAndShowAddToCartInGridForProductIds(productIdsInGrid, quantitiesInGrid); }

                        break;
                    case "newcart": ReloadPage(); break;
                    case "updatequantityincart":   if (result != null) {

                            $("ctl00_ContentPlaceHolder1_divShoppingCart").innerHTML = ""; $("ctl00_ContentPlaceHolder1_divShoppingCart").innerHTML = result; var QtyToUpdateInTextBox = objXMLDom.selectSingleNode('//input[@id="hidUpdatedQty"]').getAttribute('value'); var ResultingProductId = getValueById(objXMLDom, 'hidProductId'); var imgindicatorId = 'imgindicator' + ResultingProductId; UpdateTextBoxInGridForUpdateQuantityInCart(ResultingProductId, QtyToUpdateInTextBox)
                            if ($('ctl00_ContentPlaceHolder1_hiddenLastClickedUpdateProductId') != null) {
                                if (ResultingProductId == $('ctl00_ContentPlaceHolder1_hiddenLastClickedUpdateProductId').value)
                                { $("imgUpdating").style.display = "none"; }
                            }
                            else
                            { $("imgUpdating").style.display = "none"; }
                        }
                        break;
                    case "loadcart": $("ctl00_ContentPlaceHolder1_divShoppingCart").innerHTML = "";
                        $("ctl00_ContentPlaceHolder1_divShoppingCart").innerHTML = result;
                        break;
                    case "quantitychangedingrid": 
                        $("ctl00_ContentPlaceHolder1_divShoppingCart").innerHTML = "";
                        $("ctl00_ContentPlaceHolder1_divShoppingCart").innerHTML = result;
                        var new_qty = getValueById(objXMLDom, 'hidUpdatedQty');
                        $(parent + 'txtQty').value = new_qty;
                        setInnerText(parent + 'Qty', new_qty);
                        var ResultingProductId = getValueById(objXMLDom, 'hidProductId');
                        $('imgindicator' + ResultingProductId).style.display = "none";
                        if (new_qty == null || new_qty == "" || new_qty == 0) {
                            DisplayAddToCartAndHideQtyTextBoxUpDownButtonsByProductIdForQuantityChangedInGrid(ResultingProductId, 0);
                        }
                        
                        //Start:added By Pankaj Mahajan
                        try {

                            var IndicatorCellId = $('imgindicator' + ResultingProductId).parentNode.getAttribute('id');
                            var refElem = IndicatorCellId.substring(0, IndicatorCellId.lastIndexOf('_') + 1)
                            var QtyTextBoxId = refElem + 'txtQty';
                            $(QtyTextBoxId).value = new_qty;
                           
                        } catch (e) { }
                        //End:added By Pankaj Mahajan

                        break;

                    case "quantitychangedingridthroughclickbutton":
                        $("ctl00_ContentPlaceHolder1_divShoppingCart").innerHTML = "";
                        $("ctl00_ContentPlaceHolder1_divShoppingCart").innerHTML = result;
                        var ResultingProductId = getValueById(objXMLDom, 'hidProductId');
                        $('imgindicator' + ResultingProductId).style.display = "none";
                        var ResultingProductsCount = getValueById(objXMLDom, 'hidUpdatedQty');
                        $(parent + 'txtQty').value = ResultingProductsCount;
                        setInnerText(parent + 'Qty', ResultingProductsCount);

                        if (ResultingProductsCount == null || ResultingProductsCount == '') {
                            
                            DisplayAddToCartByProductId(ResultingProductId); return;
                        }
                        //Start:added By Pankaj Mahajan
                        try {
                            var IndicatorCellId = $('imgindicator' + ResultingProductId).parentNode.getAttribute('id');
                            var refElem = IndicatorCellId.substring(0, IndicatorCellId.lastIndexOf('_') + 1)
                            var QtyTextBoxId = refElem + 'txtQty';
                            $(QtyTextBoxId).value = ResultingProductsCount;

                        } catch (e) { }
                        //End:added By Pankaj Mahajan


                        break;
                    case "selectedindexchangedcartid": ReloadPage(); break;
                }
            }
            else {
                hideAllQTyTextBoxesAndShowAddToCartInGrid();
                //alert("There was a problem retreiving the XML data:\n"+req.statusText);
            }
        }
    }

    this.doGet = function()
    { req.open("GET", url, true); req.send(null); }
    function testOutput(result)
    { $('ctl00_ContentPlaceHolder1_txtoutput').innerText = result; }
    function getResultingProductId(xmlDomObject)
    { return (xmlDomObject.documentElement.selectSingleNode('//input[@id="hidProductId"]').getAttribute("value")); }
    function getValueById(xmlDomObject, Id)
    { return (xmlDomObject.documentElement.selectSingleNode('//input[@id="' + Id + '"]').getAttribute("value")); }
    function HideIndicators(ResultingProductId) {
        if (ResultingProductId != null && ResultingProductId != '')
        { ShowIndicator(ResultingProductId, false) }
    }
    function ShowTextBoxQuantity(ResultingParentElementAddToCart, bln, qty) {
        if (ResultingParentElementAddToCart != null && ResultingParentElementAddToCart != '') {
            var txtqty_local = $(ResultingParentElementAddToCart + '_txtQty'); var divCases = $(ResultingParentElementAddToCart + '_divCases'); var imgUp = $(ResultingParentElementAddToCart + '_imgup'); var imgDown = $(ResultingParentElementAddToCart + '_imgdown'); if (bln) {
                if (qty != null && qty != '')
                { txtqty_local.value = qty; }
                txtqty_local.style.display = ""; imgUp.style.display = ""; imgDown.style.display = ""; divCases.style.display = "";
            }
            else
            { txtqty_local.style.display = "none"; imgUp.style.display = "none"; imgDown.style.display = "none"; divCases.style.display = "none"; }
        }
    }
    function ShowIndicator(id, bln) {

        if (bln)
            $('imgindicator' + id).style.display = ""; else
            $('imgindicator' + id).style.display = "none";
    }
    function hideAllQTyTextBoxesAndShowAddToCartInGrid() {

        var arrInputBoxes = document.getElementsByTagName('input'); var arrAnchors = document.getElementsByTagName('a'); var arrImages = document.getElementsByTagName('img'); var arrDivs = document.getElementsByTagName('span'); for (var i = 0; i < arrInputBoxes.length; i++) {
            var inputboxId = arrInputBoxes[i].getAttribute('id'); if (arrInputBoxes[i].type.toLowerCase() == 'text' && inputboxId.substring(inputboxId.lastIndexOf('_') + 1) == 'txtQty')
            { arrInputBoxes[i].style.display = "none"; }
        }
        if (IsIE) {
            for (var i = 0; i < arrImages.length; i++) {
                var imgId = arrImages[i].getAttribute('id'); if (imgId != null) {
                    if ((imgId.substring(imgId.lastIndexOf('_') + 1).toLowerCase()) == 'imgup' || (imgId.substring(imgId.lastIndexOf('_') + 1).toLowerCase()) == 'imgdown' || (imgId.substring(0, 12).toLowerCase()) == 'imgindicator')
                    { arrImages[i].style.display = "none"; }
                }
            }
            for (var i = 0; i < arrAnchors.length; i++) {
                var anchorId = arrAnchors[i].getAttribute('id'); if (anchorId != null) {
                    if ((anchorId.substring(anchorId.lastIndexOf('_') + 1).toLowerCase()) == 'add')
                    { arrAnchors[i].style.display = ""; }
                }
            }
            for (var i = 0; i < arrDivs.length; i++) {
                var divId = arrDivs[i].getAttribute('id'); if (divId != null) {
                    if (divId.substring(divId.lastIndexOf('_') + 1) == 'divCases')
                    { arrDivs[i].style.display = "none"; }
                }
            }
        }
        else {
            for (var i = 0; i < arrImages.length; i++) {
                if (arrImages[i].hasAttribute('id')) {
                    var imgId = arrImages[i].getAttribute('id'); if ((imgId.substring(imgId.lastIndexOf('_') + 1).toLowerCase()) == 'imgup' || (imgId.substring(imgId.lastIndexOf('_') + 1).toLowerCase()) == 'imgdown')
                    { arrImages[i].style.display = "none"; }
                }
            }
            for (var i = 0; i < arrAnchors.length; i++) {
                if (arrAnchors[i].hasAttribute('id')) {
                    var anchorId = arrAnchors[i].getAttribute('id'); if ((anchorId.substring(anchorId.lastIndexOf('_') + 1).toLowerCase()) == 'add')
                    { arrAnchors[i].style.display = ""; }
                }
            }
            for (var i = 0; i < arrDivs.length; i++) {
                if (arrDivs[i].hasAttribute('id')) {
                    var divId = arrDivs[i].getAttribute('id'); if (divId.substring(divId.lastIndexOf('_') + 1) == 'divCases')
                    { arrDivs[i].style.display = "none"; }
                }
            }
        }
    }
    function hideQTyTextBoxesAndShowAddToCartInGridForProductIds(productIdsInGrid, quantitiesInGrid) {

        var arrProductIds = productIdsInGrid.split(','); var quantitiesInGrid = quantitiesInGrid.split(','); for (var i = 0; i < arrProductIds.length; i++)
        { DisplayQtyTextBoxAndUpDownButtonsByProductIdForDeleteCart(arrProductIds[i], quantitiesInGrid[i]); }
    }
    function UpdateNewQtyInQtyLabel() {

        if (document.all || IsIE)
        { $(parent + 'Qty').innerText = NewQuantity; }
        else if ($(parent + 'Qty').textContent)
        { $(parent + 'Qty').textContent = NewQuantity; }
        else
        { alert("This browser is not supported"); }
    }
    function ReloadPage()
    { location.href = window.location.href; }
    function HideUpDownImages(imgindicatorId) {
        var arrUpDownImages = $(imgindicatorId).nextSibling.getElementsByTagName('img'); for (var i = 0; i < arrUpDownImages.length; i++)
        { arrUpDownImages[i].style.display = "none"; }
    }
    function DisplayAddToCartByProductId(PId) {

        var IndicatorCellId = $('imgindicator' + PId).parentNode.getAttribute('id');

        var AddToCartId = IndicatorCellId.substring(0, IndicatorCellId.lastIndexOf('_') + 1) + 'Add';

        if ($(AddToCartId) == null)
        { AddToCartId = 'Add'; }
        $(AddToCartId).style.display = "";
        //Start:added By Pankaj Mahajan Modified on 3-03-11
        if (location.href.indexOf('/P/') > -1 || location.href.indexOf('/ProductDetails.aspx') > -1) {
        }
        else {
            try {
                $('Add').style.display = "";
            } catch (e) { }
        }
        //End:added By Pankaj Mahajan
    }
    function DisplayQtyTextBoxAndUpDownButtonsByProductIdForDeleteCart(pid, val) {

        var imgIndicatorId = 'imgindicator' + pid; if ($('imgindicator' + pid) != null) {
            var IndicatorCellId = $('imgindicator' + pid).parentNode.getAttribute('id'); var refElem = IndicatorCellId.substring(0, IndicatorCellId.lastIndexOf('_') + 1)
            var QtyTextBoxId = refElem + 'txtQty'; var DivCasesId = refElem + 'divCases'
            var AddToCartId = refElem + 'Add'; var ImgUpId = refElem + 'imgup'; var imgDownId = refElem + 'imgdown'; var lblQty = refElem + 'Qty'; $(imgIndicatorId).style.display = "none"; if ($(QtyTextBoxId) == null)
            { QtyTextBoxId = 'txtQty'; AddToCartId = 'Add'; ImgUpId = 'imgup'; imgDownId = 'imgdown'; lblQty = 'Qty'; DivCasesId = 'divCases'; }
            $(QtyTextBoxId).style.display = ""; $(DivCasesId).style.display = ""; $(QtyTextBoxId).value = val; setInnerContent(lblQty, val); $(AddToCartId).style.display = "none"; $(ImgUpId).style.display = ""; $(imgDownId).style.display = "";
        }
    }
    function DisplayQtyTextBoxAndUpDownButtonsByProductIdForAddToCart(pid, val) {
        
        pid = pid.replace('p', '');
        var IndicatorCellId = $('imgindicator' + pid).parentNode.getAttribute('id');
        var refElem = IndicatorCellId.substring(0, IndicatorCellId.lastIndexOf('_') + 1)

        var QtyTextBoxId = refElem + 'txtQty';
        var DivCasesId = refElem + 'divCases'
        var AddToCartId = refElem + 'Add';
        var ImgUpId = refElem + 'imgup';
        var imgDownId = refElem + 'imgdown';
        var lblQty = refElem + 'Qty';
   
        if ($(QtyTextBoxId) == null) {
            QtyTextBoxId = 'txtQty';
            AddToCartId = 'Add';
            ImgUpId = 'imgup';
            imgDownId = 'imgdown';
            lblQty = 'Qty';
            DivCasesId = 'divCases';
        }
        $(QtyTextBoxId).style.display = "";
        $(QtyTextBoxId).value = val;
        $(DivCasesId).style.display = "";
        setInnerContent(lblQty, val);
        $(AddToCartId).style.display = "none";
        $(ImgUpId).style.display = "";
        $(imgDownId).style.display = "";

    }
    function UpdateTextBoxInGridForUpdateQuantityInCart(pid, val) {

        if ($('imgindicator' + pid) != null) {
            var IndicatorCellId = $('imgindicator' + pid).parentNode.getAttribute('id'); var refElem = IndicatorCellId.substring(0, IndicatorCellId.lastIndexOf('_') + 1)
            var QtyTextBoxId = refElem + 'txtQty'; var DivCasesId = refElem + 'divCases'
            var AddToCartId = refElem + 'Add'; var ImgUpId = refElem + 'imgup'; var imgDownId = refElem + 'imgdown'; var lblQty = refElem + 'Qty'; if ($(QtyTextBoxId) == null)
            { QtyTextBoxId = 'txtQty'; AddToCartId = 'Add'; ImgUpId = 'imgup'; imgDownId = 'imgdown'; lblQty = 'Qty'; DivCasesId = 'divCases'; }
            if (val != null && val != '' && val > 0)
            { $(QtyTextBoxId).style.display = ""; $(QtyTextBoxId).value = val; $(DivCasesId).style.display = ""; setInnerContent(lblQty, val); $(AddToCartId).style.display = "none"; $(ImgUpId).style.display = ""; $(imgDownId).style.display = ""; }
            else
            { $(QtyTextBoxId).style.display = "none"; $(DivCasesId).style.display = "none"; setInnerContent(lblQty, 0); $(AddToCartId).style.display = ""; $(ImgUpId).style.display = "none"; $(imgDownId).style.display = "none"; }
        }
    }
    function DisplayAddToCartAndHideQtyTextBoxUpDownButtonsByProductIdForQuantityChangedInGrid(pid, val) {
        var IndicatorCellId = $('imgindicator' + pid).parentNode.getAttribute('id');
        var refElem = IndicatorCellId.substring(0, IndicatorCellId.lastIndexOf('_') + 1)
        var QtyTextBoxId = refElem + 'txtQty'; var DivCasesId = refElem + 'divCases'
        var AddToCartId = refElem + 'Add';
        var ImgUpId = refElem + 'imgup';
        var imgDownId = refElem + 'imgdown';
        var lblQty = refElem + 'Qty';
        if ($(QtyTextBoxId) == null) {
            QtyTextBoxId = 'txtQty';
            AddToCartId = 'Add';
            ImgUpId = 'imgup';
            imgDownId = 'imgdown';
            lblQty = 'Qty';
            DivCasesId = 'divCases';
        }
        $(QtyTextBoxId).style.display = "none";
        $(DivCasesId).style.display = "none";
        $(QtyTextBoxId).value = val;
        setInnerContent(lblQty, val);
        $(AddToCartId).style.display = "";
        $(ImgUpId).style.display = "none";
        $(imgDownId).style.display = "none";

        //Start:Added by pankaj Modified on 3-03-11
        if (location.href.indexOf('/P/') > -1 || location.href.indexOf('/ProductDetails.aspx') > -1) {
        }
        else {
            try {

                $('txtQty').style.display = "none";
                $('divCases').style.display = "none";
                $('txtQty').value = val;
                setInnerContent('Qty', val);
                $('Add').style.display = "";
                $('imgup').style.display = "none";
                $('imgdown').style.display = "none";

            } catch (e) { }
        }
        //End:Added by pankaj   

    }
    function $(id)
    { return document.getElementById(id); }
    function setInnerContent(lblOldQtyId, val) {


        if ($(lblOldQtyId) != null) {
            if (document.all || IsIE)
            { $(lblOldQtyId).innerText = val; }
            else {
                if ($(lblOldQtyId)) {
                    if (($(lblOldQtyId)).textContent)
                    { $(lblOldQtyId).textContent = val; }
                    else
                    { $(lblOldQtyId).textContent = val; }
                }
            }
        }
    }
}
if (document.implementation.hasFeature("XPath", "3.0")) {
    XMLDocument.prototype.selectNodes = function(cXPathString, xNode) {
        if (!xNode)
        { xNode = this; }
        var oNSResolver = this.createNSResolver(this.documentElement)
        var aItems = this.evaluate(cXPathString, xNode, oNSResolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)
        var aResult = []; for (var i = 0; i < aItems.snapshotLength; i++)
        { aResult[i] = aItems.snapshotItem(i); }
        return aResult;
    }
    Element.prototype.selectNodes = function(cXPathString) {
        if (this.ownerDocument.selectNodes)
        { return this.ownerDocument.selectNodes(cXPathString, this); }
        else
        { throw "For XML Elements Only"; }
    }
}
if (document.implementation.hasFeature("XPath", "3.0")) {
    XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode) {
        if (!xNode)
        { xNode = this; }
        var xItems = this.selectNodes(cXPathString, xNode); if (xItems.length > 0)
        { return xItems[0]; }
        else
        { return null; }
    }
    Element.prototype.selectSingleNode = function(cXPathString) {
        if (this.ownerDocument.selectSingleNode)
        { return this.ownerDocument.selectSingleNode(cXPathString, this); }
        else
        { throw "For XML Elements Only"; }
    }
}
