YAHOO.namespace("WS");

function toggleCartItem(page, ID, myDiv){
	start = new Date();
	time = start.getTime();
	YAHOO.WS.cartItemID = ID;
	YAHOO.WS.updateDiv = myDiv;
	YAHOO.util.Dom.get(myDiv).innerHTML = '<img src="/img/ajax-loader.gif" alt="Please Wait" title="Please Wait" />';
	var sUrl = '/cart_items/ajax_toggle/'+page+'/'+ID+'/'+time;
	var transaction = YAHOO.util.Connect.asyncRequest('GET', sUrl, toggleCartItemCallback);
}

var toggleCartItemCallback = {
	success: function(response) {
		YAHOO.util.Dom.get(YAHOO.WS.updateDiv).innerHTML = response.responseText;
	}, 
	failure: function(response) {
		alert('Request failed');	
	}
}

function removeCartItem(ID, myDiv){
	YAHOO.WS.removeDiv = myDiv;
	start = new Date();
	time = start.getTime();
	var sUrl = '/cart_items/ajax_remove/'+ID+'/'+time;
	var transaction = YAHOO.util.Connect.asyncRequest('GET', sUrl, removeCartItemCallback);
}

var removeCartItemCallback = {
	success: function(response) {
		if(response.responseText == 'empty'){
			window.location.href = '/reservations/create';
		}
		if(response.responseText == 'error'){
			alert('Request failed');
		}
		else{
			YAHOO.util.Dom.setStyle(YAHOO.WS.removeDiv, 'display', 'none');
		}
	}, 
	failure: function(response) {
		alert('Request failed');	
	}
}

function increaseCartQty(myInput, maxCount){
	field = YAHOO.util.Dom.get(myInput);
	cur = parseInt(field.value);
	if(cur < maxCount){
		field.value = cur + 1;
	}
}

function decreaseCartQty(myInput, minCount){
	field = YAHOO.util.Dom.get(myInput);
	cur = parseInt(field.value);
	if(cur > minCount){
		field.value = cur - 1;
	}
}

YAHOO.WS.processReservationRequest = function(){
	YAHOO.WS.showLoader();
	var formObject = YAHOO.util.Dom.get('termsForm'); 
	YAHOO.util.Connect.setForm(formObject); 
	var sUrl = '/reservations/ajax_do_reservation/';
	var transaction = YAHOO.util.Connect.asyncRequest('POST', sUrl, processReservationRequestCallback);
}

var processReservationRequestCallback = {
	success: function(response) {
		if(response.responseText == 'success'){
			window.location.href = '/reservations/confirm';
		}
		else if(response.responseText == 'login'){
			window.location.href = '/account/create';
		}
		else if(response.responseText == 'validation_errors'){
			window.location.href = '/reservations/complete';
		}
		else if(response.responseText == 'error'){
			YAHOO.WS.hideLoader();
			alert('Request failed. Please try again.');
		}
		else{
			YAHOO.WS.hideLoader();
			alert('Request failed. Please try again.');
		}
	}, 
	failure: function(response) {
		YAHOO.WS.hideLoader();
		alert('Request failed. Please try again.');
	}
}

YAHOO.WS.processOrderItems = function(resID){
	YAHOO.WS.resID = resID;
	YAHOO.WS.showLoader();
	var formObject = YAHOO.util.Dom.get('orderItemsForm'); 
	YAHOO.util.Connect.setForm(formObject); 
	var sUrl = '/orders/ajax_set_order_items/';
	var transaction = YAHOO.util.Connect.asyncRequest('POST', sUrl, processOrderItemsCallback);
	
}

var processOrderItemsCallback = {
	success: function(response) {
		if(response.responseText == 'success'){
			window.location.href = '/orders/complete';
		}
		else if(response.responseText == 'login'){
			window.location.href = '/account/create';
		}
		else if(response.responseText == 'validation_errors'){
			window.location.href = '/orders/create/'+YAHOO.WS.resID;
		}
		else if(response.responseText == 'error'){
			YAHOO.WS.hideLoader();
			alert('Request failed. Please try again.');
		}
		else{
			YAHOO.WS.hideLoader();
			alert('Request failed. Please try again.');
		}
	}, 
	failure: function(response) {
		YAHOO.WS.hideLoader();
		alert('Request failed. Please try again.');
	}
}

YAHOO.WS.processOrderRequest = function(){
	YAHOO.WS.showLoader();
	var formObject = YAHOO.util.Dom.get('termsForm'); 
	YAHOO.util.Connect.setForm(formObject); 
	var sUrl = '/orders/ajax_do_order/';
	var transaction = YAHOO.util.Connect.asyncRequest('POST', sUrl, processOrderRequestCallback);
	
}

var processOrderRequestCallback = {
	success: function(response) {
		if(response.responseText == 'success'){
			window.location.href = '/orders/confirm';
		}
		else if(response.responseText == 'login'){
			window.location.href = '/not_logged_in';
		}
		else if(response.responseText == 'validation_errors'){
			window.location.href = '/orders/complete/';
		}
		else if(response.responseText == 'error'){
			YAHOO.WS.hideLoader();
			alert('Request failed. Please try again.');
		}
		else{
			YAHOO.WS.hideLoader();
			alert('Request failed. Please try again.');
		}
	}, 
	failure: function(response) {
		YAHOO.WS.hideLoader();
		alert('Request failed. Please try again.');
	}
}
var temp_count = {};
$w = jQuery.noConflict();
$w(function(){
    $w(".list_buttons input[type='checkbox']").change(
        function(){
            var pkg_id = $w(this).attr('id').replace('SoldItem','');
            var count_box_id = '#Quantity'+pkg_id;
            if($w(this).is(':checked')){
                // they want to order it, check for an existing count
                if(temp_count[pkg_id] !== undefined){
                    $w(count_box_id).val(temp_count[pkg_id]); 
                }else{
                    $w(count_box_id).val(1); 
                }
            }else{
                // turning it off. store the existing count and set it to 0
                temp_count[pkg_id] = $w(count_box_id).val();
                $w(count_box_id).val(0);
            }
        }
    );
    //$w(".list_buttons input[type='text']").change(
    $w(".qtyMod").click(
        function(event){
            item_id = $w(this).attr('class').split(' ')[1].replace('qtyMod','');
            ckbx = $w("#SoldItem"+item_id);
            if($w("#Quantity"+item_id).val() != 0){
                $w(ckbx).attr('checked',true);
            }else{
                $w(ckbx).attr('checked',false);
            }
        }
    );
});
