//===================================================================
//
//	***  JavaScript Library  ***
//
//===================================================================

//-----------------------------------------------------
// -ie b.g. cache fix
//-----------------------------------------------------
try {
	document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}


//-----------------------------------------------------
// -magical lines for ie
//-----------------------------------------------------
/*@cc_on _d=document;eval('var document=_d')@*/


//-----------------------------------------------------
// -easy getelementbyid
//-----------------------------------------------------
function $(id) {
	e = document.getElementById(id);
	return e;
}


//======================================================
// Adobe official flash detection kit
//======================================================

	// Flash Player Version Detection - Rev 1.6
	// Detect Client Browser type
	// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.
	var isIE	= (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
	var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
	var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

	function ControlVersion()
	{
		var version;
		var axo;
		var e;

		// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

		try {
			// version will be set for 7.X or greater players
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
			version = axo.GetVariable("$version");
		} catch (e) {
		}

		if (!version)
		{
			try {
				// version will be set for 6.X players only
				axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");

				// installed player is some revision of 6.0
				// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
				// so we have to be careful.

				// default to the first public version
				version = "WIN 6,0,21,0";

				// throws if AllowScripAccess does not exist (introduced in 6.0r47)
				axo.AllowScriptAccess = "always";

				// safe to call for 6.0r47 or greater
				version = axo.GetVariable("$version");

			} catch (e) {
			}
		}

		if (!version)
		{
			try {
				// version will be set for 4.X or 5.X player
				axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
				version = axo.GetVariable("$version");
			} catch (e) {
			}
		}

		if (!version)
		{
			try {
				// version will be set for 3.X player
				axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
				version = "WIN 3,0,18,0";
			} catch (e) {
			}
		}

		if (!version)
		{
			try {
				// version will be set for 2.X player
				axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
				version = "WIN 2,0,0,11";
			} catch (e) {
				version = -1;
			}
		}

		return version;
	}

	// JavaScript helper required to detect Flash Player PlugIn version information
	function GetSwfVer(){
		// NS/Opera version >= 3 check for Flash plugin in plugin array
		var flashVer = -1;

		if (navigator.plugins != null && navigator.plugins.length > 0) {
			if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
				var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
				var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
				var descArray = flashDescription.split(" ");
				var tempArrayMajor = descArray[2].split(".");
				var versionMajor = tempArrayMajor[0];
				var versionMinor = tempArrayMajor[1];
				var versionRevision = descArray[3];
				if (versionRevision == "") {
					versionRevision = descArray[4];
				}
				if (versionRevision[0] == "d") {
					versionRevision = versionRevision.substring(1);
				} else if (versionRevision[0] == "r") {
					versionRevision = versionRevision.substring(1);
					if (versionRevision.indexOf("d") > 0) {
						versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
					}
				}
				var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
				//alert("flashVer="+flashVer);
			}
		}
		// MSN/WebTV 2.6 supports Flash 4
		else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
		// WebTV 2.5 supports Flash 3
		else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
		// older WebTV supports Flash 2
		else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
		else if ( isIE && isWin && !isOpera ) {
			flashVer = ControlVersion();
		}
		return flashVer;
	}

	// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
	function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
	{
		versionStr = GetSwfVer();
		if (versionStr == -1 ) {
			return false;
		} else if (versionStr != 0) {
			if(isIE && isWin && !isOpera) {
				// Given "WIN 2,0,0,11"
				tempArray				 = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
				tempString				= tempArray[1];			// "2,0,0,11"
				versionArray			= tempString.split(",");	// ['2', '0', '0', '11']
			} else {
				versionArray			= versionStr.split(".");
			}
			var versionMajor			= versionArray[0];
			var versionMinor			= versionArray[1];
			var versionRevision	 = versionArray[2];

						// is the major.revision >= requested major.revision AND the minor version >= requested minor
			if (versionMajor > parseFloat(reqMajorVer)) {
				return true;
			} else if (versionMajor == parseFloat(reqMajorVer)) {
				if (versionMinor > parseFloat(reqMinorVer))
					return true;
				else if (versionMinor == parseFloat(reqMinorVer)) {
					if (versionRevision >= parseFloat(reqRevision))
						return true;
				}
			}
			return false;
		}
	}

	function AC_AddExtension(src, ext)
	{
		if (src.indexOf('?') != -1)
			return src.replace(/\?/, ext+'?');
		else
			return src + ext;
	}

	function AC_Generateobj(objAttrs, params, embedAttrs)
	{
			var str = '';
			if (isIE && isWin && !isOpera)
			{
				str += '<object ';
				for (var i in objAttrs)
					str += i + '="' + objAttrs[i] + '" ';
				for (var i in params)
					str += '><param name="' + i + '" value="' + params[i] + '"> ';
				str += '></object>';
			} else {
				str += '<embed ';
				for (var i in embedAttrs)
					str += i + '="' + embedAttrs[i] + '" ';
				str += '> </embed>';
			}

			document.write(str);
	}

	function AC_FL_RunContent(){
		var ret =
			AC_GetArgs
			(	arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
			 , "application/x-shockwave-flash"
			);
		AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
	}

	function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
		var ret = new Object();
		ret.embedAttrs = new Object();
		ret.params = new Object();
		ret.objAttrs = new Object();
		for (var i=0; i < args.length; i=i+2){
			var currArg = args[i].toLowerCase();

			switch (currArg){
				case "classid":
					break;
				case "pluginspage":
					ret.embedAttrs[args[i]] = args[i+1];
					break;
				case "src":
				case "movie":
					args[i+1] = AC_AddExtension(args[i+1], ext);
					ret.embedAttrs["src"] = args[i+1];
					ret.params[srcParamName] = args[i+1];
					break;
				case "onafterupdate":
				case "onbeforeupdate":
				case "onblur":
				case "oncellchange":
				case "onclick":
				case "ondblClick":
				case "ondrag":
				case "ondragend":
				case "ondragenter":
				case "ondragleave":
				case "ondragover":
				case "ondrop":
				case "onfinish":
				case "onfocus":
				case "onhelp":
				case "onmousedown":
				case "onmouseup":
				case "onmouseover":
				case "onmousemove":
				case "onmouseout":
				case "onkeypress":
				case "onkeydown":
				case "onkeyup":
				case "onload":
				case "onlosecapture":
				case "onpropertychange":
				case "onreadystatechange":
				case "onrowsdelete":
				case "onrowenter":
				case "onrowexit":
				case "onrowsinserted":
				case "onstart":
				case "onscroll":
				case "onbeforeeditfocus":
				case "onactivate":
				case "onbeforedeactivate":
				case "ondeactivate":
				case "type":
				case "codebase":
					ret.objAttrs[args[i]] = args[i+1];
					break;
				case "id":
				case "width":
				case "height":
				case "align":
				case "vspace":
				case "hspace":
				case "class":
				case "title":
				case "accesskey":
				case "name":
				case "tabindex":
					ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
					break;
				default:
					ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
			}
		}
		ret.objAttrs["classid"] = classid;
		if (mimeType) ret.embedAttrs["type"] = mimeType;
		return ret;
	}


//-----------------------------------------------------
// -search value check
//-----------------------------------------------------
function chkValue (obj) {
	if ( obj.value == "キーワード検索" ) {
		obj.value = "" ;
	} else if ( obj.value == "" ) {
		obj.value = "キーワード検索" ;
	}
}


//-----------------------------------------------------
// -functions for scroll banner list
//  coded by m.inoguchi as experience
//-----------------------------------------------------

	function home_init() {
		num = 0;
		if (null == $('itemList')) return; // 2009-05-01
		obj = $('itemList').getElementsByTagName('li');
		cnt = obj.length;
		( num + 5 <= cnt ) ? overflow = 0 : overflow = num + 5 - cnt;
		( overflow != 0 ) ? tailNum = 5 - overflow : tailNum = null;
		if ( cnt > 5 ) {
			updateDisplay();
		}
		//
		//
		$('itemList').style.marginRight = "-9999px";
		$('itemList').style.overflow = "hidden";
		if ( cnt > 5) {
			$('leftBlank').style.display = "none";
			$('leftButton').innerHTML = ('<a href="#" onclick="moveLeft();return false;">'
				+'<img src="/images/leftButton.gif" width="19" height="75" alt="" />'
				+'</a>'
			);
			$('rightBlank').style.display = "none";
			$('rightButton').innerHTML = ('<a href="#" onclick="moveRight();return false;">'
				+'<img src="/images/rightButton.gif" width="19" height="75" alt="" />'
				+'</a>'
			);
		}
	}


	function moveRight() {
		num ++ ;
		if ( cnt == num ) {
			num = 0;
		}
		( num + 5 <= cnt ) ? overflow = 0 : overflow = num + 5 - cnt;
		( overflow != 0 ) ? tailNum = 5 - overflow : tailNum = null;
		updateDisplay();
	}


	function moveLeft() {
		num -- ;
		if ( num < 0 ) {
			num = cnt-1;
		}
		( num + 5 <= cnt ) ? overflow = 0 : overflow = num + 5 - cnt;
		( overflow != 0 ) ? tailNum = 5 - overflow : tailNum = null;
		updateDisplay();
	}


	function updateDisplay() {
		for ( var i = 0 ; i < cnt ; i ++ ) {
			obj[i].style.display = "none";
			obj[i].style.position = "static";
			obj[i].style.marginLeft = "0";
		}
		if ( num + 5 <= cnt ) {
			for ( var i = num, j = num+5 ; i < j ; i ++ ) {
				obj[i].style.display = "block";
				obj[i].style.position = "static";
				obj[i].style.marginLeft = "0";
			}
		} else {

			for ( var i = num ; i < num + tailNum ; i ++ ) {
				obj[i].style.display = "block";
			}
			for ( var i = 0 ; i < overflow ; i ++ ) {
				obj[i].style.display = "block";
				obj[i].style.position = "absolute";
				//
				if ( navigator.userAgent.indexOf('MSIE') != -1 ) {
					obj[i].style.marginLeft = i * 180 + "px";
				} else {
					obj[i].style.marginLeft = tailNum * 180 + i * 180 + "px";
				}
			}

		}
	}

