if(window.parent.uGLOBALS!=undefined) var uGLOBALS=window.parent.uGLOBALS;

uGLOBALS.msg=uGLOBALS.langset[ uGLOBALS.lang ];

function getmicrotime(name){
	if(name==undefined) name='def';
	if(uGLOBALS['counters']==undefined) uGLOBALS['counters']=[];
	var tm=(new Date()).getTime();
	if(uGLOBALS['counters'][name]==undefined) uGLOBALS['counters'][name]=tm;
	else return (tm-uGLOBALS['counters'][name])/1000;
}

function uClear(){
	uGLOBALS['u']=[];
}
var u=function(q, q2){
	this.o=null;
	if(uGLOBALS['u'][q]!==undefined && q2==undefined) this.o=uGLOBALS['u'][q];
	if(this.o!==null) return this.o;

	this.extend=function(el){
		var elm=null, tmp;
		if(el!==undefined) elm=el;
		else elm=this.o;

		for(var i in uGLOBALS['uExtend'].elm)
			elm[i]=uGLOBALS['uExtend'].elm[i];

		tmp=elm.tagName.toLowerCase();
		if(uGLOBALS['uExtend'].tag[tmp]!==undefined)
			for(var i in uGLOBALS['uExtend'].tag[tmp])
				elm[i]=uGLOBALS['uExtend'].tag[tmp][i];

		return elm;
	};

	var do_extend=true;
	if(q.substr(0,1)=='#'){
		this.o=document.getElementById(q.substr(1));
		if(!this.o) return false;
		this.extend();
	}else if(q.substr(0,1)=='.'){
		do_extend=false;
		var className=q.substr(1);
		this.o={
			els : []
		};

		var hasClassName=new RegExp('(\\s|^)'+className+'(\\s|$)');
		var els=document.getElementsByTagName('*');

		for(var i=0; (el=els[i])!=null; i++){
			var tmp=el.className;
			if(tmp && tmp.indexOf(className)!=-1 && hasClassName.test(tmp))
				this.o.els.push(this.extend(el));
		}

		for(var i in uGLOBALS['uExtend'].arr)
			this.o[i]=uGLOBALS['uExtend'].arr[i];
	}
	uGLOBALS['u'][q]=this.o;
	return this.o;
}
uGLOBALS['uExtend']={
	elm : {
		hide : function(vis){
			if(vis==undefined || !vis) this.style.display='none';
			else this.style.visibility='hidden';
			return this;
		},
		show : function(vis){
			if(vis==undefined || !vis) this.style.display='';
			else this.style.visibility='visible';
			return this;
		},
		visible : function(vis){
			if(vis==undefined || !vis){
				if(this.style.display=='') return true;
				else return false;
			}
			else if(this.style.visibility=='visible') return true;
			return false;
		},
		toggle : function(){
			if(this.style.display=='') return this.hide();
			else return this.show();
		},
		disable : function(a){
			if(a) this.disabled=true;
			else this.disabled=false;
			return this;
		},
		hasClass : function(n){
			if(!this.className){ this.className=''; return false; }
			return this.className.match(new RegExp('(\\s|^)'+n+'(\\s|$)'));
		},
		addClass : function(n){
			if(!this.hasClass(n)) this.className+=' '+n;
			return this;
		},
		setClass : function(n){
			this.className=n;
			return this;
		},
		killClass : function(n){
			if(this.hasClass(n)) this.className=this.className.replace(new RegExp('(\\s|^)'+n+'(\\s|$)'),' ');
			return this;
		},
		toggleClass : function(n){
			if(!this.hasClass(n)) this.addClass(n);
			else this.killClass(n);
			return this;
		},
		opacity : function(v){
			if(BrowserDetect.browser=='Explorer'){
				var o=this.filters['DXImageTransform.Microsoft.alpha'] || this.filters.alpha;
				if(o) o.opacity=v;
				else this.style.filter+='progid:DXImageTransform.Microsoft.Alpha(opacity='+v+')';
			}else{
				this.style.opacity=v/100;
				this.style.MozOpacity=v/100;
				this.style.KhtmlOpacity=v/100;
			}

			this.animation.opacity=v;
			return this;
		},
		appendTo : function(q){
			u(q).appendChild(this);
			return this;
		},
		fade : function(dir, speed, i){
			if(speed=='fast') speed=20;
			else if(speed=='slow') speed=50;

			if(i==undefined){
				if(dir=='in') this.opacity(0);
				else this.opacity(100);
			}else{
				if(dir=='in') this.opacity(this.animation.opacity+speed/2);
				else this.opacity(this.animation.opacity-speed/2);
				if(this.animation.opacity<=0){
					this.animation.opacity=0;
					this.animation.tmr.clear('fade'+dir+'-'+this.id);
					return;
				}
			}

			this.animation.tmr.clear('fade'+dir+'-'+this.id);
			this.animation.tmr.set('fade'+dir+'-'+this.id, 'u(\'#'+this.id+'\').fade(\''+dir+'\', '+speed+', 1);', speed);

			return this;
		},
		animation : {
			tmr : {
				stack : [],
				set : function(s, cmd, ms){
					this.stack['uLib-ani-'+s]=setInterval(cmd, ms);
				},
				clear : function(s){
					window.clearInterval(this.stack['uLib-ani-'+s]);
				}
			},
			opacity : false
		}
	},
	arr : {
		each : function(callback){
			for(var i in this.els){
				this.els[i].callback=callback;
				this.els[i].callback();
			}
		}
	},
	tag : {
		iframe : {
			auto_resize : function(par, m){
				if(m==undefined) m=false;
				if(par==undefined) par=this;
				else par=u(par);
				if(m=='h' || !m) par.style.height=this.contentWindow.document.body.scrollHeight+'px';
				if(m=='w' || !m) par.style.width=this.contentWindow.document.body.scrollWidth+'px';
				return this;
			}
		},

		// for <select>
		select : {
			select : function(v){
				for(var i=0; i<this.options.length; i++)
					if(this.options[i].value.toLowerCase()==v) this.options[i].selected=true;
				return this;
			},
			add : function(i, v){
				this.options.add(new Option(v, i));
				return this;
			},
			clear : function(){
				if(this.options.length)
					for(var i=this.options.length-1; i>=0; i--) this.remove(i);
				return this;
			}
		},

		// for <form>
		form : {
			serialize : function(skip){
				var out=[], els=this.getElementsByTagName('*'), skip_els=[];
				if(skip!==undefined)
					for(var i=0; i<skip.length; i++)
						skip_els[ skip[i] ]=true;

				for(var i=0; i<els.length; i++){
					var el=els[i];
					if(!el.disabled && el.name && el.name.length>0){
						if(skip_els[el.name]!==undefined) continue;

						switch(el.tagName.toLowerCase()){
							case 'input':
							switch(el.type){
								case 'checkbox':
								case 'radio':
									if(el.checked) out.push(el.name+'='+encodeURIComponent(el.value));
								break;
								case 'hidden':
								case 'password':
								case 'text':
									out.push(el.name+'='+encodeURIComponent(el.value));
								break;
							}
							break;
							case 'select':
							case 'textarea':
								out.push(el.name+'='+encodeURIComponent(el.value));
							break;
						}
					}
				}
				return implode('&', out);
			}
		}
	}
};

var uTpl={
	tpl : {},
	defined : function(sect){
		if(this.tpl[sect]==undefined) return false;
		return true;
	},
	define : function(sect, s){
		s=s.replace(/'/g, '\\\'')
		.replace(/\\\\/g, '\\\\')
		.replace(/[\r\t\n]/g, ' ')
		.split('{').join('\'+data.')
		.split('}').join('+\'');
		this.tpl[sect]=new Function('data', 'return \''+s+'\';');
	},
	eval : function(data, sect){
		return this.tpl[sect](data);
	}
};

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ string: navigator.userAgent, subString: "Chrome", identity: "Chrome" },
		{ string: navigator.userAgent, subString: "OmniWeb", versionSearch: "OmniWeb/", identity: "OmniWeb" },
		{ string: navigator.vendor, subString: "Apple", identity: "Safari" },
		{ prop: window.opera, identity: "Opera" },
		{ string: navigator.vendor, subString: "iCab", identity: "iCab" },
		{ string: navigator.vendor, subString: "KDE", identity: "Konqueror" },
		{ string: navigator.userAgent, subString: "Firefox", identity: "Firefox" },
		{ string: navigator.vendor, subString: "Camino", identity: "Camino" },
		// for newer Netscapes (6+)
		{ string: navigator.userAgent, subString: "Netscape", identity: "Netscape" },
		{ string: navigator.userAgent, subString: "MSIE", identity: "Explorer", versionSearch: "MSIE" },
		{ string: navigator.userAgent, subString: "Gecko", identity: "Mozilla", versionSearch: "rv" },
		// for older Netscapes (4-)
		{ string: navigator.userAgent, subString: "Mozilla", identity: "Netscape", versionSearch: "Mozilla" }
	],
	dataOS : [
		{ string: navigator.platform, subString: "Win", identity: "Windows" },
		{ string: navigator.platform, subString: "Mac", identity: "Mac" },
		{ string: navigator.platform, subString: "Linux", identity: "Linux" }
	]
};
BrowserDetect.init();

var FlashDetect = new function(){
	var self = this;
	self.installed = false;
	self.raw = "";
	self.major = -1;
	self.minor = -1;
	self.revision = -1;
	self.revisionStr = "";
	var activeXDetectRules = [
		{
			"name":"ShockwaveFlash.ShockwaveFlash.7",
			"version":function(obj){
				return getActiveXVersion(obj);
			}
		},
		{
			"name":"ShockwaveFlash.ShockwaveFlash.6",
			"version":function(obj){
				var version = "6,0,21";
				try{
					obj.AllowScriptAccess = "always";
					version = getActiveXVersion(obj);
				}catch(err){}
				return version;
			}
		},
		{
			"name":"ShockwaveFlash.ShockwaveFlash",
			"version":function(obj){
				return getActiveXVersion(obj);
			}
		}
	];
	var getActiveXVersion = function(activeXObj){
		var version = -1;
		try{
			version = activeXObj.GetVariable("$version");
		}catch(err){}
		return version;
	};
	var getActiveXObject = function(name){
		var obj = -1;
		try{
			obj = new ActiveXObject(name);
		}catch(err){}
		return obj;
	};
	var parseActiveXVersion = function(str){
		var versionArray = str.split(",");//replace with regex
		return {
			"raw":str,
			"major":parseInt(versionArray[0].split(" ")[1], 10),
			"minor":parseInt(versionArray[1], 10),
			"revision":parseInt(versionArray[2], 10),
			"revisionStr":versionArray[2]
		};
	};
	var parseStandardVersion = function(str){
		var descParts = str.split(/ +/);
		var majorMinor = descParts[2].split(/\./);
		var revisionStr = descParts[3];
		return {
			"raw":str,
			"major":parseInt(majorMinor[0], 10),
			"minor":parseInt(majorMinor[1], 10),
			"revisionStr":revisionStr,
			"revision":parseRevisionStrToInt(revisionStr)
		};
	};
	var parseRevisionStrToInt = function(str){
		return parseInt(str.replace(/[a-zA-Z]/g, ""), 10) || self.revision;
	};
	self.majorAtLeast = function(version){
		return self.major >= version;
	};
	self.FlashDetect = function(){
		if(navigator.plugins && navigator.plugins.length>0){
			var type = 'application/x-shockwave-flash';
			var mimeTypes = navigator.mimeTypes;
			if(mimeTypes && mimeTypes[type] && mimeTypes[type].enabledPlugin && mimeTypes[type].enabledPlugin.description){
				var version = mimeTypes[type].enabledPlugin.description;
				var versionObj = parseStandardVersion(version);
				self.raw = versionObj.raw;
				self.major = versionObj.major;
				self.minor = versionObj.minor;
				self.revisionStr = versionObj.revisionStr;
				self.revision = versionObj.revision;
				self.installed = true;
			}
		}else if(navigator.appVersion.indexOf("Mac")==-1 && window.execScript){
			var version = -1;
			for(var i=0; i<activeXDetectRules.length && version==-1; i++){
				var obj = getActiveXObject(activeXDetectRules[i].name);
				if(typeof obj == "object"){
					self.installed = true;
					version = activeXDetectRules[i].version(obj);
					if(version!=-1){
						var versionObj = parseActiveXVersion(version);
						self.raw = versionObj.raw;
						self.major = versionObj.major;
						self.minor = versionObj.minor;
						self.revision = versionObj.revision;
						self.revisionStr = versionObj.revisionStr;
					}
				}
			}
		}
	}();
};

function autobann_swf_img(link, swf, img, h, w){
	var html='';
	var seed=Math.round(Math.random()*65535);

	if(!FlashDetect.installed || FlashDetect.major<6){
		html+='<a href="'+link+'" target="_blank"><img src="'+img+'?seed='+seed+'"></a>';
	}else{
		if(swf.indexOf('?')>0) swf+='&'; else swf+='?';
		swf+='seed='+seed+'&link1='+link;

		html+='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+w+'" height="'+h+'">';
		html+='<param name=movie VALUE="'+swf+'">';
		html+='<param name=quality VALUE=high>';
		html+='<param name="wmode" value="opaque" />';
		html+='<embed wmode="opaque" src="'+swf+'" quality=high bgcolor=#FFFFFF width="'+w+'" height="'+h+'" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></embed>';
		html+='</object>';
	}

	return html;
}

// uLib

var img_dir='site'; var params,server; var defs=[]; var FrmST=''; var is_logged=false; var continue_after_login='/';
var curPage=null;

function win(url,awidth,aheight,wnd,no_scroll,no_bar) {
	var scroll = (no_scroll) ? 'no':'yes'; var bar = (no_bar) ? 'no':'yes';
	var x=(self.screen.width-awidth)/2; if (x<0) x=0;
	var y=(self.screen.height-aheight)/2; if (y<0) y=0;
	var hwnd=window.open(url,wnd,"width=" + awidth + ", height=" + aheight + ", replace=no, scrollbars=" + scroll + ", toolbar= " + bar + ", resize=no, left="+ x +", top=" + y);
	hwnd.focus();
}

uMonths=uGLOBALS.msg.months;
function date_format(fmt,dt) {
	if (typeof(dt)=='string') dt=new Date(dt); if (!dt) dt = new Date();
	var i=0, j=2, out='', tmp='', s='';
	for (i=0;i<fmt.length;i++) {
		switch (s=fmt.substr(i,1))  {
			case 'd': tmp=''+dt.getDate(); if (tmp.length<2) tmp='0'+tmp; break;
			case 'm': tmp=''+(dt.getMonth()+1); if (tmp.length<2) tmp='0'+tmp; break;
			case 'M':
				tmp=uMonths[dt.getMonth()];
			break;
			case 'y': tmp=''+dt.getFullYear(); tmp=tmp.substr(2); break;
			case 'Y': tmp=''+dt.getFullYear(); break;
			default: tmp=fmt.substr(i,1);
		}
		out+=tmp;
	}
	return out;
}

function make_date(dt, d){
	var ndt=null; var atmp=dt.split(d);
	var tmp=atmp[2]*atmp[1]*atmp[0];
	if (atmp.length!=3 || isNaN(tmp)) ndt=new Date();
	else ndt = new Date(atmp[2],atmp[1]-1,atmp[0]);
	return ndt;
}


var limi=0;
function print_r(aObj,offset) {
	if (typeof(aObj)!='object') return aObj;
	if (!offset) { offset=''; limi=0; }
	var out=''; if(limi++>20) return '...';
	for (var i in aObj) {
		if (typeof(aObj[i])=='object') out+=offset+i+'\r\n'+print_r(aObj[i],offset+'  ');
		else if (typeof(aObj[i])=='function') out+=offset+i+' - function\r\n';
		else out+=offset+i+' - '+aObj[i]+'\r\n';
	}
	if (offset=='') return alert(out); else return out;
}

function phg_movie_DoFSCommand(cmd,prm){
	if (cmd=='hide') {
		var fTr=document.getElementById('flashcontainer');
		if(fTr) fTr.style.display='none';
	} else if (cmd=='size') {
		//
	}
}

// клик по body
function body_click(){
	try{
		if(window.show_cld) show_cld();
		if(window.SW){
			SW.hide_suggest();
			SW.hide_city_sel();
		}
	}catch(err){
		// some error..
	}
}

function body_onload(){
	FindAllButtons();
	FindAllForms();

	uHandlers.exec('on_load');
}

var uHandlers={
	dt : {},
	exec : function(proc){
		if(this.dt[proc]==undefined) return false;
		for(i in this.dt[proc]) eval.call(window, this.dt[proc][i]);
	},
	add : function(proc, cmd){
		if(this.dt[proc]==undefined) this.dt[proc]=[];
		this.dt[proc].push(cmd);
	}
};

function FindAllForms(){
	var forms=document.getElementsByTagName('form');
	for(var i=0; i<forms.length; i++){
		if(forms[i].getAttribute('dsubm')) continue;
		var inputs=forms[i].getElementsByTagName('input');
		for(var j=0; j<inputs.length; j++) addInputSbmEvt(forms[i], inputs[j]);
	}
}

function addInputSbmEvt(form, input){
	input.onkeydown=function(e){
		e=e || window.event;
		if(e.keyCode==13){
			if(form.onsubmit==null) form.submit();
			else form.onsubmit();
			return false;
		}
	};
}

function hide_preloader(){
	uHandlers.exec('on_hide_wait');
	document.getElementById('mbody').style.display='';
	document.getElementById('wait').style.display='none';
}

function body_search_onload(tout){
	hide_preloader();
	body_onload();

	//show_wait(0);
}

function body_book_onload(){
	var elm=null;
	if(elm=document.getElementById('book_order_users_of')){
		if(!isVisible(document.getElementById('book_order_auth'))) return false;

		elm.style.display='';
		elm.style.height=document.getElementById('book_order_users').offsetHeight+'px';
		elm.style.width=document.getElementById('book_order_users').offsetWidth+'px';
	}
}


function FindAllButtons(){
	var elms=document.getElementsByTagName('input');
	for(var i=0; i<elms.length; i++){
		var elm=elms[i];
		if(elm.type=='image'){
			elm.onmousedown=BtnDown; elm.onmouseup=BtnUp; elm.onmouseout=BtnUp;
			elm.setAttribute('onfocus', 'this.blur()');
		}
	}

	var elms=document.getElementsByTagName('img');
	for(var i=0; i<elms.length; i++){
		var elm=elms[i];
		if(elm.id.indexOf('LikeBtn_')!=-1){
			elm.onmousedown=BtnDown; elm.onmouseup=BtnUp; elm.onmouseout=BtnUp;
			elm.setAttribute('onfocus', 'this.blur()');
			elm.style.cursor='pointer';
		}
	}
}

function BtnDown(evt){
	evt=(evt)?evt:((window.event)?window.event:'');
	var elm=(evt.target)?evt.target:evt.srcElement;
	elm.style.position='relative'; elm.style.top='1px'; elm.style.left='1px';
}

function BtnUp(evt){
	evt=(evt)?evt:((window.event)?window.event:'');
	var elm=(evt.target)?evt.target:evt.srcElement;
	elm.style.position=''; elm.style.top='0px'; elm.style.left='0px';
}

function show_waitme(){
	setTimeout('show_wait(1)', 1000);
}

var show_waitme2_global=true;
function show_waitme2(){
	if(show_waitme2_global) show_waitme();
}

function show_wait(state){
	window.scroll(0,0);

	if(state==2) FrmST='WAIT2';
	else if(state==1 || state==3) FrmST='WAIT';

	fl_class=date_in=date_out='';

	if(state!=3){
		if(FrmST=='A' || FrmST=='HA' || FrmST=='H' || FrmST=='HI' || FrmST=='C'){
			date_in=document.getElementById('in_date').value;
			date_out=document.getElementById('out_date').value;
		}

		if(FrmST=='A' || FrmST=='HA' || FrmST=='C'){
			org=document.getElementById('io_original').value;
			if(el=document.getElementById('fl_cabin'))
				fl_class=el.options[document.getElementById('fl_cabin').selectedIndex].text;
			else if(el=document.getElementById('fl_cabin_txt'))
				fl_class=el.value;
		}

		if(state!=2){
			if(el=document.getElementById('io_destination')) dst=el.value;
			if(el=document.getElementById('io_rt')) is_rt=el.checked;
			if(el=document.getElementById('io_rt_val')){
				if(el.value=='ow') is_rt=0;
				else is_rt=1;
			}
		}

		if(state==2){
			s=document.getElementById('preloader_data').value;
			if(s!=''){
				s=s.split('|'); FrmST=s[0]; org=s[1]; dst=s[2]; date_in=s[3]; date_out=s[4]; fl_class=s[5]; is_rt=s[6]; if(is_rt=='0') is_rt=0; else is_rt=1;
			}
		}
	}

	if(state!=2){
		if(el=document.getElementById('mbody')) el.style.display='none';
	}

	if(el=document.getElementById('wait')) el.style.display='block';

	if(uGLOBALS.lang!='RU') return true;

	wait_b=document.getElementById('wait_txt');
	pl_wait_b=document.getElementById('please_wait');

	if(FrmST=='H' || FrmST=='HI'){
		html='По городу <nobr><b class=red>'+dst+'</b></nobr>.';
		if(date_in!='' && date_out!='') html+='<p>Дата заезда: <b>'+date_in+'</b><br>Дата выезда: <b>'+date_out+'</b></p>';

		wait_b.innerHTML=html;
		pl_wait_b.innerHTML='Производится поиск отелей';
	}else if(FrmST=='A'){
		if(dst!='') dst_avi=' в <nobr><b class=red>г.'+dst+'</b></nobr>';
		else dst_avi='';

		rt_txt=''; from_txt='Дата вылета';
		if(is_rt){
			rt_txt='<br>Вылет обратно: <b>'+date_out+'</b>';
			from_txt='Вылет туда';
		}

		wait_b.innerHTML='Перелет из <nobr><b class=red>г.'+org+'</b></nobr> '+dst_avi+'.<p>Класс перелета: <b>'+fl_class+'</b></p><p>'+from_txt+': <b>'+date_in+'</b>'+rt_txt+'</p>';
		pl_wait_b.innerHTML='Производится поиск вариантов перелета';
	}else if(FrmST=='HA'){
		if(dst!='') dst_avi=' в <nobr><b class=red>г.'+dst+'</b></nobr>';
		else dst_avi='';
		wait_b.innerHTML='Поиск отелей по городу <nobr><b class=red>'+dst+'</b></nobr>, а также авиа-перелет из <nobr><b class=red>г.'+org+'</b></nobr> '+dst_avi+'.<p>Класс перелета: <b>'+fl_class+'</b></p><p>Дата заезда: <b>'+date_in+'</b><br>Дата выезда: <b>'+date_out+'</b></p>';
		pl_wait_b.innerHTML='Производится поиск вариантов перелета и отелей';
	}else if(FrmST=='C'){
		if(org==dst)
			wait_b.innerHTML='Поиск автомобилей по городу <nobr><b class=red>'+org+'</b></nobr><p>Дата получения машины: <b>'+date_in+'</b><br>Дата сдачи машины: <b>'+date_out+'</b></p>';
		else
			wait_b.innerHTML='Получение автомобиля: <nobr><b class=red>'+org+'</b></nobr>, <b>'+date_in+'</b><br>Возврат автомобиля: <b class=red>'+dst+'</b>, <b>'+date_out+'</b></p>';
		pl_wait_b.innerHTML='Производится поиск автомобилей';
	}else if(FrmST=='WAIT'){
		wait_b.innerHTML='Ваш запрос обрабатывается.';
		pl_wait_b.innerHTML='Пожалуйста, подождите';
	}else{
		wait_b.innerHTML='Загрузка страницы...';
		pl_wait_b.innerHTML='Пожалуйста, подождите';
	}

	uHandlers.exec('on_show_wait');
}

function GetElmAbsPos(elm, pos){
	p=0; while(elm!=null){ p+=elm[pos]; elm=elm.offsetParent; }
	return p;
}

function GoTimeout() {
	document.location='/timeout';
}

function TimerCountdown(min, elm_id, exp_loc, msg){
	this.elm=document.getElementById(elm_id);
	this.elm_id=elm_id; this.min=min; this.exp_loc=exp_loc; this.msg=msg;

	this.cname='TimerCountdown';

	this.init=function(){
		var cookies=document.cookie;
		if(cookies.indexOf(this.cname)!=-1){
			var startpos=cookies.indexOf(this.cname)+this.cname.length+1;
			var endpos=cookies.indexOf(';', startpos)-1;
			if(endpos==-2) endpos=cookies.length;
			this.min=unescape(cookies.substring(startpos,endpos));
		}
		this.count();
	}

	this.count=function(){
		if(this.min>0){
			this.elm.innerHTML=this.min;
			document.cookie=this.cname+'='+this.min+'; path=/';
			_self=this; setTimeout('_self.min--; _self.count();', 60000);
		}else this.exp();
	}

	this.exp=function(){
		if(this.msg!='') alert(this.msg);
		document.location=this.exp_loc;
	}
}

// select element from drop-list
function SelectElement(el, val){
	var elm=document.getElementById(el);
	val=val.toLowerCase();
	for(var i=0; i<elm.options.length; i++){
		if(elm.options[i].value.toLowerCase()==val){
			elm.options[i].selected=true;
		}
	}
}

// delete all elements from drop-list
function ClearSelectElements(elm){
	if(!elm || !elm.options.length) return;
	for(var i=elm.options.length-1; i>=0; i--) elm.remove(i);
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function show_hide_elm(elm, callback){
	var el=null;
	if(el=document.getElementById(elm)){
		if(el.style.display=='none'){
			if(callback!='') eval.call(window, callback);
			el.style.display='';
		}else el.style.display='none';
	}
}

// up&down slider
function SlideElm(elm, callback){
	if(uGLOBALS['uSlideme-'+elm]==undefined){
		uGLOBALS['uSlideme-'+elm]=new uSlider(elm, "uGLOBALS['uSlideme-"+elm+"']");
		uGLOBALS['uSlideme-'+elm].callback=callback;
	}
	return uGLOBALS['uSlideme-'+elm].toggle();
}
function uSlider(elm, name){
	this.elm=document.getElementById(elm); this.speed=10; this.hc=1; this.name=name; this.callback='';
	this.sn='slider-'+elm;

	if(!(this.snel=document.getElementById(this.sn))){
		this.elm.style.overflow='hidden';
		var ndiv=document.createElement('div'); ndiv.setAttribute('id', this.sn); ndiv.innerHTML=this.elm.innerHTML;
		kill_chd(this.elm); this.elm.appendChild(ndiv); this.snel=document.getElementById(this.sn);
	};

	this.toggle=function(){
		if(this.tmr!=null) return false;

		this.hc=1;
		if(this.elm.style.display=='none') this.ani('down'); else this.ani('up');
		return true;
	};

	this.ani=function(f){
		this.tmr=setInterval(this.name+'.'+f+'()', this.speed);
	};

	this.up=function(){
		var h=parseInt(this.elm.style.height);
		if(isNaN(h)) h=this.snel.offsetHeight;
		if((h-this.hc)>0){
			this.elm.style.height=(h-this.hc)+'px'; this.hc=this.hc*1.5;
		}else{
			this.elm.style.height='0px'; this.elm.style.display='none';
			window.clearInterval(this.tmr); this.tmr=null;
			if(this.callback!='') eval.call(window, this.callback);
		}
	};

	this.down=function(){
		if(this.elm.style.display=='none'){ this.elm.style.height='0px'; this.elm.style.display=''; }
		var snh=this.snel.offsetHeight; var h=parseInt(this.elm.offsetHeight);
		if((h+this.hc)<snh){
			this.elm.style.height=(h+this.hc)+'px'; this.hc=(this.hc*5)/2;
		}else{
			this.elm.style.height=''; window.clearInterval(this.tmr); this.tmr=null;
			if(this.callback!='') eval.call(window, this.callback);
		}
	};
}

function kill_chd(elm){
	while(elm.firstChild) elm.removeChild(elm.firstChild);
}

function vis_elm(elm, vis){
	el=document.getElementById(elm);
	if(el.style.display=='none') el.style.display='';
	if(vis!=undefined) el.style.visibility=(!vis)?'hidden':'visible';
	else el.style.visibility=(el.style.visibility=='visible')?'hidden':'visible';
}

function trim(s){
	return s.replace(/^\s+|\s+$/g, '');
}

function buildSelect(name, onchange, min, max, selected, lz, none){
	var out='';
	if(name!==false) out='<select name="'+name+'"';
	if(onchange!=null) out+=' onchange="'+onchange+'"';
	if(name!==false) out+='>';
	if(lz) out+='<option value="0">&lt;1</option>';
	if(none) out+='<option value="0">нет</option>';
	for(var i=min; i<=max; i++){
		out+='<option value="'+i+'"'; if(i==selected) out+=' selected'; out+='>'+i+'</option>';
	}
	if(name!==false) out+='</select>';
	return out;
}

function array_replace(what, where){
	for(i in what) where=where.replace(new RegExp('{'+i+'}', 'g'), what[i]);
	return where;
}

function ShowAlert(s){
	alert(s);
}

function implode(glue, pieces){
	return ((pieces instanceof Array)?pieces.join(glue):pieces);
}

var tmp_val='';
function u_continue_bk(subm){
	if(subm){
		if(el=document.getElementById('login_form')){
			document.getElementById('login_preloader').style.display='';
			el.innerHTML='';
		}
		//hide_float_layer(true);
	}
	if(tmp_val!='' && subm){
		is_logged=true;
		wzSubmit(tmp_val, tmp_mode);
		document.getElementById('book').submit();
		return;
	}
	if(subm){
		if(continue_after_login=='visa'){
			document.forms['VisaFrm'].submit();
		}else if(continue_after_login=='insurance'){
			document.getElementById('o_category').value=continue_insurance_i;
			document.forms['o_category_frm'].submit();
		}else if(continue_after_login=='refresh'){
			if(uGLOBALS['avl-pg']!=undefined) document.location.href='/search/rooms';
			else refresh();
		}else if(continue_after_login!=''){
			document.location.href=continue_after_login;
		}
	}
}

function substContent(from, to){
	var elm=null;
	if(elm=document.getElementById('login_preloader')){
		elm.style.display='none';
		document.getElementById(to).innerHTML=window.frames[from].document.getElementsByTagName('body')[0].innerHTML;
		PositionizeElm('login_layer_cont');
	}
}

var PositionizeElm_off=0;
function PositionizeElm(el){
	if(self.pageYOffset) scrolledY=self.pageYOffset;
	else if(document.documentElement && document.documentElement.scrollTop) scrolledY=document.documentElement.scrollTop;
	else if(document.body) scrolledY=document.body.scrollTop;

	el=document.getElementById(el);
	if((el.offsetHeight+100)>=document.body.clientHeight) el.style.top=(scrolledY+10)+'px';
	else el.style.top=(scrolledY+100-PositionizeElm_off)+'px';
	el.style.left=(document.body.clientWidth/2-el.clientWidth/2)+'px';
}

function show_login(url){
	show_float_layer();

	setPageHeight('login_layer');

	document.getElementById('login_preloader').style.display='';
	document.getElementById('login_frame').src=url;
	vis_elm('login_layer');
	vis_elm('login_layer_cont');

	PositionizeElm('login_layer_cont');
}

function show_floatbg(){
	show_float_layer();

	setPageHeight('floatbg_layer');

	vis_elm('floatbg_layer');
	vis_elm('floatbg_layer_cont');
	PositionizeElm('floatbg_layer_cont');

	document.getElementById('a_close_popup').style.display='';
}

function after_show_flotbg(){
	PositionizeElm('floatbg_layer_cont');
}

var hided_selects=[];
function show_float_layer(){
	if(typeof document.body.style.maxHeight=='undefined'){
		var selects=document.getElementsByTagName('select');
		for(i=0; i<selects.length; i++)
			if(selects[i].style.visibility==''){
				selects[i].style.visibility='hidden';
				hided_selects[hided_selects.length]=selects[i];
			}
	}

	var selects=document.getElementsByTagName('object');
	for(i=0; i<selects.length; i++)
		if(selects[i].style.visibility==''){
			selects[i].style.visibility='hidden';
			hided_selects[hided_selects.length]=selects[i];
		}
}

function hide_float_layer(is_login){
	for(i=0; i<hided_selects.length; i++) hided_selects[i].style.visibility='';
	if(is_login){
		document.getElementById('login_form').innerHTML='';
		vis_elm('login_layer');
		vis_elm('login_layer_cont', false);
	}else{
		vis_elm('floatbg_layer');
		vis_elm('floatbg_layer_cont', false);
	}

	if(uGLOBALS['hide_floatbg_callback']!=undefined && uGLOBALS['hide_floatbg_callback']){
		eval.call(window, uGLOBALS['hide_floatbg_callback']);
		uGLOBALS['hide_floatbg_callback']=''
	}
	popup_msg.visible=false;
}

function setPageHeight(divBgId){
	divBg=document.getElementById(divBgId)
	if(BrowserDetect.browser=='Explorer'){
		divBg.style.position='absolute';
		divBg.style.top=(ignoreMe=document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop)+'px';
		divBg.style.height=(document.documentElement.clientHeight?document.documentElement.clientHeight:document.body.clientHeight)+'px';

		window.onresize=function(){
			setPageHeight(divBgId);
		};
		window.onscroll=function(){
			setPageHeight(divBgId);
		};
	}else{
		divBg.style.position='fixed';
		divBg.style.top=0;
	}
}

var preloaded_imgs=[];
function preload_img(lst){
	var imgs=new Array();
	for(var i=0; i<lst.length; i++){
		preloaded_imgs[preloaded_imgs.length]=new Image();
		preload_img_fetch(preloaded_imgs.length-1, lst[i], true);
	}
}
function preload_img_fetch(i, src, req){
	if(!req){
		if(!preloaded_imgs[i].complete)
			setTimeout('preload_img_fetch('+i+', \'\', false)', 0);
		return;
	}
	preloaded_imgs[i].src=src;
	setTimeout('preload_img_fetch('+i+', \'\', false)', 0);
}

function redirect(url,blank){
	if (blank) {
		window.open(url,'_blank');
	} else {
		window.location.href=url;
	}
}

var popup_msg={
	visible : false,

	prm : {},

	hide : function(){
		this.visible=false;
		hide_float_layer(false);
	},

	show : function(prm){
		if(this.visible) this.hide();

		this.visible=true;

		this.prm=prm;

		/*
			tabs : []
			elm - elm id
			str - msg to display
		*/

		uClear();

		if(this.prm.border==undefined) this.prm.border=true;
		if(this.prm.tabs==undefined) this.prm.tabs=[];
		if(this.prm.tab_active==undefined) this.prm.tab_active=0;
		if(this.prm.iframe==undefined) this.prm.iframe=false;
		if(this.prm.url==undefined) this.prm.url=false;
		if(this.prm.title==undefined) this.prm.title='';
		if(this.prm.params==undefined) this.prm.params='';
		if(this.prm.top==undefined) this.prm.top=0;
		if(this.prm.width==undefined) this.prm.width=750;
		if(this.prm.elm==undefined) this.prm.elm='';
		if(this.prm.str==undefined) this.prm.str='';

		PositionizeElm_off=this.prm.top;
		document.getElementById('floatbg_layer_cont').style.width=this.prm.width+'px';
		show_floatbg();

		if(this.tabs.parent===false) this.tabs.parent=this;
		this.tabs.init();
		this.tabs.make();
		this.make();
		this.tabs.show();
	},

	tabs : {
		visible : false,

		list : [],
		html : '',
		parent : false,
		init : function(){
			this.list=[];
			this.html='';
			this.visible=false;

			for(i in this.parent.prm.tabs) this.list.push(i);
			if(!this.list.length) return;
			if(this.list.length>1){ this.visible=true; return; }

			for(var i in this.parent.prm.tabs){
				if(i.substr(0,4)=='url:'){
					this.parent.prm.iframe=true;
					this.parent.prm.url=i.substr(4);
				}else{
					this.parent.prm.elm=i;
					this.parent.prm.title=this.parent.prm.tabs[i];
				}
				this.parent.prm.tabs=[];
			}
		},
		show : function(){
			if(!this.visible) return false;
			this.set(this.parent.prm.tab_active);
		},
		make : function(){
			if(!this.visible) return;

			var n=10, i, j=0;
			this.html+='<div class="ntab_menu_popup"><div class="ntab_menu"><ul>';
			for(i in this.parent.prm.tabs){
				this.html+='<li class="sel" id="popup-tabs-'+j+'-sel" style="display:none;"><b><span>'+this.parent.prm.tabs[i]+'</span></b></li>';
				this.html+='<li style="z-index:'+(n--)+';" id="popup-tabs-'+j+'"><b><a href="javascript:void(0);" onclick="return popup_msg.tabs.set('+j+');" onfocus="this.blur();">'+this.parent.prm.tabs[i]+'</a></b></li>';
				j++;
			}
			this.html+='</ul></div></div>';
		},
		set : function(j){
			var i, url;
			for(i in this.list){
				if(i==j){
					u('#popup-tabs-'+i+'-sel').show();
					u('#popup-tabs-'+i).hide();
					if(this.list[i].substr(0,4)=='url:') this.parent.iframe_url(this.list[i].substr(4));
					else u('#popup-in-html').innerHTML=u('#'+this.list[i]).innerHTML;
				}else{
					u('#popup-tabs-'+i+'-sel').hide();
					u('#popup-tabs-'+i).show();
				}
			}
			return false;
		}
	},

	make : function(){
		var html='', i;

		if(!this.tabs.visible) html+='<div id="float_popup_preloader" style="display:none;">'+uGLOBALS['langset'][ uGLOBALS['lang'] ].wait+'</div>';

		if(this.prm.iframe) html+='<div id="float_popup_content" style="display:none;">';
		else html+='<div id="float_popup_content">';

		if(this.tabs.visible) html+=this.tabs.html+'<div>';
		else{
			html+='<div id="float_popup_title">'+this.prm.title+'</div>';
			if(this.prm.border) html+='<div><b class="popup_bord1"></b><b class="popup_bord2"></b>';
		}
		if(this.prm.border){
			html+='<div class="popup_fbg popup_fbg_2" id="float_popup_txt" '+this.prm.params+'>';
			html+='<div class="popup_fbg_in">';
		}

		if(this.tabs.visible) html+='<div id="float_popup_preloader" style="display:none;">'+uGLOBALS['langset'][ uGLOBALS['lang'] ].wait+'</div>';

		html+='<div id="popup-in-html">';

		if(!this.tabs.visible && !this.prm.iframe){
			if(this.prm.elm!='') html+=u('#'+this.prm.elm).innerHTML;
			else if(this.prm.str!='') html+=this.prm.str;
		}

		html+='</div>';
		if(this.prm.border){
			html+='</div></div>';
			html+='<b class="popup_bord2"></b><b class="popup_bord1"></b></div>';
		}
		html+='</div>';

		html+='<iframe id="float_popup_frame" name="float_popup_frame" src="/tpl/static/blank.htm" onload="popup_msg.iframe_loaded();"></iframe>';

		document.getElementById('floatbg_layer_pg').innerHTML=html;

		if(this.prm.url!==false) this.iframe_url(this.prm.url);

		PositionizeElm('floatbg_layer_cont');
	},

	iframe_url : function(url){
		u('#float_popup_preloader').style.display='';
		if(!this.tabs.visible) u('#float_popup_content').style.display='none';
		else u('#popup-in-html').style.display='none';
		if(url.substr(0,1)!='/') url='/tpl/'+url+'.htm';
		u('#float_popup_frame').src=url;
	},

	iframe_loaded : function(){
		if(BrowserDetect.browser=='Explorer') el=document.frames['float_popup_frame'].document;
		else el=u('#float_popup_frame').contentDocument;
		if(el.body.innerHTML=='') return;

		u('#popup-in-html').innerHTML=el.body.innerHTML;

		u('#float_popup_preloader').style.display='none';
		if(!this.tabs.visible) u('#float_popup_content').style.display='';
		else u('#popup-in-html').style.display='';

		if(el.body.innerHTML.indexOf('float_popup_title')==-1)
			if(el_title=u('#float_popup_title')) el_title.innerHTML=el.title;

		PositionizeElm('floatbg_layer_cont');
	}
};

var popups={
	miles_dscr : function(sys){
		var a=0, tabs={};
		if(uGLOBALS['prj']=='ig' || uGLOBALS['prj']=='aeroflot') tabs['popup_miles_info-af']='Аэрофлот Бонус';
		if(uGLOBALS['prj']=='ig' || uGLOBALS['prj']=='miles') tabs['popup_miles_info']='Miles & More';
		if(uGLOBALS['prj']=='ig' || uGLOBALS['prj']=='malina') tabs['popup_miles_info-ML']='Малина';

		if(uGLOBALS['prj']=='ig' && sys!=undefined && sys=='MM') a=1;

		popup_msg.show({
			tabs : tabs,
			tab_active : a
		});
		return false;
	},

	miles_add_card : function(sys){
		var a=0, tabs={};
		if(uGLOBALS['prj']=='ig' || uGLOBALS['prj']=='aeroflot') tabs['url:/popup_miles_card?s=n&nurl=/cabinet/pcards&sys=AF']='Аэрофлот Бонус';
		if(uGLOBALS['prj']=='ig' || uGLOBALS['prj']=='miles') tabs['url:/popup_miles_card?s=n&nurl=/cabinet/pcards&sys=MM']='Miles & More';
		if(uGLOBALS['prj']=='ig' || uGLOBALS['prj']=='malina') tabs['url:/popup_miles_card?s=n&nurl=/cabinet/pcards&sys=ML']='Малина';

		if(uGLOBALS['prj']=='ig' && sys!=undefined && sys=='MM') a=1;

		popup_msg.show({
			tabs : tabs,
			tab_active : a
		});
		return false;
	},

	miles_sel_card : function(sys){
		var tabs={};
		tabs['url:/popup_miles_card?sys='+sys]='Выбор карты';

		if(sys=='AF') tabs['popup_miles_info-af']='Правила зачисления миль';
		else if(sys=='MM') tabs['popup_miles_info']='Правила зачисления миль';

		popup_msg.show({
			tabs : tabs
		});
		return false;
	},

	miles_cards_info : function(sys){
		var a=0, tabs={};
		//if(uGLOBALS['prj']=='ig' || uGLOBALS['prj']=='aeroflot') tabs['popup_milescards_info-af']='Аэрофлот Бонус';
		if(uGLOBALS['prj']=='ig' || uGLOBALS['prj']=='miles') tabs['popup_milescards_info']='Miles & More';

		if(uGLOBALS['prj']=='ig' && sys!=undefined && sys=='MM') a=1;

		popup_msg.show({
			tabs : tabs,
			tab_active : a
		});
		return false;
	},

	miles_AF_avi : function(){
		popup_msg.show({
			width : 780,
			title : '&nbsp;',
			elm : 'popup_miles_AF_avi'
		});
		return false;
	},

	timetable : function(){
		popup_msg.show({
			width : 565,
			title : 'Британская временная система',
			elm : 'timetable'
		});
		return false;
	},

	auth : function(mode){
		popup_msg.show({
			width : 540,
			iframe : true,
			url : '/popup_auth?w='+mode
		});
		return false;
	},

	hotel_reviews : function(id){
		popup_msg.show({
			width : 730,
			iframe : true,
			url : '/popup_hotel_reviews/'+id
		});
		return false;
	}
};

function show_popup_txt(m, w, url, set_html_in){
	PositionizeElm_off=m;
	document.getElementById('floatbg_layer_cont').style.width=w+'px';
	show_floatbg();

	var html='<div id=float_popup_preloader>'+uGLOBALS['langset'][ uGLOBALS['lang'] ].wait+'</div>';

	html+='<div id=float_popup_content style="display:none;">';
	if(set_html_in==undefined) set_html_in=true;
	var html_in='';

	if(url.substr(0,1)=='!'){
		url=url.substr(1);
		html_in+='		<div class="popup_fbg popup_fbg_2" id="float_popup_txt"></div>';
	}else if(url.substr(0,1)=='?'){
		url=url.substr(1);
		set_html_in=false;
		html_in+='		<div id="float_popup_txt"></div>';
		document.getElementById('a_close_popup').style.display='none';
	}else if(set_html_in)
		html_in+='		<div class="popup_fbg" id="float_popup_txt"></div>';
	else
		html_in+='		<div id="float_popup_txt"></div>';

	if(set_html_in){
		html+='	<b id="float_popup_title"></b>';
		html+='	<div>';
		html+='		<b class="popup_bord1"></b><b class="popup_bord2"></b>';
	}

	html+=html_in;

	if(set_html_in){
		html+='		<b class="popup_bord2"></b><b class="popup_bord1"></b>';
		html+='	</div>';
	}

	html+='</div>';

	if(url.substr(0,1)!='/') url='/tpl/'+url+'.htm';

	html+='<iframe id="float_popup_frame" name="float_popup_frame" src="'+url+'" onload="show_popup_subst()"></iframe>';
	document.getElementById('floatbg_layer_pg').innerHTML=html;
}

function show_popup_subst(){
	if(BrowserDetect.browser=='Explorer') el=document.frames["float_popup_frame"].document;
	else el=document.getElementById("float_popup_frame").contentDocument;
	document.getElementById('float_popup_preloader').style.display='none';
	document.getElementById('float_popup_content').style.display='';

	if(el.body.innerHTML.indexOf('float_popup_title')!=-1)
		document.getElementById('float_popup_content').innerHTML=el.body.innerHTML;
	else{
		document.getElementById('float_popup_txt').innerHTML=el.body.innerHTML;
		if(el_title=document.getElementById('float_popup_title')){
			if(el.title==''){ el_title.style.display='block'; el_title.style.height='2px'; }
			else el_title.innerHTML=el.title;
		}
	}

	after_show_flotbg();
}

function show_popup_msg(m, w, title, txt, prm){
	PositionizeElm_off=m;
	document.getElementById('floatbg_layer_cont').style.width=w+'px';
	show_floatbg();

	var class_title='';
	if(title.substr(0,1)=='!'){
		title=title.substr(1);
		class_title=' class="float_popup_title_2"';
	}

	var html='<div id=float_popup_content>';

	if(title=='?'){
		html+=txt;
	}else if(title=='?!'){
		html+=txt;
		document.getElementById('a_close_popup').style.display='none';
	}else{
		html+='	<b id="float_popup_title"><span'+class_title+'>'+title+'</span></b><div>\n';

		html+='		<b class="popup_bord1"></b><b class="popup_bord2"></b>\n';

		if(class_title!='') html+='		<div class="popup_fbg popup_fbg_2" id="float_popup_txt" '+prm+'>\n';
		else html+='		<div class="popup_fbg" id="float_popup_txt" '+prm+'>\n';

		if(class_title!=''){
			//html+='		<div><b class="popup_bord3"></b><b class="popup_bord4"></b>\n';
			html+='		<div class="popup_fbg_in"><center>\n';
		}

		html+=txt;

		if(class_title!=''){
			html+='		</center></div>\n';
			//html+='		<b class="popup_bord4"></b><b class="popup_bord3"></b></div>\n';
		}

		html+='</div>\n';
		html+='		<b class="popup_bord2"></b><b class="popup_bord1"></b>\n';
		html+='	</div>\n';
	}

	html+='</div>';
	document.getElementById('floatbg_layer_pg').innerHTML=html;

	after_show_flotbg();
}

Date.fromDDMMYYYY=function(s){
	return (/^(\d\d?)\D(\d\d?)\D(\d{4})$/).test(s) ? new Date(RegExp.$3, RegExp.$2-1, RegExp.$1) : new Date(s);
}

function round(val, precision){
	var precision=(round.arguments.length>1)?round.arguments[1]:0;
	return Math.round(val*Math.pow(10, precision))/Math.pow(10, precision);
}

function iPinger(name){
	this.period=30000;
	this.working=false;
	this.name=name;

	this.update=function(){
		var tmp=new Image();
		var seed=Math.round(Math.random()*65535);
		tmp.src='/img/iPinger.php?seed='+seed;
		if(this.working) window.setTimeout(this.name+'.update()', this.period);
	};

	this.start=function(){
		this.working=true;
		this.update();
	};

	this.stop=function(){
		this.working=false;
	};
}

var noArg=true;
function getUrlArg(){
	var out=[];
	var url=document.location.href;
	var qparts=url.split('?');
	if(qparts.length==1) return out;
	var vars=qparts[1].split('&');

	for(i=0; i<vars.length; i++){
		var p=vars[i].split('=');
		out[p[0]]=unescape(p[1]);
		out[p[0]].replace(/\+/g,' ');
	}
	noArg=false;

	return out;
}

function refresh(){
	document.location.href=location.href;
}

// mm
function show_milescards_dscr(){
	show_popup_msg(0, 750, '!Количество начисляемых миль Miles & More', document.getElementById('popup_milescards_info').innerHTML, '');
	return false;
}

function ending(num,v1,v24,v50){
	if(num>4 && num<21) return v50;
	var l=num.toString().substr(-1);
	if(l==1) return v1;
	if(l>1 && l<5) return v24;
	return v50;
}

function sort_ListBox(box){
	var tmp=[];
	var len=box.options.length;
	for(i=0; i<len; i++) tmp[i]=[box.options[i].text.toLowerCase(), new Object(box.options[i])];
	tmp.sort();
	box.options.length=0;
	for(i=0; i<len; i++) box.options.add(tmp[i][1]);
}

function isVisible(elm){
	while(elm!=null){
		if(elm.style!=null && (elm.style.visibility=='hidden' || elm.style.display=='none')) return false;
		elm=elm.parentNode;
	}
	return true;
}

function addHandler(object, event, handler){
	if(typeof object.addEventListener!='undefined') object.addEventListener(event, handler, false);
	else if(typeof object.attachEvent!='undefined') object.attachEvent('on'+event, handler);
	else throw 'Incompatible browser';
}
function removeHandler(object, event, handler){
	if(typeof object.removeEventListener!='undefined') object.removeEventListener(event, handler, false);
	else if(typeof object.detachEvent!='undefined') object.detachEvent('on'+event, handler);
	else throw 'Incompatible browser';
}

function _GET(m){
	var q=window.location.search.substring(1);
	var a=q.split('&');
	for(var i=0; i<a.length; i++){
		var b=a[i].split('=');
		if(b[0]==m) return b[1];
	}
	return false;
}

function isMouseOver(e, hd){
	if(e.type!='mouseout' && e.type!='mouseover') return false;
	var reltg=e.relatedTarget ? e.relatedTarget : e.type=='mouseout' ? e.toElement : e.fromElement;
	while(reltg && reltg!=hd) reltg=reltg.parentNode;
	return (reltg!=hd);
}

function size(a){ var i=0; for(_ in a) i++; return i; }

function getScrollXY(){
	var scrOfX=0, scrOfY=0;
	if(typeof(window.pageYOffset)=='number'){
		//Netscape compliant
		scrOfY=window.pageYOffset;
		scrOfX=window.pageXOffset;
	}else if(document.body && (document.body.scrollLeft || document.body.scrollTop)){
		//DOM compliant
		scrOfY=document.body.scrollTop;
		scrOfX=document.body.scrollLeft;
	}else if(document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)){
		//IE6 standards compliant mode
		scrOfY=document.documentElement.scrollTop;
		scrOfX=document.documentElement.scrollLeft;
	}
	return [scrOfX, scrOfY];
}