﻿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,
         
        $$('.itemInfo').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('000000', dropFx));
			            calculateTotal();
						addToCartSession();
		            },
		            'over': function() {
			            //dropFx.start('98B5C1');
		            },
		            'leave': function() {
			            //dropFx.start('000000');			        
		            }
	            });
         
	            var drag = clone.makeDraggable({
		            droppables: [drop]
	            }); // this returns the dragged element
         
	            drag.start(e); // start the event manual
            });        
         
        });
        
        // tool tip
        var Tips2 = new Tips($$('.itemInfo'), {
	        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(id) {
    var cart = document.getElementById("cartMain");
    var item = "<div class='itemInfo'>" +
        document.getElementById(id).innerHTML +
        "</div>";
    cart.innerHTML += item;
    calculateTotal();
	addToCartSession();
}

function removeFromCart(obj) {    
    obj.parentNode.parentNode.parentNode.removeChild(obj.parentNode.parentNode);
    calculateTotal();
	var temp = obj.parentNode.parentNode;
	var myBodyElements = temp.getElementsByTagName("label");
	var url = "removeFromCartSession.php";
	for(var i=0; i<myBodyElements.length; i++) {        		        
		if(myBodyElements[i].id.indexOf("cartQty") != -1) {                        
			url += "?id=" + myBodyElements[i].id.replace("cartQty","");
			url += "&qty=" + myBodyElements[i].innerHTML;
        }
    }
	document.getElementById("iframe").src = url;
}

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) {
    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, postfix) {
    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 total = price * quantity;
        total = formatCurrency(total);
        obj.innerHTML = total;
        document.getElementById("cartPrice" + id + postfix).innerHTML = total;
        document.getElementById("cartQty" + id + postfix).innerHTML = quantity;
    }
}

function calculateTotal() {
    var cart = document.getElementById("cartMain");
    var myBodyElements = cart.getElementsByTagName("label");
    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);	
}

function checkout() {
    var cart = document.getElementById("cartMain");
    var myBodyElements = cart.getElementsByTagName("div");
    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("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",""));
			XML.Node("Id", myBodyElements[i].id.substring(0,myBodyElements[i].id.indexOf("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.EndNode();
        }        
    }
    XML.Close();
    
    document.getElementById("ctl00_ContentPlaceHolder1_txtOrder").value = XML.ToString();
    document.getElementById("ctl00_ContentPlaceHolder1_btnCheckOut").click();
}

function addToCartSession() {    
	var url = "";
	var cart = document.getElementById("cartMain");
    var myBodyElements = cart.getElementsByTagName("label");
    for(var i=0; i<myBodyElements.length; i++) {        		        
		if(myBodyElements[i].id.indexOf("cartQty") != -1) {            
            url = "addToCartSession.php";
			//url += "?id=" + myBodyElements[i].id.replace("cartQty","");
			url += "?id=" + myBodyElements[i].id.substring(0,myBodyElements[i].id.indexOf("_")).replace("cartQty","");
			url += "&qty=" + myBodyElements[i].innerHTML;
        }
    }
	document.getElementById("iframe").src = url;
}

function changeShipping(str) {
	var shipping = parseFloat(str.substring(str.indexOf("|")+1,str.length));
	var amount = document.getElementById("amount").innerHTML;
	amount = parseFloat(amount.toString().replace(/\$|\,/g,''));
	document.getElementById("shippingPrice").innerHTML = formatCurrency(shipping);
	var totalPrice = amount + shipping;
	document.getElementById("total").innerHTML = formatCurrency(totalPrice);
	document.getElementById("totalPrice").value = totalPrice;
}