﻿var url_root = '/pubmap';

var selected_marker = null;	// 選択中のマーカー
var markerdir = 'markers/';	// マーカー画像のあるディレクトリ

var openInfoWindowByID_lay = null;
var openInfoWindowByID_id  = null;

// 各レイヤーのマーカー保持用配列
var markers = new Array(12);
markers[0] = new Array();	// 常に表示するレイヤー
markers[1] = new Array();	// 通行規制(国道)
markers[2] = new Array();	// 通行規制(県道)
markers[3] = new Array();	// 冬期閉鎖(国道)
markers[4] = new Array();	// 冬期閉鎖(県道)
markers[5] = new Array();	// 積雪情報
markers[6] = new Array();	// 路面情報
markers[7] = new Array();	// 提供情報
markers[8] = new Array();	// ライブカメラ
markers[9] = new Array();	// 道の駅/PA
markers[10] = new Array();	// その他
markers[11] = new Array();	// 自営以外ライブカメラ
markers[12] = new Array();	// 市町村
markers[13] = new Array();	// 工事等状況

// 路線マークアップ用
var route_interval = null;
var route_detour = null;

//通行規制、規制区間表示時のビュー保持用
var routeId = null;

// スモールマップコントロール
function akitaControl() {}
akitaControl.prototype = new GControl();
akitaControl.prototype.initialize = function(map) {
	var container = document.getElementById("customButton");
	map.getContainer().appendChild(container);
	return container;
}
akitaControl.prototype.getDefaultPosition = function() {
	return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(7, 7));
}

// 凡例コントロール
function akitaHanreiControl() {}
akitaHanreiControl.prototype = new GControl();
akitaHanreiControl.prototype.initialize = function(map) {
	var container = document.getElementById("customHanrei");
	map.getContainer().appendChild(container);
	return container;
}
akitaHanreiControl.prototype.getDefaultPosition = function() {
	return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10, 120));
}

// リフレッシュボタン
function refreshControl() {}
refreshControl.prototype = new GControl();
refreshControl.prototype.initialize = function(map) {
	var container = document.getElementById("refreshButton");
	map.getContainer().appendChild(container);
	return container;
}
refreshControl.prototype.getDefaultPosition = function() {
	return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(7, 7));
}


function layerOnOff(lay,onoff) {

	// 工事等状況は提供情報と連動
	if (lay==13) lay = 7;

	if (lay < 10) {
		var chkid = 'lay0' + lay;
	} else {
		var chkid = 'lay' + lay;
	}

	e(chkid).checked = onoff;

}

/* レイヤーの切り替え */
function change_layer() {

	// 入力モードではレイヤを提供しない
	if (map_mode == 1) return;

	map.closeInfoWindow();
	if (initiallayer[0]=='yes') { if (markers[0].length  == 0) { get_contents(0); } }
	if (e('lay01')!=null) { if (!e('lay01').checked) { release_contents(1);  } else if (markers[1].length  == 0) { get_contents(1);  } }
	if (e('lay02')!=null) { if (!e('lay02').checked) { release_contents(2);  } else if (markers[2].length  == 0) { get_contents(2);  } }
	if (e('lay03')!=null) { if (!e('lay03').checked) { release_contents(3);  } else if (markers[3].length  == 0) { get_contents(3);  } }
	if (e('lay04')!=null) { if (!e('lay04').checked) { release_contents(4);  } else if (markers[4].length  == 0) { get_contents(4);  } }
	if (e('lay05')!=null) { if (!e('lay05').checked) { release_contents(5);  } else if (markers[5].length  == 0) { get_contents(5);  } }
	if (e('lay06')!=null) { if (!e('lay06').checked) { release_contents(6);  } else if (markers[6].length  == 0) { get_contents(6);  } }
	if (e('lay07')!=null) { if (!e('lay07').checked) { release_contents(7); release_contents(13); } else if (markers[7].length  == 0) { get_contents(7); get_contents(13); } }
	if (e('lay08')!=null) { if (!e('lay08').checked) { release_contents(8); release_contents(11); } else if (markers[8].length  == 0) { get_contents(8); get_contents(11); } }
	if (e('lay09')!=null) { if (!e('lay09').checked) { release_contents(9);  } else if (markers[9].length  == 0) { get_contents(9);  } }
	if (e('lay10')!=null) { if (!e('lay10').checked) { release_contents(10); } else if (markers[10].length == 0) { get_contents(10); } }
	if (e('lay12')!=null) { if (!e('lay12').checked) { release_contents(12); } else if (markers[12].length == 0) { get_contents(12); } }
}

function refresh_layer() {

	for (lay=0;lay<=12;lay++) release_contents(lay);
	change_layer();

}

function openInfoWindowByID(lay,id) {

	var opened = false;

	for (i=0;i<markers[lay].length;i++) {
		if (markers[lay][i]["id"] == id) {
			openInfoWindow(lay,i);
			opened = true;
		}
	}

	if (!opened) {
		openInfoWindowByID_lay = lay;
		openInfoWindowByID_id  = id;
	}

}

// 規制区間、迂回路の表示
function show_roadstop(id,lat,lng) {

	var url = url_root + '/roadstopxml.php?id=' + id;

	// 表示中の路線があれば消去する
	if (route_interval != null) {
		map.removeOverlay(route_interval);
		route_interval = null;
	}
	if (route_detour != null) {
		map.removeOverlay(route_detour);
		route_detour = null;
	}
	
	
	// リクエスト
	var request = GXmlHttp.create();
	request.open('GET', url, true);

	// レスポンスを受け処理する
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
			if (xmlDoc != null && xmlDoc.documentElement != null) {

				var interval_points = '';
				var interval_levels = '';
				var detour_points = '';
				var detour_levels = '';

				var elms = xmlDoc.documentElement.getElementsByTagName("points");
				for (var i = 0; i < elms.length; i++) {
					switch (elms[i].parentNode.tagName) {
					case 'interval':
						interval_points = elms[i].firstChild.nodeValue;
						break;
					case 'detour':
						detour_points = elms[i].firstChild.nodeValue;
						break;
					}
				}

				var elms = xmlDoc.documentElement.getElementsByTagName("levels");
				for (var i = 0; i < elms.length; i++) {
					switch (elms[i].parentNode.tagName) {
					case 'interval':
						interval_levels = elms[i].firstChild.nodeValue;
						break;
					case 'detour':
						detour_levels = elms[i].firstChild.nodeValue;
						break;
					}
				}

				if (interval_points != '' && interval_levels != '') {

					route_interval = new GPolyline.fromEncoded({
						color:		"#ff0000",
						weight:		4,
						opacity:	0.8,
						points:		interval_points,
						levels:		interval_levels,
						zoomFactor:	2,
						numLevels:	18
					});

					map.addOverlay(route_interval);

				}

				if (detour_points != '' && detour_levels != '') {

					route_detour = new GPolyline.fromEncoded({
						color:		"#0000ff",
						weight:		4,
						opacity:	0.8,
						points:		detour_points,
						levels:		detour_levels,
						zoomFactor:	2,
						numLevels:	18
					});

					map.addOverlay(route_detour);

				}

			}

		}
	}
	request.send(null);

	locateMap(lat,lng,14);
	//map.closeInfoWindow();
}


/* マーカーを作成する */
function createMarker(itype, lng, lat, lay, idx) {

	if (itype<0 || itype>=icons.length) itype = 0;

	if (!(itype in icons)) itype = 0;

//	itype = 0;

	if (idx<0  || idx>25 || icons[itype]['type'] == 1) {
		var letter = "";
	} else {
		var letter = String.fromCharCode("A".charCodeAt(0) + idx);
	}

	var gmopt = new Object();
	gmopt.icon = new GIcon();
	gmopt.draggable = true;
	gmopt.title = "";

	if (icons[itype]['type'] == 'single') {
		var icon_image = icons[itype]['icon'];
	} else {
		var icon_image = icons[itype]['url'] + "marker" + letter + ".png";
	}

	gmopt.icon.image = markerdir + icon_image;
	if (icons[itype]['shadow'] != '')	gmopt.icon.shadow = markerdir + icons[itype]['shadow'];
	if (icons[itype]['transparent'] != '')	gmopt.icon.transparent = markerdir + icons[itype]['transparent'];
	if (icons[itype]['printImage'] != '')	gmopt.icon.printImage = markerdir + icons[itype]['printImage'];
	if (icons[itype]['mozPrintImage'] != '')	gmopt.icon.mozPrintImage = markerdir + icons[itype]['mozPrintImage'];
	if (icons[itype]['imageMap'] != '')	gmopt.icon.imageMap = icons[itype]['imageMap'];
	if (icons[itype]['printShadow'] != '')	gmopt.icon.printShadow = icons[itype]['printShadow'];
	gmopt.icon.iconSize = new GSize(icons[itype]['iconW'], icons[itype]['iconH']);
	gmopt.icon.shadowSize = new GSize(icons[itype]['shadowW'], icons[itype]['shadowH']);
	gmopt.icon.iconAnchor = new GPoint(icons[itype]['anchorX'], icons[itype]['anchorY']);
	gmopt.icon.infoWindowAnchor = new GPoint(icons[itype]['infoX'], icons[itype]['infoY']);

	var point = new GPoint(lng, lat);
	var marker = new GMarker(point, gmopt);

	if (lay > -1 && idx > -1) {
		switch(markers[lay][idx]['type']) {
		case 'url':
			GEvent.addListener(marker, 'click', function() {
				open_url(markers[lay][idx]['content']);
			});
			break;
		case 'html':
			GEvent.addListener(marker, 'click', function() {
				openInfoWindow(lay,idx);
			});
			break;
		}
	}

	marker.disableDragging();

	return marker;
}

/* 情報タブの html を作成する */
function createInfoHtml(lay,idx,set) {

	if (set == '') {
		// コンテンツをすべて使用
		if (markers[lay][idx]["id"] != '') {
			var html = markers[lay][idx]["content"];
		} else {
			var html = markers[lay][idx]["name"];
		}
	} else {
		// コンテンツの一部を使用（contentは改行なし、#set#～#set# の間を引き抜く）
		var rex = new RegExp(set+"(.+)"+set, "m");
		if (markers[lay][idx]["content"].match(rex)) { 
			var html = RegExp.$1;
		}
	}

	// アイコンの埋め込み #icon# を置換える
	var icon = "<img class='info_icon' src='/pubmap/markers/" + icons[markers[lay][idx]['icon']]['printImage'] + "' width='" + icons[markers[lay][idx]['icon']]['iconW'] + "' height='" + icons[markers[lay][idx]['icon']]['iconH'] + "' />";
	html = html.replace("#icon#",icon);

	// キャッシュ対策用 #time# を置き換える
	d = new Date();
	html = html.replace("#time#",d.getTime());

	return '<div class="info_body">' + html + '</div>';
}

/* 情報ウィンドウをオープン */
function openInfoWindow(lay,idx) {


	// タブの内容を準備
	switch (lay) {
	case 7:
		var tabs = [
			new GInfoWindowTab("情報", createInfoHtml(lay,idx,'#tab_main#')),
			new GInfoWindowTab("拡大", '<div id="detailmap"></div>'),
			new GInfoWindowTab("提供", createInfoHtml(lay,idx,'#tab_copy#'))
		];
		break;
	case 13:
		var tabs = [
			new GInfoWindowTab("情報", createInfoHtml(lay,idx,'#tab_main#')),
			new GInfoWindowTab("拡大", '<div id="detailmap"></div>'),
			new GInfoWindowTab("概要", createInfoHtml(lay,idx,'#tab_outline#'))
		];
		break;
	default:
		var tabs = [
			new GInfoWindowTab("情報", createInfoHtml(lay,idx,'')),
			new GInfoWindowTab("拡大", '<div id="detailmap"></div>')
		];
		break;
	}

	// 情報ウィンドウを開く
	var infoUrl = "/pubdat/detail.php?lay=" + lay + '&id=' + markers[lay][idx]['id'] + '&o=n';
	map.closeInfoWindow();
//	markers[lay][idx]["marker"].openInfoWindowTabsHtml(tabs, {maxUrl:infoUrl});
	markers[lay][idx]["marker"].openInfoWindowTabsHtml(tabs);

	// 詳細情報ウィンドウを表示　2010/5/25 ADD iwasawa
	if (lay<=4) {
		var infoUrl2 = "/pubdat/detail.php?lay=" + lay + '&id=' + markers[lay][idx]['id'];
//		window.open(infoUrl,"subWindow","width=340,height=560, toolbar=no, location=no,directories=no, status=no, menubar=no, scrollbars=yes");
		showModalDialog(infoUrl2,"openWindow","dialogWidth:340px;dialogHeight:560px");
	} 

	// 拡大地図を作成
	var dMapDiv = document.getElementById("detailmap");
	var detailmap = new GMap2(dMapDiv);
	var point = markers[lay][idx]["marker"].getPoint();
	detailmap.addControl(new GSmallZoomControl());
	detailmap.setCenter(point, 12);

	// 選択したシンボルを表示
	var marker = createMarker(markers[lay][idx]["icon"], point.lng(), point.lat(), -1, -1);
	detailmap.addOverlay(marker);

	// コピーライトを非表示にする
	var CopyrightDiv = dMapDiv.firstChild.nextSibling;
	var CopyrightImg = dMapDiv.firstChild.nextSibling.nextSibling;
	CopyrightDiv.style.display = "none"; 
	CopyrightImg.style.display = "none"; 

}

/* 大きい地図用のコントロール初期化 */
function setLargeControl() {
	map.addControl(new GLargeMapControl(),new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(5,40)));
	map.addControl(new GMapTypeControl(),new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(80,7)));
	map.addControl(new GScaleControl());
	map.addControl(new GOverviewMapControl());
	map.addControl(new akitaControl());
	map.addControl(new akitaHanreiControl());
	map.addControl(new refreshControl());
//	var overview = document.getElementById("map_overview");
	new GKeyboardHandler(map);
	map.enableContinuousZoom();
	map.enableDoubleClickZoom();
//	document.getElementById("map").appendChild(overview);
}

/* 小さい地図用のコントロール初期化 */
function setSmallControl() {
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GScaleControl());
	map.addControl(new GOverviewMapControl());
//	var overview = document.getElementById("map_overview");
	new GKeyboardHandler(map);
	map.enableContinuousZoom();
	map.enableDoubleClickZoom();
//	document.getElementById("map").appendChild(overview); 
}

/* 地図テーマを変更 */
function setMapType(maptype) {
	switch (maptype) {
	case 1:
		map.setMapType(G_MAP_TYPE);
		break;
	case 2:
		map.setMapType(G_HYBRID_TYPE);
		break;
	case 3:
		map.setMapType(G_SATELLITE_TYPE);
		break;
	default:
		map.setMapType(G_MAP_TYPE);
	}
}

/* エディタ用のイベントハンドラ */
function enableClickHandler() {
	GEvent.addListener(map, 'click', function(overlay, point) {
/*
		document.getElementById("DBL_lng").value = point.x;
		document.getElementById("DBL_lat").value = point.y;
*/
		if (mkr == 'input' || mkr == 'inputp') {
			if (inputting_marker == null) {
				inputting_marker = createMarker(0,point.x,point.y,-1,-1);
				map.addOverlay(inputting_marker);
			} else {
				inputting_marker.setPoint(point);
			}
		}
	});
}

/* 表示位置記憶用イベントハンドラ */
function enableMoveHandler() {
	GEvent.addListener(map, "moveend", function() {
		get_contents(0);
		center = map.getCenter();
		zoomlv = map.getZoom();
		expire = new Date;
		expire.setTime(expire.getTime()+(30*24*60*60*1000));
		setCookie('ck_lng', center.x, expire);
		setCookie('ck_lat', center.y, expire);
		setCookie('ck_lev', zoomlv, expire);
	});
}

/* テーマ変更記憶用イベントハンドラ */
function enableMapTypeHandler() {
	GEvent.addListener(map, "maptypechanged", function() {
		switch (map.getCurrentMapType()) {
		case G_MAP_TYPE:
			maptype = 1;
			break;
		case G_HYBRID_TYPE:
			maptype = 2;
			break;
		case G_SATELLITE_TYPE:
			maptype = 3;
			break;
		default:
			maptype = 1;
		}
		expire = new Date;
		expire.setTime(expire.getTime()+(30*24*60*60*1000));
		setCookie('ck_map', maptype, expire);
	});
}

/* 情報ウィンドウクローズのイベントハンドラ */
function enableInfoWinCloseHandler() {
	GEvent.addListener(map, "infowindowclose", function() {
		selected_marker = null;
	});
}

/* 移動 */
function locateMap(lat,lng,level) {
	level = level -0;
	if (level>0) {
		map.setCenter(new GLatLng(lat, lng), level);
	} else {
		map.panTo(new GLatLng(lat, lng));
	}
}

/* 拡大 */
function zoomMap(lat,lng) {

	zoom = map.getZoom();
	if (zoom>=13) {
		zoom = zoom+1;
	} else {
		zoom = 13;
	}

	map.setCenter(new GLatLng(lat, lng), zoom);
}

// ウィンドウの高さを算出
function getWindowHeight() {
	if (window.self && self.innerHeight) {
		return self.innerHeight;
	}
	if (document.documentElement && document.documentElement.clientHeight) {
		return document.documentElement.clientHeight;
	}
	if (document.body && document.body.clientHeight) {
		return document.body.clientHeight;
	}
	return 0;
}

// IDからエレメント取得
function e(id) {
	return document.getElementById(id);
}

// ウィンドウリサイズに地図を合わせてる
function resizeMap() {

	setParentIfHeight();

	if (!resize_enabled) return;

	var offset = 0;
	for (var elem = e("map");elem != null;elem = elem.offsetParent) {
		offset += elem.offsetTop;
	}
	var windowHeight = getWindowHeight();
	var height = windowHeight - offset - resize_margin;
	if (height >= 0) {
		e("map").style.height = height + "px";
	}

	map.checkResize();

	if (centermarker != null) {
		var mapsz = map.getSize();
		var x = (mapsz.width - 31) / 2;
		var y = (mapsz.height - 31) / 2;
		centermarker.style.top = y+"px";
		centermarker.style.left = x+"px";
	}

}

// 親フレームの縦サイズを動的に変更
function setParentIfHeight() {
	if(parent && (parent != self) && parent_frame_id && parent.document.getElementById(parent_frame_id)) {
		if(document.all) {
			parent.document.getElementById(parent_frame_id).height = (document.body.scrollHeight + 30);
		} else {
			parent.document.getElementById(parent_frame_id).height = (document.body.offsetHeight + 30);
		}
	}
}

// コンテンツを動的にロードする
function get_contents(x) {

	d = new Date();

	switch(x) {
	default:
		var url = url_root + '/markerxml.php?lay=' + x + '&t=' + d.getTime();
	}

	release_contents(x);

	// リクエスト
	var request = GXmlHttp.create();
	request.open('GET', url, true);

	// レスポンスを受け処理する
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
			if (xmlDoc != null && xmlDoc.documentElement != null) {
				var elm_markers = xmlDoc.documentElement.getElementsByTagName("marker");
				for (var i = 0; i < elm_markers.length; i++) {
					idx = markers[x].length;
					markers[x].length = idx + 1;
					markers[x][idx] = new Object();
					markers[x][idx]["id"]      = elm_markers[i].getAttribute("id");
					markers[x][idx]["icon"]    = parseInt(elm_markers[i].getAttribute("icon"));
					markers[x][idx]["name"]    = elm_markers[i].getAttribute("name");
					markers[x][idx]["type"]    = elm_markers[i].getAttribute("type");
					if (elm_markers[i].firstChild) {
						markers[x][idx]["content"] = elm_markers[i].firstChild.nodeValue;
					}
					markers[x][idx]["marker"] = createMarker(
						markers[x][idx]["icon"],
						parseFloat(elm_markers[i].getAttribute("lng")),
						parseFloat(elm_markers[i].getAttribute("lat")),
						x,
						idx
					);
					map.addOverlay(markers[x][idx]["marker"]);
					if (openInfoWindowByID_lay != null) {
						// 情報ウィンドウを空ける必要がある場合
						if (openInfoWindowByID_lay == x && openInfoWindowByID_id == markers[x][idx]["id"]) {
							openInfoWindow(x,idx);
							openInfoWindowByID_lay = null;
							openInfoWindowByID_id  = null;
						}
					}
				}
			}

		}
	}
	request.send(null);

}

// コンテンツを開放する
function release_contents(x) {

	for (i=0;i<markers[x].length;i++) {

		map.removeOverlay(markers[x][i]["marker"]);
		markers[x][i]["marker"] = null;

	}

	markers[x].length = 0;

}

// 十進経緯度を60進表記に変換
function lat2deg(dec) {
	if (dec >= 0)  {
		var p = 'N';
	} else {
		var p = 'S';
	}
	var n = Math.abs(dec);
	var d = Math.floor(n);
	var m = Math.floor((n - d) * 60);
	var s = Math.round((n - d - m / 60) * 360000)/100;

	m = (m < 10) ? ('0' + m) : (m + '');
	s = (s < 10) ? ('0' + s) : (s + '');
	if (s.indexOf(".") != -1) {
		s = s.split(".")[0]+"."+(s.split(".")[1]+"00").substring(0,2);
	} else {
		s = s + ".00";
	}

	return( d + 'ﾟ' + m + "'" + s + '"' + p );
}

// 十進経緯度を60進表記に変換
function lng2deg(dec) {
	if (dec >= 0)  {
		var p = 'E';
	} else {
		var p = 'W';
	}
	var n = Math.abs(dec);
	var d = Math.floor(n);
	var m = Math.floor((n - d) * 60);
	var s = Math.round((n - d - m / 60) * 360000)/100;

	m = (m < 10) ? ('0' + m) : (m + '');
	s = (s < 10) ? ('0' + s) : (s + '');
	if (s.indexOf(".") != -1) {
		s = s.split(".")[0]+"."+(s.split(".")[1]+"00").substring(0,2);
	} else {
		s = s + ".00";
	}

	return( d + 'ﾟ' + m + "'" + s + '"' + p );
}

// 地名検索
function geo_search(address) {

	geocoder.getLatLng(
		address,
		function(point) {
			if (!point) {
				alert(address + " not found");
			} else {
				map.panTo(point);
			}
		}
	);

}

function printPage(){
	if(document.getElementById || document.layers){
		window.print();
	} else {
		alert('お使いのブラウザでは印刷することができません');
	}
}

// ポップアップウィンドウにページを表示
function open_url(url) {

	window.open(url);

}

//----------------------------------------------------------
// 入力ツール
//----------------------------------------------------------

function set_input_mark(lat,lng,itype) {

	remove_input_mark();

	inputting_marker = createMarker(itype, lng, lat, -1, -1);
	inputting_marker.enableDragging();
	GEvent.addListener(inputting_marker, 'dragend',
		function() {
			p = inputting_marker.getPoint();
			parent.editor.e('lat').value = p.lat();
			parent.editor.e('lon').value = p.lng();
		}
	);
	map.addOverlay(inputting_marker);

}

function remove_input_mark() {

	if (inputting_marker != null) {
		map.removeOverlay(inputting_marker);
		inputting_marker = null;
	}

}

//----------------------------------------------------------
// エディットボックスのヒント表示
//----------------------------------------------------------

var input_msg = {
	geo: "例:「秋田市山王４－１－１」"
}

// テキスト入力ボックス用フォーカス外れた
function on_blur(f) {
	var w = e(f);
	if (w.value.length == 0 || w.value == input_msg[f]) {
		w.style.color = "gray";
		w.value = input_msg[f];
	} else {
		w.style.color = "";
	}
}


// テキスト入力ボックス用フォーカス入った
function on_focus(f) {
	var w = e(f);
	if (w.value == input_msg[f]) {
		w.value = "";
	}
	w.style.color = "";
}


//----------------------------------------------------------
// Cookie 関係
//----------------------------------------------------------

// Cookie 設定関数
function setCookie(name,value,expire) {
	document.cookie
		= name + '=' + escape(value)
		+ ((expire==null)?'':('; expires='+expire.toGMTString()))
	;
	//e("debug").innerHTML = document.cookie;
}

// Cookie 取得関数
function getCookie(name) {
	var search = name + '=';
	if (document.cookie.length>0) {
		offset = document.cookie.indexOf(search);
		if (offset != -1){
			offset += search.length;
			end     = document.cookie.indexOf(';',offset);
			if(end == -1)
				end = document.cookie.length;
			return unescape(document.cookie.substring(offset,end));
		}
	}
	return null;
}

//----------------------------------------------------------
// クエリーフィールド取得用
//----------------------------------------------------------

var arg = new Object();

getArg();

function getArg() {

	var q = location.href;
	q = q.match(/\?(.+)/);
	if (q != null && q.length == 2) {

		while ( q != null ) {
			q = q[1].match(/(.+?)=(.+?)/);
			if ( q != null ) {
				arg[q[1]] = q[2];
				q = RegExp.rightContext.match(/&(.+)/);
			}
		}

	}

}

