var timeout = 300;
var warm =0;

j(function(){
	formatIt = function(row,pos,Nitems) {
		var tmpArr = eval(row+';');
		if(tmpArr.length == 1 && tmpArr[0] == '0') return ' ';
		if(tmpArr.length == 1) return tmpArr[0];
		if(tmpArr.length == 3) return tmpArr[1] + ' (' + tmpArr[2] + ' км от ' + tmpArr[0] + ')';
		return "broken!";
	}
	fItem = function(row,pos,Nitems) {
		var tmpArr = eval(row+';');
		if(tmpArr.length == 1 && tmpArr[0] == '0') return "Филиал не найден";
		if(tmpArr.length == 1) return "<img src='/images/logo_small.png' /> "+tmpArr[0];
		if(tmpArr.length == 3) return tmpArr[1] + ' (' + tmpArr[2] + ' км от ' + tmpArr[0] + ')';
		return "broken!";
	}
	function disablemanualdistance(chb_obj) {
		if(chb_obj.is(':checked')) {chb_obj.attr("checked",false).click().attr("checked",false);}
		chb_obj.attr("disabled","disabled");
	}
	
	function checkFrom() { if(!j("#idFrom").val().length) j("#fromNotSelect").show(); else j("#fromNotSelect").hide();}
	function checkTo() { if(!j("#idTo").val().length) j("#toNotSelect").show(); else j("#toNotSelect").hide();}
	function validFrom() {
		var v = j("#FidFrom").val();
		if(fromV != v) {j("#idFrom,#idCityFrom").val(""); fromV = v;}
	}
	function validTo() {
		var v = j("#FidTo").val();
		if(toV != v) {j("#idTo,#idCityTo").val(""); toV = v;}
	}
	j("#FidFrom").keyup(function() {
		validFrom();
	}).blur(function() {
		checkFrom();
	}).autocomplete("/index.cfm?vars=ajax/sug_des_calc&dir=from",{
		max:0,
		cacheLength:1,
		minChars:3,
		delay:100,
		formatItem: fItem,
		formatResult:formatIt
			}).each(function() {
				var hidden_in = j('#idFrom');
				var dispatch_chb = j("#departure");
				var manual_chb = j("#departure_manual");
				var dispatch_sel = j("#departure_from");
				j(this).result(function(ev,data,ft) {
					hidden_in.val("2");
					disablemanualdistance(manual_chb);
				
					var tmpArr = eval(data+';');
					hidden_in.val(tmpArr[0]);fromV = formatIt(data);
					dispatch_chb.removeAttr("disabled").removeClass("cusdis");
					checkwarm();
					j("#idCityFrom").val("");
					if(tmpArr.length == 1 && tmpArr[0] == '0') {hidden_in.val("3");dispatch_sel.html('<option>Ошибочные данные</option>');}
					if(tmpArr.length == 1 && tmpArr[0] != '0') {
						if(tmpArr[0] == 'Ишимбай' || tmpArr[0] == 'Салават' || tmpArr[0] == 'Сызрань')
						{
							if (!dispatch_chb.is(':checked')) {dispatch_chb.attr("checked","checked");departureToggle();}
							dispatch_chb.attr("disabled","disabled").addClass("cusdis");
						}
						changeD(dispatch_sel,tmpArr[0]);
						manual_chb.attr("disabled","");
						loadDatePicker();
						toB = tmpArr[0];
						j("#FidTo").setOptions({url:"/index.cfm?vars=ajax/sug_des_calc&dir=to&exclude="+tmpArr[0]});
					}
					if(tmpArr.length == 3) 
						{
							if (!dispatch_chb.is(':checked')) {dispatch_chb.attr("checked","checked");departureToggle();}
							dispatch_sel.html("<option>"+tmpArr[1]+"</option>").select();
							dispatch_chb.attr("disabled","disabled").addClass("cusdis");
							loadDatePicker();
							j("#idCityFrom").val(tmpArr[1]);
							tmpArr[0] = tmpArr[0];
							j("#FidTo").setOptions({url:"/index.cfm?vars=ajax/sug_des_calc&dir=to&exclude="+tmpArr[0]});
						}
					validFrom();checkFrom();
					Ffrom.validate();
				});
			});
	
	j("#FidTo").keyup(function() {
		validTo();
	}).blur(function() {
		checkTo();
	}).autocomplete("/index.cfm?vars=ajax/sug_des_calc&dir=to",{
		max:0,
		cacheLength:1,
		minChars:3,
		delay:100,
		formatItem: fItem,
		formatResult:formatIt
			}).each(function() {
				var hidden_in = j('#idTo');
				var dispatch_chb = j("#destination");
				var manual_chb = j("#destination_manual");
				var dispatch_sel = j("#destination_to");
				
				j(this).result(function(ev,data,ft) {
					hidden_in.val("2");
					disablemanualdistance(manual_chb);
				
					var tmpArr = eval(data+';');
					hidden_in.val(tmpArr[0]);toV = formatIt(data);
					dispatch_chb.removeAttr("disabled").removeClass("cusdis");
					checkwarm();
					j("#idCityTo").val("");
					if(tmpArr.length == 1 && tmpArr[0] == '0') {hidden_in.val("3");dispatch_sel.html('<option>Ошибочные данные</option>');}
					if(tmpArr.length == 1 && tmpArr[0] != '0') 
						{
							if(tmpArr[0] == 'Ишимбай' || tmpArr[0] == 'Салават' || tmpArr[0] == 'Сызрань')
							{
								if (!dispatch_chb.is(':checked')) {dispatch_chb.attr("checked","checked");destinationToggle();}
								dispatch_chb.attr("disabled","disabled").addClass("cusdis");
							}
							// временное вклинивание для северодвинска
							if(tmpArr[0].toLowerCase() == "северодвинск")					//убрать
								{															//убрать
								var html_ins = "<option>" + tmpArr[0] + "</option>";		//убрать
									dispatch_sel.empty().html(html_ins);					//убрать
									manual_chb.attr("disabled","");							//убрать
									if(dispatch_chb.is(':checked')) dispatch_chb.click();	//убрать
									dispatch_chb.attr("disabled","disabled").addClass("cusdis");//убрать
								}															//убрать
							else															//убрать
								{															//убрать
								
							changeD(dispatch_sel,tmpArr[0]);
							manual_chb.attr("disabled","");

								}															//убрать
							fromB = tmpArr[0];
							j("#FidFrom").setOptions({url:"/index.cfm?vars=ajax/sug_des_calc&dir=from&exclude="+tmpArr[0]});
						}
					if(tmpArr.length == 3) 
						{
							if (!dispatch_chb.is(':checked')) {dispatch_chb.attr("checked","checked");destinationToggle();}
							dispatch_sel.html("<option>"+tmpArr[1]+"</option>").select(); 
							dispatch_chb.attr("disabled","disabled").addClass("cusdis");
							j("#idCityTo").val(tmpArr[1]);
							fromB = tmpArr[0];
							j("#FidFrom").setOptions({url:"/index.cfm?vars=ajax/sug_des_calc&dir=from&exclude="+tmpArr[0]});
						}
					validTo();checkTo();
					Fto.validate();
				});
			});
		

	warm = eval(j('#warmmass').attr('war'));
	
	j("#bulky").click(function(el){
		var bulch = j("#bulkyToggle");
		if (!checkbulky())
		{
			bulch.slideToggle(timeout);
			over1.isRequired = over2.isRequired = (j(this).is(":checked") && !j("#bulky_all").is(':checked'));
		}
		else j(this).attr("checked",true);
		
	});//.attr("checked", false);
	j("#warm").click(function() {
		if(j(this).is(":checked")) j("#warmMessage").slideDown(timeout);
		else j("#warmMessage").slideUp(timeout);
	});
	
	j("#fragile").click(function(el){
		var t = j(this);
		if(t.is(":checked")) j('#fragileToID, #fragileFromID').attr("checked",true);
		
	});//.attr("checked", false);
	
	j("#bulky_all").click(function() {
		if(j(this).is(":checked")) {j("#bulky_all_toggle").slideUp(timeout);over1.isRequired = over2.isRequired = false;}
		else {j("#bulky_all_toggle").slideDown(timeout);over1.isRequired = over2.isRequired = true;}
	});
	
	j("#calendarSwitcher .swtr").click(function() {
		if(j("#calendar").val() == "true") 
			{
				j("#calendar").val("false");
				j("#dpToggle").slideUp(timeout);
				j(this).text("Вернуть");
			}
		else 
			{
				j("#calendar").val("true");
				j("#dpToggle").slideDown(timeout);
				j(this).text("Пропустить");
			}
	});
	
	j('#vol_length,#vol_width,#vol_height').change(function(){
		var chb = j('#bulky');
		var bulch = j("#bulkyToggle");
		if (checkbulky() && !chb.is(':checked') )
			{
				bulch.slideToggle(timeout);
				over1.isRequired = over2.isRequired = true;
				chb.attr('checked',true);
			}
	});	
	
	j("#vol_toggle").click(function(el){
		var ch = j(this).is(":checked");
		if(ch){j("#volvolume").slideDown(timeout).show();j('#volsize').slideUp(timeout).hide();}
		else {j("#volvolume").slideUp(timeout).hide();j('#volsize').slideDown(timeout).show();}
		v4.isRequired = ch;
		v_length.isRequired = v_height.isRequired = v_width.isRequired = !ch;
		
		var chb = j('#bulky');
		var bulch = j("#bulkyToggle");
		if (checkbulky() && !chb.is(':checked'))
			{
				bulch.slideToggle(timeout);
				over1.isRequired = over2.isRequired = true;
				chb.attr('checked',true);
			}
		
	});
	
	j("#departure_manual").click(function() {
		if (j(this).is(":checked")) { 
				j("#departure_distance_toggle").slideDown().show();
				j("#departure_from_toggle").slideUp().hide(); 
			}
			else {
			j("#departure_distance_toggle").slideUp().hide();
			j("#departure_from_toggle").slideDown().show();
			}
	});

	j("#destination_manual").click(function() {
		if (j(this).is(":checked")) { 
				j("#destination_distance_toggle").slideDown().show();
				j("#destination_to_toggle").slideUp().hide(); 
			}
		else {
			j("#destination_distance_toggle").slideUp().hide();
			j("#destination_to_toggle").slideDown().show();
			}
	});
	
	j("#crate").click(function(el){
		if(j(this).is(":checked")) j("#crateToggle").slideDown(timeout);
		else j("#crateToggle").slideUp(timeout);
		v5.isRequired = j(this).is(":checked");
	});
	
	j("#sealing").click(function(el){
		if(j(this).is(":checked")) j("#sealingToggle").slideDown(timeout);
		else j("#sealingToggle").slideUp(timeout);
	});
	
	j("#departure").click(departureToggle);
	function departureToggle() {
		if(j("#departure").is(":checked")) j("#departureToggle").slideDown(timeout);
		else j("#departureToggle").slideUp(timeout);
	}
	j("#destination").click(destinationToggle);
	function destinationToggle() {
		if(j("#destination").is(":checked")) j("#destinationToggle").slideDown(timeout);
		else j("#destinationToggle").slideUp(timeout);
	}

	
	if(j("#crateToggle").is(":visible")) j("#crate").attr("checked",true);
	else j("#crate").attr("checked",false);
	
	if(j("#departureToggle").is(":visible")) j("#departure").attr("checked",true);
	else j("#departure").attr("checked",false);
	
	if(j("#destinationToggle").is(":visible")) j("#destination").attr("checked",true);
	else j("#destination").attr("checked",false);
	
	if(j("#sealingToggle").is(":visible")) j("#sealing").attr("checked",true);
	else j("#sealing").attr("checked",false);
	
	j("#calculate").click(function(el){j("#calcResultData").empty();});
	
	j("body").append('<div class="print"></div>');
	
	j("#calcResultData").empty();
	
	j("#departure_distance_toggle").hide();
	
	j("#destination_distance_toggle").hide();
	
	j("#java_en").hide();
	
	function checkbulky() {
		var togch = j('#vol_toggle').is(":checked");
		var l = j('#vol_length').val();
		var w = j('#vol_width').val();
		var h = j('#vol_height').val();
		if (((l>3) || (w>3) || (h>3)) && !togch) return true;
		return false;
		}
	
	function checkwarm() {
		var from = j("#idFrom").val();
		var to = j("#idTo").val();
		var bfrom = false;
		var bto = false;
		for (var inx=0;inx < warm.length;inx++)
		{
			if (warm[inx] == from) bfrom = true;
			if (warm[inx] == to) bto = true;
		}
		if (bfrom || bto) j("#warm").attr("checked",false).attr("disabled",true);
		else j("#warm").attr("disabled",false);
		if (bfrom) j("#waf").attr("checked",false).attr("disabled",true);
		else j("#waf").attr("disabled",false);
		if (bto) j("#waf1").attr("checked",false).attr("disabled",true);
		else j("#waf1").attr("disabled",false);
	}
	
	function changeD(Dobj,txt) {
		Dobj.html("<option>Загрузка ...</option>");
		j("#calculate").attr("disabled", "disabled");
		j.post("/form/calcdata",{label:txt},function(str) {
			var data = eval(str);
			var html_ins = "<option>" + txt + "</option>";
			if (data.length > 0)
				for (i=0; i < data.length; i++) html_ins += "<option>" + data[i] + "</option>";
			Dobj.empty().append(html_ins);
			j("#calculate").attr("disabled", "");
		});
	}
	checkwarm();
	loadDatePicker();
	if(j("#idCityFrom").val().length) {
			var hidden_in = j('#idFrom');
			var dispatch_chb = j("#departure");
			var manual_chb = j("#departure_manual");
			var dispatch_sel = j("#departure_from");
			if (!dispatch_chb.is(':checked')) {dispatch_chb.attr("checked","checked");departureToggle();}
			dispatch_sel.html("<option>"+j("#idCityFrom").val()+"</option>").select();
			dispatch_chb.attr("disabled","disabled").addClass("cusdis");
		}else {
			if(j("#idFrom").val().length > 1) {changeD(j("#departure_from"),j("#idFrom").val());}
		}
	if(j("#idCityTo").val().length) {
			var hidden_in = j('#idTo');
			var dispatch_chb = j("#destination");
			var manual_chb = j("#destination_manual");
			var dispatch_sel = j("#destination_to");
			if (!dispatch_chb.is(':checked')) {dispatch_chb.attr("checked","checked");destinationToggle();}
			dispatch_sel.html("<option>"+j("#idCityTo").val()+"</option>").select();
			dispatch_chb.attr("disabled","disabled").addClass("cusdis");
		}else {
			if(j("#idTo").val().length > 1) {changeD(j("#destination_to"),j("#idTo").val()); }
		}

});
//



// отправка формы
errorFunc = function(req) {
	j("#calcResultData").html('Произошел технический сбой в работе сервера. К сожалению в настоящий момент расчет не может быть произведен. Наши специалисты получили  уведомление о проблеме и исправят ее в кратчайшие сроки.');
	j('div#calcResult p.center,span#calcForward').hide();
	j("#calcForm,#calcPrint").fadeOut(timeout, function(){
		j("#calcResult").fadeIn(timeout);
	});
}
function submitForm(form){
	j(".cusdis").attr("disabled","");
	j("#volume").val( j("#volume").val().replace(',','.') );
	j("#weight").val( j("#weight").val().replace(',','.') );
	j("#calcResultData").empty();
	if(Spry.Widget.Form.validate(form)){
		if(j('#idTo').val().length == 1) {alert('Произошла ошибка обмена данными! Пожалуйста, повторите выбор пункта назанчения.');return false;}
		if(j('#idFrom').val().length == 1) {alert('Произошла ошибка обмена данными! Пожалуйста, повторите выбор пункта отправления.');return false;}
		if(!j('#idTo').val().length) {alert('Неверные данные в форме. Пожалуйста, повторите выбор пункта назанчения.');return false;}
		if(!j('#idFrom').val().length) {alert('Неверные данные в форме. Пожалуйста, повторите выбор пункта отправления.');return false;}

		j('#idscript').val('on');
		return true;
//		Spry.Utils.submitForm(form, function(req){
//			j("#calcForm").fadeOut(timeout, function(){
//				j("#calcResultData").html(req.xhRequest.responseText);
//				trackPageView("/form/calc");
//				fillCallBackForm();
//				j("#calcResult").fadeIn(timeout);
//				if(j("#callbackFormOUT").hasClass("visibleClass")) j("#callbackFormOUT").fadeIn(timeout);
//				j("table.calcTable tr").each(function(i){
//					j("td:last", this).addClass("summ");
//				});
//				var print = j("body > div.print");
//				j("#layout").addClass("screen");
//				print.html(j("#calcPrint").html());
//				showBriefCalculation();
//			});
//		},{errorCallback: errorFunc});
	}
	else{
		alert(fillFormErrorMessage());
	}
	return false;
}

function loadDatePicker(dir) {
	if(!dir) dir = "curr";
	var dp = j("#dpToggle");
	var brName = j("#idFrom").val()
	var stD = j("#startDateID").val();
	var y = j("#selYearID").val();
	var m = j("#selMonthID").val();
	if(dp.length && dp.is(":visible")) j("#dpCalc").load("/ajax/datePicker",{branchName:brName,startDate:stD,y:y,m:m,dir:dir});
}
function setStartDate(sd,el) {
	j("#startDateID").val(sd);
	j("#dpCalc .dpDay").removeClass("mySelected");
	j(el).addClass("mySelected");
}
//function fillCallBackForm(){
//	var tmp = "";
//	var dep = j("#idFrom").val();
//	j("#callbackForm select option").each(function() {
//		j(this).removeAttr("selected");
//		var txt = j(this).text();
//		if(txt == dep) j(this).attr("selected","selected")
//	});
//	var comm = "";
//	comm = comm + dep;
//	tmp = j("#departure_from option:selected").val();
//	if(tmp.length && (tmp != j("#idFrom").val()) && (tmp != "Ошибочные данные")) comm = comm + "(" + tmp +")";
//	comm = comm + " --> " + j("#idTo").val();
//	tmp = j("#destination_to option:selected").val();
//	if(tmp.length && (tmp != j("#idTo").val()) && (tmp != "Ошибочные данные")) comm = comm + "(" + tmp +")";
//	comm = comm + ";";
//	tmp = j("#volume").val();
//	if(!j('#vol_toggle').is(":checked")) tmp = j('#vol_length').val() * j('#vol_width').val() * j('#vol_height').val();
//	comm = comm + " Объем:" + tmp + " м3; Вес:" + j("#weight").val() + " кг;";
//	if(j("#bulky").is(":checked")) comm = comm + " Негабаритный груз;";
//	if(j("#crate").is(":checked")) comm = comm + " Требуется обрешетка;";
//	if(j("#warm").is(":checked")) comm = comm + " Перевозка в тепле;";
//	if(j("#count").is(":checked")) comm = comm + " Необходим внуренний пересчет;";
//	if(j("#storage").is(":checked")) comm = comm + " Хранение на локальном складе;";
//	if(j("#fragile").is(":checked")) comm = comm + " Хрупкое отправление;";
//	if(j("#sealing").is(":checked")) comm = comm + " Укладка и опломбирование;";
//	if(j("#departure").is(":checked")) comm = comm + " Автоэкспедирование в пункте отправления;";
//	if(j("#destination").is(":checked")) comm = comm + " Автоэкспедирование в пункте назначения;";
//	comm = comm + " " + j("#formD input[name=allSumValue]").val()+";";
//	comm = comm + " " + j("#formD input[name=priceValue]").val()+";";
//	comm = comm + " " + j("#formD input[name=minmax]").val()+";";
//
//	in5.removeHint();j('#in5 textarea').val(comm);in5.validate();
//}
function fillFormErrorMessage() {
	var n = 0;
	if(!Ffrom.validate()) n++;		//откуда
	if(!Fto.validate()) n++;		//куда
	if(!v3.validate()) n++;			//вес
	if(!v_height.validate()) n++;	//высота
	if(!v_length.validate()) n++;	//длина
	if(!v_width.validate()) n++;	//ширина
	if(!v4.validate()) n++; 		// объем
	if(!over1.validate()) n++;		//негаб вес
	if(!over2.validate()) n++;		//негаб объем
	if(!v5.validate()) n++;		//объем обрешетки
	if(!n) return "";
	if(n == 1) var result = "Необходимо заполнить поле "; else var result = "Необходимо заполнить поля, выделенные красным цветом:\n";
	if(!Ffrom.validate()) result = result + "«Откуда»\n";
	if(!Fto.validate()) result = result + "«Куда»\n";
	if(!v3.validate()) result = result + "«Вес»\n";
	if(!v_height.validate()) result = result + "«Высота»\n";
	if(!v_length.validate()) result = result + "«Длина»\n";
	if(!v_width.validate()) result = result + "«Ширина»\n";
	if(!v4.validate()) result = result + "«Объем»\n";
	if(!over1.validate()) result = result + "«Вес негебаритного груза»\n";
	if(!over2.validate()) result = result + "«Объем негабаритного груза»\n";
	if(!v5.validate()) result = result + "«Объем обрешетки»\n";
	return result;
}

