$(document).ready(function(){

	$("input.softbutton").mouseover(function() {
		$(this).animate({backgroundColor: "#e84cd7"}, {queue:false, duration:600 });
	});

	$("input.softbutton").mouseout( function() {
		$(this).animate({backgroundColor: "#c918b6"}, {queue:false, duration:650});
	});

	$("#addtocart").click(function() {
		$.jGrowl("Добавляю в корзину...",{ life: 5000 });
		$.get($(this).attr("href"),{"a":1},function(answer) {
            if (isValidJSON(answer)) {
                var answer = eval('('+answer+')');
    			$.jGrowl("Товар добавлен в корзину!",{ life: 5000 });
    			baskref(answer[0],answer[1]);
            } else {
                jAlert("Сервер вернул ответ в неизвестном формате. Попробуйте повторить операцию позднее.","Внутренняя ошибка сервера");
            }
		});
		return false;
	});

	$("input[name='send']").click(function() {
       	// Вешаем нотис
		$.jGrowl("Отправляю информацию...",{ life: 5000 });
		// Определяем тип DOM обхода
		var data = getRequestBody($(this).parents("form"));
        var _central = this;
       	// Блокируем форму
       	$(_central).parents("form").find("input,textarea,select").attr("disabled",true);

		$.post(makeAjaxUrl($(_central).parents("form").attr("action")),data,function(answer) {
			if (isValidJSON(answer)) {
			    var answer = eval('('+answer+')');
                if (answer['type'] == 0) {
    				if (answer['value'][0]) {
    					$.jGrowl(answer['value'][0],{ life: 15000 });
    				} else {
    					$.jGrowl("Неизвестная ошибка. Повторите попытку чуть позже.",{ life: 15000 });
    				}
    
    				// Обновляем каптчу
    				if (answer['session_name'] && answer['session_id'] && answer['session_key']) {
    	    	       	$("#captcha-image").attr("src",_captcha_path+'?'+answer['session_name']+'='+answer['session_id']+'&r='+answer['session_key']);
    				}
    				// Возвращаем форму
    		       	$(_central).parents("form").find("input,textarea,select").attr("disabled",false);
    
    			} else {
    				$.jGrowl(answer['value'],{ life: 15000 });
    			}
    	    } else {
                jAlert("Сервер вернул ответ в неизвестном формате. Попробуйте повторить операцию позднее.","Внутренняя ошибка сервера");
            }
		});

        return false;
	});

	$(".delete-position").click(function() {
		// Сворачиваем эту позицию
		$(this).parents("tr").fadeOut("fast",function() {
    	    var table = $(this).parents("table");
			var bgcolor1 = $(this).attr("bgcolor");
            $(this).parents("tr").remove();

			if ($(table).find("tr[bgcolor!='"+bgcolor1+"']").length > 0) {
                // Перестраиваем цвета
				var bgcolor2 = $(table).find("tr[bgcolor!='"+bgcolor1+"']:last").attr("bgcolor");
				var _cur = 1;

				$.each($(table).find("tr"), function(n, row) {
					if (n > 1) {
                		if (_cur == 1) {
                			$(row).attr("bgcolor",bgcolor2);
                			_cur = 2;
                		} else {
                			$(row).attr("bgcolor",bgcolor1);
                			_cur = 1;
                		}
                	}
				});
			}


		});


		$.get($(this).attr("href"),{"a":1},function(answer) {
	        if (isValidJSON(answer)) {
	            var answer = eval('('+answer+')');
        	    baskref(answer[0],answer[1]);
        	} else {
                jAlert("Сервер вернул ответ в неизвестном формате. Попробуйте повторить операцию позднее.","Внутренняя ошибка сервера");
            }
		});
		return false;
	});

	$("a.addtocart-list").click(function() {
		$.jGrowl("Добавляю в корзину...",{ life: 5000 });
		$.get($(this).attr("href"),{"a":1},function(answer) {
            if (isValidJSON(answer)) {
			    $.jGrowl("Товар добавлен в корзину!",{ life: 5000 });
			    baskref(answer[0],answer[1]);
            } else {
                jAlert("Сервер вернул ответ в неизвестном формате. Попробуйте повторить операцию позднее.","Внутренняя ошибка сервера");
            }
		});
		return false;
	});

	$("input[name^='amount']").keyup(function() {
		var value = parseInt($(this).attr("value"));
        if (value != NaN && value > 0 && value < 101) {
			$(this).css({"background-color":"transparent"});
			$(this).attr("title","");

			$.get("/basket/index.html?upd=" + $(this).attr("id") + "&count=" + $(this).attr("value"),{"a" : 1},function (answer) {
			    if (isValidJSON(answer)) {
			        var answer = eval('('+answer+')');
            	    baskref(answer[0],answer[1]);
            	} else {
                    jAlert("Сервер вернул ответ в неизвестном формате. Попробуйте повторить операцию позднее.","Внутренняя ошибка сервера");
                }
			});
		} else {
			$(this).css({"background-color":"#fdd7bf"});
			$(this).attr("title","Введено неверное значение!");
		}
	});

    $("#user_city_id option").live('click',function() {
		$("#user_city_name").val($(this).attr('title'));
		$("#clear_city").remove();
		$(this).closest("select").slideUp('fast');
	});

	$("#user_city_name").live('keyup',function() {
		var search = $(this).val().toLowerCase();

        var path = $(this).parents("form").attr("action").split("/");
        path[path.length-1] = 'query.html';
        path = makeAjaxUrl(path.join('/')+"?q="+search);
        
		$.ajax({
			url: path,
			dataType : "json",
			type : "GET",
			timeout : 3500,
			success: function (answer) {
                
		   		if (answer['type'] == 0) {
		    		// Ничего не найдено, выделяем название города красным цветом
					$("#user_city_name").css("color","red");
					$("#user_city_name").css("font-weight","bold");
					$("#user_city_name").attr("title","Такой город не обнаружен в нашей базе данных");
					$("#clear_city").remove();
					$("#user_city_id").slideUp('fast');
				} else {
					$("#user_city_name").css("color","black");
					$("#user_city_name").css("font-weight","normal");
					$("#user_city_name").attr("title","Продолжайте ввод города или щелкните на предложенный из списка вариант");

					if (answer['list']) {
	   					var innerContent = "";
						// Выводим список городов, найденных системой
						for(country in answer['list']) {
							innerContent += "<optgroup label='"+country+"' style='background-color:#dcdcdc;'>";
							for(region in answer['list'][country]) {

								innerContent += "<optgroup label='&nbsp;&nbsp;&nbsp;"+region+"' style='background-color:#e4e4e4;'>";
								for(var i = 0; i < answer['list'][country][region].length; i++) {
									innerContent += "<option title='"+answer['list'][country][region][i]["name"]+"' value='"+answer['list'][country][region][i]["id"]+"' style='background-color:#eeeeee;'>&nbsp;&nbsp;&nbsp;&nbsp;&rsaquo;&nbsp;"+answer['list'][country][region][i]["name"]+"</option>";
								}
								innerContent += "</optgroup>";
							}
							innerContent += "</optgroup>";
						}
						// Если select'а нет, то создаем его
						if ($("#user_city_id").length == 0) {
							$("#user_city_name").after("<select name='user_city_id' size='13' id='user_city_id' style='display:none;'>"+innerContent+"</select>");
						} else {
							// Если уже имеется select, разворачиваем его, если он свернут
	                   		$("#user_city_id").html(innerContent);
						}

						if ($("#user_city_id").css("display") != "block") {
							$("#user_city_id").slideDown("fast");
						}

					} else {
						$("#user_city_id").slideUp('fast');
						$("#clear_city").remove();
					}
				}
			}
		});
	});

	$("#clear_city").click(function() {
		$("#user_city_name").val("");
		$("#user_city_id").slideUp('fast',function() {
			$(this).remove();
		});
		$(this).remove();
		return false;
	});
});

function baskref(amount,total) {
   	if (!amount || !total) return false;

   	if (parseInt(amount) > 0) {
		$("#basket-info-message").css("display","block");
   		$("#basket-info-message").find("p strong").eq(0).text(amount);
   		$("#basket-info-message").find("p strong").eq(1).text(total);
   		$("#basket-empty-message").css("display","none");
   	} else {
   		$("#basket-empty-message").css("display","block");
   		$("#basket-info-message").css("display","none");
   	}
}
