﻿window.setTimeout("switchCSS()", 1000);

function switchCSS()
{
    if (navigator.appName.substr(0, 9) == "Microsoft")
    {
        // this means we need to display IE mode
        document.getElementById('css1').href = 'ie_formaggioCSS.css';
    }
    
    var oElements = getElementsByStyleClass("checkbox");
    oElements.concat(getElementsByStyleClass("checkbox-selected"));
    
    for (i in oElements)
    {
        oElements[i].innerHTML += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
        oElements[i].style.fontSize = "4pt";
    }
    
};

function checkLogin()
{
    var login = getCookie("login");
    var location = getCookie("location");
    if (login == "")
    {
        document.location = "login.htm";
    }
    else if (location == "")
    {
        document.location = "location.htm";
    }
    else
    {
        var element = document.getElementById("username");
        if (element) element.innerHTML = myUser.first;

        var orderId = getCookie("order_id");
        if (orderId == "")
        {
            var oDate = new Date();
            var rand = Math.floor(Math.random() * 10);
            orderId = oDate.getTime().toString() + rand.toString(); // comes to 14 chars;
            setCookie("order_id", orderId);
        }
    }
};

function getElementsByStyleClass (className) 
{
    var all = document.all ? document.all :  document.getElementsByTagName('*');
    var elements = new Array();
    for (var e = 0; e < all.length; e++)
    {
        if (all[e].className == className)
        {
            elements[elements.length] = all[e];
        }
    }
    return elements;
};

function orderPHPfunction(func, values, method)
{
    if (window.XMLHttpRequest)
    {   // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    }
    else
    {   // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    
    switch (method)
    {
        case "post":
            xmlhttp.open("POST", "http://formaggiopizza.com/test2/scripts/orderfunctions.php?fn="+func, false);
            xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            xmlhttp.send(values);
            break;
        case "get":
            xmlhttp.open("GET", "http://formaggiopizza.com/test2/scripts/orderfunctions.php?fn="+func+"&"+values, false);
            xmlhttp.send();
            break;
    }
    
    var response = xmlhttp.responseText;
    return response.replace(/^\s*|\s*$/g, '');
};

function roundDecimal(number, places)
{
    var divisor = Math.pow(10, places);
    var x = (number) * divisor;
    x = Math.round(x);
    x = x / divisor;
    return x;
};

function formatPrice(p)
{
    var price = parseFloat(p);
    if (isNaN(price)) return "0.00";
    var iStr = "";
    var fStr = "";
    
    var iPart = Math.floor(price);
    var fPart = price - iPart;
    
    fPart = roundDecimal(fPart, 2);

    iStr = iPart.toString();
    fStr = fPart.toString();
    if (fPart != 0)
    {
        fStr = fStr.substr(2);
    }
    while (fStr.length < 2)
    {
        fStr += "0";
    }
    if (fStr.length > 2)
    {
        fStr = fStr.substr(0, 2);
    }

    return iStr + "." + fStr;
};

function getCookie(name)
{
    var sCookie = document.cookie;
    var aCookies = sCookie.split(';');
    for (var j = 0; j < aCookies.length; j++)
    {
        var cookie = aCookies[j].split('=');
        var sNewCookie = cookie[0].split(' ').join('');
        if (sNewCookie == name)
        {
            var cookievalue = cookie[1];
            return cookievalue;
        }
    }
    return "";
};

function setCookie(name, value)
{
    var cookiestring = name + "=" + value;
    document.cookie = cookiestring;
};

function deleteCookie(name)
{
    if (getCookie(name) != "")
        document.cookie = name + "=;expires=Thu, 01-Jan-1970 00:00:01 GMT";
};

function logOut()
{
    deleteCookie("login");
    deleteCookie("location");
    deleteCookie("order_id");
    document.location = "order.htm";
};

function checkout()
{
    if (myOrder.items.length == 0)
    {
        alert("Your cart is empty. Add some items before checking out!");
        return;
    }
    
    document.location = "checkout.htm";
};

function getGroupValue(groupname)
{
    var group = document.getElementById(groupname);
    var name = group.getAttribute("group");
    var limit = group.getAttribute("limit");
    if (!limit) limit = 0;
    var value = "";
    if (group != "null")
    {
        var children = group.childNodes;
        for (var i = 0; i < children.length; i++)
        {
            if (children[i].className == "checkbox-selected")
            {
                if (value != "")
                    value += "|";
                else
                    value += name + "=";
                     
                value += children[i].getAttribute("value");
                if (limit == 0) return value;
            }
        }
    }
    return value;
};

function setGroupValue(groupname, values)
{
    var group = document.getElementById(groupname);
    var name = group.getAttribute("group");
    if (group != "null")
    {
        var children = group.childNodes;
        if (isNaN(parseInt(values)))
        {
        }
        for (var k=0; k < values.length; k++)
        {
            var match = values[k].replace(/^\s*|\s*$/g, '');
            for (var i = 0; i < children.length; i++)
            {
                var child = children[i];
                var value = "";
                if (child.className == "checkbox")
                {
                    value = child.getAttribute("value");
                }
                if (match == value)
                {
                    child.setAttribute("selected", "1");
                    child.className = "checkbox-selected";
                }
            }
        }
    }
};
		    
function toggleselect(element)
{
    var parent = element.parentNode;
    var group = parent.getAttribute("group");
    var limit = parent.getAttribute("limit");
    if (!limit) limit = 0;
    var on = 0;
    if (group != "null")
    {        
        var children = parent.childNodes;
        for (var i = 0; i < children.length; i++)
        {
            if (children[i].className == "checkbox-selected")
            {
                if (limit == 0)
                {
                    children[i].setAttribute("selected", "0");
                    children[i].className = "checkbox";
                }
                else
                {
                    if (children[i].getAttribute("selected") == "1") on++;
                }
            }
        }
    }
    var sel = element.getAttribute("selected");
    if (sel == "1")
    {
        element.setAttribute("selected", "0");
        element.className = "checkbox";
    }
    else
    {
        if (on >= limit && limit != 0)
        {
            alert("No more than " + limit + " items can be selected from this group");
            return;
        }
        element.setAttribute("selected", "1");
        element.className = "checkbox-selected";
        
        var eventHandler = element.getAttribute("whenselected");
        if (eventHandler != "")
        {
            window.eval(eventHandler);
        }
    }
};

function mouseover_button(element)
{
	element.className += " buttonhover";
	var current = document.getElementById("currentpage");
	if (current && element != current) mouseout_button(current);
};

function mouseout_button(element)
{
	element.className = "button";
	var current = document.getElementById("currentpage");
	if (current && element != current) mouseover_button(current);
};

function adjust_box(id, addHeight, minimum) 
{
    var container = document.getElementById(id);
    var newHeight = container.offsetHeight + addHeight;
    if (minimum)
    {
        if (newHeight < minimum)
        {
            newHeight = minimum;
        }
    }
    var height = (newHeight) + "px";

    var elem = document.getElementById("box");
    elem.style.height = height;
}; 

function getArgFromURL(arg)
{
    var url = document.location.toString();
    var list = url.split("?")[1];
    if (!list)
    {
        return null;
    }
    var args = list.split("&");

    for (var i = 0; i < args.length; i++)
    {
        var pair = args[i].split("=");
        if (pair[0] == arg)
        {
            return pair[1];
        }
    }
};

function loadMyOrder(hOrder, hSubtotal)
{
    var sOrder = "";
    var sQty = "";
    for (var i = 0; i < myOrder.items.length; i++)
    {
        var item = myOrder.items[i];
        var price = formatPrice(item.price);
        
        var editButton = "<a href=\"itemdetails.htm?id=" + item.item_id + "&edit=" + item.id + "\">[edit]</a>";
        var removeButton = "<a href=\"javascript:removeItem(" + item.id + ")\">[remove]</a>";
        var name = item.name;
        if (item.coupon_id != "0")
        {
            name += " (#" + item.coupon_id + ")";
            if (item.id != "null")
            {
                price = "";
                removeButton = "";
            }
            else
            {
                editButton="";
                removeButton = "<a href=\"javascript:removeCouponItem(" + item.coupon_id + ")\">[remove]</a>";
            }
        }
        
        if (parseInt(item.quantity) > 1)
        {
            sQty = " [qty:" + item.quantity + "]";
        }
        sOrder += "<div class=\"order-item\">"
                + "<div class=\"order-item-line\">"
                + "<div class=\"order-item-name\">" + name + sQty + "</div>"
                + "<div class=\"order-item-price\">" + price + "</div>"
                + "</div>"
                + editButton
                + removeButton
                + "</div>";
    }

    if (sOrder == "")
    {
        sOrder += "<div class=\"order-item\">"
                + "<div class=\"order-item-line\">"
                + "<div class=\"order-item-name\" style=\"font-style:italic;\">Your cart is empty</div>"
                + "</div></div>";
    }

    hOrder.innerHTML = sOrder;
    hSubtotal.innerHTML = myOrder.subtotal;
};

function removeItem(id)
{
    var values = "item=" + id;
    var removeItemResult = orderPHPfunction("removeItem", values, "post");
    if (removeItemResult != "")
        alert(removeItemResult);
    else
        document.location = "order.htm";
};

function removeCouponItem(coupon_id)
{
    var values = "coupon_id=" + coupon_id;
    var removeItemResult = orderPHPfunction("removeCouponItem", values, "post");
    if (removeItemResult != "")
        alert(removeItemResult);
    else
        document.location = "order.htm";
};
		    
function getDBObject(oArray, id)
{
    for (var i = 0; i < oArray.length; i++)
    {
        if (oArray[i].id == id)
        {
            return oArray[i];
        }
    }

    return null;
};

function getMenuItemsByCategory(category)
{
    var oItems = new Array();

    for (var i = 0; i < oMenu.length; i++)
    {
        if (oMenu[i].category == category)
        {
            oItems.push(oMenu[i]);
        }
    }

    return oItems;
};
