﻿window.addEvent('domready', function(){
	try {
	    var drop = $('cartMain');
        var dropFx = drop.effect('background-color', {wait: false}); // wait is needed so that to toggle the effect,
         
        $$('.item').each(function(item){
         
            item.addEvent('mousedown', function(e) {
	            e = new Event(e).stop();
         
	            var clone = this.clone()
		            .setStyles(this.getCoordinates()) // this returns an object with left/top/bottom/right, so its perfect
		            .setStyles({'opacity': 0.7, 'position': 'absolute'})
		            .addEvent('emptydrop', function() {
			            this.remove();
			            drop.removeEvents();
		            }).inject(document.body);
         
	            drop.addEvents({
		            'drop': function() {
			            drop.removeEvents();
			            clone.remove();
			            item.clone().inject(drop);
			            //dropFx.start('7389AE').chain(dropFx.start.pass('ffffff', dropFx));
			            calculateTotal();
		            },
		            'over': function() {
			            //dropFx.start('98B5C1');
		            },
		            'leave': function() {
			            //dropFx.start('ffffff');			        
		            }
	            });
         
	            var drag = clone.makeDraggable({
		            droppables: [drop]
	            }); // this returns the dragged element
         
	            drag.start(e); // start the event manual
            });                 
        });
        
        // tool tip
        var Tips2 = new Tips($$('.title'), {
	        initialize:function(){
		        this.fx = new Fx.Style(this.toolTip, 'opacity', {duration: 500, wait: false}).set(0);
	        },
	        onShow: function(toolTip) {
		        this.fx.start(1);
	        },
	        onHide: function(toolTip) {
		        this.fx.start(0);
	        }
        });
    }
    catch(e) {}
});

function addToCart(itemId, id) {
    var cart = document.getElementById("cartMain");
    var item = "<div class='item'>" +
        document.getElementById(itemId).innerHTML +
        "</div>";
    cart.innerHTML += item;
    calculateTotal();
}

function changeOrderNumber(ddl) {
    document.getElementById(ddl.id.replace("ddl","hid")).value = ddl.value;
}

function addToCartMultiple(itemId, hidOrderId) {
    var num = document.getElementById(hidOrderId).value;    
    var cart = document.getElementById("cartMain" + num);
    var item = "<div class='item'>" +
        document.getElementById(itemId).innerHTML +
        "</div>";
    cart.innerHTML += item;
    calculateSubtotal(num);
}

function removeFromCart(obj, id) {        
    obj.parentNode.parentNode.parentNode.removeChild(obj.parentNode.parentNode);    
    var cart = document.getElementById("cartMain").innerHTML;
    if(cart == "multiple") {
        calculateSubtotal(null);    
    }
    else {
        calculateTotal();
    }
}

function formatCurrency(num) {
    num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num)) {
        num = "0";
    }
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;
    num = Math.floor(num/100).toString();
    if(cents<10) {
        cents = "0" + cents;
    }
    for(var i=0; i<Math.floor((num.length-(1+i))/3); i++) {
        num = num.substring(0,num.length-(4*i+3))+','+
        num.substring(num.length-(4*i+3));
    }
    return (((sign)?'':'-') + '$' + num + '.' + cents);
}

function getQuotes(str) {
    var quote = str.split("~");
    str = "";
    for(var i=0; i<quote.length; i++) {
        str += quote[i] + '"';
    }
    if(str != "") {
        str = str.substring(0,str.length-1);
    }
    quote = str.split("|");
    str = "";
    for(var i=0; i<quote.length; i++) {
        str += quote[i] + "'";
    }
    if(str != "") {
        str = str.substring(0,str.length-1);
    }
    return str;
}

function addOption(chk, id, option, price, group) {    
    // if the group is "side" change the options accordingly ($0.00/$1.00)
    if(group == "sides") {
        var elements = chk.parentNode.parentNode.parentNode.parentNode.children;    

        var checked = 0;
        var ones = 0;
        var checkedAndOne = 0;
        var totalChk = 0;
        
        // get total number of checkboxes checked (checked)
        for(var i=0; i<elements.length; i++) {    
            var input = elements[i].getElementsByTagName("input");
            for(var j=0; j<input.length; j++) {
                totalChk++;
                if(input[j].checked) {
                    checked++;
                }            
            }
        }        
        
        // set to $0.00 all the options if no checkboxes are checked
        if(checked == 0) {
            for(var i=0; i<elements.length; i++) {    
                var div = elements[i].getElementsByTagName("div");
                for(var j=0; j<div.length; j++) {
                    if(div[j].className == "price") {
                        div[j].innerHTML = "$0.00";
                    }
                }
            }
        }
        
        if(checked == 1) {
            for(var i=0; i<elements.length; i++) {
                var td = elements[i].getElementsByTagName("td");
                for(var j=0; j<td.length; j++) {
                    var change = true;
                    isChecked = false;
                    var input = td[j].getElementsByTagName("input");
                    for(var k=0; k<input.length; k++) {                        
                        if(input[k].checked) {
                            isChecked = true;
                        }
                    }
                    if(!isChecked) {
                        var div = td[j].getElementsByTagName("div");
                        for(var k=0; k<div.length; k++) {
                            if(div[k].className == "price") {
                                div[k].innerHTML = "$1.00";
                            }
                        }
                    }
                    else {
                        var div = td[j].getElementsByTagName("div");
                        for(var k=0; k<div.length; k++) {
                            if(div[k].className == "price") {
                                div[k].innerHTML = "$0.00";
                            }
                        }
                    }
                }
            }
        }          
        
        // get total number of options with $1.00 (ones)
        for(var i=0; i<elements.length; i++) {    
            var div = elements[i].getElementsByTagName("div");
            for(var j=0; j<div.length; j++) {
                if(div[j].className == "price") {
                    if(div[j].innerHTML == "$1.00") {
                        ones++;
                    }
                }
            }
        }
        
        // get total number of checkboxes checked and that are at $1.00 (checkedAndOne)
        for(var i=0; i<elements.length; i++) {
            var td = elements[i].getElementsByTagName("td");
            for(var j=0; j<td.length; j++) {
                var found = false;
                var input = td[j].getElementsByTagName("input");
                for(var k=0; k<input.length; k++) {
                    if(input[k].checked) {
                        found = true;                        
                    }
                }
                if(found) {
                    var div = td[j].getElementsByTagName("div");
                    for(var k=0; k<div.length; k++) {
                        if(div[k].className == "price") {
                            if(div[k].innerHTML == "$1.00") {
                                checkedAndOne++;
                            }
                        }
                    }
                }            
            }
        }            
        
        // get new pricing
        for(var i=0; i<elements.length; i++) {
            var td = elements[i].getElementsByTagName("td");
            for(var j=0; j<td.length; j++) {
                var found = false;
                var input = td[j].getElementsByTagName("input");
                for(var k=0; k<input.length; k++) {
                    if(input[k].id == chk.id) {
                        found = true;                        
                    }
                }
                if(found) {
                    var div = td[j].getElementsByTagName("div");
                    for(var k=0; k<div.length; k++) {
                        if(div[k].className == "price") {
                            price = div[k].innerHTML.replace(/\$|\,/g,'');
                        }
                    }
                }
            }
        }          
        
        // if all these match then make price to be $1.00 so the total will be fixed
        if(checkedAndOne == ones && ones == checked && checked > 0) {
            price = 1;
        }
        
        // if the same number of cheked checkoxes = the same number of checkboxes with $1.00 
        // make sure 1 of them gets changed to $0.00
        if(checkedAndOne == ones && ones == checked) {
            for(var i=0; i<elements.length; i++) {
                var td = elements[i].getElementsByTagName("td");
                for(var j=0; j<td.length; j++) {
                    var done = false;
                    var found = false;
                    var input = td[j].getElementsByTagName("input");
                    for(var k=0; k<input.length; k++) {
                        if(input[k].checked) {
                            found = true;                        
                        }
                    }
                    if(found) {
                        var div = td[j].getElementsByTagName("div");
                        for(var k=0; k<div.length; k++) {
                            if(div[k].className == "price") {
                                div[k].innerHTML = "$0.00";
                                done = true;
                            }
                        }
                    }
                    if(done) {
                        break;
                    }
                }
            }
        }
    }
    
    var obj = document.getElementById("price" + id);
    var total = obj.innerHTML;    
    var qty = document.getElementById("qty" + id).value;
    qty = parseInt(qty);
    total = parseFloat(total.replace("$",""));    
    var options = document.getElementById("options" + id);
    var optionsText = document.getElementById("optionsText" + id);    
    if(chk.checked) {
        total += parseFloat(price * qty);
        options.value = parseFloat(options.value) + parseFloat(price);
        optionsText.innerHTML += "|" + getQuotes(option) + "|^";
    }
    else {
        total -= parseFloat(price * qty);
        options.value = parseFloat(options.value) - parseFloat(price);        
        optionsText.innerHTML = optionsText.innerHTML.replace("|" + getQuotes(option) + "|","");
    }
    total = formatCurrency(total);
    obj.innerHTML = total;
    document.getElementById("cartPrice" + id).innerHTML = total;    
    
    optionsText.innerHTML = optionsText.innerHTML.replace("^^","^");
}

function changeQty(key, qty) {
    var quantity = parseInt(qty.value);
    if(qty.value == "" || qty.value == 0) {
        quantity = 1;
    }
    if((key > 47 && key < 58) || (key > 95 && key < 106) || key == 8 || key == 46) {
        var id = qty.id.replace("qty","");
        var obj = document.getElementById("price" + id);
        var price = document.getElementById("orgPrice" + id).value;
        price = parseFloat(price);
        var options = document.getElementById("options" + id).value;
        options = parseFloat(options);
        var total = (price + options) * quantity;
        total = formatCurrency(total);
        obj.innerHTML = total;
        document.getElementById("cartPrice" + id).innerHTML = total;
        document.getElementById("cartQty" + id).innerHTML = quantity;
    }
}

function calculateTotal() {
    try {
        var cart = document.getElementById("cartMain");
        var myBodyElements = cart.getElementsByTagName("div");
        var total = 0;
        for(var i=0; i<myBodyElements.length; i++) {        
            if(myBodyElements[i].id.indexOf("cartPrice") != -1) {            
                total += parseFloat(myBodyElements[i].innerHTML.replace("$",""));
            }
        }
        document.getElementById("totalPrice").innerHTML = formatCurrency(total);
    } catch(e) {}
}

function checkout() {
    var cart = document.getElementById("cartMain");
    var myBodyElements = cart.getElementsByTagName("div");
    if(myBodyElements.length == 0) {
       alert("Your order is empty\nPlease make your selection"); 
       return;
    }
    var XML = new XMLWriter();
    XML.BeginNode("Order");
    for(var i=0; i<myBodyElements.length; i++) {        
        if(myBodyElements[i].className == "icon") {
            XML.BeginNode("Item");
            XML.Node("Number", "0");
            XML.Node("Name", "");
            XML.Node("Icon", myBodyElements[i].innerHTML);            
        }
        if(myBodyElements[i].className == "title") {            
            XML.Node("Title", myBodyElements[i].innerHTML);
        }
        if(myBodyElements[i].id.indexOf("description") != -1) {
            XML.Node("Description", myBodyElements[i].innerHTML);            
        }
        if(myBodyElements[i].id.indexOf("cartPrice") != -1) {
            XML.Node("Price", myBodyElements[i].innerHTML.replace("$",""));
            XML.Node("Id", myBodyElements[i].id.replace("cartPrice",""));
        }
        if(myBodyElements[i].id.indexOf("cartQty") != -1) {
            XML.Node("Qty", myBodyElements[i].innerHTML);
        }
        if(myBodyElements[i].id.indexOf("optionsText") != -1) {
            var temp = myBodyElements[i].innerHTML;
            temp = temp.substring(temp,temp.length-1);
            XML.Node("Options", temp);
            XML.Node("Subtotal", "0");
            XML.EndNode();
        }        
    }
    XML.Close();
    
    document.getElementById("ctl00_ContentPlaceHolder1_txtOrder").value = XML.ToString();
    document.getElementById("ctl00_ContentPlaceHolder1_btnCheckOut").click();
}

function checkoutMultiple() {
    var XML = new XMLWriter();
    XML.BeginNode("Order");
    var max = document.getElementById("hidMax").value;
    for(var j=1; j<=max; j++) {
        var isEmpty = true;
        var name = document.getElementById("name" + j).innerHTML;
        var subtotal = document.getElementById("subtotal" + j).innerHTML;
        subtotal = subtotal.replace(/\$|\,/g,'') + "";
        var cart = document.getElementById("cartMain" + j);
        var myBodyElements = cart.getElementsByTagName("div");              
        for(var i=0; i<myBodyElements.length; i++) {        
            if(myBodyElements[i].className == "icon") {
                XML.BeginNode("Item");                
                XML.Node("Number", j + "");
                XML.Node("Name", name);
                XML.Node("Icon", myBodyElements[i].innerHTML);      
                isEmpty = false;      
            }
            if(myBodyElements[i].className == "title") {            
                XML.Node("Title", myBodyElements[i].innerHTML);
            }
            if(myBodyElements[i].id.indexOf("description") != -1) {
                XML.Node("Description", myBodyElements[i].innerHTML);            
            }
            if(myBodyElements[i].id.indexOf("cartPrice") != -1) {
                XML.Node("Price", myBodyElements[i].innerHTML.replace("$",""));
                XML.Node("Id", myBodyElements[i].id.replace("cartPrice",""));
            }
            if(myBodyElements[i].id.indexOf("cartQty") != -1) {
                XML.Node("Qty", myBodyElements[i].innerHTML);
            }
            if(myBodyElements[i].id.indexOf("optionsText") != -1) {
                var temp = myBodyElements[i].innerHTML;
                temp = temp.substring(temp,temp.length-1);
                XML.Node("Options", temp);
                XML.Node("Subtotal", subtotal);
                XML.EndNode();
            }        
        }
        if(isEmpty) {
           alert(capitalizeFirstLetter(name) + "'s order is empty\nPlease make your selection"); 
           return;
        }
    }
    XML.Close();
    
    document.getElementById("ctl00_ContentPlaceHolder1_txtOrder").value = XML.ToString();
    document.getElementById("ctl00_ContentPlaceHolder1_btnCheckOut").click();
}

function refreshMenu() {
    document.getElementById("iframe").src = "Refresh.aspx";    
    setTimeout("refreshMenu()", 60000);
}

// Multiple Cart

function calculateSubtotal(id) {    
    if(id != null) {
        var cart = document.getElementById("cartMain" + id);
        var myBodyElements = cart.getElementsByTagName("div");
        var subtotal = 0;
        for(var i=0; i<myBodyElements.length; i++) {        
            if(myBodyElements[i].id.indexOf("cartPrice") != -1) {            
                subtotal += parseFloat(myBodyElements[i].innerHTML.replace("$",""));
            }
        }
        document.getElementById("subtotal" + id).innerHTML = formatCurrency(subtotal);
    }
    // if id == null loop through all the carts and adjust the subtotal
    else {
        var cart = document.getElementById("cartBg");
        var myBodyElements = cart.getElementsByTagName("div");
        for(var i=0; i<myBodyElements.length; i++) {                    
            if(myBodyElements[i].id.indexOf("cartMain") != -1 && myBodyElements[i].id != "cartMain") {   
                var cartId = myBodyElements[i].id.replace("cartMain","");                
                var div = myBodyElements[i].getElementsByTagName("div");                
                var subtotal = 0;
                for(var j=0; j<div.length; j++) {                            
                    if(div[j].id.indexOf("cartPrice") != -1) {            
                        subtotal += parseFloat(div[j].innerHTML.replace("$",""));
                    }
                }
                document.getElementById("subtotal" + cartId).innerHTML = formatCurrency(subtotal);
            }
        }
    }
            
    var cart = document.getElementById("cartBg");
    var myBodyElements = cart.getElementsByTagName("label");    
    var total = 0;
    for(var i=0; i<myBodyElements.length; i++) {        
        if(myBodyElements[i].id.indexOf("subtotal") != -1) {            
            total += parseFloat(myBodyElements[i].innerHTML.replace("$",""));
        }
    }
    document.getElementById("totalPrice").innerHTML = formatCurrency(total);
}