﻿function openCart()
{
        showModalPop("CART");

        var strServiceURL =  location.protocol+"//"+location.hostname+"/ws/tcws.asmx/GetShoppingCart";

        var nBrokerID = readCookie("BrokerID");
        var strSessionID = readCookie("SessionGUID");
        var nShippingType = readCookie("ShippingType");
        var nCustomerID = readCookie("CustomerID");
        var strDiscountCode = readCookie("DiscountCode");
        var strGiftCardNum = readCookie("GiftCardNum");
        var strGiftCardAmt = readCookie("GiftCardAmt");
        var bTransform = "true";
        var nTransformType = 0;
        if(window.location.pathname.toString().substring(window.location.pathname.toString().lastIndexOf('/') + 1).toUpperCase()=="CHECKOUT.HTML")
        {
             nTransformType = 1;
        } 

        var strParams = "BrokerID="+nBrokerID+"&SessionID="+strSessionID+"&ShippingType="+nShippingType+"&CustomerID="+nCustomerID+"&DiscountCode="+strDiscountCode+"&GiftCardNum="+strGiftCardNum+"&GiftCardAmt="+strGiftCardAmt+"&Transform="+bTransform+"&TransformType="+nTransformType+"&UpdateErrors=";
        ajaxPost(strParams,strServiceURL,"renderCart");  
}

function updateCart(strInputField)
{
        var strItemID = strInputField.substring(strInputField.indexOf("qty")+3,strInputField.length);
        var strItemQty = returnObj(strInputField).obj.options[returnObj(strInputField).obj.selectedIndex].value;
       
        var strServiceURL =  location.protocol+"//"+location.hostname+"/ws/tcws.asmx/UpdateShoppingCart";

        var nBrokerID = readCookie("BrokerID");
        var strSessionID = readCookie("SessionGUID");
        var nShippingType = readCookie("ShippingType");
        var nCustomerID = readCookie("CustomerID");
        var strDiscountCode = readCookie("DiscountCode");
        var strGiftCardNum = readCookie("GiftCardNum");
        var strGiftCardAmt = readCookie("GiftCardAmt");
        var bTransform = true;
        var nTransformType = 0;
        if(window.location.pathname.toString().substring(window.location.pathname.toString().lastIndexOf('/') + 1).toUpperCase()=="CHECKOUT.HTML")
        {
             nTransformType = 1;
        } 
        
        createCookie("iid"+strItemID,strItemQty,0);
        
        var strParams = "BrokerID="+nBrokerID+"&SessionID="+strSessionID+"&ItemID="+strItemID+"&ItemQty="+strItemQty+"&ShippingType="+nShippingType+"&CustomerID="+nCustomerID+"&DiscountCode="+strDiscountCode+"&GiftCardNum="+strGiftCardNum+"&GiftCardAmt="+strGiftCardAmt+"&Transform="+bTransform+"&TransformType="+nTransformType;
        ajaxPost(strParams,strServiceURL,"renderCart");           
}

function updateCartShipping(strInputField)
{
        var strShippingType = returnObj(strInputField).obj.options[returnObj(strInputField).obj.selectedIndex].value;
        createCookie("ShippingType",strShippingType,0);
        openCart();            
}

function removeFromCart(strInputField)
{
        var strItemID = strInputField.substring(strInputField.indexOf("qty")+3,strInputField.length);
        var strItemQty = 0;
       
        var strServiceURL =  location.protocol+"//"+location.hostname+"/ws/tcws.asmx/UpdateShoppingCart";

        var nBrokerID = readCookie("BrokerID");
        var strSessionID = readCookie("SessionGUID");
        var nShippingType = readCookie("ShippingType");
        var nCustomerID = readCookie("CustomerID");
        var strDiscountCode = readCookie("DiscountCode");
        var strGiftCardNum = readCookie("GiftCardNum");
        var strGiftCardAmt = readCookie("GiftCardAmt");
        var bTransform = true;
        var nTransformType = 0;
        if(window.location.pathname.toString().substring(window.location.pathname.toString().lastIndexOf('/') + 1).toUpperCase()=="CHECKOUT.HTML")
        {
             nTransformType = 1;
        } 

        eraseCookie("iid"+strItemID);
       
        var strParams = "BrokerID="+nBrokerID+"&SessionID="+strSessionID+"&ItemID="+strItemID+"&ItemQty="+strItemQty+"&ShippingType="+nShippingType+"&CustomerID="+nCustomerID+"&DiscountCode="+strDiscountCode+"&GiftCardNum="+strGiftCardNum+"&GiftCardAmt="+strGiftCardAmt+"&Transform="+bTransform+"&TransformType="+nTransformType;
        ajaxPost(strParams,strServiceURL,"renderCart");     
}



function renderCart(xml)
{
    var bActiveX=true;
    var bCheckout=false;
    
    if(window.location.pathname.toString().substring(window.location.pathname.toString().lastIndexOf('/') + 1).toUpperCase()=="CHECKOUT.HTML")
    {
        bCheckout=true;
    }
    
    if (document.implementation && document.implementation.createDocument)
    {
        bActiveX=false;
	    xmlDoc = document.implementation.createDocument("", "", null);
	    parser=new DOMParser();
        xmlDoc=parser.parseFromString(xml,"text/xml");
    }
    else if (window.ActiveXObject)
    {
	    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	    xmlDoc.loadXML(xml);
    }
    else
    {
	    alert("Your browser is having problems with our website!\n\nPlease call us to resolve this issue.");
	    return;
    }

    nodeItems=getElementsByAttribute(xmlDoc,"div","id","divCart_Items");
    nodeCharges=getElementsByAttribute(xmlDoc,"div","id","divCart_Charges");
    nodeNotifications=getElementsByAttribute(xmlDoc,"div","id","divCart_Notifications");
    if(!bCheckout){nodeFooter=getElementsByAttribute(xmlDoc,"div","id","divCart_Footer");}

    /* set the cart qty cookie */
    nodeItemsSelected=getElementsByAttribute(nodeItems[0],"option","selected","selected");
    var nCartItemQty = 0;
    for(n in nodeItemsSelected)
    {
        nCartItemQty += Number(nodeItemsSelected[n].getAttribute("value"));
    }
    createCookie("CartItemQty",nCartItemQty,0)
    try{returnObj("spanCartItemQty").obj.innerHTML=nCartItemQty}catch(ex){/*carry on*/}

    try
    {  
        nodeAmtDue=getElementsByAttribute(xmlDoc,"input","id","hidAmtDue");
        createCookie("AmtDue",nodeAmtDue[0].getAttribute("value"),0);
        
        nodeChargeType=getElementsByAttribute(xmlDoc,"input","id","hidChargeType");
        if(bCheckout)
        {
            if(Number(nodeChargeType[0].getAttribute("value"))==2)
            {
                /* don't show payment method fields*/
               returnObj("divCartPaymentInfo").style.display="none";
            }
            else 
            {
               returnObj("divCartPaymentInfo").style.display="";
            }
        }

        nodeGiftCardAmt=getElementsByAttribute(xmlDoc,"input","id","hidGiftCardAmt");
        createCookie("GiftCardAmt",nodeGiftCardAmt[0].getAttribute("value"),0);
    }
    catch(ex)
    {
        try
        {
            var strErrorLog = getDebugInfo()+getExceptionInfo(ex)+"XML:<textarea cols=\"80\" rows=\"20\">" + escape(xml.toString()) + "</textarea><hr />";
            var strParams = "strErrorMsg="+strErrorLog+"&strSubject=JS_Exception [cart.js renderCart]&bIsHtmlMsg=true";
            ajaxPost(strParams,location.protocol+"//"+location.hostname+"/ws/tcws.asmx/LogError");
        }catch(e){/**/}
    }
    
    if(bActiveX)
    {
        returnObj("divCartDetails_Items").obj.innerHTML=nodeItems[0].xml;
        returnObj("divCartDetails_Charges").obj.innerHTML=nodeCharges[0].xml;
        returnObj("divCartDetails_Notifications").obj.innerHTML=nodeNotifications[0].xml;
        if(!bCheckout){returnObj("divCartDetails_Footer").obj.innerHTML=nodeFooter[0].xml;}
    }
    else
    {
        var serializer = new XMLSerializer();
        returnObj("divCartDetails_Items").obj.innerHTML=serializer.serializeToString(nodeItems[0]);
        returnObj("divCartDetails_Charges").obj.innerHTML=serializer.serializeToString(nodeCharges[0]);
        returnObj("divCartDetails_Notifications").obj.innerHTML=serializer.serializeToString(nodeNotifications[0]);
        if(!bCheckout){returnObj("divCartDetails_Footer").obj.innerHTML=serializer.serializeToString(nodeFooter[0]);}
    }

    if(window.location.pathname.toString().substring(window.location.pathname.toString().lastIndexOf('/') + 1).toUpperCase()=="CHECKOUT.HTML")
    {
        if(nCartItemQty==0)
        {
            returnObj("tblCartItemsHeader").style.display="none";
            returnObj("divCartContactInfo").style.display="none";
            returnObj("divCartRightColumn").style.display="none";
            returnObj("divCartPaymentInfo").style.display="none";
            returnObj("divCartTOS").style.display="none";
        }
        positionFooterEx(2);
    }
    showModalPop("CART");       
}

function applyChargeCredit()
{
    if(returnObj("rdoDiscountCode").obj.checked)
    {
        createCookie("DiscountCode",returnObj("txtCode").obj.value,0);
        openCart();
    }
    else if(returnObj("rdoGiftCard").obj.checked)
    {
        createCookie("GiftCardNum",returnObj("txtCode").obj.value,0);

        var strServiceURL =  location.protocol+"//"+location.hostname+"/ws/tcws.asmx/GetGiftCardBalance";

        var nBrokerID = readCookie("BrokerID");
        var strSessionID = readCookie("SessionGUID");
        var nShippingType = readCookie("ShippingType");
        var nCustomerID = readCookie("CustomerID");
        var strDiscountCode = readCookie("DiscountCode");
        var strGiftCardNum = readCookie("GiftCardNum");
        /*var strGiftCardAmt = readCookie("GiftCardAmt");*/
        var bTransform = "true";
        var nTransformType = 0;
        var bApply = "true"; 

        if(window.location.pathname.toString().substring(window.location.pathname.toString().lastIndexOf('/') + 1).toUpperCase()=="CHECKOUT.HTML")
        {
             nTransformType = 1;
        } 

        var strParams = "BrokerID="+nBrokerID+"&SessionID="+strSessionID+"&ShippingType="+nShippingType+"&CustomerID="+nCustomerID+"&DiscountCode="+strDiscountCode+"&GiftCardNum="+strGiftCardNum+"&Transform="+bTransform+"&TransformType="+nTransformType+"&Apply="+bApply;
        ajaxPost(strParams,strServiceURL,"renderCart");
    }
    else
    {
        alert("You must specify whether you are applying a \"Discount Code\" or a \"Gift Card\""); 
    }           
}

function removeChargeCredit(type)
{
    switch(type)
    {
        case "DC": /*discount code*/
            createCookie("DiscountCode","",0);
            break;
        case "GC": /*gift card*/
            createCookie("GiftCardNum","",0);
            createCookie("GiftCardAmt","",0);
            break;
    }
    openCart();            
}
function showModalPop(strType)
{
    switch(strType)
    {
        case "TRUSTUS":
            showHideModalBG("show");
            showHide("divTrustUsWindowWrapper","show");
            returnObj("divTrustUsWindow").style.left=(returnObj("divMain").obj.offsetLeft+(returnObj("divMain").obj.offsetWidth/2))-(returnObj("divTrustUsWindow").obj.offsetWidth/2)+"px";
            returnObj("aTrustUsHeader").obj.focus(); /*ff,safari*/
            returnObj("divTrustUsWindow").obj.focus(); /*ie*/
            break;
        case "GUARANTEE":
            showHideModalBG("show");
            showHide("divGuaranteeWindowWrapper","show");
            returnObj("divGuaranteeWindow").style.left=(returnObj("divMain").obj.offsetLeft+(returnObj("divMain").obj.offsetWidth/2))-(returnObj("divGuaranteeWindow").obj.offsetWidth/2)+"px";
            returnObj("aGuaranteeHeader").obj.focus(); /*ff,safari*/
            returnObj("divGuaranteeWindow").obj.focus(); /*ie*/
            break;
        case "CART":
            if(window.location.pathname.toString().substring(window.location.pathname.toString().lastIndexOf('/') + 1).toUpperCase()!="CHECKOUT.HTML")
            {
                showHideModalBG("show");
                showHide("divCartWindowWrapper","show");
                returnObj("divCartWindow").style.left=(returnObj("divMain").obj.offsetLeft+(returnObj("divMain").obj.offsetWidth/2))-(returnObj("divCartWindow").obj.offsetWidth/2)+"px";
                returnObj("aCartHeader").obj.focus(); /*ff,safari*/
                returnObj("divCartWindow").obj.focus(); /*ie*/
            } 
            break;
        case "TOS":
            showHideModalBG("show");
            showHide("divTOSWindowWrapper","show");
            returnObj("divTOSWindow").style.left=(returnObj("divMain").obj.offsetLeft+(returnObj("divMain").obj.offsetWidth/2))-(returnObj("divTOSWindow").obj.offsetWidth/2)+"px";
            returnObj("aTOSHeader").obj.focus(); /*ff,safari*/
            returnObj("divTOSWindow").obj.focus(); /*ie*/
            break;
        case "CURRENCYCONVERSION":
            showHideModalBG("show");
            try{returnObj("ifrCurrencyConverter").obj.src="http://finance.google.com/finance/converter?from=USD&to=EUR&a="+returnObj("spanAmtDue").obj.innerHTML.toString().replace("$","");}catch(ex){/*carry on*/}
            showHide("divCurrencyConversionWindowWrapper","show");
            returnObj("divCurrencyConversionWindow").style.left=(returnObj("divMain").obj.offsetLeft+(returnObj("divMain").obj.offsetWidth/2))-(returnObj("divCurrencyConversionWindow").obj.offsetWidth/2)+"px";
            returnObj("aCurrencyConversionHeader").obj.focus(); /*ff,safari*/
            returnObj("divCurrencyConversionWindow").obj.focus(); /*ie*/
            break;
        case "PRIVPOL":
            showHideModalBG("show");
            showHide("divPrivacyPolicyWindowWrapper","show");
            returnObj("divPrivacyPolicyWindow").style.left=(returnObj("divMain").obj.offsetLeft+(returnObj("divMain").obj.offsetWidth/2))-(returnObj("divPrivacyPolicyWindow").obj.offsetWidth/2)+"px";
            returnObj("aPrivacyPolicyHeader").obj.focus(); /*ff,safari*/
            returnObj("divPrivacyPolicyWindow").obj.focus(); /*ie*/
            break;
        case "FAQ":
            showHideModalBG("show");
            showHide("divFAQWindowWrapper","show");
            returnObj("divFAQWindow").style.left=(returnObj("divMain").obj.offsetLeft+(returnObj("divMain").obj.offsetWidth/2))-(returnObj("divFAQWindow").obj.offsetWidth/2)+"px";
            returnObj("aFAQHeader").obj.focus(); /*ff,safari*/
            returnObj("divFAQWindow").obj.focus(); /*ie*/
            break;            
                    
    }      
}
function closeModalPop(strType)
{
    switch(strType)
    {
        case "TRUSTUS":
            showHide("divTrustUsWindowWrapper","hide");
            break;
        case "GUARANTEE":
            showHide("divGuaranteeWindowWrapper","hide");
            break;
        case "CART":
            if(window.location.pathname.toString().substring(window.location.pathname.toString().lastIndexOf('/') + 1).toUpperCase()!="CHECKOUT.HTML")
            {
                showHide("divCartWindowWrapper","hide");
            } 
            break;
        case "TOS":
            showHide("divTOSWindowWrapper","hide");
            break;
        case "CURRENCYCONVERSION":
            showHide("divCurrencyConversionWindowWrapper","hide");
            break;
        case "PRIVPOL":
            showHide("divPrivacyPolicyWindowWrapper", "hide");
            break;
        case "FAQ":
            showHide("divFAQWindowWrapper", "hide");
            break;            
        case "IPHONE":
            showHide("divIPhoneAlertWindowWrapper", "hide");
            break;            
    } 
    showHideModalBG("hide");          
}


