function HotelPhg(name, ident){
	this.name=name;
	this.ident=ident;

	this.pic_cnt=0;
	this.pic_first=false;
	this.pic_first_name=false;
	this.rows=0;
	this.pics={};

	this.pic=null;
	this.pic_name=null;

	this.inited=false;

	this.h_id=false;
	this.hotels=[];

	this.prev_tmb=false;
	this.pic_cache=[];

	this.modes=[];
	this.is_popup=false;

	this.init=function(h_id, mode){
		if(oHPHG.hotels[ oHPHG.h_id ]==undefined) oHPHG.xml_load(oHPHG.h_id);
		if(h_id!=undefined) this.h_id=h_id;

		this.prev_tmb=false;

		if(!this.inited){
			uTpl.define('htl_phg2-title', u('#tpl-'+this.ident+'htl_phg2-title').innerHTML);
			uTpl.define('htl_phg2-photos', u('#tpl-'+this.ident+'htl_phg2-photos').innerHTML);
			uTpl.define('htl_phg2-photos-item', u('#tpl-'+this.ident+'htl_phg2-photos-item').innerHTML);
			uTpl.define('htl_phg2-video', u('#tpl-'+this.ident+'htl_phg2-video').innerHTML);
		}
		u('#'+this.ident+'htl_phg2-photos').innerHTML='';
		u('#'+this.ident+'htl_phg2-video').innerHTML='';

		this.modes=[];

		if(this.h_id){
			if(this.hotels[ this.h_id ].media[1]!==0){
				this.add_mode('photos');

				this.pic_cnt=0;
				for(i in this.hotels[ this.h_id ].media[1]) this.pic_cnt++;

				var tmp=[], j=0, class_last='', b={}, i='', row=1, row_j=0, in_row=4;
				this.rows=Math.ceil(this.pic_cnt/in_row);

				for(i in this.hotels[ this.h_id ].media[1]){
					if(row_j==in_row){
						row++;
						row_j=0;
					}

					if(!j){
						this.pic_first=this.hotels[ this.h_id ].media[1][i][0];
						this.pic_first_name=this.hotels[ this.h_id ].media[1][i][1];
					}
					class_last='';
					if(row==this.rows) class_last='htl_phg2_tmb_itm_last';
					b={
						'i':j,
						'ph_img':this.hotels[ this.h_id ].media[1][i][0],
						'ph_name':this.hotels[ this.h_id ].media[1][i][1],
						'ph_img_tmb':i,
						'class_last':class_last
					};
					this.pics[j]=b;
					tmp.push(uTpl.eval(b, 'htl_phg2-photos-item'));
					j++;
					row_j++;
				}
				//this.pic_cnt=j;
				u('#'+this.ident+'htl_phg2-photos').innerHTML=uTpl.eval({tmb_list:implode('', tmp)}, 'htl_phg2-photos');
			}
			if(this.hotels[ this.h_id ].media[0]){
				this.add_mode('video');
				u('#'+this.ident+'htl_phg2-video').innerHTML=uTpl.eval({h_id:this.h_id}, 'htl_phg2-video');
			}
		}

		this.inited=true;
		this.player.parent=this;
		this.player.init();
	};

	this.xml_cache={};
	this.xml_load=function(id){
		var url='/xml/phg_popup/'+id, a={}, v;

		if(this.xml_cache[url]==undefined){
			if(!xLoad) xLoad=new oXMLload();
			xLoad.get(url,false,true);
			this.xml_cache[url]=xLoad.phg;
		}
		this.hotels[id]=[];
		for(i in this.xml_cache[url]){
			v=this.xml_cache[url][i];
			if(v.n=='tour_id'){
				this.hotels[id].push(v.v0);
				continue;
			}
			a[ v.v0 ]=[v.v1, v.n];
		}
		this.hotels[id].push(a);
	};

	this.load=function(i, url, name){
		uClear();

		u('#'+this.ident+'htl_phg_name').hide();
		this.pic=u('#'+this.ident+'htl_phg_view');
		this.pic_name=name;

		//this.pic.src='/img/spacer.gif';
		if(this.pic_cache[i]==undefined){ this.pic_cache[i]=new Image(); this.pic_cache[i].src=url; }
		this.pic.src=url;

		if(this.prev_tmb===false) this.prev_tmb=i;
		else{
			u('#'+this.ident+'htl_phg2_tmb_'+this.prev_tmb).killClass('htl_phg2_tmb_itm_sel');
			this.prev_tmb=i;
		}
		u('#'+this.ident+'htl_phg2_tmb_'+this.prev_tmb).addClass('htl_phg2_tmb_itm_sel');

		// check viewer
		var st=u('#htl_phg2_tmb_list').scrollTop, ot=u('#'+this.ident+'htl_phg2_tmb_'+this.prev_tmb).offsetTop;
		if(ot<st || ot>=(st+66*4)) u('#htl_phg2_tmb_list').scrollTop=ot;
	};

	this.img_loaded=function(){
		if(this.pic_name!='' && this.pic.offsetHeight>1){
			u('#'+this.ident+'htl_phg_name').show();
			u('#'+this.ident+'htl_phg_name_txt').innerHTML=u('#'+this.ident+'htl_phg_name_bg').innerHTML=this.pic_name;
			var tmp=this.pic.width;
			u('#'+this.ident+'htl_phg_name').style.width=tmp+'px';
			tmp=GetElmAbsPos(this.pic, 'offsetLeft');
			u('#'+this.ident+'htl_phg_name').style.left=tmp+'px';
			tmp=this.pic.offsetHeight;
			if(u('#'+this.ident+'htl_phg_view_pic').offsetHeight<tmp) tmp=u('#'+this.ident+'htl_phg_view_pic').offsetHeight;
			tmp=GetElmAbsPos(this.pic, 'offsetTop')+tmp-u('#'+this.ident+'htl_phg_name').offsetHeight;
			u('#'+this.ident+'htl_phg_name').style.top=tmp+'px';
		}else
			u('#'+this.ident+'htl_phg_name').hide();
	};

	this.add_mode=function(mode){
		this.modes.push(mode);
	};

	this.mode=function(s){
		if(s=='video'){
			
		}else{
			
		}
	};

	this.popup=function(h_id, mode){
		this.init(h_id, mode);

		var tabs={}, i, callback_params={};
		for(i in this.modes){
			tabs[this.ident+'htl_phg2-'+this.modes[i]]=uGLOBALS.msg.phg_popup[ this.modes[i] ];
			callback_params[this.ident+'htl_phg2-'+this.modes[i]]={id : this.modes[i]};
		}

		var width=770;
		if(this.modes[0]=='video') width=700;
		if(this.modes[0]=='photos' && this.rows>4) width=800;

		var a={
			name : this.hotels[ this.h_id ].name,
			addr : this.hotels[ this.h_id ].addr,
			stars : this.hotels[ this.h_id ].stars
		};

		popup_msg.show({
			width : width,
			super_title : uTpl.eval(a, 'htl_phg2-title'),
			title_html : '',
			tabs : tabs,
			callback : [this.name, 'popup_callback'],
			callback_params : callback_params,
			skip_moving : true
		});

		eval('var tmp='+this.name+';');
		document.onkeypress=function(evt){tmp.hdl_keypress(evt);};

		//if(this.pic_first!==false) this.load(0, this.pic_first, this.pic_first_name);
	};

	this.hdl_keypress=function(evt){
		if(evt.keyCode==37){ this.player.prev(); return false; }
		else if(evt.keyCode==39){ this.player.next(); return false; }
		return true;
	};

	this.popup_callback=function(prm){
		if(prm._action=='hide'){
			document.onkeypress=null;
			u('#'+this.ident+'htl_phg_name').hide();
		}
		if((prm._action=='after_show' || prm._action=='after_make')){
			popup_msg.positionize();

			if(((prm.id!=undefined && prm.id=='photos') || (this.modes[0]=='photos' && this.modes.length==1)) && this.pic_first!==false){
				this.load(0, this.pic_first, this.pic_first_name);
			}
			else if(prm.id!=undefined && prm.id=='video'){
				// video tab
			}
		}
		this.player.stop();
		return true;
	};

	this.player={
		parent : null,
		ms : 3000,
		timer : null,
		playing : false,
		init : function(){
			
		},
		prev : function(auto){
			this.load(this.parent.prev_tmb-1);
			if(auto && this.playing) this.restart();
		},
		next : function(auto){
			this.load(this.parent.prev_tmb+1);
			if(auto && this.playing) this.restart();
		},
		restart : function(){
			this.timer=setInterval(this.parent.name+'.player.next();', this.ms);
			window.clearInterval(this.timer);
		},
		play : function(){
			if(!this.playing){
				u('#'+this.parent.ident+'htl-phg-player-play').addClass('htl-phg-player-pause');
				this.timer=setInterval(this.parent.name+'.player.next();', this.ms);
				this.playing=true;
			}else{
				u('#'+this.parent.ident+'htl-phg-player-play').killClass('htl-phg-player-pause');
				this.stop();
			}
		},
		stop : function(){
			window.clearInterval(this.timer);
			this.playing=false;
		},
		load : function(i){
			if(i<0) i=this.parent.pic_cnt-1;
			else if(i>=this.parent.pic_cnt) i=0;
			var pic=this.parent.pics[i];
			this.parent.load(pic.i, pic.ph_img, pic.ph_name);
		}
	};
}

function popupHotelReviews(id){
	return popups.hotel_reviews(id);

	//show_popup_txt(0, 722, '/popup_hotel_reviews/'+id, false);
}

var HotelGmap={
	htl : {},
	popup : function(htl){
		this.htl=htl;
		popup_msg.show({
			title : htl.h_name,
			width : 795,
			elm : 'hotel-gmap',
			callback : ['HotelGmap', 'callback']
		});
	},
	callback : function(prm){
		if(prm._action!='after_make') return false;
		uClear();
		var map_htl2=new uGmap('popup-gmap_view');
		map_htl2.add(this.htl.h_lat, this.htl.h_lng, '', 'Отель '+this.htl.h_name, '', this.htl.h_addr, '', '', '', '2', '');
		map_htl2.htl_map();
		map_htl2.show();
		htl_bad_coord_cur=this.h_id;
		return true;
	}
}
