var Brands = {
	currentbrand: 0,
	currentmodel: 0,
	edit: function(id) {
		if ($("img"+id)) {
			$("img").style.display = "";
			$("imgimg").src = $("img"+id).src;
			$("imgimg2").src = $("img"+id).getAttribute("src2");
		} else
			$("img").style.display = "none";
		showandcenter($("brand"), $("brand").parentNode);
		var mask = $("name"+id).getAttribute("mask");
		for (var i=0; i<filters.length; i++)
			$("filter-"+filters[i]).checked = (mask&Math.pow(2,filters[i]))>0;
			
		document.forms.one.name.value = $("name"+id).innerHTML;
		document.forms.one.urlname.value = $("name"+id).getAttribute("urlname");
		document.forms.one.tags.value = $("name"+id).getAttribute("tags");
		document.forms.one.id.value = id;	
		selectSelect(document.forms.one.country, $("name"+id).getAttribute("country"));
		document.forms.one.action = "./edit/";
		document.forms.one.name.focus();
	},
	add: function(id) {
		showandcenter($("brand"), $("brand").parentNode);
		document.forms.one.name.value = "";
		document.forms.one.urlname.value = "";
		document.forms.one.tags.value = "";
		document.forms.one.id.value = "";
		document.forms.one.action = "./add/";
		document.forms.one.name.focus();
		document.forms.one.country.selectedIndex = 0;
		for (var i=0; i<filters.length; i++)
			$("filter-"+filters[i]).checked = false;
		$("img").style.display = "none";
	},
	models: function(id) {
		if (this.currentbrand && this.currenrbrand!=id)
			dropAllElements($("models"+this.currentbrand));
		this.currentbrand = id;
		request.html("./models/"+id+"/", function(h) {
			$("models"+id).innerHTML = h;
		});
	},
	addmodel: function() {
		this.currentmodel = 0;
		showandcenter($("model"), $("model").parentNode);
		$("modelname").value = "";
		$("modelurlname").value = "";
		$("modeltags").value = "";
		$("modelname").focus();
		for (var i=0; i<filters.length; i++)
			$("model-filter-"+filters[i]).checked = false;
	},
	editmodel: function(id) {
		this.currentmodel = id;
		showandcenter($("model"), $("model").parentNode);
		$("modelname").value = $("model"+id).innerHTML;
		$("modelurlname").value = $("model"+id).getAttribute("urlname");
		$("modeltags").value = $("model"+id).getAttribute("tags") ? $("model"+id).getAttribute("tags") : "";
		var mask = $("model"+id).getAttribute("mask");
		for (var i=0; i<filters.length; i++)
			$("model-filter-"+filters[i]).checked = (mask&Math.pow(2,filters[i]))>0;
		$("modelname").focus();
	},
	savemodel: function() {
		if (this.currentmodel) {
			var vars = { name: $("modelname").value, urlname: $("modelurlname").value, tags: $("modeltags").value, id: this.currentmodel };
			for (var i=0; i<filters.length; i++) {
				if ($("model-filter-"+filters[i]).checked)
					vars["filter["+i+"]"] = filters[i];
			}
			request.post("./editmodel/", vars, function(rs) {
				$("model").style.display = "none";
				if (rs.result==1)
					Brands.models(Brands.currentbrand);
			});
		} else {
			var vars = { name: $("modelname").value, urlname: $("modelurlname").value, tags: $("modeltags").value, brand: this.currentbrand };
			for (var i=0; i<filters.length; i++)
				if ($("model-filter-"+filters[i]).checked)
					vars["filter["+i+"]"] = filters[i];
			request.post("./addmodel/", vars, function(rs) {
				$("model").style.display = "none";
				if (rs.result==1)
					Brands.models(Brands.currentbrand);
			});
		}
	},
	deletemodel: function(id) {
		if (!confirm('Are you sure?'))
			return;
		request.json("./deletemodel/"+id, function(rs) {
			if (rs.result==1)
				Brands.models(Brands.currentbrand);
		});
	}
};

var Cities = {
	currentcity: 0,
	langs: [],
	add: function() {
		this.currentcity = "";
		this.clear();
		$("form").action = "./add/";
		showandcenter($("dialog"), $("dialog").parentNode);
		if (this.langs[0])
			$("name-"+this.langs[0]).focus();
		$("trlogo").style.display = "none";
	},
	edit: function(id) {
		this.currentcity = id;
		this.clear();
		$("form").action = "./edit/"+id+"/";
		request.json("./one/"+id+"/", function(rs) {
			if (rs.logo) {
				$("tdlogo").innerHTML = "<img src=\""+rs.logo+"\">";
				$("trlogo").style.display = "";
			} else
				$("trlogo").style.display = "none";
			walk(rs.langs, function(n,v) {
				$("name-"+v.language_id).value = v.name;
				$("name1-"+v.language_id).value = v.name1;
				$("name2-"+v.language_id).value = v.name2;
				$("name3-"+v.language_id).value = v.name3;
				$("urlname-"+v.language_id).value = v.urlname;
			});
			showandcenter($("dialog"), $("dialog").parentNode);
			if (Cities.langs[0])
				$("name-"+Cities.langs[0]).focus();
		});
	},
	submit: function() {
		$("form").submit();
		return;
		
		var vars = { };
		for (var i=0; i<this.langs.length; i++) {
			vars["name["+this.langs[i]+"]"] = $("name-"+this.langs[i]).value;
			vars["name1["+this.langs[i]+"]"] = $("name1-"+this.langs[i]).value;
			vars["name2["+this.langs[i]+"]"] = $("name2-"+this.langs[i]).value;
			vars["urlname["+this.langs[i]+"]"] = $("urlname-"+this.langs[i]).value;
		}
		if (this.currentcity) {
			request.post("./edit/"+this.currentcity+"/", vars, function(rs) {
				Cities.cancel();
				Cities.refresh();
			});
		} else {
			request.post("./add/", vars, function(rs) {
				Cities.cancel();
				Cities.refresh();
			});
		}
	},
	remove: function(id) {
		if (!confirm("Are you sure?"))
			return;
		request.json("./delete/"+id+"/", function(rs) {
			dropElement($("row-"+id));
		});
	},
	clear: function() {
		for (var i=0; i<this.langs.length; i++) {
			$("name-"+this.langs[i]).value = "";
			$("name1-"+this.langs[i]).value = "";
			$("name2-"+this.langs[i]).value = "";
			$("urlname-"+this.langs[i]).value = "";
		}
	},
	cancel: function() {
		$("dialog").style.display = "none";
	},
	refresh: function() {
		request.html("./lst/", function(h) {
			dropAllElements($("list"));
			$("list").innerHTML = h;
			});
	}
};


var Vehicles = {
	idx: 100,
	updateModels: function(id) {
		var f = document.forms.vehicle;
		this.clearSelect(f.model_id);
		request.json("/"+prefix+"vehicles/models/"+id+"/", function(rs) {
			if (rs.length>0) {
				for (var i=0; i<rs.length; i++) {
					var x = new Option();
					x.value = rs[i].id;
					x.text = rs[i].name;
					f.model_id.options[f.model_id.options.length] = x;
				}
			}
		});
	},
	clearSelect: function(select) {
		while (select.options.length>0)
			select.options[0] = null;
		select.options[0] = new Option();
		select.options[0].text = "--";
		select.options[0].value = 0;
	},
	show_code: function() {
		showandcenter($("forum-code"), $("forum-code").parentNode);
	},
	hide_code: function() {
		$("forum-code").style.display = "none";
	},
	switch_forms: function() {
		if ($("register-form").style.display=="none") {
			$("login-form").style.display = "none";
			$("register-form").style.display = "block";
			document.forms.vehicle.authform.value = 0;
		} else {
			$("register-form").style.display = "none";
			$("login-form").style.display = "block";
			document.forms.vehicle.authform.value = 1;
		}
	},
	added_photo: function(idx) {
		$("delete-link-"+idx).style.display = "";
		$("filex-"+idx).value = "";
		$("photo-"+idx).src = "file://"+document.forms.vehicle.elements["file["+idx+"]"].value.rplace("\\","/");
//		$("photo-"+idx).src = "file://"+strrplace("\\","/",$("file-input-"+idx).value);
	},
	drop_photo: function(idx) {
		if ($("delete-"+idx))
			$("delete-"+idx).value = 1;
		var x = $("upload-"+idx).innerHTML;
		$("upload-"+idx).innerHTML = x;
		$("delete-link-"+idx).style.display = "none";
		$("photo-"+idx).src = "/img/px.gif";
		$("filex-"+idx).value = "";
	},
	showBBCode: function() {
		$("html-code-container").style.display = "none";
		$("bb-code-container").style.display = "block";
		$("url-container").style.display = "none";
	},
	showHTMLCode: function() {
		$("html-code-container").style.display = "block";
		$("bb-code-container").style.display = "none";
		$("url-container").style.display = "none";
	},
	showUrl: function() {
		$("url-container").style.display = "block";
		$("html-code-container").style.display = "none";
		$("bb-code-container").style.display = "none";
	},
	showSmsInfo: function() {
		if ($("sms-dialog-info").parentNode.id!="root") {
			$("sms-dialog-info").parentNode.removeChild($("sms-dialog-info"));
			$("root").appendChild($("sms-dialog-info"));
		}
		showandcenter($("sms-dialog-info"));
	},
	hideSmsInfo: function() {
		$("sms-dialog-info").style.display = "none";
	},
	showDiagnostics: function() {
		if ($("dialog-diagnostics").parentNode.id!="root") {
			$("dialog-diagnostics").parentNode.removeChild($("dialog-diagnostics"));
			$("root").appendChild($("dialog-diagnostics"));
		}
		showandcenter($("dialog-diagnostics"));
	},
	hideDiagnostics: function() {
		$("dialog-diagnostics").style.display = "none";
	},
	showUrgentSmsInfo: function() {
		if ($("sms-dialog-urgent-info").parentNode.id!="root") {
			$("sms-dialog-urgent-info").parentNode.removeChild($("sms-dialog-urgent-info"));
			$("root").appendChild($("sms-dialog-urgent-info"));
		}
		showandcenter($("sms-dialog-urgent-info"));
	},
	hideUrgentSmsInfo: function() {
		$("sms-dialog-urgent-info").style.display = "none";
	},
	sendCode: function(vid, code, mode) {
		var url;
		if (mode=="multiple")
			url = "/"+prefix+"vehicles/sendmulticode/"+vid+"/"+code+"/";
		else
			url = "/"+prefix+"vehicles/sendcode/"+vid+"/"+code+"/";
		request.html(url, function(h) {
			if (h=="1") {
				if (mode=="multiple")
					window.location = "/"+prefix+"vehicles/sendmulticode/"+vid+"/";
				else
					window.location = "/"+prefix+"vehicles/sendcode/"+vid+"/";
				return;
//				$("sms-dialog-success").style.display = "block";
//				$("sms-dialog-failure").style.display = "none";
			} else {
				$("sms-dialog-success").style.display = "none";
				$("sms-dialog-failure").style.display = "block";
			}
			if ($("sms-dialog").parentNode.id!="root") {
				$("sms-dialog").parentNode.removeChild($("sms-dialog"));
				$("root").appendChild($("sms-dialog"));
			}
			showandcenter($("sms-dialog"));
		});
	},
	hideSms: function() {
		$("sms-dialog").style.display = "none";
	},
	favorite: function(id) {
		request.json("/vehicles/favorite/"+id+"/", function(rs) {
			if ($("fav-link-"+id))
				$("fav-link-"+id).style.display = "none";
			if ($("fav-span-"+id))
				$("fav-span-"+id).style.display = "";
			$("count-favorites").innerHTML = parseInt($("count-favorites").innerHTML)+1;
		});
	},
	defavorite: function(id,total) {
		request.json("/vehicles/favorite/"+id+"/", function(rs) {
			if (total) {
				dropElement($("vehicle-"+id));
			} else {
				$("fav-link-"+id).style.display = "";
				$("fav-span-"+id).style.display = "none";
			}
			$("count-favorites").innerHTML = parseInt($("count-favorites").innerHTML)-1;
		});
	}
};

var Slideshow = {
	sequence: [ ],
	images: [ ],
	current: 0,
	start: function(id, pid) {
		request.html("/"+prefix+"vehicles/photos/"+id+"/", function(h) {
			dropAllElements($("slideshow"));
			$("slideshow").innerHTML = h;
			showandcenter($("slideshow"), $("slideshow").parentNode);
			Slideshow.sequence = eval("("+$("image").getAttribute("sequence")+")");
			Slideshow.images = eval("("+$("image").getAttribute("images")+")");
			if (pid)
				for (var i=0; i<Slideshow.sequence.length; i++)
					if (Slideshow.sequence[i]==pid) {
						Slideshow.current = i;
						break;
					}
			Slideshow.show();
		});
	},
	next: function(supermode) {
		if (supermode) {
			if (this.current==this.sequence.length-1) {
				this.cancel();
				return;
			}
		}
		this.current ++;
		this.show();
	},
	previous: function() {
		this.current --;
		this.show();
	},
	show: function() {
		if (this.current==this.sequence.length-1)
			this.disable_link($("slideshow-next"));
		else
			this.enable_link($("slideshow-next"));
		if (this.current==0)
			this.disable_link($("slideshow-prev"));
		else
			this.enable_link($("slideshow-prev"));

		if (this.current>=this.sequence.length)
			this.current -= this.sequence.length;
		if (this.current<0)
			this.current += this.sequence.length;
		
		var id = this.sequence[this.current];
		if (!id)
			return;
		$("image-target").src = "/img/44/"+id+".jpg";
		$("image-target").src = "/img/600/"+id+".jpg";
		for (var i=1; i<=5; i++)
			removeClassName($("image-"+i), "active");
		addClassName($("image-"+(this.current+1)), "active");
	},
	cancel: function() {
		dropAllElements($("slideshow"));
		$("slideshow").style.display = "none";
	},
	to_index: function(idx) {
		this.current = idx-1;
		this.show();
	},
	disable_link: function(el) {
		el.setAttribute("x-enabled", el.innerHTML+"");
		var html = el.innerHTML.stripTags();
		dropAllElements(el);
		el.innerHTML = html;
	},
	enable_link: function(el) {
		var tmp = el.getAttribute("x-enabled");
		if (tmp) {
			dropAllElements(el);
			el.innerHTML = tmp;
		}
	}
};

var SlideshowStandalone = {
	sequence: [ ],
	images: [ ],
	current: 0,
	start: function(id, pid) {
		request.html("/"+prefix+"vehicles/photos/"+id+"/", function(h) {
			dropAllElements($("slideshow"));
			$("slideshow").innerHTML = h;
			showandcenter($("slideshow"), $("slideshow").parentNode);
			SlideshowStandalone.sequence = eval("("+$("image").getAttribute("sequence")+")");
			SlideshowStandalone.images = eval("("+$("image").getAttribute("images")+")");
			if (pid)
				for (var i=0; i<SlideshowStandalone.sequence.length; i++)
					if (SlideshowStandalone.sequence[i]==pid) {
						SlideshowStandalone.current = i;
						break;
					}
			SlideshowStandalone.show();
		});
	},
	next: function(supermode) {
		if (supermode) {
			if (this.current==this.sequence.length-1) {
				this.cancel();
				return;
			}
		}
		this.current ++;
		this.show();
	},
	previous: function() {
		this.current --;
		this.show();
	},
	show: function() {
		if (this.current==this.sequence.length-1)
			this.disable_link($("slideshow-next"));
		else
			this.enable_link($("slideshow-next"));
		if (this.current==0)
			this.disable_link($("slideshow-prev"));
		else
			this.enable_link($("slideshow-prev"));

		if (this.current>=this.sequence.length)
			this.current -= this.sequence.length;
		if (this.current<0)
			this.current += this.sequence.length;
		
		var id = this.sequence[this.current];
		if (!id)
			return;
		$("image-target").src = "/img/44/"+id+".jpg";
		$("image-target").src = "/img/600/"+id+".jpg";
		for (var i=1; i<=5; i++)
			removeClassName($("image-"+i), "active");
		addClassName($("image-"+(this.current+1)), "active");
	},
	cancel: function() {
		window.close();
//		dropAllElements($("slideshow"));
//		$("slideshow").style.display = "none";
	},
	to_index: function(idx) {
		this.current = idx-1;
		this.show();
	},
	disable_link: function(el) {
		el.setAttribute("x-enabled", el.innerHTML+"");
		var html = el.innerHTML.stripTags();
		dropAllElements(el);
		el.innerHTML = html;
	},
	enable_link: function(el) {
		var tmp = el.getAttribute("x-enabled");
		if (tmp) {
			dropAllElements(el);
			el.innerHTML = tmp;
		}
	}
};

var Options = {
	current: 0,
	langs: [ ],
	init: function(l) {
		this.langs = l;
	},
	add: function() {
		this.current = 0;
		showandcenter($("dialog"), $("dialog").parentNode);
		for (var i=0; i<this.langs.length; i++)
			$("name-"+this.langs[i]).value = "";
		for (var i=0; i<filters.length; i++)
			$("filter-"+filters[i]).checked = false;
		$("name-"+this.langs[0]).focus();
	},
	edit: function(id) {
		request.json("./one/"+id+"/", function(rs) {
			Options.current = id;
			showandcenter($("dialog"), $("dialog").parentNode);
			for (var i=0; i<Options.langs.length; i++)
				$("name-"+Options.langs[i]).value = rs[Options.langs[i]];
			var mask = $("td"+id).getAttribute("mask");
			for (var i=0; i<filters.length; i++)
				$("filter-"+filters[i]).checked= (mask&Math.pow(2,filters[i]))>0;
			$("name-"+Options.langs[0]).focus();
		});
	},
	drop: function(id) {
		if (!confirm("Are you sure?"))
			return;
		request.json("./delete/"+id+"/", function(rs) {
			dropElement($("tr"+id));
		});
	},
	cancel: function() {
		this.current = 0;
		$("dialog").style.display = "none";
	},
	save: function() {
		var mask = 0;
		if (this.current) {
			var vars = { id: this.current };
			for (var i=0; i<this.langs.length; i++)
				vars["name["+this.langs[i]+"]"] = $("name-"+this.langs[i]).value;
			for (var i=0; i<filters.length; i++) {
				if ($("filter-"+filters[i]).checked) {
					vars["filter["+i+"]"] = filters[i];
					mask += Math.pow(2, filters[i]);
				}
			}
			request.post("./edit/", vars, function(rs) {
				$("td"+Options.current).innerHTML = rs.name;
				$("td"+Options.current).setAttribute("mask", mask);
				Options.cancel();
			});
		} else {
			var vars = { };
			for (var i=0; i<this.langs.length; i++)
				vars["name["+this.langs[i]+"]"] = $("name-"+this.langs[i]).value;
			for (var i=0; i<filters.length; i++)
				if ($("filter-"+filters[i]).checked) {
					vars["filter["+i+"]"] = filters[i];
					mask += Math.pow(2, filters[i]);
				}
			request.post("./add/", vars, function(rs) {
				var tr = document.createElement("div");
				tr.id = "tr"+rs.id;
				tr.className = "x-options-tr";
				$("table").appendChild(tr);
				var td1 = document.createElement("div");
				td1.id = "td"+rs.id;
				td1.className = "x-options-td-1";
				td1.setAttribute("mask", mask);
				td1.innerHTML = rs.name;
				tr.appendChild(td1)
				var td2 = document.createElement("div");
				td2.className = "x-options-td-2";
				td2.innerHTML = "<a class=\"adminbutton\" href=\"javascript:void(0)\" onclick=\"Options.edit("+rs.id+");this.blur();return false;\">Edit</a> " +
								"<a class=\"adminbutton\" href=\"javascript:void(0)\" onclick=\"Options.drop("+rs.id+");this.blur();return false;\">Delete</a>";
				tr.appendChild(td2);
				Options.cancel();
			});
		}
	}
};

var Bodies = {
	current: 0,
	langs: [ ],
	init: function(l) {
		this.langs = l;
	},
	add: function() {
		this.current = 0;
		showandcenter($("dialog"), $("dialog").parentNode);
		for (var i=0; i<this.langs.length; i++) {
			$("name-"+this.langs[i]).value = "";
			$("urlname-"+this.langs[i]).value = "";
		}
		for (var i=0; i<filters.length; i++)
			$("filter-"+filters[i]).checked = false;
		$("bodyimage").src = "";
		document.forms.body.elements.id.value = "";
		$("name-"+this.langs[0]).focus();
	},
	edit: function(id) {
		request.json("./one/"+id+"/", function(rs) {
			Bodies.current = id;
			showandcenter($("dialog"), $("dialog").parentNode);
			for (var i=0; i<Bodies.langs.length; i++) {
				$("name-"+Bodies.langs[i]).value = rs[Bodies.langs[i]].name;
				$("urlname-"+Bodies.langs[i]).value = rs[Bodies.langs[i]].urlname;
			}
			var mask = $("td"+id).getAttribute("mask");
			for (var i=0; i<filters.length; i++)
				$("filter-"+filters[i]).checked= (mask&Math.pow(2,filters[i]))>0;
			$("bodyimage").src = $("td"+id).getAttribute("image");
			document.forms.body.elements.id.value = id;
			$("name-"+Bodies.langs[0]).focus();
		});
	},
	drop: function(id) {
		if (!confirm("Are you sure?"))
			return;
		request.json("./delete/"+id+"/", function(rs) {
			dropElement($("tr"+id));
		});
	},
	cancel: function() {
		this.current = 0;
		$("dialog").style.display = "none";
	}
};

var Search = {
	models: [ ],
	showAllBrands: function() {
		$("hiddenlink").style.display = "none";
		$("hidden").style.display = "block";
	},
	hideAllBrands: function() {
		$("hiddenlink").style.display = "";
		$("hidden").style.display = "none";
	},
	switchYearMode: function(mode) {
		if (mode) {
			$("yearmode").value = 1;
			$("years-selection").style.display = "block";
			$("years-indicator").style.display = "none";
			$("age-selection").style.display = "none";
			$("age-indicator").style.display = "block";
		} else {
			$("yearmode").value = 0;
			$("years-selection").style.display = "none";
			$("years-indicator").style.display = "block";
			$("age-selection").style.display = "block";
			$("age-indicator").style.display = "none";
		}
	},
	switchModel: function(id, mode) {
		if (mode) {
			if (!this.models.contains(id))
				this.models.push(id);
		} else
			this.models = this.models.removevalue(id);
		if (this.models.length==1) {
			if (!$("models").getAttribute("defaultHTML"))
				$("models").setAttribute("defaultHTML", $("models").innerHTML);
			request.html("/"+prefix+"search/models/"+this.models[0]+"/", function(h) {
				$("models").innerHTML = h;
			});
		} else
			$("models").innerHTML = $("models").getAttribute("defaultHTML");
	},
	updateAges: function() {
		if ($("age-indicator-label"))
			$("age-indicator-label").style.display = "none";
		if ($("years-indicator-label"))
			$("years-indicator-label").style.display = "none";
		if ($("age-indicator-number"))
			$("age-indicator-number").style.display = "block";
		if ($("years-indicator-number"))
			$("years-indicator-number").style.display = "block";
		var a = (new Date()).getFullYear()-$("select_year_from").value;
		var b = (new Date()).getFullYear()-$("select_year_to").value;
		if ($("select_year_from").value.length==0)
			a = b;
		if ($("select_year_to").value.length==0)
			b = a;
		$("yearfrom").innerHTML = $("select_year_from").value.length>0 ? $("select_year_from").value : "&hellip;";
		$("yearto").innerHTML = $("select_year_to").value.length>0 ? $("select_year_to").value : "&hellip;";
		$("agefrom").innerHTML = $("select_year_to").value.length>0 ? Math.min(a,b) : "&hellip;";
		var x = Math.max(a,b);
		$("ageto").innerHTML = $("select_year_from").value.length>0 ? x==(new Date()).getFullYear()-1980?x+"&hellip;":x : "&hellip;";
		if (language=="ru")
			$("agelabel").innerHTML = x!=11 && (x%10)==1 ? "года" : "лет";
		else
			$("agelabel").innerHTML = x!=11 && (x&10)==1 ? "року" : "років";
		if ($("select_year_to").value.length>0)
			selectSelect($("select_age_from"), Math.min(a,b));
		else
			$("select_age_from").value.length = 0;
		if ($("select_year_from").value.length>0)
			selectSelect($("select_age_to"), Math.max(a,b));
		else
			$("select_age_to").value.length = 0;
	},
	updateYears: function() {
		if ($("age-indicator-label"))
			$("age-indicator-label").style.display = "none";
		if ($("years-indicator-label"))
			$("years-indicator-label").style.display = "none";
		if ($("age-indicator-number"))
			$("age-indicator-number").style.display = "block";
		if ($("years-indicator-number"))
			$("years-indicator-number").style.display = "block";
		var a = (new Date()).getFullYear()-$("select_age_from").value;
		var b = (new Date()).getFullYear()-$("select_age_to").value;
		if ($("select_age_from").value.length==0)
			a = b;
		if ($("select_age_to").value.length==0)
			b = a;
		$("agefrom").innerHTML  = $("select_age_from").value.length>0 ? $("select_age_from").value : "&hellip;";
		$("ageto").innerHTML = $("select_age_to").value.length>0 ? $("select_age_to").value : "&hellip;";
		if (language=="ru")
			$("agelabel").innerHTML = $("select_age_to").value!=11 && ($("select_age_to").value%10)==1 ? "года" : "лет";
		else
			$("agelabel").innerHTML = $("select_age_to").value!=11 && ($("select_age_to").value%10)==1 ? "року" : "років";
		var x = Math.min(a,b);
		$("yearfrom").innerHTML = $("select_age_to").value.length>0 ? (x==1980?"&hellip;1980":x) : "&hellip;";
		$("yearto").innerHTML = $("select_age_from").value.length>0 ? Math.max(a,b) : "&hellip;";
		if ($("select_age_to").value.length>0)
			selectSelect($("select_year_from"), Math.min(a,b));
		else
			$("select_year_from").value.length = 0;
		if ($("select_age_from").value.length>0)
			selectSelect($("select_year_to"), Math.max(a,b));
		else
			$("select_year_to").selectedIndex = 0;
	},
	getMargins: function() {
		var fm = document.forms.search;
		if (!fm)
			return;
		var brand = fm.brand ? fm.brand.value : fm.brand_id.value;
		var model = fm.model ? fm.model.value : fm.model_id.value;
		var city = fm.city_id ? fm.city_id.value : "";
		request.json("/"+prefix+"search/margins/?brand="+brand+"&model="+model+"&city="+city, function(rs) {
			if (!rs.maxprice) {
				if ($("quick-search-submit")) {
					$("quick-search-submit").disabled = true;
					addClassName($("quick-search-submit"), "disabled");
				}
				if ($("search-submit")) {
					$("search-submit").disabled = true;
					addClassName($("search-submit"), "disabled");
				}
			} else {
				if ($("quick-search-submit")) {
					$("quick-search-submit").disabled = false;
					removeClassName($("quick-search-submit"), "disabled");
				}
				if ($("search-submit")) {
					$("search-submit").disabled = false;
					removeClassName($("search-submit"), "disabled");
				}
			}
			if (!$("price_from").getAttribute("modified"))
				$("price_from").value = rs.minprice;
			if (!$("price_to").getAttribute("modified"))
				$("price_to").value = rs.maxprice;
			while ($("select_year_from").options.length>0)
				$("select_year_from").options[0] = null;
			while ($("select_year_to").options.length>0)
				$("select_year_to").options[0] = null;
			while ($("select_age_from").options.length>0)
				$("select_age_from").options[0] = null;
			while ($("select_age_to").options.length>0)
				$("select_age_to").options[0] = null;
			var now = (new Date()).getFullYear();
			if (rs.maxyear && rs.minyear) {
				for (var i=rs.maxyear; i>=rs.minyear; i--) {
					var one = new Option();
					one.value = i;
					one.text = i==1980?"...1980":i;
					$("select_year_from").options[$("select_year_from").options.length] = one;
					
					var two = new Option();
					two.value = i;
					two.text = i==1980?"...1980":i;
					$("select_year_to").options[$("select_year_to").options.length] = two;
				}
				for (var i=rs.minyear; i<=rs.maxyear; i++) {
					var three = new Option();
					three.value = now-i;
					three.text = i==1980?(now-i)+"...":now-i;
					$("select_age_from").options[$("select_age_from").options.length] = three;
	
					var four = new Option();
					four.value = now-i;
					four.text = i==1980?(now-i)+"...":now-i;
					$("select_age_to").options[$("select_age_to").options.length] = four;
				}
			}
			
			$("select_year_from").selectedIndex = $("select_year_from").options.length-1; //0;
			$("select_year_to").selectedIndex = 0; //$("select_year_to").options.length-1;
			$("select_age_from").selectedIndex = 0;
			$("select_age_to").selectedIndex = $("select_age_to").options.length-1;
			
			if ($("distance") && !$("distance").getAttribute("modified"))
				$("distance").value = rs.maxdistance;
			if ($("volume1") && !$("volume1").getAttribute("modified"))
				$("volume1").value = Math.floor(rs.minvolume);
			if ($("volume2") && !$("volume2").getAttribute("modified"))
				$("volume2").value = (10*rs.minvolume)%10;
			
			Search.updateAges();
		});
	}
};

var Regions = {
	x: 0,
	y: 0,
	regions: [ ],
	formname: "",
	current: 0,
	show: function(filtered, fmn) {
		this.formname = fmn;
		request.html("/"+prefix+"dialog/regions/"+(filtered?"filtered/":"")+(this.current?"?current="+this.current:""), function(h) {
			dropAllElements($("regionsSelect"));
			$("regionsSelect").innerHTML = h;
			Hider.show();
			showandcenter($("regionsSelect"));
		});
	},
	switchRegion: function(id, mode) {
		if (mode && !this.regions.contains(id))
			this.regions.push(id);
		else if (!mode)
			this.regions = this.regions.removevalue(id);
	},
	cancel: function() {
		this.regions = [ ];
		$("regionsSelect").style.display = "none";
		Hider.hide();
	},
	submit: function() {
		if ($("regions-list")) {
			for (var i=0; i<$("regions-list").childNodes.length; i++)
				if ($("regions-list").childNodes[i].id)
					removeClassName($("regions-list").childNodes[i], "active");
			var id = this.regions[0];
	//		addClassName($("region-"+id), "active");
	//		$("regions-link").innerHTML = ($("city-logo-"+id) ? "<img src=\""+$("city-logo-"+id).src+"\" border=\"0\"/> " : "") + $("city-name-"+id).innerHTML;
			$("regions-link").innerHTML = $("city-name-"+id).innerHTML;
		}
		var vars = { regions: this.regions.implode("-") };
		request.post("/"+prefix+"setregion/", vars, function(rs) {
			Regions.cancel();
			window.location.reload();
		});
	},
	chooseRegion: function(id) {
		if (this.formname) {
			this.current = id;
			if (id) {
				$("search-city-name").innerHTML = $("city-name-"+id).innerHTML;
				$("search-city-logo").innerHTML = $("city-logo-"+id) ? "<img src=\""+$("city-logo-"+id).src+"\" border=\"0\"/> " : "";
				$("search-city-name").style.display = "";
				$("search-city-logo").style.display = "";
			} else {
				$("search-city-name").innerHTML = "";
				$("search-city-logo").innerHTML = "";
				$("search-city-name").style.display = "none";
				$("search-city-logo").style.display = "none";
			}
			document.forms[this.formname].city_id.value = id;
//			Search.getMargins();
			this.cancel();
		} else {
			this.regions = [ id ];
			this.submit();
		}
	}
};

var BrandSelector = {
	formname: "",
	showall: false,
	current: 0,
	altlogo: false,
	show: function(filtered,fmn,altlogo) {
		if (altlogo)
			this.altlogo = true;
		if (!filtered)
			this.showall = true;
		this.formname = fmn;
		request.html("/"+prefix+"dialog/brands/"+(filtered?"filtered/":"")+(this.current?"?current="+this.current:""), function(h) {
			dropAllElements($("brand-selector"));
			$("brand-selector").innerHTML = h;
			Hider.show();
			this.formname = fmn;
			showandcenter($("brand-selector"));
		});
	},
	cancel: function() {
		$("brand-selector").style.display = "none";
		Hider.hide();
	},
	choose: function(id) {
		this.current = id;
		var src = "";
		if (this.altlogo && $("brand-logo-"+id))
			src = $("brand-logo-"+id).getAttribute("src2");
		if (!src && $("brand-logo-"+id))
			src = $("brand-logo-"+id).src;
		if ($("search-brand-name")) {
			if (id) {
				$("search-brand-name").innerHTML = $("brand-name-"+id).innerHTML;
				$("search-brand-logo").innerHTML = $("brand-logo-"+id) ? "<img src=\""+src+"\" alt=\"\"/> " : "";
				$("search-brand-name").style.display = "";
				$("search-brand-logo").style.display = "";
			} else {
				$("search-brand-name").innerHTML = "";
				$("search-brand-logo").innerHTML = "";
				$("search-brand-name").style.display = "none";
				$("search-brand-logo").style.display = "none";
			}
		} else {
			if (id) {
				$("search-brand-select").innerHTML = ($("brand-logo-"+id) ? "<img src=\""+src+"\" alt=\"\"/> " : "")+$("brand-name-"+id).innerHTML;
				$("search-brand-select").style.display = "";
			} else {
				$("search-brand-select").innerHTML = "";
				$("search-brand-select").style.display = "none";
			}
		}
		if (document.forms[this.formname].brand)
			document.forms[this.formname].brand.value = id;
		else
			document.forms[this.formname].brand_id.value = id;
		while ($("search-model-select").options.length>1)
			$("search-model-select").options[1] = null;
		this.cancel();
		if (this.altlogo)
			Search.getMargins();
		if (id) {
			request.json("/"+prefix+"search/lookupmodels/"+id+"/"+(this.showall?"?all=1":""), function(rs) {
				for (var i=0; i<rs.length; i++) {
					var o = new Option();
					o.text = rs[i].name;
					o.value = rs[i].id;
					$("search-model-select").options[$("search-model-select").options.length] = o;
				}
				$("search-model").style.display = "block";
				$("search-model-select").disabled = false;
			});
		} else {
//			$("search-model").style.display = "none";
			$("search-model-select").disabled = true;
		}
	},
	loadModels: function(select,showall,update) {
		var idx = $("search-model-select").multiple ? 0 : 1;
		while ($("search-model-select").options.length>idx)
			$("search-model-select").options[idx] = null;
		var sel = [ ];
		for (var i=0; i<select.options.length; i++)
			if (select.options[i].selected && select.options[i].value>0)
				sel.push("id[]="+select.options[i].value);
		if (sel.length>0) {
			request.json("/"+prefix+"search/lookupmodels/?"+sel.join("&")+(showall?"&all=1":""), function(rs) {
				for (var i=0; i<rs.length; i++) {
					var o = new Option();
					o.text = rs[i].name;
					o.value = rs[i].id;
					$("search-model-select").options[$("search-model-select").options.length] = o;
				}
				$("search-model").style.display = "block";
				$("search-model-select").disabled = false;
				removeClassName($("search-model-select"), "disabled");
			});
		} else {
//			$("search-model").style.display = "none";
			$("search-model-select").disabled = true;
			addClassName($("search-model-select"), "disabled");
		}
		if (update)
			Search.getMargins();
	}
};

var Hider = {
	show: function() {
		if (!$("hider")) {
			var tmp = document.createElement("div");
			tmp.id = "hider";
			document.documentElement.childNodes[1].appendChild(tmp);
		}
		$("hider").style.display = "block";
	},
	hide: function() {
		$("hider").style.display = "none";
	}
};

var Email = {
	id: 0,
	id2: 0,
	show: function(id,id2) {
		this.id = id;
		this.id2 = id2;
		request.html("/"+prefix+"email/form/"+id+"/"+id2+"/", function(h) {
			dropAllElements($("email"));
			$("email").innerHTML = h;
			showandcenter($("email"), $("email").parentNode);
			$("email-info").style.display = "";
			$("email-error").style.display = "none";
		});
	},
	cancel: function() {
		$("email").style.display = "none";
	},
	submit: function() {
		var vars = {
//			uname: $("email-name").value,
//			uemail: $("email-email").value,
			captcha: $("email-captcha") ? $("email-captcha").value : "",
			umessage: $("email-message").value,
			uemail: $("email-email").value,
			uname: $("email-name").value,
			brief: true
		};
		request.post("/"+prefix+"email/send/"+this.id+"/"+this.id2+"/", vars, function(rs) {
			dropAllElements($("email"));
			$("email").innerHTML = rs.html;
			showandcenter($("email"), $("email").parentNode);
		});
	}
};

var Countries = {
	currentcountry: 0,
	langs: [],
	add: function() {
		this.currentcountry = "";
		this.clear();
		$("form").action = "./add/";
		showandcenter($("dialog"), $("dialog").parentNode);
		if (this.langs[0])
			$("name-"+this.langs[0]).focus();
		$("trlogo").style.display = "none";
	},
	edit: function(id) {
		this.currentcountry = id;
		this.clear();
		$("form").action = "./edit/"+id+"/";
		request.json("./one/"+id+"/", function(rs) {
			if (rs.logo) {
				$("tdlogo").innerHTML = "<img src=\""+rs.logo+"\">";
				$("trlogo").style.display = "";
			} else
				$("trlogo").style.display = "none";
			$("urlname").value = rs.urlname;
			$("ussr").checked = rs.ussr=="1" ? true : false;
			walk(rs.langs, function(n,v) {
				$("name-"+v.language_id).value = v.name;
			});
			showandcenter($("dialog"), $("dialog").parentNode);
			if (Countries.langs[0])
				$("name-"+Countries.langs[0]).focus();
		});
	},
	submit: function() {
		$("form").submit();
		return;
		
		var vars = { "urlname": $("urlname").value, ussr: $("ussr").checked?1:0 };
		for (var i=0; i<this.langs.length; i++) {
			vars["name["+this.langs[i]+"]"] = $("name-"+this.langs[i]).value;
//			vars["urlname["+this.langs[i]+"]"] = $("urlname-"+this.langs[i]).value;
		}
		if (this.currentcountry) {
			request.post("./edit/"+this.currentcountry+"/", vars, function(rs) {
				Countries.cancel();
				Countries.refresh();
			});
		} else {
			request.post("./add/", vars, function(rs) {
				Countries.cancel();
				Countries.refresh();
			});
		}
	},
	remove: function(id) {
		if (!confirm("Are you sure?"))
			return;
		request.json("./delete/"+id+"/", function(rs) {
			dropElement($("row-"+id));
		});
	},
	clear: function() {
		$("urlname").value = "";
		for (var i=0; i<this.langs.length; i++)
			$("name-"+this.langs[i]).value = "";
	},
	cancel: function() {
		$("dialog").style.display = "none";
	},
	refresh: function() {
		request.html("./lst/", function(h) {
			dropAllElements($("list"));
			$("list").innerHTML = h;
		});
	}
};

var Contact = {
	show: function() {
		request.html("/"+prefix+"contact/", function(h) {
			dropAllElements($("contact-popup"));
			$("contact-popup").innerHTML = h;
			showandcenter($("contact-popup"));
		});
	},
	submit: function() {
		var vars = {
			text: $("contact-text").value,
			uemail: $("contact-email").value,
			uname: $("contact-name").value,
			captcha: $("contact-captcha") ? $("contact-captcha").value : ""
		};
		request.post("/"+prefix+"contact/send/", vars, function(rs) {
			dropAllElements($("contact-popup"));
			$("contact-popup").innerHTML = rs.result;
			showandcenter($("contact-popup"));
		});
	},
	cancel: function() {
		dropAllElements($("contact-popup"));
		$("contact-popup").style.display = "none";
	}
};

var Settings = {
	region: function() {
		request.html("/"+prefix+"dialog/regions/?settings", function(h) {
			dropAllElements($("settings"));
			$("settings").innerHTML = h;
			Hider.show();
			$("settings").style.display = "block";
//			$("wrapper").style.paddingTop = "15px";
		});
	},
	language: function() {
		request.html("/"+prefix+"dialog/languages/", function(h) {
			dropAllElements($("settings"));
			$("settings").innerHTML = h;
			Hider.show();
			$("settings").style.display = "block";
//			$("wrapper").style.paddingTop = "15px";
		});
	},
	currency: function() {
		request.html("/"+prefix+"dialog/currencies/", function(h) {
			dropAllElements($("settings"));
			$("settings").innerHTML = h;
			Hider.show();
			$("settings").style.display = "block";
//			$("wrapper").style.paddingTop = "15px";
		});
	},
	cancel: function() {
		dropAllElements($("settings"));
		$("settings").style.display = "none";
//		$("wrapper").style.paddingTop = "0px";
	}
}

var Browse = {
	filter: { },
	init: function(filter) {
		this.filter = filter;
	},
	showlist: function(name) {
		if ($("browse-block-"+name).className=="browse-block")
			$("browse-block-"+name).className = "browse-block-open";
		else
			$("browse-block-"+name).className = "browse-block";
	},
	add: function(name,value,dontredirect) {
		this.filter[name] = value;
		if (!dontredirect)
			this.apply();
	},
	drop: function(name,dontredirect) {
		this.filter[name] = "null";
		if (!dontredirect)
			this.apply();
	},
	showbrands: function(mode) {
		request.html("./loadbrands/"+(mode=="all"?"all/":"limited/"), function(h) {
			dropAllElements($("browse-brands"));
			$("browse-brands").innerHTML = h;
		});
	},
	showmodels: function(brandid,mode) {
		request.html("./loadmodels/"+(mode=="all"?"all/":"limited/")+"?brand="+brandid, function(h) {
			dropAllElements($("browse-models"));
			$("browse-models").innerHTML = h;
		});
	},
	apply: function() {
		var vars = "";
		walk(this.filter, function(name, value) {
			if (value!="null")
				vars += (vars?"&":"")+name+"="+value;
		});
		window.location = "./"+(vars?"?"+vars:"");
	}
};

