// JavaScript Document

if(typeof ntvBlogParts == "undefined"){
	var ntvBlogParts = new Object();
}

if(typeof ntvBlogParts.zoomIn == "undefined"){
	ntvBlogParts.zoomIn = new Object();
	
	ntvBlogParts.zoomIn.BASE_URL = "http://www.ntv.co.jp/zoomin/bp/";

	ntvBlogParts.zoomIn.MAIN_FLASH_TITLE = "ntvZoomIn";
}

/////// URLLog Start /////
document.write("<img src='http://appli.ntv.co.jp/url.js?url=" + location.href + "&type=3' width='1' height='1'>")
/////// URLLog End /////

/**
 * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 */
if(typeof deconcept=="undefined"){
	var deconcept=new Object();
}
if(typeof deconcept.util=="undefined"){
	deconcept.util=new Object();
}
if(typeof deconcept.SWFObjectUtil=="undefined"){
	deconcept.SWFObjectUtil=new Object();
}

deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){
	if(!document.getElementById){
		return;
	}
	this.DETECT_KEY=_a?_a:"detectflash";
	this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);
	this.params=new Object();
	this.variables=new Object();
	this.attributes=new Array();
	if(_1){
		this.setAttribute("swf",_1);
	}
	if(id){
		this.setAttribute("id",id);
	}
	if(w){
		this.setAttribute("width",w);
	}
	if(h){
		this.setAttribute("height",h);
	}
	if(_5){
		this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));
	}
	this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();
	if(!window.opera&&document.all&&this.installedVer.major>7){
		deconcept.SWFObject.doPrepUnload=true;
	}
	if(c){
		this.addParam("bgcolor",c);
	}
	var q=_7?_7:"high";
	this.addParam("quality",q);
	this.setAttribute("useExpressInstall",false);
	this.setAttribute("doExpressInstall",false);
	
	var _c=(_8)?_8:window.location;
	this.setAttribute("xiRedirectUrl",_c);
	this.setAttribute("redirectUrl","");
	if(_9){
		this.setAttribute("redirectUrl",_9);
	}
};

deconcept.SWFObject.prototype={
	useExpressInstall:function(_d){
		this.xiSWFPath=!_d?"expressinstall.swf":_d;
		this.setAttribute("useExpressInstall",true);
	},setAttribute:function(_e,_f){
		this.attributes[_e]=_f;
	},getAttribute:function(_10){
		return this.attributes[_10];
	},addParam:function(_11,_12){
		this.params[_11]=_12;
	},getParams:function(){
		return this.params;
	},addVariable:function(_13,_14){
		this.variables[_13]=_14;
	},getVariable:function(_15){
		return this.variables[_15];
	},getVariables:function(){
		return this.variables;
	},getVariablePairs:function(){
		var _16=new Array();
		var key;
		var _18=this.getVariables();
		for(key in _18){
			_16[_16.length]=key+"="+_18[key];
		}
		return _16;
	},getSWFHTML:function(){
		var _19="";
		if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){
			if(this.getAttribute("doExpressInstall")){
				this.addVariable("MMplayerType","PlugIn");
				this.setAttribute("swf",this.xiSWFPath);
			}
			_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";
			_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();
			for(var key in _1a){
				_19+=[key]+"=\""+_1a[key]+"\" ";
			}
			var _1c=this.getVariablePairs().join("&");
			if(_1c.length>0){
				_19+="flashvars=\""+_1c+"\"";
			}
			_19+="/>";
		}else{
			if(this.getAttribute("doExpressInstall")){
				this.addVariable("MMplayerType","ActiveX");
				this.setAttribute("swf",this.xiSWFPath);
			}
			_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";
			_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";
			var _1d=this.getParams();
			for(var key in _1d){
				_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";
			}
			var _1f=this.getVariablePairs().join("&");
			if(_1f.length>0){
				_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";
			}
			_19+="</object>";
		}
		return _19;
	},write:function(_20){
		if(this.getAttribute("useExpressInstall")){
			var _21=new deconcept.PlayerVersion([6,0,65]);
			if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){
				this.setAttribute("doExpressInstall",true);
				this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));
				document.title=document.title.slice(0,47)+" - Flash Player Installation";
				this.addVariable("MMdoctitle",document.title);
			}
		}
		if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){
			var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();
			return true;
		}else{
			if(this.getAttribute("redirectUrl")!=""){
				document.location.replace(this.getAttribute("redirectUrl"));
			}
		}
		return false;
	}
};

deconcept.SWFObjectUtil.getPlayerVersion=function(){
	var _23=new deconcept.PlayerVersion([0,0,0]);
	if(navigator.plugins&&navigator.mimeTypes.length){
		var x=navigator.plugins["Shockwave Flash"];
		if(x&&x.description){
			_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));
		}
	}else{
		if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){
			var axo=1;
			var _26=3;
			while(axo){
				try{
					_26++;
					axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);
					_23=new deconcept.PlayerVersion([_26,0,0]);
				}catch(e){
					axo=null;
				}
			}
		}else{
			try{
				var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
			}catch(e){
				try{
					var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
					_23=new deconcept.PlayerVersion([6,0,21]);
					axo.AllowScriptAccess="always";
				}catch(e){
					if(_23.major==6){
						return _23;
					}
				}
				try{
					axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
				}catch(e){
				}
			}
			if(axo!=null){
				_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
			}
		}
	}
	return _23;
};

deconcept.PlayerVersion=function(_29){
	this.major=_29[0]!=null?parseInt(_29[0]):0;
	this.minor=_29[1]!=null?parseInt(_29[1]):0;
	this.rev=_29[2]!=null?parseInt(_29[2]):0;
};

deconcept.PlayerVersion.prototype.versionIsValid=function(fv){
	if(this.major<fv.major){
		return false;
	}
	if(this.major>fv.major){
		return true;
	}
	if(this.minor<fv.minor){
		return false;
	}
	if(this.minor>fv.minor){
		return true;
	}
	if(this.rev<fv.rev){
		return false;
	}
	return true;
};

deconcept.util={
	getRequestParameter:function(_2b){
		var q=document.location.search||document.location.hash;
		if(_2b==null){
			return q;
		}if(q){
			var _2d=q.substring(1).split("&");
			for(var i=0;i<_2d.length;i++){
				if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){
					return _2d[i].substring((_2d[i].indexOf("=")+1));
				}
			}
		}
		return "";
	}
};

deconcept.SWFObjectUtil.cleanupSWFs=function(){
	var _2f=document.getElementsByTagName("OBJECT");
	for(var i=_2f.length-1;i>=0;i--){
		_2f[i].style.display="none";
		for(var x in _2f[i]){
			if(typeof _2f[i][x]=="function"){
				_2f[i][x]=function(){};
			}
		}
	}
};

if(deconcept.SWFObject.doPrepUnload){
	if(!deconcept.unloadSet){
		deconcept.SWFObjectUtil.prepUnload=function(){
			__flash_unloadHandler=function(){
			};
			__flash_savedUnloadHandler=function(){
			};
			window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);
		};
		window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);
		deconcept.unloadSet=true;
	}
}

if(!document.getElementById&&document.all){
	document.getElementById=function(id){
		return document.all[id];
	};
}

var getQueryParamValue=deconcept.util.getRequestParameter;
var FlashObject=deconcept.SWFObject;
var SWFObject=deconcept.SWFObject;
/*
 * SWFObject end
 */


	
ntvBlogParts.getScreenSize = function() {
	return [document.body.clientWidth, document.body.clientHeight];
}

ntvBlogParts.getBlogPartsPosition = function(idFlash) {
	return ntvBlogParts.cumulativeOffset(document.getElementById(idFlash));
}

ntvBlogParts.cumulativeOffset = function(element) {
    var valueT = 0, valueL = 0;
    do {
	    valueT += element.offsetTop  || 0;
	    valueL += element.offsetLeft || 0;
	    element = element.offsetParent;
    } while (element);
	
    return [valueL, valueT];
}

ntvBlogParts.openWindow = function(url, name, option) {
    window.open(url, name, option);
}

ntvBlogParts.replaceWordWithTargetTag = function(targetWord) {
    // remove older tag
    var oldSection = document.getElementById("odekake_target_word");
    if(oldSection != null) {
	    if (navigator.userAgent.indexOf("Firefox") > -1) {
		    oldSection.textContent.match(/(.*)/);
	    } else {
		    oldSection.innerHTML.match(/(.*)/);
		    oldSection.outerHTML = '<span style="background-color: ' + (typeof(NtvWeatherParts_OdekakeBgColor) == "undefined" ? "#FFCC00" : NtvWeatherParts_OdekakeBgColor) + ';">' + RegExp.$1 + "<span>";
	    }

    }
    // replace!
    var bodyElement = document.getElementsByTagName("body")[0];
    // count
    var countTargetWords = ntvBlogParts.countTargetWordInChildren(bodyElement, targetWord);
    var targetIndex = Math.floor(Math.random() * countTargetWords);
    ntvBlogParts.replaceWordWithTargetTagInChildren(bodyElement, targetWord, targetIndex);
}

ntvBlogParts.replaceWordWithTargetTagInChildren = function(node, targetWord, targetIndex) {
    switch(node.nodeType) {
	    case 1: // element
	    for(var i = 0 ; i < node.childNodes.length ; i++) {
		    targetIndex = ntvBlogParts.replaceWordWithTargetTagInChildren(node.childNodes[i], targetWord, targetIndex);
	    }
	    break;

	    case 3: // text
	    var searchText = node.nodeValue;
	    var idx = searchText.search(targetWord);
	    var newValue = "";

	    while(idx != -1) {
		    targetIndex--;
			
		    if(targetIndex == -1) {
			    // 発見
			    newValue += searchText.substring(0, idx) + '<span id="odekake_target_word" style="background-color: ' + (typeof(NtvWeatherParts_OdekakeBgColor) == "undefined" ? "#FFCC00" : NtvWeatherParts_OdekakeBgColor) + ';">' + targetWord + "</span>" + searchText.substring(idx + targetWord.length);

			    var elm = document.createElement('span');
			    elm.innerHTML = newValue;
			    node.parentNode.insertBefore(elm, node);
			    node.parentNode.removeChild(node);
			    break;
		    } else {
			    newValue += searchText.substring(0, idx);
		    }
				
		    searchText = searchText.substring(idx + targetWord.length);
		    idx = searchText.search(targetWord);
	    }
	    break;
    }
	
    return targetIndex;
}

ntvBlogParts.countTargetWordInChildren = function(node, targetWord) {
    var count = 0;
    switch(node.nodeType) {
	    case 1: // element
	    for(var i = 0 ; i < node.childNodes.length ; i++) {
		    count += ntvBlogParts.countTargetWordInChildren(node.childNodes[i], targetWord);
	    }
	    break;

	    case 3: // text
	    var searchText = node.nodeValue;
	    var idx = searchText.search(targetWord);
	    while(idx != -1) {
		    count++;
				
		    searchText = searchText.substring(idx + targetWord.length);
		    idx = searchText.search(targetWord);
	    }
	    break;
    }
	
    return count;
}

/*ntvBlogParts.countOdekakeWordsInDocument = function(odekakeWord, arBodyElements) {
    var count = 0;
    for(var index = 0 ; index < arBodyElements.length ; index++) {
	    if(!arBodyElements[index][1])	continue; // お出かけワード検索範囲外


	    var searchText = arBodyElements[index][0];
	    var idx = searchText.search(odekakeWord);
	    while(idx != -1) {
		    count++;
			
		    searchText = searchText.substring(idx + odekakeWord.length);//RegExp.rightContext;
		    idx = searchText.search(odekakeWord);
	    }
    }
    return count;
}*/

/*ntvBlogParts.AC_Generateobj = function(objAttrs, params, embedAttrs) 
{
    var str = '';
    if (isIE && isWin && !isOpera)
    {
	    str += '<object ';
	    for (var i in objAttrs)
		    str += i + '="' + objAttrs[i] + '" ';
	    str += '>';
	    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;
}

ntvBlogParts.AC_FL_RunContent = function(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  return ntvBlogParts.AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}*/

ntvBlogParts.addFlash = function(baseUrl, flashName) {
    var div = document.createElement("div");
    div.style.position = "absolute";
    div.id = "section" + flashName;
    div.style.zIndex = 9999;
    div.style.top = div.style.left = 0 + "px";
    div.style.width = div.style.height = "1";
    document.body.appendChild(div);
	
    var so = new SWFObject(baseUrl + flashName + ".swf", flashName, "1", "1", "9.0.28");
    so.addParam("wmode", "transparent");
    so.addParam("allowScriptAccess", "always");
    so.write(div);
}

ntvBlogParts.addPageLoadedListener = function(functionToBeCalledOnLoad) {
    if (window.addEventListener) { //for W3C DOM
	    window.addEventListener("load", functionToBeCalledOnLoad, false);
    } else if (window.attachEvent) { //for IE
	    window.attachEvent("onload", functionToBeCalledOnLoad);
    } else  {
	    window.onload = functionToBeCalledOnLoad;
    }
}

ntvBlogParts.zoomIn.activateOdekake = function() {
    var ar = document.getElementById(ntvBlogParts.zoomIn.MAIN_FLASH_TITLE).findTargetWord(document.getElementsByTagName("body")[0].innerHTML);
    var targetWord = ar[0];
    var targetSource = ar[1];
    var targetOffsetX = ar[2];
    var targetOffsetY = ar[3];
    var targetScaleX = ar[4];
    var targetScaleY = ar[5];
    
    var screenSize = ntvBlogParts.getScreenSize();
    var odekakeWidth = screenSize[0];
    var odekakeHeight = screenSize[1];

    var initialOffset = ntvBlogParts.cumulativeOffset(document.getElementById(ntvBlogParts.zoomIn.MAIN_FLASH_TITLE));
    var targetOffset;
    if(targetWord != "") {
	    ntvBlogParts.replaceWordWithTargetTag(targetWord);

	    targetOffset = ntvBlogParts.cumulativeOffset(document.getElementById("odekake_target_word"));
	    targetOffset[0] += targetOffsetX;
	    targetOffset[1] += targetOffsetY - 80;
    } else {
	    //targetOffset = [(odekakeWidth - 150) / 2, (odekakeHeight - 348) / 2];
	    targetOffset = [odekakeWidth / 3, initialOffset[1] + 150];
    }

    var odekakeFlash = document.getElementById("odekake");
    try {
        odekakeFlash.width = odekakeWidth;
	    odekakeFlash.height = odekakeHeight;
	    odekakeFlash.startOdekake(initialOffset[0], initialOffset[1], targetOffset[0], targetOffset[1], targetSource, targetScaleX, targetScaleY);
    } catch(e) {
	    odekakeFlash.width = 1;
	    odekakeFlash.height = 1;
		
	    document.getElementById(ntvBlogParts.zoomIn.MAIN_FLASH_TITLE).endOdekake();
    }
}

ntvBlogParts.zoomIn.finishOdekake = function() {
    var odekakeFlash = document.getElementById("odekake");
    odekakeFlash.width = 1;
    odekakeFlash.height = 1;
	
    document.getElementById(ntvBlogParts.zoomIn.MAIN_FLASH_TITLE).endOdekake();
}

ntvBlogParts.zoomIn.showFortuneResult = function(xmlFortuneResult) {
    var size = ntvBlogParts.getScreenSize();
    var position = ntvBlogParts.getBlogPartsPosition(ntvBlogParts.zoomIn.MAIN_FLASH_TITLE);
    var isFukidashiToRight = position[0] < 300;
	
    var sectionFlash = document.getElementById("sectionfortuneResult");
    sectionFlash.style.top = position[1] + 48 + "px";
    sectionFlash.style.left = (isFukidashiToRight ? position[0] + 140 : position[0] - 390) + "px";

    var fortuneResultFlash = document.getElementById("fortuneResult");
    fortuneResultFlash.width = 400;
    fortuneResultFlash.height = 241;
    try {
        fortuneResultFlash.showFortuneResult(xmlFortuneResult, isFukidashiToRight);
    } catch(e) {
        fortuneResultFlash.width = 1;
        fortuneResultFlash.height = 1;
    }
}

// called from main flash to close fortune result flash.
ntvBlogParts.zoomIn.closeFortuneResult = function() {
    var fortuneResultFlash = document.getElementById("fortuneResult");
    fortuneResultFlash.closeFortuneResult();
}

ntvBlogParts.zoomIn.finishFortuneResult = function() {
    var fortuneResultFlash = document.getElementById("fortuneResult");
    fortuneResultFlash.width = 1;
    fortuneResultFlash.height = 1;
}

ntvBlogParts.zoomIn.startTravel = function(xmlTravel, x, y, width, height) {
    var sectionFlash = document.getElementById("sectiontravel");
    sectionFlash.style.top = y + "px";
    sectionFlash.style.left = x + "px";

    var travelFlash = document.getElementById("travel");
    travelFlash.width = width;
    travelFlash.height = height;
    var size = ntvBlogParts.getScreenSize();
    var position = ntvBlogParts.getBlogPartsPosition(ntvBlogParts.zoomIn.MAIN_FLASH_TITLE);
    travelFlash.startTravel(xmlTravel, size[0] - position[0]);
}

ntvBlogParts.zoomIn.finishTravel = function() {
    var travelFlash = document.getElementById("travel");
    travelFlash.width = 1;
    travelFlash.height = 1;
	
    document.getElementById(ntvBlogParts.zoomIn.MAIN_FLASH_TITLE).onReturnFromTravel();
}

ntvBlogParts.zoomIn.onLoad = function() {
    ntvBlogParts.addFlash(ntvBlogParts.zoomIn.BASE_URL, "fortuneResult");
    ntvBlogParts.addFlash(ntvBlogParts.zoomIn.BASE_URL, "travel");
    ntvBlogParts.addFlash(ntvBlogParts.zoomIn.BASE_URL, "odekake");
}

ntvBlogParts.zoomIn.addMainFlash = function() {
    if (DetectFlashVer(9, 0, 28)) {
        // if we've detected an acceptable version
        // embed the Flash Content SWF when all tests are passed
        AC_FL_RunContent(
		        "src", ntvBlogParts.zoomIn.BASE_URL + ntvBlogParts.zoomIn.MAIN_FLASH_TITLE,
		        "wmode", "transparent",
		        "width", "150",
		        "height", "310",
		        "align", "middle",
		        "id", ntvBlogParts.zoomIn.MAIN_FLASH_TITLE,
		        "quality", "high",
		        "bgcolor", "#869ca7",
		        "name", ntvBlogParts.zoomIn.MAIN_FLASH_TITLE,
		        "allowScriptAccess","always",
		        "type", "application/x-shockwave-flash",
		        "pluginspage", "http://www.adobe.com/go/getflashplayer",
		        "flashvars", "userUrl="+window.location
        );
    } else {  // flash is too old or we can't detect the plugin
        document.write('最新のAdobe Flash　Player が必要です。'
        + '<a href=http://www.adobe.com/go/getflash/>Get Flash</a>');  // insert non-flash content
    }
}

ntvBlogParts.zoomIn.addMainFlash();	
ntvBlogParts.addPageLoadedListener(ntvBlogParts.zoomIn.onLoad);
