/*
** Utils
*/
	//browser check
	function foys_getBrowserName()
	{
		var aName  = navigator.appName.toUpperCase();
		var uName = navigator.userAgent.toUpperCase();
		if (uName.indexOf("SAFARI") >= 0)  return "Safari";
		if (uName.indexOf("OPERA") >= 0)  return "Opera";
		if (uName.indexOf("FIREFOX") >= 0)  return "Firefox";
		if (aName.indexOf("NETSCAPE") >= 0)  return "Netscape";
		if (aName.indexOf("MICROSOFT") >= 0) return "Explorer";
		return "";
	}
	
	function foys_getBrowserVersion()
	{
		var browser = foys_getBrowserName();
		var version = 0;
		var s = 0;
		var e = 0;
		var appVer  = navigator.appVersion;
		var uName  = navigator.userAgent.toUpperCase();
		if (browser == "Safari")
		{
			s = uName.indexOf("SAFARI/",0);
			version = (uName.substring(s+7,s+99));
			if (version < 400) version = 1;
			if ((version >= 400) < (version <= 499)) version = 2;
			if (version >= 500) version = 3;
		}
		if (browser == "Opera")
		{
			s = uName.indexOf("OPERA",0) + 6;
			e = uName.indexOf(" ",s);
			version = parseFloat(uName.substring(s,e));
		}
		if (browser == "Firefox")
		{
			s = uName.indexOf("FIREFOX/",0);
			version = parseFloat(uName.substring(s+8,s+8+3));
		}
		if (browser == "Netscape")
		{
			s = appVer.indexOf(" ",0);
			version = eval(appVer.substring(0,s));
			if (version >= 5) version++;
		}
		if (browser == "Explorer")
		{
			appVer  = navigator.userAgent;
			s = appVer.indexOf("MSIE ",0) + 5;
			e = appVer.indexOf(";",s);
			version = eval(appVer.substring(s,e));
		}
		return version;
	}
	//safari20 short cut
	function is_safari20(){
		var browser = foys_getBrowserName();
		var version = 0;
		var s = 0;
		var e = 0;
		var appVer  = navigator.appVersion;
		var uName  = navigator.userAgent.toUpperCase();
		if (browser == "Safari")
		{
			s = uName.indexOf("SAFARI/",0);
			version = (uName.substring(s+7,s+99));
			if (version < 400) version = 1;
			if ((version >= 400) < (version <= 499)) version = 2;
			if (version >= 500) version = 3;
		}
		if (version == 2)
			return true
		else
			return false
	}
	/////browser check 

var __foys_BlogpartsUtil = {
	getPosition: function ( element )
	{
		var	position = { x:element.offsetLeft, y:element.offsetTop };
		while(element = element.offsetParent){
			if ( element.clientLeft == undefined ) {
				position.x += element.offsetLeft;
			} else {
				position.x += element.offsetLeft + element.clientLeft;
			}
			if ( element.clientTop == undefined ) {
				position.y += element.offsetTop;
			} else {
				position.y += element.offsetTop + element.clientTop;
			}
		}
		return position;
	}, 

	getPageScroll: function ()
	{
		var xScroll, yScroll;
		if ( self.pageYOffset ) {
			xScroll = self.pageXOffset;
			yScroll = self.pageYOffset;
		} else if ( document.documentElement && document.documentElement.scrollTop ){ // Explorer 6 Strict
			xScroll = document.documentElement.scrollLeft;
			yScroll = document.documentElement.scrollTop;
		} else if ( document.body ) { // all other Explorers
			xScroll = document.body.scrollLeft;
			yScroll = document.body.scrollTop;
		}

		arrayPageScroll = new Array( xScroll,yScroll )
		return arrayPageScroll;
	}, 

	getPageSize: function ()
	{	
		var xScroll, yScroll;
		var windowWidth, windowHeight;


		if ( window.innerHeight && window.scrollMaxY ) {	
			xScroll = window.innerWidth + window.scrollMaxX;
			yScroll = window.innerHeight + window.scrollMaxY;
		} else if ( document.body.scrollHeight > document.body.offsetHeight ){ // all but Explorer Mac
			xScroll = document.body.scrollWidth;
			yScroll = document.body.scrollHeight;
		} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
			xScroll = document.body.offsetWidth;
			yScroll = document.body.offsetHeight;
		}

		if ( self.innerHeight ) { // all except Explorer
			if ( document.documentElement.clientWidth ) {
				windowWidth = document.documentElement.clientWidth; 
			} else {
				windowWidth = self.innerWidth;
			}

			if( document.documentElement.clientHeight ) {
				if ( yScroll == self.innerHeight ) {
					windowHeight = self.innerHeight;
				} else {
					windowHeight = document.documentElement.clientHeight > self.innerHeight ? self.innerHeight : document.documentElement.clientHeight;
				}
			} else {
				windowHeight = self.innerHeight;
			}
		} else if ( document.documentElement && document.documentElement.clientHeight ) { // Explorer 6 Strict Mode
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
		} else if ( document.body ) { // other Explorers
			windowWidth = document.body.clientWidth;
			windowHeight = document.body.clientHeight;
		}	

		// for small pages with total height less then height of the viewport
		if( yScroll < windowHeight ) {
			pageHeight = windowHeight;
		} else { 
			pageHeight = yScroll;
		}

		// for small pages with total width less then width of the viewport
		if( xScroll < windowWidth ) {	
			pageWidth = xScroll;
		} else {
			pageWidth = windowWidth;
		}

		arrayPageSize = new Array( pageWidth, pageHeight, windowWidth, windowHeight )

		return arrayPageSize;
	}
}

////AC_OETags.js////////////////////////////////////////////////////

// Flash Player Version Detection - Rev 1.5
// 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];
	    if ( descArray[3] != "" ) {
		tempArrayMinor = descArray[3].split("r");
	    } else {
		tempArrayMinor = descArray[4].split("r");
	    }
	    var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
	    var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
	}
    }
    // 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;
    }
}

var __AC_OETags = {
	AC_FL_GetContentTag: function ()
	{
		var ret = this.AC_GetArgs(  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000", "application/x-shockwave-flash");
		return this.AC_GetobjTag( ret.objAttrs, ret.params, ret.embedAttrs );
	}, 

	AC_GetobjTag: function ( 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>';
		}
		return str;
	},

	AC_GetArgs: function ( 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] = this.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":
				case "id":
					ret.objAttrs[args[i]] = args[i+1];
				break;
				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;
	}, 

	AC_AddExtension: function ( src, ext )
	{
		//alert(src )
		//alert(src.replace( /¥?/, ext+'?' ) )
		
		if ( src.indexOf('?') != -1 )
			return src.replace( '?', ext+'?' ); 
		else
			return src + ext;
	}
}

/**
 * Fetch texts
 */

function foys_getkana ()
{
	return __FetchText.fetch_kana()
}

var __FetchText = {

	fetch_kana: function ()
	{
		var result =  document.body.innerHTML.match( />.*?</gm );
		var kana = []
		for ( var i = 0; i < result.length; i++  ) {
			var _kana = result[ i ].substr( 1 ).match( /[ア-ンァ-ョー※＊*]+/gm );
			if ( _kana != null )
				kana = kana.concat( _kana )
		}
		return kana
	}
}


/**
 * Floating functions
 */
function foys_showfloating ( array_id, lc )
{
    var	instance = __bparray[ array_id ];
	var cgi_var = window.location.search == "" ? "?" : window.location.search
	cgi_var += '&getfireworks_func=' + instance.getfireworks_func
	cgi_var += '&getkana_func=' + instance.getkana_func
	cgi_var += '&close_func=' + instance.close_func 
	cgi_var += '&get_blogparts_position_func=' + instance.get_blogparts_position_func
	cgi_var += '&path=' + instance.path
	cgi_var += '&array_id=' + array_id
	cgi_var += '&lc_name=' + lc
	cgi_var += '&d=' + (new Date()).getTime()

    var src = instance.path + instance.floating_swf + cgi_var

    instance.create_floating().innerHTML = __AC_OETags.AC_FL_GetContentTag (
		"src", src,
		"width", "100%",
		"height", "100%",
		"align", "middle",
		"id", instance.floatingswfid,
		"quality", "high",
		"bgcolor", "#fff",
		"name", instance.floatingswfid,
		"wmode","transparent",
		"allowScriptAccess","always",
		"type", "application/x-shockwave-flash",
		'codebase', 'http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab',
		"pluginspage", "http://www.adobe.com/go/getflashplayer_jp"
	)
    
    window.onresize = function () { instance.onResize(); }
    window.onscroll = function () { instance.onScroll(); }

	window.onresize()
}

function foys_hideFloating ( array_id )
{
    var	instance = __bparray[ array_id ];
    var floating = document.getElementById( instance.floatingid );
    var id = setTimeout(function() {floating.parentNode.removeChild( floating ) }, 10);
	
	
    window.onresize = null;
    window.onscroll = null;
}
///get blogparts position method
function foys_get_blogparts_position(array_id){

	var	instance = __bparray[array_id];
	
	var pos = __foys_BlogpartsUtil.getPosition( document.getElementById( instance.bpid ) )
		
	return {x:pos.x , y: pos.y - __foys_BlogpartsUtil.getPageScroll()[1] }
}

function isReady(){
	return true
}

/**
 * Class Definition
 */
function __FloatingBPParentClass ()
{
    this.random_id = Math.ceil( Math.random()*100000 ).toString();

    this.ox = 0;
	this.path = "";
	
	this.bpid = "medalblogparts" + this.random_id;
	this.bp_swf = "";
    this.swfid = "swf" + this.random_id;
    this.floatingid = "medalfloating" + this.random_id;
	this.floatingswfid = "externalfloatingswf" + this.random_id;
	this.floating_swf = "";
    this.floating_func = "";

    this.create_floating = function ()
    {
		var body_obj = document.body;
		var floating = document.createElement( "div" );

		floating.setAttribute( 'id', this.floatingid );
		this.adjust_floating( floating, 0, 0 );

		body_obj.insertBefore( floating, body_obj.firstChild );

		return floating;
    }

    this.set_position = function () {};
    this.onResize = function () {};
    this.onScroll = function () {};
}

function __FloatingBPClass ()
{
	//this.path = "./s/";
	this.path = "http://www.toyota-future.com/EN/future_on_your_street/swf/blogparts/medal/"
	this.bp_swf = "medalblogparts";
    this.floating_swf = "medalfloating";
    this.floating_func = "foys_showfloating";
    this.close_func = "foys_hideFloating";
	this.rank = __foys_rnk;

	this.get_blogparts_position_func = "foys_get_blogparts_position"
    this.getkana_func = "foys_getkana";

    this.adjust_floating = function ( obj, offset_x, offset_y )
    {
		obj.style.display = 'block';
		obj.style.position = 'absolute';

		obj.style.top = offset_y + 'px';
		obj.style.left = offset_x + 'px';
		obj.style.zIndex = '200';
		obj.style.margin = '0px';
		obj.style.padding = '0px';
		obj.style.width = __foys_BlogpartsUtil.getPageSize()[2] - offset_x + 'px';
		obj.style.height = __foys_BlogpartsUtil.getPageSize()[3] + 'px';
    }

    this.onResize = this.onScroll = function ()
    {
		var scroll = __foys_BlogpartsUtil.getPageScroll()
		this.adjust_floating( document.getElementById( this.floatingid ), scroll[ 0 ], scroll[ 1 ] );
		
		//08 12/07::hir09 added
		if (navigator.appName.indexOf("Microsoft") != -1) {
			window[this.floatingswfid].onScrollToActionScript( scroll[ 0 ], scroll[ 1 ] )
		} else {
			document[this.floatingswfid].onScrollToActionScript( scroll[ 0 ], scroll[ 1 ] )
		}
		//here is a revision part
    }
}


function copy_undef_properties(src, dest)
{
    for (var prop in src) {
        if (typeof(dest[prop]) == "undefined") { 
            dest[prop] = src[prop];
        }
    }
}

/*
 * Initialize
 */

if ( __foys_rnk == undefined )
	var __foys_rnk = ""

if ( __bparray == undefined ) {
    var __bparray = new Array();
}

var super_floatingbpclass = new __FloatingBPParentClass;
var __floatingbp_instance = new __FloatingBPClass;

// inherit superclass
copy_undef_properties( super_floatingbpclass, __floatingbp_instance );

__bparray.push( __floatingbp_instance );




function __write_medal_blogparts ( array_id )
{
	var	instance = __bparray[array_id];
	
	document.getElementById(instance.bpid).innerHTML = __AC_OETags.AC_FL_GetContentTag (
		"src", instance.path + instance.bp_swf + "?&array_id=" + array_id.toString() + "&floating_func=" + instance.floating_func +"&rank=" + instance.rank + "&d=" + (new Date()).getTime(),
		"width", "190",
		"height", "265",
		"align", "middle",
		"id", instance.swfid,
		"quality", "high",
		"bgcolor", "#000",
		"wmode" , "transparent",
		"name", instance.swfid,
		"allowScriptAccess","always",
		"type", "application/x-shockwave-flash",
		'codebase', 'http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab',
		"pluginspage", "http://www.adobe.com/go/getflashplayer_jp"
	);
}

if ( !__foys_without_blogparts ) { 
	document.write('<div id="' + __floatingbp_instance.bpid + '" style="margin:0px; padding:0px; width:190px; height:265px;">' );
	document.write('</div>');
	var __foys_without_blogparts = false
	setTimeout( "__write_medal_blogparts(" + ( __bparray.length - 1 ).toString() + ",0)", 100 )
}

