/**
 * 関数群
 *
 * @param
 * @return
 */
var homesutil = new Object();

/**
 * URLパラメータを取得する
 * 
 * @param
 * @return Object パラメータオブジェクト
 */
homesutil.getURLParameter = function () {
	var param = new Object();
	var locationhref = location.href.split("?");
	var params = new Array();
	param._domain = locationhref[0].match(/^[https]+:\/{2,3}([0-9a-z\.\-]+?):?[0-9]*?\//i)[1];
	param._fulldomain = locationhref[0].match(/^[https]+:\/{2,3}([0-9a-z\.\-]+?):?[0-9]*?\//i)[0];
	param._file = locationhref[0];
	if (locationhref[1]) {
		params = locationhref[1].split("&");
	}
	for (var i = 0; i < params.length; i++) {
		var paramarray = params[i].split("=");
		if (paramarray[1]) {
			if (!param[paramarray[0]]) {
				param[paramarray[0]] = new Array();
			}
			param[paramarray[0]].push(unescape(paramarray[1]));
		} else {
			param[paramarray[0]] = null;
		}
	}
	return param;
}

/**
 * ZIDよりSCLを取得する
 * 
 * @param String ZID
 * @return String SCL
 */
homesutil.ZidToScl = function(scl) {
	var _ZIDtoSCL ={
	    '9':'5000',
	    '8':'10000',
	    '7':'25000',
	    '6':'70000',
	    '5':'250000',
	    '4':'500000',
	    '3':'1000000',
	    '2':'3000000',
	    '1':'5000000',
	    '0':'26000000'
	};
	return _ZIDtoSCL[scl];
}

/**
 * SCLよりZIDを取得する
 * 
 * @param String SCL
 * @return String ZID
 */
homesutil.SclToZid = function(zid) {
	var _SCLtoZID = {
		'5000':'9',
		'10000':'8',
		'25000':'7',
		'70000':'6',
	    '250000':'5',
	    '500000':'4',
	    '1000000':'3',
	    '3000000':'2',
	    '5000000':'1',
	    '26000000':'0'
	};
	return _SCLtoZID[zid];
}

/**
 * POIを削除する
 * 
 * @param Object マップオブジェクト
 * @param Array POI配列
 * @return 
 */
homesutil.removePoi = function(map, poiarray) {
	if (poiarray != null) {
		for (var i = 0; i < poiarray.length; i++) {
			map.removeOverlay( poiarray[i] );
		}
	}
	
}

/**
 * 検索中画像を表示／非表示する
 * 
 * @param Boolean true/false
 * @return 
 */
homesutil.searchImageElement = null;
homesutil.searchImage = function(status) {
	if(homesGlobal.map == null) {
		return;
	}
	if (homesutil.searchImageElement == null) {
		homesutil.searchImageElement = document.createElement("IMG");
		homesutil.searchImageElement.style.visibility = "hidden";
		homesutil.searchImageElement.style.position = "absolute";
		homesutil.searchImageElement.src = "/homes/images/search2.gif";
		homesutil.searchImageElement.style.zIndex = 10000;
		homesGlobal.map.div.appendChild(homesutil.searchImageElement);
	}
	if (status) {
		homesutil.searchImageElement.style.left = ((homesGlobal.map.div.offsetWidth - 75) / 2) + "px"
		homesutil.searchImageElement.style.top = ((homesGlobal.map.div.offsetHeight - 75) / 2) + "px"
		homesutil.searchImageElement.style.visibility = "visible";
	} else {
		homesutil.searchImageElement.style.visibility = "hidden";
	}
}

/**
 * 強調アイコン画像を表示／非表示する
 * 
 * @param Boolean true/false
 * @param MPoint 表示座標
 * @return 
 */
homesutil.markImageElement = null;
homesutil.markImage = function(status, pos) {
	if(homesGlobal.map == null) {
		return;
	}
	if (homesutil.markImageElement == null) {
		homesutil.markImageElement = document.createElement("IMG");
		homesutil.markImageElement.style.visibility = "hidden";
		homesutil.markImageElement.style.position = "absolute";
		homesutil.markImageElement.src = "/homes/images/icon_here.gif";
		homesutil.markImageElement.style.zIndex = 10000;
		homesGlobal.map.canvasdiv.appendChild(homesutil.markImageElement);
		homesutil.markImageElement.onmouseover = function() {
			this.style.visibility = "hidden";
		}
	}
	if (pos) {
		var pp = homesGlobal.map.r2p( pos );
		homesutil.markImageElement.style.left = (pp.x - 34) + "px";
		homesutil.markImageElement.style.top  = (pp.y - 34) + "px";
	}
	if (status) {
		homesutil.markImageElement.style.visibility = "visible";
	} else {
		homesutil.markImageElement.style.visibility = "hidden";
	}
}

/**
 * 60進から10進へ変換
 * 
 * @param String 60進
 * @return Number 10進
 */
homesutil.change60to10 = function(point){
	point = "" + point;
	if(point.indexOf('/')==-1){
		return parseFloat(point);
	}

	ret = 0.0;
	var div = 1;
	var sp = point.split('/');
	for(i=0; i<sp.length; i++) {
		ret = ret + parseFloat( sp[i] ) / div;
		div = div * 60.0;
	}
	return ret;
};


/**
 * 縮尺選択の表示
 * 
 * @param number 設定する縮尺
 * @return 
 */
homesutil.setZoomElement = function(zm) {
	var zoomtext = new Array("", "", "", "", "", "", "1/21000", "1/8000", "1/3000", "1/1500");
	for (var i = 0; i <= 9; i++) {
		if (homesGlobal.zoomelement[i] != null) {
			if (i == zm) {
				homesGlobal.zoomelement[i].innerHTML = zoomtext[i];
			} else {
				homesGlobal.zoomelement[i].innerHTML = '<a href="javascript:void(0);" onclick="setZoomLevel('+ i + ');return false;">' +zoomtext[i]; + '</a>'
			}
		}
	}
}

/**
 * ３桁カンマを付加した文字列を返す 
 * 
 * @param number 数値
 * @return string ３桁カンマを付加した文字列
 */
homesutil.addDelimiter = function(val) { 
	if(val == null) return "";
	while (val != (tmp = val.replace(/^([+-]?\d+)(\d\d\d)/, "$1,$2"))) { 
		val = tmp; 
	} 
	return val; 
} 

/**
 * ３桁カンマ+小数点以下３桁切り上げを付加した文字列を返す 
 * 
 * @param number 数値
 * @return string ３桁カンマ+小数点以下３桁切り上げを付加した文字列
 */
homesutil.addDelimiterCeil = function(val) { 
	if(val == null) return "";
	val = (Math.ceil(val / 100) / 100);
	val += "";
	while (val != (tmp = val.replace(/^([+-]?\d+)(\d\d\d)/, "$1,$2"))) { 
		val = tmp; 
	} 
	return val; 
}

/**
 * nullなら""を返す 
 * 
 * @param string 文字列
 * @return string  nullなら""を返す。null以外はそのまま
 */
homesutil.nvl = function(str) {
	if (str == null) {
		str = "";
	}
	return str;
} 

/**
 * nullなら"-"を返す 
 * 
 * @param string 文字列
 * @return string  nullなら"-"を返す。null以外はそのまま
 */
homesutil.nvh = function(str) {
	if (str == null) {
		str = "";
	}
	return str;
} 

/*-----------------------------
 * クッキー取得関数
 * 
 * @param	パラメータ名
 * @returns	パラメータの値
 */
homesutil.getCookie = function(name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg) {
      e = document.cookie.indexOf(";", i);
      if (e < 0) e = clen;
      val = document.cookie.substring(j, e);
      return val;
    }
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) 
      break;
  }
  return null;
};

/*-----------------------------
 * クッキー設定関数
 * 
 * @param	パラメータ名
 * @param	パラメータの値
 * @returns	なし
 */
homesutil.setCookie = function(path, name, val, time) {
	
	var setDay=new Date();
	var locationhref = location.href.split("?");
	var params = new Array();
	var cookie_domain = locationhref[0].match(/^[https]+:\/{2,3}([0-9a-z\.\-]+?):?[0-9]*?\//i)[1];
	
	setDay.setTime(setDay.getTime() + (time * 1000));
	
	var p = "" +
	        name + "=" + val + ";" +
	        "expires=" + setDay.toGMTString() + ";" +
	        //"domain=" + cookie_domain + ";" +
	        "path=" + path + ";" + 
	        "";
	document.cookie = p;
};
