// JavaScript Document


/**
 * 设置最近访问酒店并得到列表
 */

function setAndGetLastVisitedHotels( hotelID, hotelName ){
	hotelID = parseInt(hotelID) ;
	var lastVisitedHotels = new Array();
	var cookieKey = 'ck_last_visited_hotels' ;
	var ck_value = $j.cookie( cookieKey ) ;
	if( typeof(ck_value)== 'string' ) {
		var tmpArr = ck_value.split(',');
		for( var i=0; i<tmpArr.length; i+=2 ) {
			lastVisitedHotels[i/2] = new Array( parseInt(tmpArr[i]), tmpArr[i+1] );
		}
	}
	if( hotelID <= 0 ) return lastVisitedHotels.reverse( );
	var found = false ;
	for(var i=0; i < lastVisitedHotels.length; i++ ) {
		var itm = lastVisitedHotels[i];
		if( hotelID == itm[0] ) {
			lastVisitedHotels.splice( i, 1 );
			lastVisitedHotels.push( new Array( hotelID, hotelName ) );
			found = true ;
		}
	}
	if( !found ) {
		if( lastVisitedHotels.length >= 8 ){
			lastVisitedHotels.shift();
		}
		lastVisitedHotels.push( new Array( hotelID, hotelName ) );
	}
	$j.cookie( cookieKey, lastVisitedHotels.toString(), {expires: 3, path: '/'});
	return lastVisitedHotels.reverse();
}


function printLastHotels( hotelID, hotelName, pageLanguage ){
	if( typeof(hotelID) == 'undefined' ) {
		hotelID = 0;
	}
	if( typeof(hotelName) == 'undefined' ) {
		hotelName = '';
	}
	if( typeof(pageLanguage) == 'undefined' ) {
		pageLanguage = '';
	}
	var lastHotels = setAndGetLastVisitedHotels( hotelID, hotelName );
	if( lastHotels.length > 0 ) {
		var lis = '' ;
		for( var i=0; i<lastHotels.length; i++ ) {
			var hotelItem = lastHotels[i] ;
			lis += '<li><a href="' + (pageLanguage?'/':'') + pageLanguage + '/hotel/' + hotelItem[0] + '.html" target="_blank">' + hotelItem[1] + '</a></li>' ;
		}
		$j('#frmQuickSearch').after('<div class="left-box"><h3>最近浏览酒店</h3><ul>' + lis + '</ul><div class="bottom"></div></div>');
	} 
}

function getDateS(dat) {
	if( !dat || dat.indexOf('-') < 0 ) return '' ;
	var dats = dat.split("-");
	if( dats[1].length == 1 ) dats[1] = '0'.concat(dats[1]) ;
	if( dats[2].length == 1 ) dats[2] = '0'.concat(dats[2]) ;
	return dats[0] + '-' + dats[1] + '-' + dats[2] ;
}
function getCheckinAndCheckout(){
	var checkin = getDateS( $j.cookie( 'ck_checkin' ) ) ;
	var checkout = getDateS( $j.cookie( 'ck_checkout' ) ) ;
	var now = new Date() ;
	now = getDateS( now.getFullYear() + '-' + (now.getMonth()+1) + '-' + now.getDate() ) ;

	if( checkin && now > checkin || !checkin ) {
		checkin = now ;
	}
	if( checkout && checkin >= checkout || !checkout ) {
		var s = checkin.replace(/-0/g,'-').split("-");
		var coDate = new Date( parseInt(s[0]), parseInt(s[1])-1, parseInt(s[2])+3 ) ;
		checkout = getDateS( coDate.getFullYear() + '-' + (coDate.getMonth()+1) + '-' + coDate.getDate() ) ;
	}
	return {checkin:checkin,checkout:checkout};
}



function select_fix_ie(el) {  
    var isOpen = $j(el).data("isOpen");  
    if ( isOpen ) {  
        return;  
    }  
  
    $j(el).mousedown(function() {  
		var isOpen = $j(this).data("isOpen");  
		if (isOpen) {  
			return;  
		}  
		$j(this).data("isOpen", true);  

		var sdata = $j(this).data("sdata");  
		if ( !sdata ) {
			sdata = {width:$j(this).css("width"),position:$j(this).css("position"),zindex:$j(this).css("z-index")}
			$j(this).data("sdata", sdata);  
		}  

		var position = $j(this).position();  
		var oldWidth = $j(this).width();  
		$j(this).css("width", "auto");  
		var newWidth = $j(this).width();  
		if (oldWidth >= newWidth) {  
			$j(this).css("width", sdata.width);  
		}  
		$j(this).css("top", position.top + "px");  
		$j(this).css("left", position.left + "px");  
		$j(this).css("position", "absolute");  
		$j(this).css("z-index", "1000");  
	},function(){}).blur(function() {  
		select_fix_ie_close(this);  
	}).change(function() {  
		select_fix_ie_close(this);  
	})  
  
    $j(el).data("isOpen", false);  
}  
  
function select_fix_ie_close(el) {  
    var isOpen = $j(el).data("isOpen");  
    if (isOpen) {  
        var sdata = $j(el).data("sdata");  
        $j(el).css("position", sdata.position);  
        $j(el).css("width", sdata.width);  
        $j(el).css("top", "");  
        $j(el).css("left", "");  
        $j(el).css("z-index", sdata.zindex);  
        $j(el).data("isOpen", false);  
    }  
}  


/*
*
* 初始化导航
*/
function initNav() {
	//var lastNav = '' ;
	//var hoverNav = '' ;
	$j('#nav-list > ul > li').each(function(){
		if( $j(this).get(0).className == 'nav-on' ) {
			$j('#nav-list').data('lastNav', this );
		}
	});
							
	$j('#nav-list > ul > li').each(function(){
		$j(this).hover(function(){
			swNav( this, $j('#nav-list').data( 'lastNav' ), $j('#nav-list').data( 'hoverNav' ) );
			$j('#nav-list').data('hoverNav', this ) ;
		},function(){
		});
	});
	$j('#nav').hover(function(){
	},function(){
		swNav( $j('#nav-list').data( 'lastNav' ), $j('#nav-list').data( 'hoverNav' ) );
	});
}

/**
*
* 导航菜单互换
*/
function swNav( onNav, offNav, offNav2 ){
	if( offNav2 ) {
		offNav2.className = 'nav-off' ;
		$j('#'+offNav2.id+'_bar').hide();
	}
	if( offNav ) {
		offNav.className = 'nav-off' ;
	}
	if( offNav )
	$j('#'+offNav.id+'_bar').hide();
	if( onNav ) {
		onNav.className = 'nav-on' ;
		$j('#'+onNav.id+'_bar').show();
	}
}


function getAddInfo( selector, hotelID, addinfo ){
	$j.get( '/', {m:'Hotel',h:'Hotel',a:'GetAddInfo', hotelid:hotelID, addinfo:addinfo, checkin:$j('#checkin').val(), checkout:$j('#checkout').val() }, function(data){$j(selector).prepend( data );} );
}


function chkIfTime(){
	if( Math.random() < 0.3 ) {
		return true ;
	}
	return false ;
}



//2、设置显示/隐藏房间详细
function setRooms( hotelLanguage ){
	if(hotelLanguage == 'zh_HK') {
		var constAcBarHide = '∧隱藏' ;
	}
	else {
		var constAcBarHide = '∧隐藏' ;
	}
	$j('a.rm-nm-lnk').click(function(){
		var roomID = this.id.replace( "room-name-","") ;
		//如果目标div尚未创建
		if( $j('#room-price-and-desc2-' + roomID ).length == 0 ) {
			$j('#room-row-' + roomID ).append( $j( '<div class="room-price-and-desc2-o"><div id="room-price-and-desc2-' + roomID + '" class="hide room-price-and-desc2">' + calRoomPriceDivs(roomID) + calRoomDescDivs(roomID) + '<div onclick="$j(\'#room-price-and-desc2-' + roomID + '\').slideToggle(\'normal\');" class="hide-action-bar">' + constAcBarHide + '</div></div></div>' ) );
		}
		$j('#room-price-and-desc2-' + roomID ).slideToggle("normal");
		$j(this).children('u').toggleClass('up');
		
		return false;
	});	
	$j('div.room-avg').one( 'mouseover', function(){
		$j(this).wTooltip({content: calRoomPriceDivs( $j(this).attr('roomid') ), style: false, offsetY: 20, 
    offsetX: -570 });
		$j(this).trigger('mouseover');
	});
	$j('div.room-desc').one( 'mouseover', function(){
		$j(this).wTooltip({content: calRoomDescDivs( $j(this).attr('roomid') ), style: false, offsetY: 20, 
    offsetX: 0 });
		$j(this).trigger('mouseover');
	});
}

function calRoomPriceDivs( roomID ){
	var divs = '<div class="rp2-row rp2-header"><div class="rp2-cell">&nbsp;</div>' ;
	var weekheaders = $j('#room-row-' + roomID + ' .room-avg').attr('weekheader').split('|') ;
	for( var i=0; i<weekheaders.length; i++ ) {
		divs += '<div class="rp2-cell">' + weekheaders[i] + '</div>' ;
	}
	divs += '</div>' ;
	
	var prices = $j('#room-row-' + roomID + ' .room-avg').attr('prices').split('|') ;
	var flgNeedCloseRow = false ;
	for( var i=0; i<prices.length; i++ ) {
		if( !prices[i] ) break ;
		if( i % 8 == 0 ) {
			divs += '<div class="rp2-row rp2-data"><div class="rp2-cell">' + prices[i] + '</div>' ;
			flgNeedCloseRow = true ;
		}
		else {
			var priceArr = prices[i].split('-');
			divs += '<div class="rp2-price"><u>' + priceArr[0] + '</u><br/>' + priceArr[1] + '</div>' ;
		}
		
		if( i % 8 == 7 && flgNeedCloseRow ) {
			divs += '</div>' ;
			flgNeedCloseRow = false ;
		}
	}
	if( flgNeedCloseRow ) {
		divs += '</div>' ;
		flgNeedCloseRow = false ;
	}
	return '<div id="room-price-' + roomID + '" class="room-price2"><div class="room-price2-inner">' + divs + '</div></div>' ;
}
function calRoomDescDivs( roomID ){
	var descs = $j('#room-row-' + roomID + ' .room-desc' ).attr('descs').replace(/ +/g,'；').split('；');
	var lis = '';
	if(descs.length>0) {
		for( var i=0;i<descs.length;i++ ) {
			if(descs[i].length>0)
			lis += '<li>' + descs[i] +'</li>' ;
		}
	}
	if( lis.length > 0 ) {
		return '<div id="room-desc-' + roomID + '" class="room-desc2"><div class="room-desc2-inner"><ul>' + lis + '</ul></div></div>' ;
	}
	return '<div id="room-desc-' + roomID + '" class="room-desc2"><div class="room-desc2-inner"><ul><li>宽带:' + $j('#room-row-' + roomID + ' .room-bw').html() + '</li></ul></div></div>' ;
}


function slideToggleAllRoom(el, allExpan, allColl ){
	if( $j(el).children('small').html() == allExpan ) {
		$j(el).parent().parent().parent().next().children().children().children('a').each(function(){
			var roomID = this.id.replace( "room-name-","") ;
			if( $j('#room-price-and-desc2-' + roomID ).length == 0 ) {
				$j(this).trigger('click');
			}
			else if( $j('#room-price-and-desc2-' + roomID )[0].style.display == 'none' ){
				$j(this).trigger('click');
			}
		});
		$j(el).children('small').html(allColl);
	}
	else {
		$j(el).parent().parent().parent().next().children().children().children('a').each(function(){
			var roomID = this.id.replace( "room-name-","") ;
			if( $j('#room-price-and-desc2-' + roomID ).length > 0 && $j('#room-price-and-desc2-' + roomID )[0].style.display != 'none' ) {
				$j(this).trigger('click');
			}
		});
		$j(el).children('small').html(allExpan) ;
	}
}


/**
 * 读取给定节点下的a节点并建立google地图填入给定节点的属性gmapdivid给出的div中
 */
function loadGmapHotels(el, bOpenInfoWindow, cbProHtml){
	
	var centerLat = $j(el).attr('centerlat');
	var centerLng = $j(el).attr('centerlng');
	var zoomLevel = $j(el).attr('zoomlevel');
	var gmapID = $j(el).attr('gmapdivid') ;
	if($j('#'+gmapID).length<=0) return ;
	var options = {
		center:{lat:centerLat,lng:centerLng},
		zoomLevel:zoomLevel,
		markers:[]
	};
	var sumLat=0,sumLng=0,count=0;
	$j('.loadGmapHotels').each( function(){
		var newmarker = {
			nam:$j(this).attr('gname'),
			lat: parseFloat( $j(this).attr('lat') ),
			lng: parseFloat( $j(this).attr('lng') ),
			ico:$j(this).attr('ico'),
			lnk:$j(this).attr('href')
		};
		if( newmarker.lat >2 && newmarker.lng > 2 ){
			sumLat += parseFloat(newmarker.lat);
			sumLng += parseFloat(newmarker.lng);
			count ++;
			options.markers.push( newmarker );
		}
	});
	if( !options.center.lat || !options.center.lng ) {
		options.center = {lat:sumLat/count,lng:sumLng/count};
	}
	if( !options.zoomLevel ) {
		options.zoomLevel = 11 ;
	}
	loadGmap2( '#' + gmapID, options, bOpenInfoWindow, cbProHtml );
}


function showGmapmarker(gmarkerind, cbProHtml) {
	if($j("#gmap-div").length>0) {
		var gmarkers = $j("#gmap-div").data( 'gmarkers' );
		if( gmarkers.length>gmarkerind ) {							
			if( typeof(cbProHtml) == 'function' ) {
				gmarkers[gmarkerind].openInfoWindowHtml( cbProHtml( $j('#showGmapmarkerLi_'+gmarkerind).html() ) );
			}
			else {
				gmarkers[gmarkerind].openInfoWindowHtml( $j('#showGmapmarkerLi_'+gmarkerind).html() );
			}
		}
	}
}

function initProvinceCityCountyAjax(){
	//city框的值变更引发城市的查询
	$j('#city').change(function(){
		$j.post( '/', {m:'Hotel', h:'Search', a:'SearchCity', city:$j('#city').val()}, function(json){
			if( parseInt(json.COUNTY_ID) > 0 ) {
				$j('#city').data( 'resetData.COUNTY_ID', json.COUNTY_ID );
			}
			if( parseInt(json.CITY_ID) > 0 ) {
				$j('#city').data( 'resetData.CITY_ID', json.CITY_ID );
			}
			if( parseInt(json.PROVINCE_ID) > 0 ) {
				$j('#provinceid').val(json.PROVINCE_ID);
				$j('#provinceid').trigger('change');
			}
		}, "json" );
	});
	$j('#provinceid').change(function(){
		$j('#cityid').empty();
		$j('#areacounty').empty();	
		
		if( $j('#provinceid')[0].value>0 ){
			$j('#cityid')[0].disabled = "disabled" ;
			$j.getJSON(  "/?m=Hotel&h=Search&a=CitiesOfProvince", {province_id:$j('#provinceid')[0].value}, function(cities){
				var opts="<option value=''></option>";
				for( var i=0; i<cities.length; i++ ) {	
　　　　　　　　		opts += "<option value='" + cities[i].ID + "'>" + cities[i].NAME + "</option>";
				}
				$j('#cityid').append(opts);
				$j('#cityid')[0].disabled = "" ;
				if( $j('#city').data( 'resetData.CITY_ID' ) > 0 ) {
					setTimeout("delayResetChange()",1000);
				}
			});
		}
	});

	$j('#cityid').change(function(){
		$j('#areacounty').empty() ;
		if( $j('#cityid')[0].value>0 ) {
			$j('#areacounty')[0].disabled = "disabled" ;	
			$j.getJSON( "/?m=Hotel&h=Search&a=AreasCountiesOfCity",{city_id:$j('#cityid')[0].value},function(items){
				var opts="<option value=''></option>";
				for( var i=0; i<items.areas.length; i++ ) {	
　　　　　　　　		opts += "<option title='" + items.areas[i].NAME + "' value='a" + items.areas[i].ID + "'>" + items.areas[i].NAME + "</option>";
				}
				for( var i=0; i<items.counties.length; i++ ) {	
　　　　　　　　		opts += "<option title='" + items.counties[i].NAME + "' value='u" + items.counties[i].ID + "'>县/区:" + items.counties[i].NAME + "</option>";
				}
				$j('#areacounty').append(opts);
				$j('#areacounty')[0].disabled = "" ;
				if( $j('#city').data( 'resetData.COUNTY_ID' ) > 0 ) {
					setTimeout("delayResetChange()",1000);
				}
			});
		}
	});
}


function delayResetChange(){
	if( $j('#city').data( 'resetData.CITY_ID' ) > 0 ) {
		$j('#cityid').val( $j('#city').data( 'resetData.CITY_ID' ) );
		$j('#cityid').trigger( 'change' );
		$j('#city').data( 'resetData.CITY_ID', 0 ) ;
		return ;
	}
	if( $j('#city').data( 'resetData.COUNTY_ID' ) > 0 ) {
		$j('#areacounty').val( 'u' + $j('#city').data( 'resetData.COUNTY_ID' ) );
		$j('#areacounty').trigger( 'change' );
		$j('#city').data( 'resetData.COUNTY_ID', 0 ) ;
	}
	else if( $j('#city').data( 'resetData.AREA_ID' ) > 0 ) {
		$j('#areacounty').val( 'a' + $j('#city').data( 'resetData.AREA_ID' ) );
		$j('#areacounty').trigger( 'change' );
		$j('#city').data( 'resetData.AREA_ID', 0 ) ;
	}
}


function acAddHotelAskHelp(askid){
	$j.post( '/?m=Hotel&h=Hotel&a=AskHelp',{id:askid},function(json){
			if( json.ret == 'OK' ) {
				$j('#HHA-ask-'+askid).replaceWith( '对我有用(' + json.count + ')' );
			}
			else 
				alert( '提交出错.' );
		},'json' );
	return false ;
}


function setFloatGmap(){
	
	//地图
	$j("#HSR-gmap").one( 'resize', function(){
		gmapFloat=loadGmap("#HSR-gmap" ) ;
	} );
	
	//$j('#HSR-gmap').hide();
	
	$j('span.HSR-hotel-emap').hover( function(){
		var div = $j("#HSR-gmap"); //要浮动在这个元素旁边的层
		div.css("display", "block");
		div.css("width", '400px');
		div.css("height", '300px');
		div.trigger('resize');
		div.css("position", "absolute");
		var self = $j(this); //当前对象
		var p = self.position(); //获取这个元素的left和top
		var x = p.left + self.width();//获取这个浮动层的left
		var docWidth = $j(document).width();//获取网页的宽
		if (x > docWidth - div.width() - 20) {
			x = p.left - div.width();
		}
		div.css("left", x);
		div.css("top", p.top);
		
		var hotelName = $j(this).attr('gname');
		var hotelLat = self.attr('lat');
		var hotelLng = self.attr('lng');
		if( hotelLat > 2 && hotelLng > 2 ) {
			var latLng = new GLatLng(hotelLat, hotelLng );
			gmapFloat.checkResize();
			gmapFloat.setCenter(latLng, 12); 
			var hotelMarker = new GMarker(latLng,{'icon': G_DEFAULT_ICON,title:hotelName,zIndexProcess:function(){return 10000}});
			gmapFloat.clearOverlays();
			gmapFloat.addOverlay(hotelMarker); 
		}
	},
	function() {
		$j("#HSR-gmap").css("display", "none");
	});
}

function actionLeftBoxAreaCounty(){
	//商业区/县区动作
	$j('#area-title').click(function(){
		$j('#area-title').removeClass('on').addClass('on');
		$j('#county-title').removeClass('on');
		$j('#area-list').show();
		$j('#county-list').hide();
	});
	$j('#county-title').click(function(){
		$j('#county-title').removeClass('on').addClass('on');
		$j('#area-title').removeClass('on');
		$j('#county-list').show();
		$j('#area-list').hide();
	});
	$j('#area-title').trigger( 'click' ) ;
}

		
		
function openHotelFromHSR(el){
	var lnk = $j(el).parents('.HSR-hotel').prev().children('a')[0];
    if (document.createEvent) {  
		//window.location.target="_blank";
		//window.location.href=lnk.href;
		window.open(lnk.href,'_blank');
    } else if (document.createEventObject) {  
		lnk.click();
    }  
}
