
    var shiftU=0;
    function shift(e)
    {
        if(!e)e=window.event;
        key = (e.which) ? e.which : e.keyCode;
        if (key==16) shiftU=1;
    }

    document.onkeydown=shift;
    document.onkeyup=function(){shiftU=0;};

    function openLink(link)
    {
        if(shiftU==1)
        {
            window.open(link);
        }
        else
        {
            location.href=link;
        }
    }




    function pauseComp(millis) 
    {
        var date = new Date();
        var curDate = null;

        do
        {
            curDate = new Date();
        }while(curDate-date < millis);

    }

    /* AJAX Part */
    var theTop = 200;
    var old = theTop;
    var txtItemTotalPrice="";
    var loaded = true;
    var lastAction = "";
    var counterState = true;
    var omg = null;
    
    var productPreviewCache = new Array();

    function AJAX_updateQty(cartItemID, newQty, txtItemTotalPriceElement)
    {
        loaded = false;

        displayStatusMessage("UPDATE");
        var xmlHttp=GetXmlHttpObject();
        if (xmlHttp==null)
        {
            alert ("Browser does not support HTTP Request");
            return
        }
        
        var url="http://www.ipmart.com/main/cart_action_ajax.php";
        url=url+"?cartItemID="+cartItemID;
        url=url+"&newQty="+newQty;
        url=url+"&curr="+1;
        url=url+"&sid="+Math.random(); //prevent display cached contents
        
        txtItemTotalPrice=txtItemTotalPriceElement;
        xmlHttp.onreadystatechange = function() {stateChanged(xmlHttp, "UPDATE");}; 
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
    }

        function AJAX_add2CartBeta(productID, qtyField, minQty, optCount, arrOpt)
    {
        
        if(!checkMinimumQtyForBrowse(qtyField, minQty, true))
        {
            return;
        }
        
        
        document.getElementById('smallCartLink').style.visibility = 'hidden';
        
        loaded = false;

        var frmData = "&"+qtyField.name+"="+qtyField.value;

        if(optCount>0)
        {
            for(var i=0; i<optCount; i++)
            {
                frmData = frmData+"&"+arrOpt[i].name+"="+ arrOpt[i].options[arrOpt[i].selectedIndex].text;
            }
        }
        
        displayStatusMessage("ADD");
        var xmlHttp=GetXmlHttpObject();
        if (xmlHttp==null)
        {
            alert ("Browser does not support HTTP Request");
            return
        }
        
        
        var url = "";
        url="http://www.ipmart.com/main/add_to_cart.php";
        url=url+"?prod="+productID;
        url=url+"&sid="+Math.random(); //prevent display cached contents

        xmlHttp.onreadystatechange = function() {stateChanged(xmlHttp, "ADD", productID);}; 
        xmlHttp.open("POST", url, true);
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("Content-length", frmData.length);
        xmlHttp.setRequestHeader("Connection", "close");
        xmlHttp.send(frmData);
        
    }
    

    function AJAX_add2Cart(productID)
    {
        document.getElementById('smallCartLink').style.visibility = 'hidden';
        
        loaded = false;

        displayStatusMessage("ADD");
        var xmlHttp=GetXmlHttpObject();
        if (xmlHttp==null)
        {
            alert ("Browser does not support HTTP Request");
            return
        }
        
        var url = "";
        url="http://www.ipmart.com/main/add_to_cart.php";
        url=url+"?prod="+productID;
        url=url+"&sid="+Math.random(); //prevent display cached contents

        xmlHttp.onreadystatechange = function() {stateChanged(xmlHttp, "ADD", productID);}; 
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);

    }
    
    
    function AJAX_add2CartOption(productID, option)
    {
        document.getElementById('smallCartLink').style.visibility = 'hidden';
        
        loaded = false;
        
        displayStatusMessage("ADD");
        var xmlHttp=GetXmlHttpObject();
        if (xmlHttp==null)
        {
            alert ("Browser does not support HTTP Request");
            return
        }
        
        var url = "";
        url="http://www.ipmart.com/main/add_to_cart.php";
        url=url+"?prod="+productID;
        url=url+"&option="+option;
        url=url+"&sid="+Math.random(); //prevent display cached contents

        xmlHttp.onreadystatechange = function() {stateChanged(xmlHttp, "ADD", "");}; 
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);

    }
    

    function AJAX_add2CartOption2(productID, option, option2)
    {
        document.getElementById('smallCartLink').style.visibility = 'hidden';
        
        loaded = false;
        
        displayStatusMessage("ADD");
        var xmlHttp=GetXmlHttpObject();
        if (xmlHttp==null)
        {
            alert ("Browser does not support HTTP Request");
            return
        }
        
        var url = "";
        url="http://www.ipmart.com/main/add_to_cart.php";
        url=url+"?prod="+productID;
        url=url+"&option="+option;
        url=url+"&option2="+option2;
        url=url+"&sid="+Math.random(); //prevent display cached contents

        xmlHttp.onreadystatechange = function() {stateChanged(xmlHttp, "ADD", "");}; 
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
    }

    function AJAX_add2CartOption3(productID, option, option2, option3)
    {
        document.getElementById('smallCartLink').style.visibility = 'hidden';
        
        loaded = false;
        
        displayStatusMessage("ADD");
        var xmlHttp=GetXmlHttpObject();
        if (xmlHttp==null)
        {
            alert ("Browser does not support HTTP Request");
            return
        }
        
        var url = "";
        url="http://www.ipmart.com/main/add_to_cart.php";
        url=url+"?prod="+productID;
        url=url+"&option="+option;
        url=url+"&option2="+option2;
        url=url+"&option3="+option3;
        url=url+"&sid="+Math.random(); //prevent display cached contents

        xmlHttp.onreadystatechange = function() {stateChanged(xmlHttp, "ADD", "");}; 
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
    }

    function AJAX_add2CartOption4(productID, option, option2, option3, option4)
    {
        document.getElementById('smallCartLink').style.visibility = 'hidden';
        
        loaded = false;
        
        displayStatusMessage("ADD");
        var xmlHttp=GetXmlHttpObject();
        if (xmlHttp==null)
        {
            alert ("Browser does not support HTTP Request");
            return
        }
        
        var url = "";
        url="http://www.ipmart.com/main/add_to_cart.php";
        url=url+"?prod="+productID;
        url=url+"&option="+option;
        url=url+"&option2="+option2;
        url=url+"&option3="+option3;
        url=url+"&option4="+option4;
        url=url+"&sid="+Math.random(); //prevent display cached contents

        xmlHttp.onreadystatechange = function() {stateChanged(xmlHttp, "ADD", "");}; 
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
    }

    function AJAX_add2CartOption5(productID, option, option2, option3, option4, option5)
    {
        document.getElementById('smallCartLink').style.visibility = 'hidden';
        
        loaded = false;
        
        displayStatusMessage("ADD");
        var xmlHttp=GetXmlHttpObject();
        if (xmlHttp==null)
        {
            alert ("Browser does not support HTTP Request");
            return
        }
        
        var url = "";
        url="http://www.ipmart.com/main/add_to_cart.php";
        url=url+"?prod="+productID;
        url=url+"&option="+option;
        url=url+"&option2="+option2;
        url=url+"&option3="+option3;
        url=url+"&option4="+option4;
        url=url+"&option5="+option5;
        url=url+"&sid="+Math.random(); //prevent display cached contents

        xmlHttp.onreadystatechange = function() {stateChanged(xmlHttp, "ADD", "");}; 
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
    }


    function AJAX_add2CartComponent(productID, frm)
    {
        document.getElementById('smallCartLink').style.visibility = 'hidden';
        
        var frmData = getFormValues(frm);

//alert(frmData);
        loaded = false;

        displayStatusMessage("ADD");
        var xmlHttp=GetXmlHttpObject();
        if (xmlHttp==null)
        {
            alert ("Browser does not support HTTP Request");
            return
        }
        
        var url = "";
        url="http://www.ipmart.com/main/add_to_cart.php";
        url=url+"?prod="+productID;

        xmlHttp.onreadystatechange = function() {stateChanged(xmlHttp, "ADD", "");}; 
        xmlHttp.open("POST",url,true);
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("Content-length", frmData.length);
        xmlHttp.setRequestHeader("Connection", "close");
        xmlHttp.send(frmData);
    }

    
    function AJAX_listCart(action)
    {
        document.getElementById('smallCartLink').style.visibility = 'hidden';
        
        var xmlHttp=GetXmlHttpObject();
        if (xmlHttp==null)
        {
            alert ("Browser does not support HTTP Request");
            return
        }
        
        var url = "";
        url="http://www.ipmart.com/main/cart_display_ajax.php";
        url=url+"?action="+action;
        url=url+"&curr="+1;
        url=url+"&sid="+Math.random(); //prevent display cached contents
        
        try
        {
            document.getElementById("smallCartLink").title = "Loading Cart, please wait...";
        }
        catch (e) {}
        
        xmlHttp.onreadystatechange = function() {stateChanged(xmlHttp, "LIST", "");}; 
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);

    }
    
    function AJAX_deleteCartItem(cartItemID)
    {
        loaded = false;

        displayStatusMessage("DELETE");
        var xmlHttp=GetXmlHttpObject();
        if (xmlHttp==null)
        {
            alert ("Browser does not support HTTP Request");
            return
        }
        
        var url = "";
        url="http://www.ipmart.com/main/remove_cart_item.php";
        url=url+"?cart_item="+cartItemID
        url=url+"&sid="+Math.random(); //prevent display cached contents

        xmlHttp.onreadystatechange = function() {stateChanged(xmlHttp, "DELETE", "");}; 
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
    }
    
    function AJAX_getProductPreview(productID)
    {
        loaded = false;

        var xmlHttp=GetXmlHttpObject();
        if (xmlHttp==null)
        {
            alert ("Browser does not support HTTP Request");
            return
        }
        
        var url = "";
        url="http://www.ipmart.com/main/product_preview_ajax.php";
        url=url+"?prod="+productID
        url=url+"&curr="+1;
        url=url+"&sid="+Math.random(); //prevent display cached contents

        xmlHttp.onreadystatechange = function() {stateChanged(xmlHttp, "PREVIEW", productID);};
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
    }

    function AJAX_listMessage(action)
    {
        document.getElementById('smallMessageLink').style.visibility = 'hidden';
        
        var xmlHttp=GetXmlHttpObject();
        if (xmlHttp==null)
        {
            alert ("Browser does not support HTTP Request");
            return
        }
        
        var url = "";
        url="http://www.ipmart.com/main/message_display_ajax.php";
        url=url+"?action="+action;
        url=url+"&sid="+Math.random(); //prevent display cached contents
        
        try
        {
            document.getElementById("smallMessageLink").title = "Loading Message, please wait...";
        }
        catch (e) {}
        
        xmlHttp.onreadystatechange = function() {stateChanged(xmlHttp, "MESSAGE", "");};
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);

    }

    function AJAX_calculateShippingWeight()
    {
        loaded = false;

        var xmlHttp=GetXmlHttpObject();
        if (xmlHttp==null)
        {
            alert ("Browser does not support HTTP Request");
            return
        }
        
        var url = "";
        url="http://www.ipmart.com/main/calculate_shipping_weight_ajax.php";
        url=url+"?curr="+1;
        url=url+"&sid="+Math.random(); //prevent display cached contents

        xmlHttp.onreadystatechange = function() {stateChanged(xmlHttp, "WEIGHT", "");};
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
    }

    // AJAX Post Feedback
    function AJAX_postFeedback(frm)
    {
        var frmData = getFormValues(frm);

//        loaded = false;

        var xmlHttp=GetXmlHttpObject();
        if (xmlHttp==null)
        {
            alert ("Browser does not support HTTP Request");
            return
        }
        
        var url = "";
        url="http://www.ipmart.com/main/message_display_ajax.php";

        xmlHttp.onreadystatechange = function() {stateChanged(xmlHttp, "MESSAGE", "");}; 
        xmlHttp.open("POST",url,true);
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("Content-length", frmData.length);
        xmlHttp.setRequestHeader("Connection", "close");
        xmlHttp.send(frmData);
    }
    
    
    //calculate shipping cost 7/14/2008
    function AJAX_calculateShippingCost(id, country, curr, courier)
    {
        loaded = false;

        document.getElementById("shippingCostTextContainer").innerHTML = "<span style='font:10px arial'>calculating...</span>";
        document.getElementById("shippingDayTextContainer").innerHTML = "<span style='font:10px arial'>please wait</span>";
        
        var countryValue = escape(country.options[country.selectedIndex].value);
        var currValue = escape(curr.options[curr.selectedIndex].value);
        var courierValue = escape(courier.options[courier.selectedIndex].value);

        var xmlHttp=GetXmlHttpObject();
        if (xmlHttp==null)
        {
            alert ("Browser does not support HTTP Request");
            return
        }
        
        var url = "";
        url="http://www.ipmart.com/main/calculate_shipping_cost_ajax.php";
        url=url+"?curr="+currValue;
        url=url+"&id="+id;
        url=url+"&cboCountry="+countryValue;
        url=url+"&cboCourier="+courierValue;
        url=url+"&sid="+Math.random(); //prevent display cached contents

        xmlHttp.onreadystatechange = function() {stateChanged(xmlHttp, "SHIPPING", "");};
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
    }
    //end shipping cost

    //calculate shipping cost 7/14/2008
    function AJAX_calculateCartShippingCost(country, curr, courier)
    {
        loaded = true;

        try
        {
            document.getElementById("shippingCostTextContainerc").innerHTML = "<span style='font:10px arial'>calculating...</span>";
            document.getElementById("shippingDayTextContainerc").innerHTML = "<span style='font:10px arial'>please wait</span>";
        } catch (e) { return; }
        
        var countryValue = escape(country.options[country.selectedIndex].value);
        var currValue = escape(curr.options[curr.selectedIndex].value);
        var courierValue = escape(courier.options[courier.selectedIndex].value);

        var xmlHttp=GetXmlHttpObject();
        if (xmlHttp==null)
        {
            alert ("Browser does not support HTTP Request");
            return
        }
        
        var url = "";
        url="http://www.ipmart.com/main/calculate_shipping_cost_ajax.php";
        url=url+"?curr="+currValue;
        url=url+"&cboCountry="+countryValue;
        url=url+"&cboCourier="+courierValue;
        url=url+"&action=cart";
        url=url+"&sid="+Math.random(); //prevent display cached contents

        xmlHttp.onreadystatechange = function() {stateChanged(xmlHttp, "CARTSHIPPING", "");};
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
    }
    //end shipping cost

    function stateChanged(xmlHttp, action, option)
    {
        try
        {
            var responseText = xmlHttp.responseText;
        } 
            catch (e)
        {
            var responseText = "";
        }
        
        if (counterState == true && (action == "ADD" || action == "DELETE")) //set counter state to do timeout
        {
            omg = setTimeout(function(){urlMethodPost(xmlHttp, action, option)}, 15000)
            counterState = false;
        }

        if (xmlHttp.readyState==1)
        {
            try
            {
                domReplaceNodeText("updateStatus_progress","Connecting to server...");
                domReplaceNodeText("addStatus_progress","Connecting to server...");
            }
            catch (e) {}
        }
        else if (xmlHttp.readyState==2)
        {
            try
            {
                domReplaceNodeText("updateStatus_progress","Connected to server");
                domReplaceNodeText("addStatus_progress","Connected to server");
            }
            catch (e) {}
        }
        else if (xmlHttp.readyState==3)
        {
            try
            {
                domReplaceNodeText("updateStatus_progress","Processing...");
                domReplaceNodeText("addStatus_progress","Processing...");
            }
            catch (e) {}
        }
        else if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
        {
            try
            {
                clearTimeout(omg);
                counterState = true;
            }
            catch (e) {}
            
            try
            {
                if (xmlHttp.status == 0)
                {
                    //window.alert("There was a problem with the request, please try again (Code: " + xmlHttp.status + ")");
                    loaded = true;
                }
                else if (xmlHttp.status == 504)
                {
                    //window.alert("There was a problem with the request, please try again (Code: " + xmlHttp.status + ")");
                    urlMethodPost(responseText, action, option);
                    loaded = true;
                }
                else if (xmlHttp.status == 200)
                {
                    if (action == "UPDATE")
                    {
                        temp=xmlHttp.responseText;
                        splitString = temp.split("||");    
                        txtItemTotalPrice.value=splitString[0];
                        try
                        {
                            domReplaceNodeText("smallCartTotalAmount", splitString[1]);
//                            domReplaceNodeText("smallCartTotalQty", splitString[2]);
                            domReplaceNodeText("cartTotalAmount", splitString[1]);
//                            domReplaceNodeText("cartTotalQty", splitString[2]);
                        }
                        catch (e) {}

                        loaded = true;

                                            }
                    if (action == "LIST")
                    {
                        try
                        {
                            domReplaceNodeText("updateStatus_progress","Completed...");
                            domReplaceNodeText("addStatus_progress","Completed...");
                        }
                        catch (e) {}
        
                        if (lastAction == "ADD")
                        {
                            showToolTip("cartMessage", "fixedDIV");
                            lastAction = "";
                        }
                        
                        try
                        {
                            domClearNode("smallCart");
                        } catch (e) {}
                        
                        try
                        {
                            document.getElementById("floatingCartDIV").innerHTML = xmlHttp.responseText;
                            document.getElementById("smallCartLink").title = "Display Cart";
                        }
                        catch (e) {}
                        
                        loaded = true;
                        
                        document.getElementById('smallCartLink').style.visibility = 'visible';

                        AJAX_calculateCartShippingCost(document.frmCountryCart.cboCountry, document.frmCountryCart.curr, document.frmCountryCart.cboCourier);

                    }
                    if (action == "ADD" || action == "DELETE")
                    {
                        if (action == "ADD")
                            lastAction = action;
                            
//                        window.alert(xmlHttp.responseText);
                        urlMethodPost(responseText, action, option);
        
                        AJAX_listCart("LIST");
                    }
                    if (action == "PREVIEW")
                    {
                        try
                        {
                            document.getElementById("previewContent").innerHTML = xmlHttp.responseText;
                            productPreviewCache["product_"+option] = xmlHttp.responseText;
                        }
                        catch (e) {}
                        
        //                loaded = true;
                    }
                    if (action == "WEIGHT")
                    {
                        AJAX_listCart("LIST");
                        try
                        {
                            document.getElementById("shippingWeightContainer").innerHTML = xmlHttp.responseText;
                        }
                        catch (e) {}
                    }
                    if (action == "MESSAGE")
                    {
                        try
                        {
                            document.getElementById("floatingMessageDIV").innerHTML = xmlHttp.responseText;
                            document.getElementById("smallMessageLink").title = "Display Message";
                                                        document.getElementById('smallMessageLink').style.visibility = 'visible';
                        }
                        catch (e) {}

                        try
                        {
                            document.frmMessagesNotLogin.txtCallerUrl.value = window.location;
                        }
                        catch (e) {}

                    }
                    if (action == "SHIPPING" || action == "CARTSHIPPING")
                    {
                        try
                        {
                            var temp = xmlHttp.responseText;
                            var splitString = temp.split("###");
                            
                            if(action == "SHIPPING")
                                var tempCourier = document.forms["frmCountry"].elements["cboCourier"];
                            else if(action == "CARTSHIPPING")
                                var tempCourier = document.forms["frmCountryCart"].elements["cboCourier"];
                            
                            var tempCourierLength = tempCourier.options.length;
                            for (var c=0; c<tempCourierLength; c++)
                            {
                                tempCourier.remove(tempCourier.options[0]);
                            }                                

                            var courierText = splitString[2];
                            var courierSplitText = courierText.split("#*#");
                            
                            for (var z=0; z<courierSplitText.length; z++)
                            {
                                var optionSplit = courierSplitText[z].split("#");
                                var cOption = document.createElement("option");
                                cOption.text=optionSplit[1];
                                cOption.value=optionSplit[0];
                                if(optionSplit[2]=="true")
                                    cOption.selected=true;
                                else
                                    cOption.selected=false;
                                tempCourier.options.add(cOption);
                            }
                            
                            if(action == "SHIPPING")
                            {
                                if(splitString[3]=="t")
                                    document.getElementById("whatUSPSTag").innerHTML = "<a href=\"javascript:win=open('http://www.ipmart.com/main/usps_notes.php?weight=', '', 'width=540,height=400,location=no,toolbar=no,status=no,resizable=no,scrollbars=yes'); win.focus();\" style=\"font:10px arial;\">What is USPS?</a>";
                                else
                                    document.getElementById("whatUSPSTag").innerHTML = "";

                                document.getElementById("shippingCostTextContainer").innerHTML = splitString[0];
                                document.getElementById("shippingDayTextContainer").innerHTML = splitString[1];
                            }
                            else if(action == "CARTSHIPPING")
                            {
                                if(splitString[3]=="t")
                                    document.getElementById("whatUSPSTagc").innerHTML = "<a href=\"javascript:win=open('http://www.ipmart.com/main/usps_notes.php?weight=', '', 'width=540,height=400,location=no,toolbar=no,status=no,resizable=no,scrollbars=yes'); win.focus();\" style=\"font:10px arial;\">What is USPS?</a>";
                                else
                                    document.getElementById("whatUSPSTagc").innerHTML = "";

                                document.getElementById("shippingCostTextContainerc").innerHTML = splitString[0];
                                document.getElementById("shippingDayTextContainerc").innerHTML = splitString[1];
                            }
                            
                        }
                        catch (e) {}
                    }
                }
                else
                {
                    //window.alert("There was a problem with the request, please try again (Code: " + xmlHttp.status + ")");
                    if (action == "ADD" || action == "DELETE")
                        window.alert("There was a problem with the request, please try again (Code: " + xmlHttp.status + ")");
                    else if (action == "LIST")
                        document.getElementById("smallCartLink").title = "There was a problem with the request, please try to refresh the page";
                    else if (action == "MESSAGE")
                        document.getElementById("smallMessageLink").title = "There was a problem with the request, please try to refresh the page";
                    else if (action == "PREVIEW")
                        document.getElementById("previewContent").innerHTML = "There was a problem with the request, please try again";
                    loaded = true;
                }
            } 
            catch (e)
            {
                //window.alert("There was a problem with the request, please try again");
                loaded = true;
                urlMethodPost(responseText, action, option);
            }
        }
        else
        {
            //window.alert("There was a problem with the request, please try again");
            loaded = true;
            urlMethodPost(responseText, action, option);
        }
        
    }


    function GetXmlHttpObject()
    {
        var xmlHttp=null;
        try
        {
            // Firefox, Opera 8.0+, Safari
            xmlHttp=new XMLHttpRequest();
        }
        catch (e)
        {
            //Internet Explorer
            try
            {
                xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (e)
            {
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
        }
        return xmlHttp;
    }
    
    function displayStatusMessage(action)
    {
        if (action == "ADD")
        {
            elementID = "addStatus";
        }
        if (action == "UPDATE" || action == "DELETE")
        {
            elementID = "updateStatus"
        }
        
        document.getElementById(elementID).style.display = "block";

    	if (window.innerHeight)
    	{
            var yScrollPos = window.pageYOffset;
            var screenWidth = window.innerWidth;
    	}
    	else if (document.documentElement && document.documentElement.scrollTop)
    	{
    		var yScrollPos = document.documentElement.scrollTop;
            var screenWidth = document.documentElement.clientWidth;
    	}
    	else if (document.body)
    	{
            var yScrollPos = document.body.scrollTop;
            var screenWidth = document.body.clientWidth;
    	}
        
    	if (yScrollPos < theTop)
            yScrollPos = theTop;
    	else
            yScrollPos += 200;
            
    	if (yScrollPos == old)
    	{
    		document.getElementById(elementID).style.top = yScrollPos;
    	}
    	old = yScrollPos;

        var objWidth = getElementWidth(elementID);
        var objHeight = getElementHeight(elementID);

        document.getElementById(elementID).style.left = (screenWidth-objWidth) / 2;
        document.getElementById(elementID).style.visibility = "visible";
        
        temp = setTimeout('displayStatusMessage()',50);
        if (loaded)
        {
            clearTimeout(temp);
            document.getElementById(elementID).style.visibility = "hidden";
            document.getElementById(elementID).style.display = "none";
        }
        
    }

    function showTermCondition(caller, id)
    {
        try 
        {
            var callerTop = getObjectTop(caller);
            var callerLeft = getObjectLeft(caller);
            var callerWidth = getElementWidth(caller);
            var cartWidth = getElementWidth(id);
            var callerHeight = getElementHeight(caller);
    
            if (ie)
            {
                document.getElementById(id).style.left = callerLeft-(cartWidth-320);
            }
            else
            {
                document.getElementById(id).style.left = callerLeft-(cartWidth-320);
            }        
            document.getElementById(id).style.top = callerTop + callerHeight;
    
            document.getElementById(id).style.visibility = "visible";    
        }
        catch (e) {}
    } 
    

    function showPluginsPreview(caller, id)
    {
        try
        {
            var callerTop = getObjectTop(caller);
            var callerLeft = getObjectLeft(caller);
            var callerWidth = getElementWidth(caller);
            var cartWidth = getElementWidth(id);
            var callerHeight = getElementHeight(caller);
    
            if (ie)
            {
                document.getElementById(id).style.left = callerLeft-(cartWidth-363);
            }
            else
            {
                document.getElementById(id).style.left = callerLeft-(cartWidth-263);
            }        
            document.getElementById(id).style.top = callerTop + callerHeight;
    
            document.getElementById(id).style.visibility = "visible";    
        }
        catch (e) {}
    } 



    function checkMinimumQty(qty, minQty)
    {
        if(qty >= minQty)
        {
            return true
        }
        else
        {
            return false
        }
    }
    
    function checkMinimumQtyForBrowse(qtyField, minQty, auto)
    {
        var qty = qtyField.value;
        
        if(qty>0)
        {
            if(qty >= minQty)
            {
                return true;
            }
            else
            {
                window.alert('Minimum qty for this product is '+minQty);
                
                if(auto)
                {
                    qtyField.value = minQty;
                    setTimeout(function(){qtyField.focus()}, 1);
                }
            }
        }
        else
        {
            return true;
        }
        
    }
    
    function domReplaceNodeText(idNode, rText)
    {
        var elem = document.getElementById(idNode);
        var x = elem.firstChild;
        var y = document.createTextNode(rText);
        
        elem.removeChild(x);
        elem.appendChild(y);
    }
    
    function domClearNode(idNode)
    {
        var elem = document.getElementById(idNode);
        elem.parentNode.removeChild(elem);
    }

    function checkOrderNoReq(strCbo)
    {
        var temp = (strCbo.options[strCbo.options.selectedIndex].text);
        if (temp.indexOf("need order number") != -1)
        {
            if(ie)
            {
                try 
                {
                    document.getElementById("orderNoWrapper").style.display = "block";
                }
                catch (e) {}
                try 
                {
                    document.getElementById("orderNoWrapperF").style.display = "block";
                }
                catch (e) {}
            }
            else
            {
                try
                {
                    document.getElementById("orderNoWrapper").style.display = "table-row";
                }
                catch (e) {}
                try
                {
                    document.getElementById("orderNoWrapperF").style.display = "table-row";
                }
                catch (e) {}
            }
        }
        else
        {
            try
            {
                document.getElementById("orderNoWrapper").style.display = "none";
            }
            catch (e) {}
            try
            {
                document.getElementById("orderNoWrapperF").style.display = "none";
            }
            catch (e) {}
        }
    }


    function urlMethodPost(responseText, action, option)
    {
        if (action == "ADD")
        {
            if (responseText == "")
            {
                var state = window.confirm("Connection to server has failed\n\rPlease click OK to reconnect");
                if (state)
                {
                    location.href = "http://www.ipmart.com/main/add_to_cart.php?prod=" + option ;                    
                }
            }
        }
        else if (action == "DELETE")
        {
            if (responseText == "")
            {
                var state = window.confirm("Connection to server has failed\n\rPlease click OK to reconnect");
                if (state)
                {
                    location.href = "http://www.ipmart.com/main/remove_cart_item.php?prod=" + option ;                    
                }
            }
        }
        else if (action == "SHIPPING")
        {
            if (responseText == "")
            {
                alert("Connection to server has failed\n\rPlease try again");
            }
        }
        else
        {
            //do nothing
        }
        counterState = true;
    }

    var lastHoverBar = '';
    var lastShownPopup = '';

    function isMouseLeaveOrEnter(e, handler)
    {
        if (e.type != 'mouseout' && e.type != 'mouseover') 
            return false; 
        var reltg = e.relatedTarget ? e.relatedTarget : e.type == 'mouseout' ? e.toElement : e.fromElement; 
        while (reltg && reltg != handler) 
            reltg = reltg.parentNode; 
        return (reltg != handler); 
    }
        
    
    function hideH2PopUp(caller, id)
    {
        try
        {
            if (id != "")
            {
                document.getElementById(id).style.visibility = "hidden";
            }
                
            document.getElementById(caller).style.color = document.getElementById(caller).oldColor;
            document.getElementById(caller).style.backgroundColor = document.getElementById(caller).oldBgColor;
            document.getElementById(caller).hilite = false;
        }
        catch (e) {}
    }


    function setBar(bar, pop)
    {
        try
        {
            if (lastHoverBar == '' && lastShownPopup == '')
            {
                lastHoverBar = bar;
                lastShownPopup = pop
            }
            else if (lastHoverBar == bar  && lastShownPopup == pop)
            {
                //do nothing
            }
            else
            {
                hideH2PopUp(lastHoverBar, lastShownPopup)
            }
    
            lastHoverBar = bar;
            lastShownPopup = pop
        }
        catch (e) {}
    }

    function barIn()
    {
        clearTimeout(menuOn);
    }
    
    function barOut()
    {
        menuOn = setTimeout("hideH2PopUp(lastHoverBar, lastShownPopup)",100);
    }
