/**
 *  hsB2C javascript動作部分 共通ファイル
 *  ※このファイルを呼ぶ前にjquery-1.2.6.jsを読み込むこと
 */

// jQueryとprototype.jsのコンフリクト回避で$は使わない
jQuery.noConflict();
var j$ = jQuery;

//MAPKEYはhsb2c_setting.jsから読み込む
var mapsrc = '<script type="text/javascript" src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=' + MAPKEY + '"></script>';

/*
 * 共通関数
 */

//遊び心
if ( window.addEventListener ) {
	var kkeys = [], konami = "38,38,40,40,37,39,37,39,66,65";
	window.addEventListener("keydown", function(e){
	kkeys.push( e.keyCode );
	if ( kkeys.toString().indexOf( konami ) >= 0 )
		window.location = "http://ameblo.jp/hsstaff/";
	}, true);
}

//お待ちくださいの表示
function nowLoading()
{
	jQuery.extend(jQuery.blockUI.defaults, {message: LOAD_MSG_MAE + LOAD_IMG_URL + LOAD_MSG_ATO});
//	jQuery.extend(jQuery.blockUI.defaults.css, {width: '40%'});
//	jQuery.extend(jQuery.blockUI.defaults.overlayCSS, {backgroundColor: '#9999ff'});
	jQuery.blockUI();
}

//リファラをセット
function setReferrer()
{
	var ref = document.referrer;

	var q = getQuery();
	if( q["ref"]){
		ref = q["ref"];
	}
	if(!ref){
		return;
	}
	//フィルタを含む場合はセットしない
	var filt = new Array();
	filt.push("http://www.hotelskip.com");
	filt.push("http://garnet");
	filt.push("https://asp.hotelskip.com");
	for(var i=0; i<filt.length; i++){
		if( ref.search(filt[i]) != -1){
			return;
		}
	}
	document.cookie = "ref=" + ref + '; path=/';
}

//getパラメタの取得
function getQuery()
{
	var q = new Array();
	if(location.search){
		var query = location.search;
		query = query.substring(1,query.length);
		var querys = new Array();
		querys = query.split("&");
		for(i=0;i<querys.length;i++){
			var pram = new Array();
			pram = querys[i].split("=");
			var name = pram[0];
			var value = pram[1];
			q[name] = value;
		}
	}
	return q;
}

//keyのcookieの値を返す
function getCookie(key)
{
	tmp = document.cookie+";";
	tmp1 = tmp.indexOf(key,0);
	if(tmp1 != -1){
		tmp = tmp.substring(tmp1,tmp.length);
		start = tmp.indexOf("=",0);
		end = tmp.indexOf(";",start);
		return(unescape(tmp.substring(start+1,end)));
	}
	return null;
}

//ローマ字取得
function indexToRoma(i)
{
	str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	return str.charAt(i);
}

//3桁カンマ区切り
function figout( n )
{
	var str = n.toString(10);
	var ary = str.split( ".");
	if( ary[1]){
		n = ary[0];
	}
	var l, m = '';
	n = '' + n;
	while ( (l = n.length) > 3 ) {
		m = "," + n.substr( l - 3, 3 ) + m;
		n = n.substr( 0, l - 3 );
	}
	n = '' + n + m;
	if( ary[1]){
		n = n + "." + ary[1];
	}
	return n;
}


/*
 *  GoogleMaps 共通関数
 */

//google mapsの起動(gmapsはglobal変数にする)
function loadMaps(lat, lon, zoom)
{
	if( getCookie("MapSize") == "L"){
		resizeMap();
	}
	maps(lat, lon, zoom);
}

//地図の大きさ変更なし
function maps(lat, lon, zoom)
{
	if (GBrowserIsCompatible()) {
		gmaps = new GMap2(document.getElementById("MapCanvas"));
		//LAS
//		gmaps.setCenter(new GLatLng(36.23229672864544 , -115.24572372436523), 13);
		gmaps.setCenter(new GLatLng(lat , lon), zoom);
		gmaps.addControl(new GLargeMapControl());
		gmaps.addControl(new GScaleControl());
		gmaps.addControl(new GMapTypeControl());
//		gmaps.addControl(new GOverviewMapControl());
	}
}

//地図上にピンをうつ(緯度,経度,ピンの色)
function pushPin(lat,lon,color,title)
{
	switch(color){
		case 1:
			var img = "blue";
			break;
		case 2:
			var img = "red";
			break;
		case 3:
			var img = "grn";
			break;
		case 4:
			var img = "ltblu";
			break;
		case 5:
			var img = "ylw";
			break;
		case 6:
			var img = "purple";
			break;
		case 7:
			var img = "pink";
			break;
		default:
			var img = "purple";
			break;
	}
	var point  = new GLatLng( lat, lon);
	var markerIcon = new GIcon();
	markerIcon.image      = "http://maps.google.co.jp/mapfiles/ms/icons/"+ img +"-pushpin.png";
	markerIcon.shadow     = "http://maps.google.co.jp/mapfiles/ms/icons/pushpin_shadow.png";
	markerIcon.iconSize   = new GSize(32,32);
	markerIcon.shadowSize = new GSize(59,32);
	markerIcon.iconAnchor = new GPoint(16,32);
	markerIcon.infoWindowAnchor = new GPoint(16,0);	//デフォルトでないアイコンを使う場合は設定必須
	var opt    = {icon:markerIcon , title:title};
	var marker = new GMarker(point,opt);
	return marker;
}

//googlemaps 全てのマーカーが一画面に収まるように縮尺と中心を変更する
function resize(list)
{
	var gb;
	var first = 1;
	for( var index in list ){
		var marker = list[index];
		if( first ){
			gb = new GLatLngBounds( marker.getPoint(), marker.getPoint() );
			first = 0;
		}
		else{
			var point = marker.getPoint();
			gb.extend( point );
		}
	}
	gmaps.setCenter( gb.getCenter(), gmaps.getBoundsZoomLevel( gb ) );
}

//検索条件ををcookieに保存
function setFindCond()
{
	var condTmp = j$("#sp_ym").val() + '-' + j$("#sp_d").val();
	condTmp += "::" + j$("#sp_days").val();
	condTmp += "::" + j$("#sp_roomtype").val();
	condTmp += "::" + j$("#sp_roomcount").val();
	condTmp += "::" + j$("#sp_rating").val();
	condTmp += "::" + j$("#sp_pricerange").val();
	document.cookie = "FindCond=" + condTmp + '; path=/';
}

//保存した検索条件を取得
function getFindCond( name )
{
	var cond = getCookie('FindCond');
	if (cond==null) return '';
	var ary = cond.split('::');
	switch (name) {
	case 'Checkin':
		return ary[0];
		break;
	case 'Days':
		return ary[1];
		break;
	case 'RoomType':
		return ary[2];
		break;
	case 'RoomCount':
		return ary[3];
		break;
	case 'Rating':
		return ary[4];
		break;
	case 'PriceRange':
		return ary[5];
		break;
	}
	return '';
}
