var inUpdateState = false;

function showObject(obj) {
	obj.className = "visible";
	obj.style.display = "inline";
}

function hideObject(obj) {
	obj.className = "hidden"
}

function showWaitForm() {
	hideObject(tblSend);
	showObject(tblWait);
}
               /*
function setCookie(name, value, expire) {
	document.cookie = name + "=" + escape(value)
	+ ((expire == null) ? "" : ("; expires=" + expire.toGMTString()))
}              */

function setCookie2( name, value, expires, path, domain, secure )
{
	var today = new Date();
	today.setTime( today.getTime() );
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	document.cookie = name+'='+escape( value ) +
		( ( expires ) ? ';expires='
+expires_date.toGMTString() : '' ) +
		( ( path ) ? ';path=' + path : '' ) +
		( ( domain ) ? ';domain=' + domain : '' ) +
		( ( secure ) ? ';secure' : '' );
}

function showmailform(){
	$('divMail').style.display = 'inline';
}
function gotoregion(region_name)
{
	var city = 'Новокузнецк';
	if(region_name == 'novosibirsk') city = 'Новосибирск';
	if(region_name == 'kemerovo') city = 'Кемерово';
	if(region_name == 'krasnoyarsk') city = 'Красноярск';
	if(region_name == 'tomsk') city = 'Томск';
	if(region_name == 'barnaul') city = 'Барнаул';

	if (confirm("Запомнить, что Ваш город "+city+"?"))
	{
		/*
		var obj = document.frmRegionMenu['toregion'];
		obj.value = region_name;
		var obj = document.frmRegionMenu['region_save'];
		obj.value = '1';
		document.frmRegionMenu.submit();*/
		//Ставим куку на месяц
		setCookie2('region', region_name, 31*24*60*60, '/', '.kuzcar.ru');
		return true;
	}
	else
	{
  	/*var obj = document.frmRegionMenu['toregion'];
		obj.value = region_name;
		document.frmRegionMenu.submit();*/
		//Ставим куку на час
		setCookie2('region_temp', region_name, null, '/', '.kuzcar.ru');
		return true;
	}


}
function changeregion(frm,elem,reg) {
	var obj = document.forms[frm][elem];
	obj.value = reg;
	document.forms[frm].submit();
	return true;
}

function show_props(obj, obj_name) {
    var result = ""
    for (var i in obj)
        result += obj_name + "." + i + " = " + obj[i] + "\n"
    return result;
}

function InpInt() {
	var obj = event.srcElement;
	if (((event.keyCode<48)||(event.keyCode>57))&&(event.keyCode!=32)){
		event.returnValue = false;
		return
	};
	var s = new String(delchar(" ", obj.value));
	if ((event.keyCode>=48)&&(event.keyCode<=57)) s=s+(event.keyCode-48)
	else s=s+"0";
	q=parseFloat(s);
	if (q!=s) event.returnValue=false;
}

function OnChangeElementSearchForm(con) {
	if (!con) con = '';
	if (inUpdateState) return (0);

	var el = document.searchForm.elements;
	var vals = new Object();
	var fields = new Object();
	var obj = el[con];
	if (obj) vals['sender'] = obj.name;
	for (f=0; f<el.length; f++) {
		if (el.item(f).type == 'checkbox') {
			if (el.item(f).checked) {
				vals[el.item(f).name] = el.item(f).value;
			}
		} else {
			vals[el.item(f).name] = el.item(f).value;
		}

		if (el.item(f).type == 'select-one' && el.item(f).name.indexOf('fld_') == 0) {
			if (
				(el.item(f).name != 'fld_min_Cars_RegDate')
				&& (el.item(f).name != 'fld_Makers_ID')
				&& (el.item(f).name != con
					|| (el.item(f).name == con
					&& (el.item(f).value == '' || el.item(f).value == '0'))
				)
			 ) {
			 	el.item(f).disabled = true;
				fields[f] = el.item(f).name;
			 }
		}
	}

	var mod = new Subsys_JsHttpRequest_Js();

	mod.onreadystatechange = function() {
		var needUpdate = "0";
		if (mod.readyState == 4 && mod.responseJS && !inUpdateState) {
			//alert(show_props(mod));
			inUpdateState = true; // begin update ---------------------------------
			for (var k in mod.responseJS.r_data) {
				var obj = document.searchForm[k];
				obj.disabled = false;
				var oldVal = new Object;
				if (obj.value != '') {
					oldVal.text = obj.options.item(obj.selectedIndex).text;
					oldVal.value = obj.options.item(obj.selectedIndex).value;
				} else {
					oldVal.text = '';
					oldVal.value = '';
					oldVal.si = obj.selectedIndex;
				}

				obj.selectedIndex = -1;
				obj.length = 0;
				while (obj.options.length > 0) obj.options[0] = null;

				obj.options[0] = new Option('', '0', false, false);

				var vv = -1;

				ind = 1;
				for (var id in mod.responseJS.r_data[k]) {
					//alert(show_props(obj));
					if (obj.options.length = ind) {
						obj.options[ind] = new Option(mod.responseJS.r_data[k][id], id, false, false);
						obj.options[ind].value = id;

						if (mod.responseJS.r_data[k][id] == oldVal.text
            			&& id == oldVal.value) vv = obj.length - 1;
            			ind++;
					}
				}

				if (oldVal.value != '' && oldVal.value != '') {
					if (vv != -1) obj.selectedIndex = vv;
					else {
						obj.selectedIndex = 0;
						needUpdate = obj.name;
					}
				} else obj.selectedIndex = 0;
				var ind = obj.length - 1;
				while (ind > 0) {
					if ((obj.options[ind].value=="") || (obj.options[ind].value==null))
						obj.options[ind] = null;
					ind--;
				}
			}
			inUpdateState = false; // end update ----------------------------------
//			var obj = document.all['fld_Towns_ID'];
			//if (obj != null) OnChangeTownPostForm(obj.value, 'fld_Province_ID');
		}
	}
	mod.caching = false;
	mod.open('GET', '/?p=select_loader', true);
	mod.send({p_data: {p_vals: vals, p_fields: fields}});
}

function MakerNull() {
	searchForm.fld_Models_ID.value = -1;
	searchForm.fld_Makers_ID.value = -1;
	OnChangeElementSearchForm('fld_Makers_ID');
}

function OnAddCarCarTypeChange(keyval, targBody, targMaker) {
	var obj1 = document.searchForm[targMaker];
	if (obj1) {
		var mod1 = new Subsys_JsHttpRequest_Js();
		mod1.onreadystatechange = function() {
			if (mod1.readyState == 4 && mod1.responseJS) {
				var obj1 = document.searchForm[targMaker];
				obj1.length = 0;
				obj1.selectedIndex = -1;

				if (document.createElement) {
					var nLO = document.createElement("OPTION");
					nLO.text = '';
					nLO.value = '';
					(obj1.options.add) ? obj1.options.add(nLO) : obj1.add(nLO, null);
				} else {
					obj1.options[i] = new Option('', '', false, false);
				}

				for (var id in mod1.responseJS.r_data) {
					if (document.createElement) {
						var nLO = document.createElement("OPTION");
						nLO.text = mod1.responseJS.r_data[id];
						nLO.value = id;
						(obj1.options.add) ? obj1.options.add(nLO) : obj1.add(nLO, null);
					} else {
						obj1.options[i] = new Option(mod1.responseJS.r_data[id], id, false, false);
					}
				}
			}
		}
		mod1.caching = false;
		mod1.open('GET', '/?p=dict_loader&cmd=1', true);
		mod1.send({p_data: {p_src: 'Makers', p_key: 'CarTypeID', p_keyval: keyval}});
	}
	var obj2 = document.searchForm[targBody];
	if (obj2) {
		var mod2 = new Subsys_JsHttpRequest_Js();
		mod2.onreadystatechange = function() {
			if (mod2.readyState == 4 && mod2.responseJS) {
				var obj2 = document.searchForm[targBody];
				obj2.length = 0;
				obj2.selectedIndex = -1;

				if (document.createElement) {
					var nLO = document.createElement("OPTION");
					nLO.text = '';
					nLO.value = '';
					(obj2.options.add) ? obj2.options.add(nLO) : obj2.add(nLO, null);
				} else {
					obj2.options[i] = new Option('', '', false, false);
				}

				for (var id in mod2.responseJS.r_data) {
					if (document.createElement) {
						var nLO = document.createElement("OPTION");
						nLO.text = mod2.responseJS.r_data[id];
						nLO.value = id;
						(obj2.options.add) ? obj2.options.add(nLO) : obj2.add(nLO, null);
					} else {
						obj2.options[i] = new Option(mod2.responseJS.r_data[id], id, false, false);
					}
				}
			}
		}
		mod2.caching = false;
		mod2.open('GET', '/?p=dict_loader', true);
		mod2.send({p_data: {p_src: 'BodyTypes', p_key: 'CarTypeID', p_keyval: keyval}});
	}
}

function OnChangeMakersPostForm(src, key, keyval, targ) {
	var obj = document.searchForm[targ];
	if (obj) {
		var mod = new Subsys_JsHttpRequest_Js();
		mod.onreadystatechange = function() {
			if (mod.readyState == 4 && mod.responseJS) {
				var obj = document.searchForm[targ];
				obj.length = 0;
				obj.selectedIndex = -1;

				if (document.createElement) {
					var nLO = document.createElement("OPTION");
					nLO.text = '';
					nLO.value = '';
					(obj.options.add) ? obj.options.add(nLO) : obj.add(nLO, null);
				} else {
					obj.options[i] = new Option('', '', false, false);
				}

				for (var id in mod.responseJS.r_data) {
					if (document.createElement) {
						var nLO = document.createElement("OPTION");
						nLO.text = mod.responseJS.r_data[id];
						nLO.value = id;
						(obj.options.add) ? obj.options.add(nLO) : obj.add(nLO, null);
					} else {
						obj.options[i] = new Option(mod.responseJS.r_data[id], id, false, false);
					}
				}
			}
		}
		mod.caching = false;
		mod.open('GET', '/?p=dict_loader', true);
		mod.send({p_data: {p_src: src, p_key: key, p_keyval: keyval}});
	}
}

function OnChangeProvincePostForm(keyval, targ) {
	var obj = document.searchForm[targ];
	if (obj) {
		var mod = new Subsys_JsHttpRequest_Js();
		mod.onreadystatechange = function() {
			if (mod.readyState == 4 && mod.responseJS) {
				var obj = document.searchForm[targ];
				obj.length = 0;
				obj.selectedIndex = -1;

				var i = 0;
				for (var id in mod.responseJS.r_data) {
					obj.options[i] = new Option(mod.responseJS.r_data[id], id, false, false);
					i++;
				}
			}
		}
		mod.caching = false;
		mod.open('GET', '/?p=dict_loader&cmd=2', true);
		mod.send({p_data: {p_src: 'Towns', p_key: 'ProvinceID', p_keyval: keyval}});
	}
}

function OnChangeTownPostForm(keyval, targ) {
	var obj = document.all[targ];
	if (obj) {
		var mod = new Subsys_JsHttpRequest_Js();
		mod.onreadystatechange = function() {
			if (mod.readyState == 4 && mod.responseJS) {
				var obj = document.all['fld_Province_ID'];
				for (var i = 0; i < obj.length; i++) {
					if (obj.options[i].value == mod.responseJS.r_data[0]) {
						obj.selectedIndex = i;
					}
				}
			}
		}
		mod.caching = false;
		mod.open('GET', '/?p=dict_loader&cmd=3', true);
		mod.send({p_data: {p_src: 'Towns', p_key: 'id', p_keyval: keyval}});
	}
}

function LoadSelect(divName, dataSrc, keyName, keyValue, dataID) {
	var mod = new Subsys_JsHttpRequest_Js();
	mod.onreadystatechange = function() {
		if (mod.readyState == 4 && mod.responseJS) {
			document.getElementById(divName).innerHTML = mod.responseJS.select_text;
		}
	}
	mod.caching = true;
	mod.open('POST', '/?p=select_loader', true);
	mod.send({data_src: dataSrc+','+keyName+','+keyValue+','+dataID});
}

function ShowAlt(altText, event) {
	var textObj = document.getElementById('hintText');
	textObj.innerHTML = altText;
	var mx;
	var my;
	if (document.attachEvent!=null){
		mx = window.event.clientX +  document.body.scrollLeft;
		my = window.event.clientY + document.body.scrollTop;
	}
	if (!document.attachEvent&&document.addEventListener){
		mx = event.clientX + window.scrollX;
		my = event.clientY + window.scrollY;
	}

	var e = window.event;
	var obj = document.getElementById('hint');
	obj.style.position = 'absolute';
	obj.style.left = -100;
	obj.style.top  = -100;
	obj.style.display = 'block';
	obj.style.left = mx - (textObj.offsetWidth + 18);
	obj.style.top = my - (textObj.offsetHeight + 43);
}

function HideAlt() {
	document.getElementById('hint').style.display = 'none';
}

function ShowAuthForm() {
	var dv = document.getElementById('loginDiv');
	dv.style.position = 'absolute';
	dv.style.display = 'block';
}

function CloseAuthForm() {
	var dv = document.getElementById('loginDiv');
	dv.style.display = 'none';
}

function OnMyList(objName) {
	if (document.getElementById(objName)) {
		obj = document.getElementById(objName);
		if (obj.checked)
			document.cookie="mylistcb["+obj.value+"]='"+escape(obj.value)+"'; path=/; expires=Mon, 04-Jan-2010 00:00:00 GMT";
		else
			document.cookie="mylistcb["+obj.value+"]=; path=/;";
	}
}

function setCookie(name, value, path, expires, domain, secure) {
	//alert([name, value, path, expires, domain]);
	var curCookie = name + "=" + escape(value) +
		((expires) ? "; expires=" + expires.toGMTString() : "") +
		((path) ? "; path=" + path : "; path=/") +
		((domain) ? "; domain=" + domain : "") +
		((secure) ? "; secure" : "");
	document.cookie = curCookie;
}

function focusNext(form, elemName, evt) {
	evt = (evt) ? evt : event;
	var charCode = (evt.charCode) ? evt.charCode :
		((evt.which) ? evt.which : evt.keyCode);
	if (charCode == 13) {
		form.elements[elemName].focus();
		return false;
	}
	return true;
}

function focusNextForNF(form, elemName, evt) {
	evt = (evt) ? evt : event;
	var charCode = (evt.charCode) ? evt.charCode :
		((evt.which) ? evt.which : evt.keyCode);
	if (charCode == 13) {
		form.elements[elemName].focus();
		return false;
	}
	var obj = event.srcElement;
	if (((event.keyCode<48)||(event.keyCode>57))&&(event.keyCode!=32)){
		return false;
	};
	var s = new String(delchar(" ", obj.value));
	if ((event.keyCode>=48)&&(event.keyCode<=57)) s=s+(event.keyCode-48)
	else s=s+"0";
	q=parseFloat(s);
	if (q!=s) return false;
	return true;
}

function focusNextForNF2(form, elemName, evt) {
	evt = (evt) ? evt : event;
	var charCode = (evt.charCode) ? evt.charCode :
		((evt.which) ? evt.which : evt.keyCode);

	if (charCode == 13) {
		event.srcElement.nextSibling.focus();
		return false;
	}
	var obj = event.srcElement;
	if (((event.keyCode<48)||(event.keyCode>57))&&(event.keyCode!=32)&&(event.keyCode!=44)){
		return false;
	};
	var s = new String(delchar(" ", obj.value));
	if ((event.keyCode>=48)&&(event.keyCode<=57))
		s=s+(event.keyCode-48)
	else
	if (event.keyCode==44)
		s=s+","
	else
		s=s+"0";
	q=parseFloat(s);
	if (q!=s) return false;
	return true;
}

function DateMonthDaySync(month, dayElem) {
	day = dayElem.selectedIndex;
	var newOpt = new Option("", "0", false, false);
	dayElem.options.add(newOpt);    // Добавление
	var daysCnt = 31;
	switch (month) {
		case 4:
		case 6:
		case 9:
		case 11: return 30; break;
		case 2: if ($year % 4 == 0) return 29; else return 28; break;
	}
	for (var i = 1; i <= month; i++){
		var newOpt = new Option(i, i, false, false);
		dayElem.options.add(newOpt);    // Добавление
	}
	if (day > daysCnt) day = daysCnt;
	daElem.selectedIndex = day;
}

function check_rules(e) {
	eb = document.getElementById('main_button_');
	eb.disabled = (e.checked) ? false:true;
}
