/*-----------------константы------------------*/
var successActions = {add:"Товар добавлен", edit: "Количество изменено", del:"Товар удалён"}
var failActions = {add:"Добавить товар не удалось", edit: "Изменить количество не удалось", del:"Удалить товар не удалось"}
var ADD_ACTION = 'add';
var EDIT_ACTION = 'edit';
var DEL_ACTION = 'del';

var SEND_ORDER_INCOMPLETE = "0";
var SEND_ORDER_SUCCESS = "1";
var SEND_ORDER_FAIL = "2";

var LAST_CATALOG_PAGE = "LAST_CATALOG_PAGE";
var TOTAL_ITEMS_COUNT = "TOTAL_ITEMS_COUNT";
var TOTAL_ITEMS_PRICE = "TOTAL_ITEMS_PRICE";

/*----------------- покупка - удаление - изменение ---------------*/
function addToCart($itemId, $action)
{
	var quantity = parseInt($("#q_" + $itemId).val());
	if (quantity == 0 && $action != DEL_ACTION){
        alert("Не указано количество товара!");
        return;
    }
	$('#' + $action + "_" + $itemId)
		.attr('disabled', 'disabled')
		.attr('src', "images/ProcessImage.gif");
	
	$.ajax({
		cache:false,
		data: {q: quantity, itemId: $itemId, action: $action},
		error: function(XMLHttpRequest, textStatus, errorThrown){
			alert('Произошла ошибка');
		},
		success: function(data, textStatus, XMLHttpRequest){
		    var action = $(data).find("Buy Action").text();
		    var itemId = $(data).find("Buy ItemId").text();
		    var result = $(data).find("Buy Result").text();
		    
		    $('#' + action + "_" + itemId)
		    	.removeAttr('disabled')
		    	.attr('src', "images/"+action+".gif");

		    if(result == 1){
		        if (action == 'add'){
		        	$.prompt(
		        	    successActions[action], 
		        	    { 
		        	    	buttons: { 'Перейти в корзину': true, 'Продолжить выбор': false },
		        	    	callback: function(v,m,f){
		        	    		if (v) {
		        	    			setTimeout(function(){document.location.href = 'm_basket.php';}, 1000);
		        	    		}
		        	    	}
		        	    }
		        	);
//		            if (confirm(successActions[action] + '\r\nПерейти к корзине?')){
//		            	setTimeout(function(){document.location.href = 'm_basket.php';}, 1000);
//		            }
		        } else {
		            alert(successActions[action]);
		        }
		    } else {
		        alert(failActions[action]);
		    }
		    
		    switch (action)
		    {
		        case ADD_ACTION:
		        case EDIT_ACTION:
		            refreshBasketPreview();
		            break;
		        case DEL_ACTION:
		            document.location.reload();
		            break;
		    }
		},
		timeout: 20000,
		url: "a_can.php"
	});
}
/*------------------- отсылка формы заказа -------------------*/
function sendOrder()
{
    //debugger;
    var x = new dojo.io.FormBind(
        {
            url:    "a_order.php",
            mimetype: "text/xml",
            formNode: dojo.byId('sendOrderForm'),
            load:   afterSendOrder,
            //method: "GET",
            error: errorHandler,
            timeoutSeconds:20,
            timeout: onTimeout
        });
}
function disableSendOrder(){
    setTimeout(function(){
    		$('#sendOrderButton').attr('disabled', 'disabled').val('Ждите...');
    }, 300);
}
function afterSendOrder(type, data, evt)
{
	//debugger;
    var result = $(data).find("SendOrder Result").text()
    var comment = $(data).find("SendOrder Comment").text()
    var number = $(data).find("SendOrder Number").text()
	
    switch (result)
    {
        case SEND_ORDER_INCOMPLETE:
            document.location.href = "m_send.php?result=" + SEND_ORDER_INCOMPLETE;
            break;
        case SEND_ORDER_SUCCESS:
            document.location.href = "m_send.php?result=" + SEND_ORDER_SUCCESS + "&num=" + number;
            break;
        case SEND_ORDER_FAIL:
            alert(comment);
            $('#sendOrderButton').removeAttr('disabled').val('Заказать');
            break;
    }
}

function refreshBasketPreview()
{
    $.ajax({
		cache:false,
		error: function(XMLHttpRequest, textStatus, errorThrown){
			//alert('Произошла ошибка');
		},
		success: function(data, textStatus, XMLHttpRequest){
			//debugger;
		    var totalItems = $(data).find("BasketState TotalItems").text()
		    var totalPrice = $(data).find("BasketState TotalPrice").text()

		    $('#TOTAL_ITEMS_COUNT').html(totalItems);
		    $('#TOTAL_ITEMS_PRICE').html(totalPrice);
		    
		    $basketIcon = $("#n-basket-icon");
		    if( !$basketIcon.hasClass("n-full") ) {
		      $basketIcon.addClass("n-full");    
		    }
		    
		    $('.total-item-price').html(totalPrice);
		},
		timeout: 20000,
		url: "a_basketState.php"
	});
}



/*-------------------служебное-------------------*/

function onTimeout(type, data, evt)
{
    alert("Сервер не отвечает");
}

function errorHandler(type, data, evt)
{
    alert("Произошла ошибка - " + data);

    res = "";
    for(i in data)
    {
    	res += i + ": " + data[i] + "\r\n";
    }
    if(res != "")
    {
    	alert(res);
    }
}

function var_dump(obj){
	var res = '';
	switch (typeof(obj))
	{
		case "undefined":
			res += 'undefined';
			break;
		case "object":
			if (obj == null){
				res += 'null';
			} else {
				for (i in obj){
					res += '' + i + ': ' + var_dump(obj[i]); 
				}
			}
			break;
		case "boolean":
			res += obj ? 'true' : 'false';
			break;
		case "number":
			res += ''+obj;
			break;
		case "string":
			res += '"'+obj+'"';
			break;
		case "function":
			res += obj;
	}
	res += '<br />';
	return res;
}
