jQuery.noConflict();

var toggleHighlight = function(set)
{
    set.mouseover(function(event)
    {
       jQuery(this).addClass('highlight');
    }).mouseout(function(event)
    {
       jQuery(this).removeClass('highlight');
    });
};

jQuery(function()
{
    jQuery('#basket :submit, #submenus :submit').remove();
    
    var products = jQuery('#submenus .product');
    products.append('<td valign="bottom" align="center" class="line_bottom" width="40"><div class="add_men_price"><a href="?cmd=addProduct" title="add to basket" class="btnSmall add">Add</a></div></td>');
    jQuery('.quant', products).val('1');
    toggleHighlight(products);
    toggleHighlight(jQuery('#deals .deal'));
    
});

var isEmpty = function()
{
    var empty = jQuery('#empty');
    jQuery('[name=theDeals] tr, #basketProducts tr').size() ? empty.hide() : empty.show();
}

var total;
var setTotal = function(value)
{
    total = total ? total : jQuery('#total');
    total.html('Total: $ ' + value);
    
    jQuery('#checkOutErrors').empty();
}

var loader;
var getLoader = function()
{
    if (!loader)
    {
        loader = jQuery('<img border="0" src="/img/loadMedium.gif" title="please wait" class="loader" />');
    }
    
    return loader;
};

var smallLoader;
var getSmallLoader = function()
{
    if (!smallLoader)
    {
        smallLoader = jQuery('<img border="0" src="/img/loadSmall.gif" title="please wait" class="loader" style="display: none; padding-left: 5px;"/>');
    }
    
    return smallLoader;
};

var scrollToBasket = function()
{
    jQuery('#tabBasket').click();
    jQuery.scrollTo('#menuTabs', 500, {easing: 'easeOutExpo'});
};

// AJAX delete product from myBasket
var prodDelete = function()
{
    var reg = /\?cmd=delBasket&pNum=([0-9]+)$/;
    
    jQuery('#basket .product').each(function()
    {
        var product = jQuery(this);
        toggleHighlight(product);
    
	    jQuery('.delete', product).click(function(event)
	    {
	        jQuery(this).html(getLoader());
	        var pId = reg.exec('' + jQuery(this).attr('href'));	        var dbpId = jQuery(this)[0].name.substring(5);	        var allThisProd = jQuery('[name=pDbId'+dbpId+']', '#basket .product');	        
	        if(allThisProd.length == 1){	        			        	        	var prod = jQuery('#p'+dbpId);	        	var qty = jQuery('.quant', prod);	        	qty.css('border-color', '#CCCCCC');	        }	        	        var curTotal = parseFloat(jQuery('#totalProdPrice')[0].value);            var prodPrice = parseFloat(jQuery('.price', product)[0].innerHTML.substring(2));            var newTotal = curTotal - prodPrice;            jQuery('#totalProdPrice')[0].value = newTotal;                   	
	        if (pId)
	        {
	            jQuery.getJSON('/Menu', {cmd:'delBasket', ajax:1, pNum:pId[1]}, function(data)
	            {
	                jQuery('#' + product.attr('id')).remove();
	                jQuery('#total').html('Total: $ ' + data.total);
	                isEmpty();
jQuery('#totalProdPrice').change(); 
	            });
	        }
	        
	        return false;
	    });
	});
};

jQuery(prodDelete);

// AJAX change myBaskets product size/substitute
var prodUpdate = function()
{
    jQuery('#basketProducts .product').each(function()
    {
        var prod = jQuery(this);
        
        jQuery('select', prod).change(function(event)
        {        	var oldPrice = parseFloat(jQuery('.price', prod)[0].innerHTML.substring(2));
            var price = jQuery('.price', prod).html(getLoader());            
        
            jQuery.getJSON('/Menu/?cmd=updateBasket&ajax=1', jQuery(':input', prod).serializeArray(), function(data)
            {
                price.html('$ ' + data.price);                                var curTotal = parseFloat(jQuery('#totalProdPrice')[0].value);                var prodPrice = parseFloat(data.price);                                if(oldPrice != prodPrice){	                curTotal -= oldPrice;	                var newTotal = curTotal + prodPrice;	                	                jQuery('#totalProdPrice')[0].value = newTotal;	                jQuery('#totalProdPrice').change();	            }
                jQuery('#total').html('Total: $ ' + data.total);
            });
        });
    });
};

jQuery(prodUpdate);

/* AJAX add product to myBasket*/
var prodAdd = function()
{
    jQuery('#submenus .product').each(function()
    {
        var prod = jQuery(this);
    
	    jQuery('.add', prod).click(function(event)
	    {
	        var qty = jQuery('.quant', prod);
	        
	        if (qty.val() < 1) 
	        {
	            return false;
	        }
	        
	        var query = 'cmd=addProducts&ajax=1';
	        var btnAdd = jQuery(this).removeClass('btnSmall').html(getLoader());
	        
	        jQuery('#basketProducts').load('/Menu/?cmd=addProducts&ajax=1 tr', jQuery(':input', prod).serializeArray(), function(body)
	        {
	            setTotal(jQuery('#newTotal').remove().text());
                	            
	            prodDelete();
	            prodUpdate();
	            btnAdd.addClass('btnSmall').html('Add');
                qty.addClass('ordered');
                qty.val(1);
	            isEmpty();
	            
	            scrollToBasket();
	        });
	        
	        return false;
	    });
    });
}

// AJAX delete deal from myBasket
var dealDelete = function()
{
    var reg = /\?cmd=delBasket&dNum=([0-9]+)$/;
    
    jQuery('[name=theDeals] .deal').each(function()
    {
        var deal = jQuery(this);
        toggleHighlight(jQuery('tr', deal));
        
        jQuery('.delete', deal).click(function(event)
	    {
	        var dId = reg.exec('' + jQuery(this).attr('href'));
	        
	        if (dId)
	        {
	            jQuery(this).removeClass('btnMedium').html(getLoader());
	            
	            jQuery.getJSON('/Menu', {cmd:'delBasket', ajax:1, dNum:dId[1]}, function(data)
	            {
	                jQuery('#' + deal.attr('id')).remove().size();
	                setTotal(data.total);
	                isEmpty();
                        /*apply for deal
                        jQuery('#totalProdPrice').change();*/
	            });
	        }else{
                    jQuery('#freeBasketDeals').load('/Menu/?cmd=freeDealProcess&deleteFirstDiscount=1' , function(body)
			    {
                                setTotal(jQuery('#newTotal').remove().text());
                                setFirstTime(jQuery('#newFirstTime').remove().text());

			        dealDelete();

			        dealUpdate();

			        md.menu.replaceSlots();
			        md.checkEmptySlots();

			        isEmpty();
                            });
                }
	        
	        return false;
	    });
    });
};

jQuery(dealDelete);

// AJAX change myBaskets deal slots size/substitute
var dealUpdate = function()
{
    jQuery('[name=theDeals] .deal').each(function()
    {
        var deal = jQuery(this);
        var loader = jQuery('.loader', deal);
        
        jQuery(':input', deal).change(function(event)
        {
        	var loader = getSmallLoader().show();
        	jQuery('.basketDealName', deal).append(loader);
        
            jQuery.getJSON('/Menu/?cmd=updateBasket&ajax=1', jQuery(':input', deal).serializeArray(), function(data)
            {
            	loader.remove();
            });
        });
    });
};

jQuery(dealUpdate);

// AJAX add deal to myBasket
var dealAdd = function()
{
    var deals = jQuery('#deals .deal');
    var reg = /\?cmd=addDealProcess&dId=([0-9]+)$/;
    
    jQuery('.add', deals).click(function(event)
    {
        var idDeal = reg.exec(jQuery(this).attr('href'));
        
        if (idDeal)
        {
            var btnAdd = jQuery(this).removeClass('btnMedium').html(getLoader());
	        
	        jQuery('#basketDeals').load(btnAdd.attr('href') + '&ajax=1 .deal', function(body)
	        {
	            setTotal(jQuery('#newTotal').remove().text());
	            
	            dealDelete();
	            dealUpdate();
	            md.menu.replaceSlots();
	            btnAdd.html('Order').addClass('btnMedium');
	            isEmpty();
	            /*apply for deal
                    jQuery('#totalProdPrice').change();*/
	            scrollToBasket();
	        });
        }
        
        return false;
    });
}




// checkOut
var checkOut = function()
{
    jQuery('#checkOut').bind('click', function(event)
    {
	    var checkOut = jQuery(this).html('Please wait...');
	      
	    jQuery.getJSON('/Menu/?cmd=checkOut&ajax=1', function(data)
	    {
	        if (data && (data != 1) && data.errors.length)
	        {
	            var errors = '';
	              
	            for (var i = 0; i < data.errors.length; i++)
	            {	            	if(data.errors[i] == 'You have to select suburb and delivery type'){	            		md.popup.current = jQuery('#checkOut');	            		hs.htmlExpand(jQuery('#checkOut')[0], {contentId: 'msgExternal', dimmingOpacity: 0.75});	            	}else{
	            		errors += '<div class="error">' + data.errors[i] + '</div>';	            	}
	            }
	               
	            jQuery('#checkOutErrors').html(errors);
	            jQuery('#stepOrder').html('<div class="steps_text">ORDER</div><img src="/img/layout/order_down.jpg" alt="myDelivery Order" width="140" height="65" border="0" />');
	            checkOut.html('Check Out &gt;&gt;');
	            
	            jQuery('#tabBasket').click();
	        }
	        else
	        {
                location.href = '/Order/?cmd=order';
                /**
                if(data == 1) {
                    location.href = '/Order/?cmd=order';
                }
                else {
                    fastRegistration();
                }
                */

	        }
	    });
        
        return false;
    });
}

var md = md ? md : {};

md.popup = {};

md.popup.isClosed = false;

md.popup.isExternal = false;

md.popup.isSelected = false;

md.popup.invoker = null;

md.popup.current = null;

md.popup.closeMsgClosed = function(domElement)
{
	if (md.popup.isExternal)    {        jQuery('#checkOut').bind('click', function(event)        {            return hs.htmlExpand(this, {contentId: 'msgExternal', dimmingOpacity: 0.75});        });    }        return hs.close(domElement);
}

md.popup.noMsgClosed = function(domElement)
{    	return md.popup.closeMsgClosed(domElement);
}

md.popup.yesMsgClosed = function(domElement)
{	jQuery('#closed').remove();    
	md.popup.set.unbind('click');
    
    if (md.popup.isExternal)
    {
        hs.htmlExpand(domElement, {contentId: 'msgExternal', dimmingOpacity: 0.75});
        md.popup.invoker = domElement;
        
        setTimeout('hs.close(md.popup.invoker)', 250);
        
        return false;
    }
    else
    {
        initAddButtons("");
        dealAdd();
        checkOut();
    
        hs.close(domElement);
        
        md.popup.current.click();
        
        return false;
    }
}

md.popup.closeMsgExternal = function(domElement)
{	jQuery('#errorSubId').html('');	jQuery('form', jQuery('#external').remove());
    md.popup.set.unbind('click');
    dealAdd();
    initAddButtons("");
    
    if (md.popup.isSelected)
    {
        checkOut();
    }
    else
    {
        jQuery('#checkOut').bind('click', function(event)
        {
            return hs.htmlExpand(this, {contentId: 'msgExternal', dimmingOpacity: 0.75});
        });
    }
    
    hs.close(domElement);
    
    if (md.popup.current.attr('id') != 'checkOut')
    {
        md.popup.current.click();
    }
    
    return false;
}

md.popup.submitMsgExternal = function(domElement)
{
    var current = jQuery(domElement).parent().parent();
        if(jQuery('#idType').val() == '2' || jQuery('#idType').val() == '4' || jQuery('#idSub').val() != '-1'){    	jQuery('#errorSubId').html('');
	    jQuery.getJSON('/Menu/?cmd=choseSuburb&ajax=1', jQuery(':input', current).serializeArray(), function(data)	
	    {	
	    	jQuery(this).val('...');	
	    		
	        if (data.selected)	
	        {	
	        	md.popup.isSelected = true;	
	            	
	            jQuery('#userSuburb').html(' | ' + data.suburb);	
	            jQuery('#stepSelect').html('<div class="steps_text">SEARCH</div><a href="/Select"><img src="/img/layout/select_up.jpg" alt="myDelivery Select" width="140" height="65" border="0" /></a>');	
	            jQuery('#deliveryFee').html('Delivery Fee: ' + (data.fee > 0 ? ('$ ' + data.fee) : 'Free'));	
	            jQuery('#deliveryTime').html('<div class="supplier_text"><span class="supplier_text_BOLD">Delivery Time / Fee</span><br /><div>' + data.time + ' mins / ' + (data.fee > 0 ? ('$ ' + data.fee) : 'Free') + '</div></div>');	
	            setTotal(data.total);	
	            	
	            jQuery('a', current.parent().parent().parent().parent().parent().parent().parent()).click();	
	            //current.replaceWith('<div style="font-weight: bold; text-align: center">Type of service and delivery suburb<br />succesfully selected.</div>');	
	        }	
	        else	
	        {	
	            jQuery(this).val('Go');	
	        }	
	    });    }else{    	jQuery('#errorSubId').html('Please select your suburb');    }
    
    return false;
}

// popups
jQuery(function()
{
    var closedSet = jQuery('#closed');
    var externalSet = jQuery('form', jQuery('#external').remove());
    md.popup.set = jQuery('#checkOut, .product .add, .deal .add');
    md.popup.isClosed = closedSet.size() > 0;
    md.popup.isExternal = externalSet.size() > 0;
    
    jQuery(':submit', externalSet).replaceWith('<input type="button" class="btnSmall" onclick="return md.popup.submitMsgExternal(this)" value="Go" />');
    
    jQuery('html').append('<div class="highslide-html-content" id="msgExternal" style="width: 400px;height: 100px; display: none; background-color: #fff"><div class="highslide-header"><ul style="list-style: none; padding: 0; margin: 0; text-align: right"><li class="highslide-close"><a title="close" href="" onclick="return md.popup.closeMsgExternal(this)" id="closeMsgExternal"><img src="/img/layout/button_x.jpg" border="0" /></a></li></ul></div><div class="highslide-body" style="background-color: fff; margin: 0 20px 10px 20px"><div id="contentExternal"></div></div></div>');
    jQuery('#contentExternal').append(externalSet.attr('onsubmit', 'return md.popup.submitMsgExternal(this)'));
    jQuery('html').append('<div class="highslide-html-content" id="msgClosed" style="width: 240px; display: none; background-color: #fff"><div class="highslide-header"><ul style="list-style: none; padding: 0; margin: 0; text-align: right"><li class="highslide-close"><a title="close" href="" onclick="return md.popup.closeMsgClosed(this)" id="closeMsgClosed"><img src="/img/layout/button_x.jpg" border="0" /></a></li></ul></div><div class="highslide-body" style="background-color: fff; margin: 0 20px 0 20px; padding-bottom: 20px"><div>The restaurant is closed now,<br />would you like to order for later?</div><ul style="margin: auto; padding: 5px 0; width: 90px; list-style: none;"><li style="float: left; margin: 1px;"><a id="yesMsgClosed" class="btnSmall" title="Yes" href="" onclick="return md.popup.yesMsgClosed(this)">Yes</a></li><li style="float: left; margin: 1px;"><a id="noMsgClosed" class="btnSmall" title="No" href="" onclick="return md.popup.noMsgClosed(this)">No</a></li></ul></div></div>');
    
    if (md.popup.isClosed)
    {
        md.popup.set.bind('click', function(event)
        {
        	md.popup.current = jQuery(this);
        	
           return hs.htmlExpand(this, {contentId: 'msgClosed', dimmingOpacity: 0.75});           
        });
    }
    else if (md.popup.isExternal)
    {
        md.popup.set.bind('click', function(event)
        {
        	md.popup.current = jQuery(this);
        	
        	return hs.htmlExpand(this, {contentId: 'msgExternal', dimmingOpacity: 0.75});
        });
    }
    else
    {
        initAddButtons("");
        dealAdd();
        checkOut();
    }
});

jQuery(function()
{
    jQuery('#loader').remove();
	jQuery('#menu').attr('style', '');
	jQuery('.menu').show();
});