//Hilite={elementid:"content",exact:false,max_nodes:1000,onload:true,style_name:"hilite",style_name_suffix:true,debug_referrer:""};Hilite.search_engines=[["google\\.","q"],["search\\.yahoo\\.","p"],["search\\.msn\\.","q"],["search\\.live\\.","query"],["search\\.aol\\.","userQuery"],["ask\\.com","q"],["altavista\\.","q"],["feedster\\.","q"],["search\\.lycos\\.","q"],["alltheweb\\.","q"],["technorati\\.com/search/([^\\?/]+)",1],["dogpile\\.com/info\\.dogpl/search/web/([^\\?/]+)",1,true]];Hilite.decodeReferrer=function(_1){var _2=null;var _3=new RegExp("");for(var i=0;i<Hilite.search_engines.length;i++){var se=Hilite.search_engines[i];_3.compile("^http://(www\\.)?"+se[0],"i");var _6=_1.match(_3);if(_6){var _7;if(isNaN(se[1])){_7=Hilite.decodeReferrerQS(_1,se[1]);}else{_7=_6[se[1]+1];}if(_7){_7=decodeURIComponent(_7);if(se.length>2&&se[2]){_7=decodeURIComponent(_7);}_7=_7.replace(/\'|"|,/g,"");_7=_7.split(/[\s,\+\.]+/);return _7;}break;}}return null;};Hilite.decodeReferrerQS=function(_8,_9){var _a=_8.indexOf("?");var _b;if(_a>=0){var qs=new String(_8.substring(_a+1));_a=0;_b=0;while((_a>=0)&&((_b=qs.indexOf("=",_a))>=0)){var _d,val;_d=qs.substring(_a,_b);_a=qs.indexOf("&",_b)+1;if(_d==_9){if(_a<=0){return qs.substring(_b+1);}else{return qs.substring(_b+1,_a-1);}}}}return null;};Hilite.hiliteElement=function(_e,_f){if(!_f||_e.childNodes.length==0){return;}var qre=new Array();for(var i=0;i<_f.length;i++){_f[i]=_f[i].toLowerCase();if(Hilite.exact){qre.push("\\b"+_f[i]+"\\b");}else{qre.push(_f[i]);}}qre=new RegExp(qre.join("|"),"i");var _12={};for(var i=0;i<_f.length;i++){if(Hilite.style_name_suffix){_12[_f[i]]=Hilite.style_name+(i+1);}else{_12[_f[i]]=Hilite.style_name;}}var _14=function(_15){var _16=qre.exec(_15.data.toLowerCase());if(_16){var val=_16[0];var k="";var _19=_15.splitText(_16.index);var _1a=_19.splitText(val.length);var _1b=_15.ownerDocument.createElement("SPAN");_15.parentNode.replaceChild(_1b,_19);_1b.className=_12[val.toLowerCase()];_1b.appendChild(_19);return _1b;}else{return _15;}};Hilite.walkElements(_e.childNodes[0],1,_14);};Hilite.hilite=function(){var q=Hilite.debug_referrer?Hilite.debug_referrer:document.referrer;var e=null;q=Hilite.decodeReferrer(q);if(q&&((Hilite.elementid&&(e=document.getElementById(Hilite.elementid)))||(e=document.body))){Hilite.hiliteElement(e,q);}};Hilite.walkElements=function(_1e,_1f,_20){var _21=/^(script|style|textarea)/i;var _22=0;while(_1e&&_1f>0){_22++;if(_22>=Hilite.max_nodes){var _23=function(){Hilite.walkElements(_1e,_1f,_20);};setTimeout(_23,50);return;}if(_1e.nodeType==1){if(!_21.test(_1e.tagName)&&_1e.childNodes.length>0){_1e=_1e.childNodes[0];_1f++;continue;}}else{if(_1e.nodeType==3){_1e=_20(_1e);}}if(_1e.nextSibling){_1e=_1e.nextSibling;}else{while(_1f>0){_1e=_1e.parentNode;_1f--;if(_1e.nextSibling){_1e=_1e.nextSibling;break;}}}}};

Hilite = {
	elementid : "content",
	exact : false,
	max_nodes : 1000,
	onload : true,
	style_name : "hilite",
	style_name_suffix : true,
	debug_referrer : ""
};
Hilite.search_engines = [ [ "google\\.", "q" ], [ "search\\.yahoo\\.", "p" ],
		[ "search\\.msn\\.", "q" ], [ "search\\.live\\.", "query" ],
		[ "search\\.aol\\.", "userQuery" ], [ "ask\\.com", "q" ],
		[ "altavista\\.", "q" ], [ "feedster\\.", "q" ],
		[ "search\\.lycos\\.", "q" ], [ "alltheweb\\.", "q" ],
		[ "technorati\\.com/search/([^\\?/]+)", 1 ],
		[ "dogpile\\.com/info\\.dogpl/search/web/([^\\?/]+)", 1, true ] ];
Hilite.decodeReferrer = function(_1) {
	var _2 = null;
	var _3 = new RegExp("");
	for ( var i = 0; i < Hilite.search_engines.length; i++) {
		var se = Hilite.search_engines[i];
		_3.compile("^http://(www\\.)?" + se[0], "i");
		var _6 = _1.match(_3);
		if (_6) {
			var _7;
			if (isNaN(se[1])) {
				_7 = Hilite.decodeReferrerQS(_1, se[1]);
			} else {
				_7 = _6[se[1] + 1];
			}
			if (_7) {
				_7 = decodeURIComponent(_7);
				if (se.length > 2 && se[2]) {
					_7 = decodeURIComponent(_7);
				}
				if ($('select[name=city]') && $('select[name=city]').val()) {
					var s = _7.match(',([^,]+),([^,]+)');
					if (s && s.length == 3) _7 = s[1]
				}
				_7 = _7.replace(/\'|"/g, "");
				_7 = _7.split(/[?\s,\+\.]+/);
				return _7;
			}
			break;
		}
	}
	return null;
};
Hilite.decodeReferrerQS = function(_8, _9) {
	var _a = _8.indexOf("?");
	var _b;
	if (_a >= 0) {
		var qs = new String(_8.substring(_a + 1));
		_a = 0;
		_b = 0;
		while ((_a >= 0) && ((_b = qs.indexOf("=", _a)) >= 0)) {
			var _d, val;
			_d = qs.substring(_a, _b);
			_a = qs.indexOf("&", _b) + 1;
			if (_d == _9) {
				if (_a <= 0) {
					return qs.substring(_b + 1);
				} else {
					return qs.substring(_b + 1, _a - 1);
				}
			}
		}
	}
	return null;
};
Hilite.hiliteElement = function(_e, _f) {
	if (!_f || _e.childNodes.length == 0) {
		return;
	}
	var qre = new Array();
	for ( var i = 0; i < _f.length; i++) {
		_f[i] = _f[i].toLowerCase();
		if (Hilite.exact) {
			qre.push("\\b" + _f[i] + "\\b");
		} else {
			qre.push(_f[i]);
		}
	}
	qre = new RegExp(qre.join("|"), "i");
	var _12 = {};
	for ( var i = 0; i < _f.length; i++) {
		if (Hilite.style_name_suffix) {
			_12[_f[i]] = Hilite.style_name + (i + 1);
		} else {
			_12[_f[i]] = Hilite.style_name;
		}
	}
	var _14 = function(_15) {
		var _16 = qre.exec(_15.data.toLowerCase());
		if (_16) {
			var val = _16[0];
			var k = "";
			var _19 = _15.splitText(_16.index);
			var _1a = _19.splitText(val.length);
			var _1b = _15.ownerDocument.createElement("SPAN");
			_15.parentNode.replaceChild(_1b, _19);
			_1b.className = _12[val.toLowerCase()];
			_1b.appendChild(_19);
			return _1b;
		} else {
			return _15;
		}
	};
	Hilite.walkElements(_e.childNodes[0], 1, _14);
};
Hilite.hilite = function() {
	var q = Hilite.debug_referrer ? Hilite.debug_referrer
			: document.referrer;
	var e = null;
	q = Hilite.decodeReferrer(q);
	if (q
			&& ((Hilite.elementid && (e = document
					.getElementById(Hilite.elementid))) || (e = document.body))) {
		Hilite.hiliteElement(e, q);
	}
};
Hilite.walkElements = function(_1e, _1f, _20) {
	var _21 = /^(script|style|textarea)/i;
	var _22 = 0;
	while (_1e && _1f > 0) {
		_22++;
		if (_22 >= Hilite.max_nodes) {
			var _23 = function() {
				Hilite.walkElements(_1e, _1f, _20);
			};
			setTimeout(_23, 50);
			return;
		}
		if (_1e.nodeType == 1) {
			if (!_21.test(_1e.tagName) && _1e.childNodes.length > 0) {
				_1e = _1e.childNodes[0];
				_1f++;
				continue;
			}
		} else {
			if (_1e.nodeType == 3) {
				_1e = _20(_1e);
			}
		}
		if (_1e.nextSibling) {
			_1e = _1e.nextSibling;
		} else {
			while (_1f > 0) {
				_1e = _1e.parentNode;
				_1f--;
				if (_1e.nextSibling) {
					_1e = _1e.nextSibling;
					break;
				}
			}
		}
	}
};















$(function(){
	Hilite.hilite();
	var intr = 7000;
	//if (document.location.search.indexOf('?ccc=1') == 0) intr = 700000000;
	$("div.scrollable").scrollable({
		size: 4,
		clickable: false,
		loop: true,
		interval: intr
	}); 
});


var site_root = '/';

function OnError(i1, i2, i3){
	alert("Javascript error: "+i1+"\n\n Url: "+i2+"\n Line: "+i3+"\n");
	//return false;
}
//window.onerror = OnError;

function ge(i) { return document.getElementById(i); }

function setClass(obj, cl, mode){
	var c = obj.className || "";
	var mask = new RegExp("(^| )" + cl + "($| )", "gi");
	if (mode == "?") mode = !c.match(mask);
	c = mode ? (c.match(mask) ? c : (c+" "+cl)) : c.replace(mask, " ");
	obj.className = c.replace(/ +/g, " ").replace(/(^ *| *$)/g, "");
}

var currentAlbum;
function showAlbum(a){
	if (currentAlbum) {
		setClass(currentAlbum, 'gallery_visible', false);
		//currentAlbum == null;
	}
	if (currentAlbum == a.parentNode.parentNode){
		currentAlbum = null;
	} else {
		setClass(a.parentNode.parentNode, 'gallery_visible', '?');
		currentAlbum = a.parentNode.parentNode;
	}
	return false;
}


/* функция проверяет поля формы на заполненность, добавляет запись для защиты от спама, добавляет названия полей в POST
пример:
<form action="test.php" onsubmit="return checkFormEx(this)" method="post" validateMode="full" makeLabels="true">
<input name="n" title="Имя"  />
</form>
*/
function formChecker(form) {
	this._form = form;
	this._validateMode = form.getAttribute('validator')
	// добавляем проверку от спама
	this.appendInput(form, 'hidden', 'hookEx', 'true');
}

/* функция добавляет к концу форму элемент INPUT с заданными парпаметрами */
formChecker.prototype.appendInput = function(parent, type, name, value) {
	var element = document.createElement('INPUT');
	element.type = type;
	element.name = name;
	element.value = value;
	parent.appendChild(element);
}

formChecker.prototype.inputValidator = function(form, input){
	if (input.tagName == 'SELECT') return true;
	var mode = input.getAttribute('validator');
	if (mode == null) mode = this._validateMode;
	if (mode == 'none') return true;

	var label = input.title;
	if (!label) label = input.name;

	var val = $.trim(input.value);

	if (mode == 'full' && input.title != '' && val == '') {
		alert("Вы должны заполнить поле '" + label + "'.");
		//alert("Your must fill '" + label + "'.");
		input.focus();
		return false;
	}
	return true;
}

formChecker.prototype.isLabelExists = function (label_name){
	for (var ii = 0; ii < this._form.childNodes.length; ii++){
		var cc = this._form.childNodes[ii];
		if (!cc.tagName || cc.tagName != 'INPUT' && cc.tagName != 'TEXTAREA') continue;
		if (cc.name == label_name) return true;
	}
	return false;
}

formChecker.prototype.check = function(formItem) {
	for (var i = 0; i < formItem.childNodes.length; i++){
		var c = formItem.childNodes[i];
		if (c.tagName && (c.tagName == 'INPUT' || c.tagName == 'TEXTAREA' || c.tagName == 'SELECT')){
			if (c.tagName == 'INPUT' && c.type == 'submit') submitForm = c;
			// валидатор полей в действии :)
			if (this.inputValidator(this._form, c) == false) return false;
			if (c.title > ''){
				var label_name = 'labels[' + c.name + ']';
				// ищем, есть ли label для этого поля? если label'а нет - добавляем его
				if (!this.isLabelExists(label_name)) this.appendInput(this._form, 'hidden', label_name, c.title);
			}
		} else {
			// обязательно делаем рекурсию для вложенных элементов
			if (this.check(c) == false) return false;
		}
	}
	return true;
}

var submitForm = false;
function checkFormEx(form){
	var c = new formChecker(form);
	var r = c.check(form);
	if (r && submitForm) submitForm.disabled = true;
	return r;
}


function showBlock(block_id){
	var block = document.getElementById(block_id);
	if (block.style.display == 'block'){
		block.style.display = 'none';
	} else {
		block.style.display = 'block';
	}
}

var currentcity = 0;
function showDistrictsFrom(city){
	if (city == 0){
		var i = document.getElementById('city').options.selectedIndex;
		city = document.getElementById('city').options[i].value;
	}
	var el = document.getElementById('district'+city);
	el.style.display = 'inline';
	if (currentcity > 0){
		document.getElementById('district'+currentcity).style.display = 'none';
	}
	currentcity = city;
}

function setHtml(block_id, html){
	var block = document.getElementById(block_id);
	block.innerHTML = html;
}


function checkField(name, label, fullText){
	if (name=='' || label=='') return true;
	var current = '';
	for(var i=0; i<document.getElementsByName(name).length; i++) {
		current = document.getElementsByName(name).item(i);
		if (current.tagName == 'input') break;
	}

	if (current == ''){
		alert("Error: can't find input - " + name);
		return false;
	}
	if (current.value == ''){
		current.focus();
		if (fullText) alert(label);
		else alert('Пожалуйста заполните поле "' + label + '"');
		return false;
	}
	return true;
}

function getE(elementId){
	return document.getElementById(elementId);
}

function checkForm(formName){
	if (formName == 'basket'){
		if (checkField('n', 'Имя')==false) return false;
		if (checkField('e', 'E-mail')==false) return false;
		if (checkField('c', 'Город')==false) return false;
		if (checkField('a', 'Адрес')==false) return false;
		if (checkField('p', 'Телефон')==false) return false;
		return true;
	} else alert('Error: function checkForm - wrong form name "' + formName + '"');

	return false;
}

function imgWin(img, s){
	var scr = '';
	if (s == '' || typeof(s) == 'undefined') {
		scr = '/misc/preview.htm';
	} else {
		scr = s + 'misc/preview.htm';;
	}

	var x = screen.width/2 - 400/2;
	var y = screen.height/2 - 300/2;
	var wn=window.open(scr+'?'+escape(img),'win','resizable,width=400,height=300,top='+y+',left='+x+',screenX='+x+',screenY='+y+',status=0');
	wn.focus();
	return false;
}

function isInteger(val){
	if (!val) return false;
	var string="1234567890";

	for(var i=0; i<val.length; i++){
		if (string.indexOf( val.charAt(i) ) == -1) return false;
	}
	return true;
}





function clickImg(el){
	var element = document.getElementById('bigPicture');
	return imgWin(fullPictures[currentIndex]);
}




var currentIndex = 1;
function loadPicture(index){
	var element = document.getElementById('bigPicture');
	var previewElement = document.getElementById('preview_'+currentIndex);
	var previewNewElement = document.getElementById('preview_'+index);
	var url = bigPictures[index];
	var href = element.parentNode;

	if ( !url ) {
		url = '/images/skin/no_foto.png';
	}
	
	href.href = url;
	element.src = url;
	currentIndex = index;

	if ( !previewElement ) return;
	if ( !previewNewElement ) return;
	previewElement.className = 'i';
	previewNewElement.className = 'i selected';
}




/*
if (flashVersion >= 8) {
	var f = new Flash('trees');
	f.setSWF('misc/trees.swf', '660px', '305px');
	f.setParam('flashVars', 'dataXml=misc/trees.xml');
	f.setParam('wmode', 'transparent');
	f.setParam('quality', 'high');
	f.inHtml('<div id="treesContainer">|||</div>');
	f.display();
}
*/

var flashVersion = 0;
var isOpera = Boolean(window["opera"]);
var isIE = (navigator.userAgent.indexOf("MSIE") != -1) && !isOpera;

function Flash(name) {
	this._swf = '';
	this._params = new Array();
	this._attributes = new Array();
	this._spliter = '|||';
	this._htmlBefore = '';
	this._htmlAfter = '';
	if (name){
		if (isIE) this.setAttribute('id', name);
		else this.setAttribute('name', name);
	}
}

Flash.prototype.setSWF = function (_swf, _width, _height){
	this._swf = _swf;
	this.setAttribute('width', _width);
	this.setAttribute('height', _height);
}

Flash.prototype.setParam = function (paramName, paramValue){
	this._params[this._params.length] = paramName+this._spliter+paramValue;
}

Flash.prototype.setAttribute = function (attributeName, attributeValue){
	this._attributes[this._attributes.length] = attributeName+this._spliter+attributeValue;
}

Flash.prototype.getAttributeFromArray = function(arr){
	var attributes = '';
	var attribute = '';
	for (var i=0;i<arr.length;i++ ) {
		attribute = arr[i].split(this._spliter);
		attributes += attribute[0] + '="' + attribute[1] + '" ';
	}
	return attributes;
}

/* указывает html обвертку для flash */
Flash.prototype.inHtml = function(html){
	var parts = html.split(this._spliter);
	this._htmlBefore = parts[0];
	this._htmlAfter = parts[1];
}

Flash.prototype.display = function(alertTxt) {
	var attributes = this.getAttributeFromArray(this._attributes);
	var params = this.getAttributeFromArray(this._params);

	var _txt = this._htmlBefore;
	_txt += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" '+attributes+'>\n';
	_txt += '<param name="movie" value="'+this._swf+'" />\n'
	_txt += '<param name="quality" value="high" />\n';
	_txt += '<param name="menu" value="false" />\n';

	var _param = '';
	var i = 0;
	for (var i=0;i<this._params.length;i++ ) {
		_param = this._params[i].split ('|||');
		_txt += '\t<param name="'+_param[0]+'" value="'+_param[1]+'" />\n';
	}

	_txt += '<embed menu="false" '+attributes+' src="'+this._swf+'" '+params+' quality="high" type="application/x-shockwave-flash"></embed>\n';
	_txt += '</object>\n';
	_txt += this._htmlAfter;
	if (alertTxt) alert(_txt);
	document.write(_txt);
}

function getSWF(name){
	if (isOpera) return document[name];
	return isIE ? window[name] : document[name][1];
}

/* GetFlashVersion - must be last function in file */
function GetFlashVersion() {
	try {
		var ie=0;
		var fz=0;
		var n=navigator;
		
		if (n.platform=='Win32' && !window.opera && n.appName!='Netscape') {
			ie=1;
			for (var i=3;i<10;i++) {
				if (eval('new ActiveXObject("ShockwaveFlash.ShockwaveFlash.'+i+'")')) flashVersion = i;
			}
		}
		
		if (ie==0 && n.plugins) {
			for (var i=0;i<n.plugins.length;i++) {
				if (n.plugins[i].name.indexOf('Flash')> -1) {
					fz = parseInt(n.plugins[i].description.charAt(16));
					if (fz > flashVersion) flashVersion = fz;
				}
			}
		}
	} catch(e) {}
}
GetFlashVersion();





























var last_shown_block = null;

function show_hide_block(eList){
	eList.className = eList.className ? "" : "active";
	var eTR = eList;
	while(eTR.nodeName != "TR"){
		eTR = eTR.parentNode
	}
	var cell_0 = cell(eTR,0);
	var cell_1 = cell(eTR,1);
	var cell_2 = cell(eTR,2);

	cell_0.className = cell_0.className ? "" : "l";
	cell_0.style.backgroundPosition = cell_0.className ? eList.offsetWidth+5+"px 0.9em" : "";
	cell_1.className = cell_1.className ? "" : "l";

	var eUL = cell_2;
	while(eUL.nodeName != "UL"){
		if (!eUL.firstChild) return;
		eUL = eUL.firstChild.nodeName!="#text" ? eUL.firstChild : eUL.childNodes[1]
	}
	eUL.className = eUL.className ? "" : "active";

	if(last_shown_block && last_shown_block !== eList) show_hide_block(last_shown_block)
	last_shown_block = last_shown_block ? null : eList;

}


function cell(row,celnum) {
	var i = 0;
	for (var cell = row.firstChild; cell != null; cell = cell.nextSibling)
        	if (cell.nodeType == 1){
			if (celnum == i) return cell;
			i++;
		}
}


function showLogin(){
	var f = ge('loginform');
	if (f) {
		if (f.style.display == 'block') f.style.display = 'none';
		else f.style.display = 'block';
	}
}




function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}


function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'block':(v=='hide')?'none':v; }
    obj.display=v; }
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function changeTireType(){
	var t = document.getElementsByName('title');
	var tireType = 0;
	var tireTime = ge('tireTime');
	
	for(var i=0; i<t.length; i++) {
		if (t[i].type == 'radio' && t[i].checked) tireType = t[i].value;
	}
	if (tireType == 3) tireTime.style.display = 'none';
	else tireTime.style.display = 'block';
}

function maxlength(i){
	if (i.value.length > i.getAttribute('maxlength')) i.value = i.value.substr(0,i.getAttribute('maxlength'));
}

function sleep(ms){
	var date = new Date(); 
	var curDate = null;
	do { curDate = new Date(); }
	while ( curDate - date < ms);
}