﻿        // JScript File

        // Standard functions to set, get and delete cookie

        function test1(a)
        {
            if (a == null)
            {
                alert("LOJTEST");
            }
            else
            {
                alert(a);
            }
        }
        
        function validate_number(e)
        {
            // I IE anvendes windows.event, i mozilla anvendes eventparameteren
            // Hvis
            evt = e || window.event;
            src = evt.target || evt.srcElement;
            var keyPressed = evt.which || evt.keyCode;
            if (keyPressed > 47 && keyPressed < 58)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        
        function bestil_disable()
        {
        	var obj = document.getElementById("buttonGenberegn");
            obj.style.display = "inline";
            obj = document.getElementById("buttonBestil");
            obj.style.display = "none";
        }
        
        function bestil_enable()
        {
        	var obj = document.getElementById("buttonGenberegn");
            obj.style.display = "none";
            obj = document.getElementById("buttonBestil");
            obj.style.display = "inline";
        }
        
        function bestil_og_genberegn_disable()
        {
        	var obj = document.getElementById("buttonGenberegn");
            obj.style.display = "none";
            obj = document.getElementById("buttonBestil");
            obj.style.display = "none";
        }
             
        function setCookie(c_name, value, expiredays, path)
        {
            //alert(navigator.cookieEnabled);
            if (navigator.cookieEnabled == false) {
                alert("Du skal have cookies enablet i din browser for at bruge denne funktion!");
                return(false);
            }
            // Ovenstående virker ikke i IE 7, istedet kommer en advarsel i status baren
            
            var exdate=new Date();
            exdate.setDate(exdate.getDate() + expiredays);
            var exdatetxt = exdate.toUTCString();
            var exdatetxt = exdatetxt.replace("UTC","GMT");
            var cookie_content = c_name+ "=" + escape(value) +
				((path) ? "; path=" + path : "") +
                ((expiredays==null) ? "" : "; expires=" + exdatetxt);

            // Ifølge MS: If you use the document.cookie property to retrieve the cookie
            // on the client side, the document.cookie property can retrieve only 4,096 bytes. 
            // This byte total can be one name-value pair of 4 KB, 
            // or it can be up to 20 name-value pairs that have a total size of 4 KB.
            // Ifølge rosettecode: JavaScript encodes strings in UTF-16, which represents each
            // character with one or two 16-bit values. The length property of string objects
            // gives the number of 16-bit values used to encode a string, so the number of bytes
            // can be determined by doubling that number.
//            alert(2*cookie_content.length);
//            alert(cookie_content);
//            var objDiv = document.getElementById("cookieContent");
//            objDiv.innerHTML = cookie_content;

            if (2*cookie_content.length > 4096)
            {
                return(false);
            }
            else
            {
                document.cookie = cookie_content;
                return(true);
            }
        }

        function getCookie(c_name)
        {
            if (document.cookie.length>0)
            {
                var c_start=document.cookie.indexOf(c_name + "=")
                if (c_start != -1)
                { 
                    c_start=c_start + c_name.length+1;
                    var c_end=document.cookie.indexOf(";",c_start);
                    if (c_end == -1) c_end=document.cookie.length;
                    return unescape(document.cookie.substring(c_start,c_end));
                } 
            }
            return "";
        }

        function deleteCookie(c_name, path)
        {
            if (getCookie(c_name) != "") {
                document.cookie = c_name + "=" +
					((path) ? "; path=" + path : "") +
                    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
            }
        }


        // Funtioner til håndtering af varekurven

        var varekurvCookie = "vkcookie"; // konstant
        var varekurvExpireDays = 5;
        var varekurvPath = "/";
        //var varekurvPath = "/Appl/IT+Buy;";

        function varekurv_addItem(itemID, itemName, itemCount, itemPrice, itemDayPrice)
        {
            //alert("varekurv_addItem");
            var oldVarekurvCookieContent = getCookie(varekurvCookie);
            var itemIndex = oldVarekurvCookieContent.indexOf("#ID:" + itemID);
            var newVarekurvCookieContent = "";
            
            if (itemIndex == -1)
            {
                // Item findes ikke i forvejen

                var iCount = parseInt(itemCount);
                if (isNaN(iCount))
                {
                    alert("Antallet '" + itemCount + "' er ikke et tal!");
                    return;
                }
                
                var sPrice = itemPrice.replace(",",".");
                var iPrice = parseFloat(sPrice);
                if (isNaN(iPrice))
                {
                    alert("Prisen '" + itemPrice + "' er ikke et tal!");
                    return;
                }
                
                if (iPrice != iPrice.toFixed(2))
                {
                    alert("Prisen '" + itemPrice + "' er er registreret med mere end to decimaler i varekataloget!");
                    return;
                }
                
                //alert(itemPrice + "#" + iPrice.toFixed(2) + "#" + iPrice.toFixed(2).replace(".",","));
                newVarekurvCookieContent = oldVarekurvCookieContent +
                    "#ID:" + itemID +
                    "#NAVN:" + itemName +
                    "#ANTAL:" + itemCount +
                    "#PRIS:" + iPrice.toFixed(2).replace(".",",") + // Convert to c# format og med 2 decimaler
                    "#DP:" + ((itemDayPrice=="*") ? "*" : "");
            }
            else
            {
                // Item findes allerede
                alert("Varen findes allerede i din indkøbskurv!");
                return;
            }
            
            var result = setCookie(varekurvCookie, newVarekurvCookieContent, varekurvExpireDays, varekurvPath);
            if (result != true)
            {
                alert("Din indkøbskurv er fuld!");
            }
            else
            {
                varekurv_displayItems();
            }
            bestil_enable();
        }


        function varekurv_deleteItem(itemID)
        {
            var oldVarekurvCookieContent = getCookie(varekurvCookie);
            var itemIndex = oldVarekurvCookieContent.indexOf("#ID:" + itemID);
            var newVarekurvCookieContent = "";
            if (itemIndex == -1)
            {
                // Item findes ikke i forvejen
                alert("Varen findes ikke i din indkøbskurv!");
                return;
            }
            else
            {
                // Item findes
                
                var nextItemIndex = oldVarekurvCookieContent.indexOf("#ID:", itemIndex + 4);
                if (nextItemIndex == -1)
                {
                    // ingen næste item
                    newVarekurvCookieContent = oldVarekurvCookieContent.substring(0, itemIndex);
                }
                else
                {
                    // næste item findes
                    newVarekurvCookieContent = oldVarekurvCookieContent.substring(0, itemIndex) + 
                        oldVarekurvCookieContent.substring(nextItemIndex);
                }
            }

            var result = setCookie(varekurvCookie, newVarekurvCookieContent, varekurvExpireDays, varekurvPath);
            if (result != true)
            {
                alert("Din indkøbskurv er fuld!");
            }
            else
            {
                varekurv_displayItems();
            }
       }

        function varekurv_deleteAllItems()
        {
            deleteCookie (varekurvCookie, varekurvPath);
            varekurv_displayItems();
        }

        function varekurv_itemChangeCount(itemID, newItemCount)
        {
            //alert("newItemCount:" + newItemCount);
            var oldVarekurvCookieContent = getCookie(varekurvCookie);
            var itemIndex = oldVarekurvCookieContent.indexOf("#ID:" + itemID);
            
            var newVarekurvCookieContent = "";
            if (itemIndex == -1)
            {
                // Item findes ikke i forvejen
                alert("Fejl: Varen findes ikke!");
                return;
            }
            else
            {
                // Item findes
                var ItemCountIndex = oldVarekurvCookieContent.indexOf("#ANTAL:", itemIndex);
                var ItemPrisIndex = oldVarekurvCookieContent.indexOf("#PRIS:", itemIndex);
                newVarekurvCookieContent = oldVarekurvCookieContent.substring(0, ItemCountIndex) +
                "#ANTAL:" + newItemCount +
                oldVarekurvCookieContent.substring(ItemPrisIndex);
            }
            
            var result = setCookie(varekurvCookie, newVarekurvCookieContent, varekurvExpireDays, varekurvPath);
            if (result != true)
            {
                alert("Din indkøbskurv er fuld!");
            }
            varekurv_displayItems();
        }

        function varekurv_displayItems()
        {
                var varekurvCookieContent = getCookie(varekurvCookie);
                //alert(varekurvCookieContent);
                
        		var obj = document.getElementById("buttonDelete");
                
                var objDiv2 = document.getElementById("cookieContent");
                if (objDiv2 != null)
                {
					objDiv2.innerHTML = varekurvCookieContent;
                }

                var text = "";
                var itemIndex = varekurvCookieContent.indexOf("#ID:");
                if (itemIndex == -1)
                {
                    //Varekurven er tom
                    bestil_og_genberegn_disable();
                    text = "Indkøbskurven er tom!";
					obj.style.display = "none";
                }
                else
                {
                    bestil_enable();
					obj.style.display = "inline";
                    
                    text += "<table cellpadding='0'cellspacing='0' border='0'>";
                    text += "  <thead>";
                    text += "    <tr align='left'>";
                    //text += "      <td class='headerLeft'>Varenummer";
                    //text += "      </td>";
                    text += "      <td class='headerLeft'>Navn";
                    text += "      </td>";
                    text += "      <td class='headerRight'>Antal";
                    text += "      </td>";
                    text += "      <td class='headerRight'>Pris/stk";
                    text += "      </td>";
                    text += "      <td class='headerRight'>Pris ialt";
                    text += "      </td>";
                    text += "      <td>";
                    text += "      </td>";
                    text += "    </tr>";
                    text += "  </thead>"
                    text += "  <tbody>";
                    
                    var iItemsTotal = 0;
                    var sItemsTotal = "";
                    var sDayPrice = "";
                    
                    while (itemIndex != -1)
                    {
                        var itemNRindex = itemIndex;
                        var itemNAVNindex = varekurvCookieContent.indexOf("#NAVN:", itemIndex);
                        var itemANTALindex = varekurvCookieContent.indexOf("#ANTAL:", itemIndex);
                        var itemPRISindex = varekurvCookieContent.indexOf("#PRIS:", itemIndex);
                        var itemDAYPRICEindex = varekurvCookieContent.indexOf("#DP:", itemIndex);
                        var nextItemIndex = varekurvCookieContent.indexOf("#ID:", itemIndex + 2);

                        var itemID = varekurvCookieContent.substring(itemNRindex + 4, itemNAVNindex);
                        var itemName = varekurvCookieContent.substring(itemNAVNindex + 6, itemANTALindex);
                        var itemCount = varekurvCookieContent.substring(itemANTALindex + 7, itemPRISindex);
                        var itemPrice = varekurvCookieContent.substring(itemPRISindex + 6, itemDAYPRICEindex);
                        
                        var itemDayPrice                        
                        if (nextItemIndex == -1)
                        {
                            // Intet næste element
                            itemDayPrice = varekurvCookieContent.substring(itemDAYPRICEindex + 4);
                        }
                        else
                        {
                            itemDayPrice = varekurvCookieContent.substring(itemDAYPRICEindex + 4, nextItemIndex);
                        }
                        
                        if (itemDayPrice == "*")
                        {
							sDayPrice = "*";
                        }
                        
                        // Beregn samlet pris
                        var iCount = parseInt(itemCount);
                        if (isNaN(iCount))
                        {
                            alert("Antal for varenummeret '" + itemID + "' er ikke et tal!");
                        }
                        
                        var iPrice = parseFloat(itemPrice.replace(",","."));
                        if (isNaN(iPrice))
                        {
                            alert("Pris for varenummeret '" + itemID + "' er ikke et tal!");
                        }
                        
                        if (isNaN(iCount) || isNaN(iPrice))
                        {
                            itemTotal = "****"
                            sItemsTotal = itemTotal;
                        }
                        else
                        {
                            var iItemTotal = iCount*iPrice;
                            itemTotal = iItemTotal;
                            iItemsTotal = iItemsTotal + iItemTotal;
                        }

                        text += "    <tr align='left'>";
                        //text += "      <td class='itemLeft'>" + itemID;
                        //text += "      </td class='itemLeft'>";
                        text += "      <td><a href='/Appl/IT+Buy/Varekatalog?ItemId=" + itemID + "'>" + itemName + "<a/>";
                        text += "      </td>";
                        text += "      <td class='itemRight'>";
                        text += "        <input type=\"text\" value=\"" + itemCount + "\" maxlength=\"2\" size=\"2\" onfocus=\"bestil_disable();\" onblur=\"bestil_enable();\" onkeypress=\"var res = validate_number(event); return(res);\" onchange=\"varekurv_itemChangeCount('" + itemID + "', this.value);\" />";
                        //alert("        <input type='text' value='" + itemCount + "' onfocus='bestil_disable();' onblur='bestil_enable();' onkeypress='var res = validate_number(event); return(res);' onchange=""alert('onchange');"" />");
                        text += "      </td>";
                        text += "      <td class='itemRight'>" + iPrice.toFixed(2).replace(".",",") + itemDayPrice;
                        text += "      </td>";
                        text += "      <td class='itemRight'>" + itemTotal.toFixed(2).replace(".",",") + itemDayPrice;
                        text += "      </td>";
                        text += "      <td class='itemRight'><a class=\"Buttonlink\" href=\"javascript:varekurv_deleteItem('" + itemID + "');\" title=\"Slet vare\">Slet vare</a>";
                        text += "      </td>";
                        text += "    </tr>";
 
                        var itemIndex = varekurvCookieContent.indexOf("#ID:", itemIndex + 4);
                    }

                    if (sItemsTotal == "")
                    {
                        sItemsTotal = iItemsTotal.toFixed(2).replace(".",",");
                    }
                    
                    text += "    <tr>";
                    text += "      <td colspan='3' class='headerLeft'>Sum";
                    text += "      </td>";
                    text += "      <td class='itemRight'>" + sItemsTotal;
                    text += "      </td>";
                    text += "      <td>";
                    text += "      </td>";
                    text += "    </tr>";


                    text += "  </tbody>";
                    text += "</table>";
					if (sDayPrice == "*")
					{
                    text += "NB! Enhedspriser markeret med * betyder at prisen kun er vejledende, og den aktuelle dagspris vil gælde.";
					}
                }
	            var objDiv = document.getElementById("varekurv");
	            objDiv.innerHTML = text;
	            //alert(text);
	            return;
        }

