function setGoogleMap(address, shop_name)
//
//
//
////////////////////////////////////////////////////////////////////////////////////////////////////
{
	var clsTools = null;

	clsTools = new tools();
	clsTools.JSLoader("/script/map.js", "Map", function(){
		clsMap = new Map("button", "詳しい地図を見る", address, shop_name);
	});
}



function setNaviMap(address, shop_name)
//
//
//
////////////////////////////////////////////////////////////////////////////////////////////////////
{
	var clsTools = null;

	clsTools = new tools();
	clsTools.JSLoader("/script/navitime.js", "Map", function(){
		clsMap = new Map("button", "詳しい地図を見る", address, shop_name);
	});
}



function setNowLoading(text)
//
//
//
////////////////////////////////////////////////////////////////////////////////////////////////////
{
	var clsTools = null;

	clsTools = new tools();
	clsTools.JSLoader("/script/nowloading.js", "NowLoading", function(){
		clsNowLoading = new NowLoading(text);
	});
}



function tools()////////////////////////////////////////////////////////////////////////////////////
//
// 説　明：よく使いそうなものの詰め合わせ
// 機　能：
// 引　数：なし
//  ﾒｿｯﾄﾞ：JSLoader … 外部JavaScriptの読み込み
//         setStyle … getAttribute("style") のブラウザによる違いの解消
//         setEvent … イベントの統一
//
////////////////////////////////////////////////////////////////////////////////////////////////////
{
}
tools.prototype = {
	JSLoader : function(src, cls, func)/////////////////////////////////////////////////////////////
	//
	// 説　明：外部JavaScriptの読み込み
	// 機　能：script要素を生成してclsが読み込まれたらfuncを実行
	// 引　数：src  … 外部JavaScriptファイルのURL
	//         cls  … 読み込んだか調べる関数の名前
	//         func … 読み込んだら実行する関数
	// 戻り値：なし
	//
	////////////////////////////////////////////////////////////////////////////////////////////////
	{
		var wait = function(cls, func)//////////////////////////////////////////////////////////////
		//
		//
		//
		////////////////////////////////////////////////////////////////////////////////////////////
		{
			var check = 0;
			var f     = null;
		
			try{
				eval("check = " + cls);
			}
			catch(e){
			}
			if(check){
				func();
			}else{
				f = function(){ wait(cls, func); };
				setTimeout(f, 100);
			}
		}
		var objElement = null;
	
		objElement = document.createElement("SCRIPT");
		objElement.setAttribute("type", "text/javascript");
		objElement.setAttribute("src", src);
		document.getElementsByTagName("HEAD")[0].appendChild(objElement);
	
		wait(cls, func);
	},



	setStyle : function(target, cssText)////////////////////////////////////////////////////////////
	//
	// 説　明：getAttribute("style") のブラウザによる違いの解消
	// 機　能：
	// 引　数：target  … スタイルを変更するオブジェクト
	//         cssText … スタイル
	// 戻り値：なし
	//
	////////////////////////////////////////////////////////////////////////////////////////////////
	{
		if(document.documentElement.getAttribute("style") == document.documentElement.style){
			target.style.cssText = cssText;
		}else{
			target.setAttribute("style", cssText);
		}
	},



	setEvent : function(target, eventName, func)////////////////////////////////////////////////////
	//
	// 説　明：イベントの統一
	// 機　能：
	// 引　数：target    … イベントを設定するオブジェクト
	//         eventName … イベントの名前
	//         func      … イベント発生時に実行する関数
	// 戻り値：なし
	//
	////////////////////////////////////////////////////////////////////////////////////////////////
	{
		if(typeof window.addEventListener == 'function'){
			target.addEventListener(eventName, func, false);
		}else if(typeof window.attachEvent == 'object'){
			target.attachEvent("on" + eventName, function(){
				e = window.event;
				e.currentTarget = target;
				return func(e);
			});
		}else{
			target[eventName] = func;
		}
	},



	debug : function()//////////////////////////////////////////////////////////////////////////////
	//
	//
	//
	////////////////////////////////////////////////////////////////////////////////////////////////
	{
		var clsTools = null;
		var objList  = null;
		var href_str = "";

		clsTools = new tools();

		var listMaker = function(href, text)////////////////////////////////////////////////////////
		//
		//
		//
		////////////////////////////////////////////////////////////////////////////////////////////
		{
			var objLi    = null;
			var objA     = null;

			if(!objList){
				objList = document.createElement("ul");
				objList.setAttribute("id", "classToolsDebug");
				clsTools.setStyle(objList, "padding-left:10px; position:absolute; top:0; right:0; width:140px; background:#ccccff; text-align:left;");
				objLi    = document.createElement("li");
				clsTools.setStyle(objLi, "list-style:none; font-weight:bold;");
				objLi.appendChild(document.createTextNode("DebugTools"));
				objList.appendChild(objLi);
				document.getElementsByTagName("body")[0].appendChild(objList);
				objLi = null;
			}

			objLi = document.createElement("li");
			clsTools.setStyle(objLi, "list-style:none;");
			objA  = document.createElement("a");
			objA.setAttribute("href", href);
			objA.appendChild(document.createTextNode(text));
			objLi.appendChild(objA);
			objList.appendChild(objLi);
		}

		// haslayoutChecker
		// http://mayokara.info/blog/archives/2007/08/18091817.php
		// haslayoutプロパティがtrueなら赤、falseなら青
		//
		// IEの様々なバグの真相らしきもの｜CSS HappyLife
		// http://css-happylife.com/log/bug/000095.shtml
		//
		href_str = 'javascript:(function(){var s=[document.getElementsByTagName("body")[0]];while(s.length){var e=s[0];if(e.currentStyle&&e.style){if(e.currentStyle.hasLayout){e.style.border="1px solid #ff0000";}else{e.style.border="1px solid #0000ff";e.onclick=function(){event.cancelBubble=true;this.style.height="1%";this.style.border="1px solid #ff0000";this.onclick="";};}}for(var i=0;i<e.childNodes.length;i++){s.push(e.childNodes[i]);}s.shift();}})();';
		listMaker(href_str, "haslayout Checker (for IE)");
		href_str = 'javascript:(function(){document.getElementById("classToolsDebug").style.visibility="hidden"})();';
		listMaker(href_str, "Close");
	}
};