$(function() {
	// ограничение maxlenght для textarea
	$("#remark").maxlength();
	// добавить товар в корзину
	$("#addtocartForm").validate( {
		rules: {
		},
		messages: {
		},
		submitHandler: function(form) {
			$(form).ajaxSubmit({
				target: "#hint_message",
				timeout: 3000,
				success: function(response) {
					var name = form.junction_type.value + '; ' + form.drive_type.value + '; DN: ' + form.kran_dn.value + "; PN: " + form.kran_pn.value + "; " + form.body_material.value + '; ' + form.climatic_implement.value + '; ' + form.workspace.value.replace(';',',') + '; t: ' + form.workspace_temper.value.replace(';',',');
					// id изменяемой/добавляемой записи
					var idx = response;
					// порядковый номер новой строки таблицы
					var nmb = $("tr[id^='cartrow_']").length + 1;
					// кол-во добавляемого товара
					var cnt = intval(form.qty.value);
					if(cnt==0)
							cnt = 1;
					// добавляем к имеющемуся
					if($("#cartrow_" + idx).length) {
						var oldval = intval($("#cartrow_qty_" + idx).html());
						$("#cartrow_qty_" + idx).html(oldval + cnt);
					}
					else { // новый товар
						$("#cartTable > tbody").append("<tr id=\"cartrow_" + idx +"\"><td class=\"prod_border\" style=\"text-align:center;font-weight:bold\" id=\"nmb_" + nmb + "\">" + nmb + "</td><td class=\"prod_border\" id=\"cartrow_name_" + idx +"\">"+name+"</td><td class=\"prod_border\" id=\"cartrow_qty_" + idx +"\" style=\"text-align:center\">" + cnt + "</td><td class=\"prod_border\" style=\"text-align:center\"><a href=\"#addtocartform\" onclick=\"editItem(" + idx +")\"><img src=\"/themes/default/site/images/edit.png\" width=\"24\" height=\"18\" /></a></td><td class=\"prod_border\" style=\"text-align:center\"><a href=\"#carttablecontainer\" onclick=\"deleteItem(" + idx + ")\"><img src=\"/themes/default/site/images/del.png\" width=\"12\" height=\"12\" /></a></td></tr>");
					}
					$("#cart_table_container").show();
					$("#submit_btn").show();
					//$("#remarks").show();
				}
			});
		}
	});

	// проверка перед отправкой формы
	$("#signupForm").validate( {
		rules: {
			fio: {
				required: true,
				minlength: 2,
			},
			email: {
				required: true,
				email: true
			},
			phone: {
				required: true,
				minlength: 7,
			}
		},
		messages: {
			fio: {
				required: "Укажите свое имя.",
				minlength: "Не менее 2 символов.",
			},
			email: {
				required: "Нужно указать email.",
				email: "email введен неверно."
			},
			phone: {
				required: "Нужно указать телефон.",
				minlength: "Не менее 7 знаков.",
			}
		},
		//focusCleanup: true,
		// сабмит формы
		submitHandler: function(form) {
			$("#hint_message").html("<img src=\"/themes/default/site/images/ajax-loader.gif\" /> подождите пожалуйста...");
			$("#hint_container").show();
			//$("#hint_message").css("color","#007e7b");
			$("#zakaz_container").hide();
			$("#zakaz_btn").show();
			location.href="#msg_container";

			//вызов ajaxSubmit плагина jquery.form.js
			$(form).ajaxSubmit({
				target: "#hint_message",
				timeout: 10000
			});
		},
		errorPlacement: function(error, element) {

			//$("#hint_container").show();
			//$("#hint_message").css("color","#f00");
			//$("#hint_message").html("не все необходимые поля заполнены");
			//error.appendTo($("#hint_message"));
			//element.css("background-color","#ffffd5");
			//element.css("border","#f00 solid 2px");

			//error.insertBefore(element);

			var er = element.attr("name");
		      error.appendTo( element.parent().find("label[for='" + er + "']").find("em") );
	}
	});
	$.validator.addMethod("equal", function(value,element,params) {
		return value == params;
	});
});

function floatval (mixed_var) {
    return (parseFloat(mixed_var) || 0);}

function intval (mixed_var, base) {

    var type = typeof( mixed_var );

    if (type === 'boolean') {        return (mixed_var) ? 1 : 0;
    } else if (type === 'string') {
        tmp = parseInt(mixed_var, base || 10);
        return (isNaN(tmp) || !isFinite(tmp)) ? 0 : tmp;
    } else if (type === 'number' && isFinite(mixed_var) ) {        return Math.floor(mixed_var);
    } else {
        return 0;
    }
}

/**
 * удалить элемент из корзины
 */
function deleteItem(idx) {
	$.ajax({
		 type: "POST",
		 dataType: "post",
		 data: "action=delete&id=" + idx,
		 url: "/includes/modules/zakaz/zakaz.ajax.php",
		 timeout: 3000,
		 async: false,
		 success: function(response){
			$("#cartrow_" + idx).remove();
			//обновляем порядковые номера
			$("td[id^='nmb_']").each(function (index,value) {$(this).html(index+1)});


			if(response=='0') {
				$("#cart_table_container").hide();
				$("#submit_btn").hide();
				//$("#remarks").hide();
			}
		}
	});
}

/**
 * редактирование элемента
 * перенос данных в форму и удаление строки редактируемого товара
 * @param idx
 * @return
 */
function editItem(idx) {
	var name = new String($("#cartrow_name_" + idx).html());
	var psc = name.split(';');

	// выбрать элементы списка по значению

	$('#junction_type').val($.trim(psc[0]));
	$('#drive_type').val($.trim(psc[1]));
	$('#climatic_implement').val($.trim(psc[5]));

	var dn = psc[2].split(':');
	$('#kran_dn').val($.trim(dn[1]));

	var pn = psc[3].split(':');
	$('#kran_pn').val($.trim(pn[1]));

	$('#body_material').val($.trim(psc[4]));
	var t = psc[7].split(':');
	$('#workspace_temper').val($.trim(t[1]));
	$('#workspace').val($.trim(psc[6]));
	var qty = $("#cartrow_qty_" + idx).html();
	$('#qty').val(qty);
	deleteItem(idx);
}

//плагин maxlength
jQuery.fn.maxlength = function(options) {
  // параметры по умолчанию
  var settings = jQuery.extend({
    maxChars: 255, // maxlength
    leftChars: "осталось символов" // текст в конце строки информера
  }, options);
  // выполняем плагин для каждого объекта
  return this.each(function() {
    // определяем объект
    var me = $(this);
    // определяем динамическую переменную колличества оставшихся для ввода символов
    var l = settings.maxChars;
    // определяем события на которые нужно реагировать
    me.bind('keydown keypress keyup',function(e) {
      // если строка больше maxChars урезаем её
      if(me.val().length>settings.maxChars) me.val(me.val().substr(0,settings.maxChars));
      // определяем колличество оставшихся для ввода сиволов
      l = settings.maxChars - me.val().length;
      // отображаем значение в информере
      me.next('div').html(settings.leftChars+ ': ' + l);
    });
    // вставка информера после объекта
    me.after('<div class="maxlen">' + settings.leftChars + ': ' + settings.maxChars + '</div>');
  });
};
