
var _BROWSER_IS_IE=(document.all&&window.ActiveXObject&&navigator.userAgent.toLowerCase().indexOf("msie")>-1&&navigator.userAgent.toLowerCase().indexOf("opera")==-1);
var _BROWSER_IS_OPERA=(navigator.userAgent.toLowerCase().indexOf("opera")!=-1);
CookieManager=Class.create();
CookieManager.prototype={
	userDataForIE:false,initialize:function(userDataForIE){
		this.cookieShelfLife=365;
		this.userDataForIE=userDataForIE;
		if(_BROWSER_IS_IE&&this.userDataForIE){
			this.IE_CACHE_NAME="storage";
			if($(this.IE_CACHE_NAME)==null){
				var div=document.createElement("DIV");
				div.id=this.IE_CACHE_NAME;
				document.body.appendChild(div);
			}
			this.store=$(this.IE_CACHE_NAME);
			this.store.style.behavior="url('#default#userData')";
		}
	},
	getCookie:function(aCookieName){
		var result=null;
		if(_BROWSER_IS_IE&&this.userDataForIE){
			this.store.load(this.IE_CACHE_NAME);
			result=this.store.getAttribute(aCookieName);
		}else{
			for(var i=0;i<document.cookie.split('; ').length;i++){
				var crumb=document.cookie.split('; ')[i].split('=');
				if(crumb[0]==aCookieName&&crumb[1]!=null){
					result=crumb[1];
					break;
				}
			}
		}
		if(_BROWSER_IS_OPERA&&result!=null){
			result=result.replace(/%22/g,'"');
		}
		return result;
	},
	setCookie:function(aCookieName,aCookieValue){
		if(_BROWSER_IS_IE&&this.userDataForIE){
			this.store.setAttribute(aCookieName,aCookieValue);
			this.store.save(this.IE_CACHE_NAME);
		}else{
			if(_BROWSER_IS_OPERA){
				aCookieValue=aCookieValue.replace(/"/g,"%22");
			}
			var date=new Date();
			date.setTime(date.getTime()+(this.cookieShelfLife*24*60*60*1000));
			var expires='; expires='+date.toGMTString();document.cookie=aCookieName+'='+aCookieValue+expires+'; path=/';
		}
	},
	clearCookie:function(aCookieName){
		if(_BROWSER_IS_IE&&this.userDataForIE){
			this.store.load(this.IE_CACHE_NAME);
			this.store.removeAttribute(aCookieName);
			this.store.save(this.IE_CACHE_NAME);
		}else{
			document.cookie=aCookieName+'=;expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/';
		}
	}
}

var secondlyYtvGlobalNavigationFlash;
(function($){
	var IS_DEBUG=false;
	var _c=window.console;
	Function.prototype.bench=function(st){
		var self=this;
		return function(){
			var start=new Date().getTime();
			var res=self.apply(this,arguments);
			var end=new Date().getTime();
			trace(st+":"+(end-start));
			return res;
		}
	}
	function trace(msg){
		if(!IS_DEBUG)return;
		if(!_c){
			var buf=$("#logger").text();
			$("#logger").text(buf+msg+"\n");
			return;
		}
		_c.log(msg);
	}
	$.fn.yomiuriTvSearch=function(config){
		var element=this;
		var defaults={
			UPLOAD_URL:"music_upload.pl",
			DELETE_URL:"delete.pl",
			INDICATOR_URL:"static/images/indicator.gif",
			NO_IMAGE_URL:"/xml/pictures/programInfo/no_img.jpg",
//********************************************************************************
//ローカルテスト用のため、絶対パスにしています。
			REQUEST_URL:"/xml/scripts/programSearch.cgi",
			//REQUEST_URL:"http://www.ytv.co.jp/xml/scripts/programSearch_new.cgi",
//********************************************************************************
			SPEED:"fast",
			IMAGE_PATH:"/images/2009/",
			NEW_ICON:"/images/2009/ytv_search_new_icon.png",
			GENRES:["","報道","情報バラエティ","スポーツ","アニメ","ドラマ・映画","お笑い","音楽","スペシャル"],
			GENRE_SIZE:[0,49,168,98,72,118,74,49,119],
			GENRE_SIZE_SMALL:[0,29,98,57,42,69,43,29,69],
			WEEK_SIZE:73,
			WEEK_SIZE_SMALL:42,
			TIME_SIZE:[0,165,185,202,202,206,114],
			TIME_SIZE_SMALL:[0,96,108,118,118,120,67],
			BATSU_SIZE:14,
			BATSU_SIZE_SMALL:9,
			NO_XML_MESSAGE:"情報を取得できませんでした。",
			NO_HIT_MESSAGE:"選択条件に一致する情報はありませんでした。"
		};
		var options=$.extend(defaults,config);
		var def="internal";
		this.say=function(value){
			trace(def+" : "+value);
			trace(this);
			trace($(this));
		}
		this.search=init;
		var selectedMusic=null;
		var d=document;
		var b=d.getElementsByTagName("body")[0];
		var programData=[];
		var currentPage=0;
		var maxPage;
		var window_mode;
		var WINDOW_BIG=0;
		var WINDOW_SMALL=1;
		var MODE_IMG=0;
		var MODE_TEXT=1;
		var view_mode=MODE_IMG;
		var titleInners=[];
		var dateInners=[];
		var genreInners=[];
		var specialInners=[];
		var titleIcons=[];
		var dateIcons=[];
		var genreIcons=[];
		var specialIcons=[];
		var newIcons=[];
		var titleInnerTexts=[];
		var dateInnerTexts=[];
		var genreInnerTexts=[];
		var specialInnerTexts=[];
		var titleOuters=[];
		var dateOuters=[];
		var genreOuters=[];
		var specialOuters=[];
		var images=[];
		var imageLinks=[];
		var programInners=[];
		var isticker_width;
		var title_dummy,date_dummy,genre_dummy,special_dummy;
		var cookie_name="ytvSearchViewMode";
		var manager;
		
		//----------------------------------------
		//結果画面の生成？
		//----------------------------------------
		function init(){
			trace("yomiuriTvSearch init");
			manager=new CookieManager();
			var cookie=manager.getCookie(cookie_name);
			if(cookie!=null&&cookie!="null")view_mode=parseInt(cookie);
			trace("view_mode "+view_mode);
			if($("#flash_area2").length>0){
				ytvMovieSendToActionScript("stop");
			}
			$("object, embed").css({visibility:"hidden"});
			var overlay=d.createElement("div");
			overlay.id="searchbox-overlay";
			$(overlay).css({opacity:0}).hide();
			b.appendChild(overlay);
			var overlay_ie=d.createElement("div");
			overlay_ie.id="searchbox-overlay_ie";
			overlay_ie.style.display="none";
			b.appendChild(overlay_ie);
			var wrapper_ie=d.createElement("div");
			wrapper_ie.id="searchbox-wrapper_ie";
			overlay_ie.appendChild(wrapper_ie);
			var wrapper=d.createElement("div");
			wrapper.id="searchbox-wrapper";
			b.appendChild(wrapper);
			_resizeOverlay();
			$(window).resize(function(){
				_resizeOverlay();
			});
			start();
		}
		function start(){
			$("#searchbox-overlay").show().animate({opacity:0.8},"normal",
				function(){
					d.getElementById("searchbox-overlay_ie").style.display="block";
					var layer=getLayer();
					d.getElementById("searchbox-wrapper").innerHTML=layer;
					setSize();
					setHeader();
					$("#searchbox-header-close").bind("click",close);
					var Load=load.bench("load");
					Load();
				}
			);
		}
		function onLoadComplete(){
			maxPage=Math.ceil(programData.length/12);
			pagingAction();
			if(programData.length>12){
				var Next=next.bench("next");
				var Prev=prev.bench("prev");
				var header=$("#searchbox-header-navigation");
				var footer=$("#searchbox-footer-navigation");
				$('.searchbox-navigation-next',header).bind('click',Next);
				$('.searchbox-navigation-prev',header).bind('click',Prev);
				$('.searchbox-navigation-next',footer).bind('click',Next);
				$('.searchbox-navigation-prev',footer).bind('click',Prev);
				navigationChange('next',"on");
			}
			title_dummy=d.getElementById('searchbox-title-dummy');
			date_dummy=d.getElementById('searchbox-date-dummy');
			genre_dummy=d.getElementById('searchbox-genre-dummy');
			special_dummy=d.getElementById('searchbox-other-dummy');
			$('#searchbox-image-mode-on').bind('click',{mode:MODE_IMG},changeMode);
			$('#searchbox-text-mode-on').bind('click',{mode:MODE_TEXT},changeMode);
			trace(programData.length);
			loadingHide();
			var create=createProgram.bench("createProgram");
			create();
		}
		function setHeader(){
			trace("options.genre "+options.genre);
			trace("options.weeks "+options.weeks);
			trace("options.time "+options.time);
			var genre=options.genre;
			var weeks=options.weeks;
			var time=options.time;
			var margin=0;
			if(genre==""&&options.weeks==""&&options.time==""){
				d.getElementById("searchbox-header").className="all";
				return;
			}
			var fbmargin=0;
			var sbmargin=0;
			if(window_mode==WINDOW_BIG){
				if(genre!=0){
					d.getElementById("searchbox-header-genre").className="genre"+genre;
					margin+=options.GENRE_SIZE[genre];
					fbmargin=margin+options.BATSU_SIZE;
					margin+=(options.BATSU_SIZE*3);
				}
				if(weeks!=0){
					var hweek=d.getElementById("searchbox-header-weeks");
					hweek.className="week"+weeks;
					hweek.style.left=margin+"px";
					margin+=options.WEEK_SIZE;
					sbmargin=margin+options.BATSU_SIZE;
					margin+=(options.BATSU_SIZE*3);
				}
				if(time!=0){
					var htime=d.getElementById("searchbox-header-time");
					htime.className="time"+time;
					htime.style.left=margin+"px";
					margin+=options.TIME_SIZE[time];
					margin+=(options.BATSU_SIZE*1);
				}
			}else{
				if(genre!=0){
					d.getElementById("searchbox-header-genre").className="genre"+genre;
					margin+=options.GENRE_SIZE_SMALL[genre];
					fbmargin=margin+options.BATSU_SIZE_SMALL;
					margin+=(options.BATSU_SIZE_SMALL*3);
				}
				if(weeks!=0){
					var hweek=d.getElementById("searchbox-header-weeks");
					hweek.className="week"+weeks;
					hweek.style.left=margin+"px";
					margin+=options.WEEK_SIZE_SMALL;
					sbmargin=margin+options.BATSU_SIZE_SMALL;
					margin+=(options.BATSU_SIZE_SMALL*3);
				}
				if(time!=0){
					var htime=d.getElementById("searchbox-header-time");
					htime.className="time"+time;
					htime.style.left=margin+"px";
					margin+=options.TIME_SIZE_SMALL[time];
					margin+=(options.BATSU_SIZE_SMALL*1);
				}
			}
			d.getElementById("searchbox-header-label").style.left=margin+"px";
			if(genre!=0&&(weeks!=0||time!=0)){
				var fb=d.getElementById("searchbox-header-batsu1");
				fb.style.left=fbmargin+"px";
				fb.style.display="block";
			}
			if(weeks!=0&&time!=0){
				var sb=d.getElementById("searchbox-header-batsu2");
				sb.style.left=sbmargin+"px";
				sb.style.display="block";
			}
		}
		function createProgram(){
			titleInners=[];
			dateInners=[];
			genreInners=[];
			specialInners=[];
			titleIcons=[];
			dateIcons=[];
			genreIcons=[];
			specialIcons=[];
			newIcons=[];
			titleInnerTexts=[];
			dateInnerTexts=[];
			genreInnerTexts=[];
			specialInnerTexts=[];
			titleOuters=[];
			dateOuters=[];
			genreOuters=[];
			specialOuters=[];
			images=[];
			imageLinks=[];
			programInners=[];
			changeViewMode(view_mode);
			switch(view_mode){
				case MODE_IMG:createImagePrograms();
					break;
				case MODE_TEXT:createTextPrograms();
					break;
				default:break;
			}
		}
		function createTextPrograms(){
			trace("createTextProgram");
			var programs=d.getElementById("searchbox-program-text-container");
			var programx;
			var programy;
			var count=-1;
			for(var i=0;12>i;i++){
				var item=programData[i];
				var program=d.createElement("div");
				program.className="searchbox-program-text-list";
				var newicon=d.createElement("div");
				var titleOuter=d.createElement("div");
				titleOuter.className="searchbox-program-text-list-title-outer searchbox-program-text-ticker";
				program.appendChild(titleOuter);
				var titleInner=d.createElement("a");
				titleInner.className="searchbox-program-text-list-title searchbox-program-text-inner";
				titleOuter.appendChild(titleInner);
				var titleInnerText=d.createElement("nobr");
				titleInner.appendChild(titleInnerText);
				var titleIcon=d.createElement("div");
				titleIcon.className="searchbox-program-text-title-icon searchbox-program-text-icon";
				program.appendChild(titleIcon);
				var dateOuter=d.createElement("div");
				dateOuter.className="searchbox-program-text-list-date-outer searchbox-program-text-ticker";
				program.appendChild(dateOuter);
				var dateInner=d.createElement("div");
				dateInner.className="searchbox-program-text-list-date searchbox-program-text-inner";
				dateOuter.appendChild(dateInner);
				var dateInnerText=d.createElement("nobr");
				dateInner.appendChild(dateInnerText);
				var dateIcon=d.createElement("div");
				dateIcon.className="searchbox-program-text-date-icon searchbox-program-text-icon";
				program.appendChild(dateIcon);
				var genreOuter=d.createElement("div");
				genreOuter.className="searchbox-program-text-list-genre-outer searchbox-program-text-ticker";
				program.appendChild(genreOuter);
				var genreInner=d.createElement("div");
				genreInner.className="searchbox-program-text-list-genre searchbox-program-text-inner";
				genreOuter.appendChild(genreInner);
				var genreInnerText=d.createElement("nobr");
				genreInner.appendChild(genreInnerText);
				var genreIcon=d.createElement("div");
				genreIcon.className="searchbox-program-text-genre-icon searchbox-program-text-icon";
				program.appendChild(genreIcon);
				var specialOuter=d.createElement("div");
				specialOuter.className="searchbox-program-text-list-special-outer searchbox-program-text-ticker";
				program.appendChild(specialOuter);
				var specialInner=d.createElement("div");
				specialInner.className="searchbox-program-text-list-special searchbox-program-text-inner";
				specialOuter.appendChild(specialInner);
				var specialInnerText=d.createElement("nobr");
				specialInner.appendChild(specialInnerText);
				var specialIcon=d.createElement("div");
				specialIcon.className="searchbox-program-text-special-icon searchbox-program-text-icon";
				program.appendChild(specialIcon);
				titleInners.push(titleInner);
				dateInners.push(dateInner);
				genreInners.push(genreInner);
				specialInners.push(specialInner);
				titleIcons.push(titleIcon);
				dateIcons.push(dateIcon);
				genreIcons.push(genreIcon);
				specialIcons.push(specialIcon);
				newIcons.push(newicon);
				titleInnerTexts.push(titleInnerText);
				dateInnerTexts.push(dateInnerText);
				genreInnerTexts.push(genreInnerText);
				specialInnerTexts.push(specialInnerText);
				titleOuters.push(titleOuter);
				dateOuters.push(dateOuter);
				genreOuters.push(genreOuter);
				specialOuters.push(specialOuter);
				programInners.push(program);
				programs.appendChild(program);
			}
			setImagePrograms();
			$(programs).show();
		}
		function createImagePrograms(){
			var programs=d.getElementById("searchbox-programs");
			var programx;
			var programy;
			var count=-1;
			var marginy;
			var marginx;
			trace("window_mode "+window_mode);
			if(window_mode==WINDOW_BIG){
				marginx=178;
				marginy=174;
			}else{
				trace("small");
				marginx=114;
				marginy=137;
			}
			for(var i=0;12>i;i++){
				if(i%4==0)count++;
				programx=marginx*(i%4);
				programy=marginy*count;
				var item=programData[i];
				var program=d.createElement("div");
				program.className="searchbox-program";
				program.style.left=programx+"px";
				program.style.top=programy+"px";
				program.style.height=149+"px";
				var imageLayer=d.createElement("div");
				imageLayer.className="searchbox-program-imageLayer";
				program.appendChild(imageLayer);
				var imageBox=d.createElement("div");
				imageBox.className="searchbox-program-imageBox";
				program.appendChild(imageBox);
				var imageBoxlink=d.createElement("a");
				imageBox.appendChild(imageBoxlink);
				var image=d.createElement("img");
				image.width=144;
				image.height=81;
				image.className="searchbox-program-image";
				imageBoxlink.appendChild(image);
				var newicon=d.createElement("div");
				newicon.className="searchbox-program-newicon";
				program.appendChild(newicon);
				var newiconimage=d.createElement("img");
				newiconimage.width=41;
				newiconimage.height=16;
				newiconimage.src=options.NEW_ICON;
				newiconimage.className="searchbox-program-newicon-image";
				newicon.appendChild(newiconimage);
				var titleOuter=d.createElement("div");
				titleOuter.className="searchbox-program-title-outer searchbox-program-ticker";
				program.appendChild(titleOuter);
				var titleInner=d.createElement("a");
				titleInner.className="searchbox-program-title-inner searchbox-program-inner";
				titleOuter.appendChild(titleInner);
				var titleInnerText=d.createElement("nobr");
				titleInner.appendChild(titleInnerText);
				var titleIcon=d.createElement("div");
				titleIcon.className="searchbox-program-title-icon searchbox-program-icon";
				program.appendChild(titleIcon);
				var dateOuter=d.createElement("div");
				dateOuter.className="searchbox-program-date-outer searchbox-program-ticker";
				program.appendChild(dateOuter);
				var dateInner=d.createElement("div");
				dateInner.className="searchbox-program-date-inner searchbox-program-inner";
				dateOuter.appendChild(dateInner);
				var dateInnerText=d.createElement("nobr");
				dateInner.appendChild(dateInnerText);
				var dateIcon=d.createElement("div");
				dateIcon.className="searchbox-program-date-icon searchbox-program-icon";
				program.appendChild(dateIcon);
				var genreOuter=d.createElement("div");
				genreOuter.className="searchbox-program-genre-outer searchbox-program-ticker";
				program.appendChild(genreOuter);
				var genreInner=d.createElement("div");
				genreInner.className="searchbox-program-genre-inner searchbox-program-inner";
				genreOuter.appendChild(genreInner);
				var genreInnerText=d.createElement("nobr");
				genreInner.appendChild(genreInnerText);
				var genreIcon=d.createElement("div");
				genreIcon.className="searchbox-program-genre-icon searchbox-program-icon";
				program.appendChild(genreIcon);
				var specialOuter=d.createElement("div");
				specialOuter.className="searchbox-program-special-outer searchbox-program-ticker";
				program.appendChild(specialOuter);
				var specialInner=d.createElement("div");
				specialInner.className="searchbox-program-special-inner searchbox-program-inner";
				specialOuter.appendChild(specialInner);
				var specialInnerText=d.createElement("nobr");
				specialInner.appendChild(specialInnerText);
				var specialIcon=d.createElement("div");
				specialIcon.className="searchbox-program-special-icon searchbox-program-icon";
				program.appendChild(specialIcon);
				titleInners.push(titleInner);
				dateInners.push(dateInner);
				genreInners.push(genreInner);
				specialInners.push(specialInner);
				titleIcons.push(titleIcon);
				dateIcons.push(dateIcon);
				genreIcons.push(genreIcon);
				specialIcons.push(specialIcon);
				newIcons.push(newicon);
				titleInnerTexts.push(titleInnerText);
				dateInnerTexts.push(dateInnerText);
				genreInnerTexts.push(genreInnerText);
				specialInnerTexts.push(specialInnerText);
				titleOuters.push(titleOuter);
				dateOuters.push(dateOuter);
				genreOuters.push(genreOuter);
				specialOuters.push(specialOuter);
				images.push(image);
				imageLinks.push(imageBoxlink);
				programInners.push(program);
				programs.appendChild(program);
			}
			setImagePrograms();
			$(programs).show();
		}
		function setImagePrograms(){
			trace("setImagePrograms");
			var start=currentPage*12;
			var end=start+12;
			var count=-1;
			var index=0;
			var length=programData.length;
			var outer_width="100px";
			if(window_mode==WINDOW_BIG){
				outer_width="130px";
			}else{
				outer_width="70px";
			}
			for(var i=start;end>i;i++){
				if(i>=length)break;
				if(i%4==0)count++;
				var p=programInners[index];
				p.style.display="block";
				var item=programData[i];
				var titleInner=titleInners[index];
				var dateInner=dateInners[index];
				var genreInner=genreInners[index];
				var specialInner=specialInners[index];
				var titleInnerText=titleInnerTexts[index];
				var dateInnerText=dateInnerTexts[index];
				var genreInnerText=genreInnerTexts[index];
				var specialInnerText=specialInnerTexts[index];
				var titleOuter=titleOuters[index];
				var dateOuter=dateOuters[index];
				var genreOuter=genreOuters[index];
				var specialOuter=specialOuters[index];
				var image=images[index];
				var imageBoxlink=imageLinks[index];
				var newicon=newIcons[index];
				var titleicon=titleIcons[index];
				var dateicon=dateIcons[index];
				var genreicon=genreIcons[index];
				var specialicon=specialIcons[index];
				var title_width=0;
				if(typeof titleInner.textContent!="undefined"){
					titleInnerText.textContent=item.title;
					dateInnerText.textContent=item.time;
					genreInnerText.textContent=item.genre;
					specialInnerText.textContent=item.special;
					title_dummy.textContent=item.title;
					date_dummy.textContent=item.time;
					genre_dummy.textContent=item.genre;
					special_dummy.textContent=item.special;
				}else{
					titleInnerText.innerText=item.title;
					dateInnerText.innerText=item.time;
					genreInnerText.innerText=item.genre;
					specialInnerText.innerText=item.special;
					title_dummy.innerText=item.title;
					date_dummy.innerText=item.time;
					genre_dummy.innerText=item.genre;
					special_dummy.innerText=item.special;
				}
				if(title_dummy.offsetWidth>isticker_width){
					titleicon.style.display="block";
					titleOuter.style.width=outer_width;
					ticker(titleOuter,titleInner);
				}else{
					titleicon.style.display="none";
					titleOuter.onmouseover=function(){
					};
					titleOuter.onmouseout=function(){
					};
				}
				if(date_dummy.offsetWidth>isticker_width){
					dateicon.style.display="block";
					dateOuter.style.width=outer_width;
					ticker(dateOuter,dateInner);
				}else{
					dateicon.style.display="none";
					dateOuter.onmouseover=function(){
				};
				dateOuter.onmouseout=function(){
				};
			}
			if(genre_dummy.offsetWidth>isticker_width){
				genreicon.style.display="block";
				genreOuter.style.width=outer_width;
				ticker(genreOuter,genreInner);
			}else{
				genreicon.style.display="none";
				genreOuter.onmouseover=function(){
				};
				genreOuter.onmouseout=function(){
				};
			}
			if(special_dummy.offsetWidth>isticker_width){
				specialicon.style.display="block";
				specialOuter.style.width=outer_width;
				ticker(specialOuter,specialInner);
			}else{
				specialicon.style.display="none";
				specialOuter.onmouseover=function(){
				};
				specialOuter.onmouseout=function(){
				};
			}
			dateInner.innerHTML="<nobr>"+item.time+"</nobr>";
			if(view_mode==0){
				imageBoxlink.href=item.url||"#";
				if(!item.url)imageBoxlink.onclick=function(){return false};
				imageBoxlink.target=item.target;
				image.style.display="none";
				image.onload=function(){
					this.style.display="inline";
				}
				image.src=item.img;
			}
			titleInner.href=item.url||"#";
			if(!item.url)titleInner.onclick=function(){return false};
			titleInner.target=item.target;
			if(item.isnew==1){
				trace(item.isnew+" : "+item.title);
				newicon.style.display="block";
			}else{
				newicon.style.display="none";
			}
			index++;
		}
		for(var i=index;12>i;i++){
			var p=programInners[i];
			p.style.display="none";
		}
	}
	
	function setTitleText(){
	}
	
	function setImageProgramContent(html){
		var _html=$(html);
		_html.find(".searchbox-program-title-inner").text("hhoge");
		return _html;
	}
	
	function navigationChange(type,state){
		var h=$('#searchbox-header-navigation-'+type);
		var f=$('#searchbox-footer-navigation-'+type);
		h.attr("class",state);
		f.attr("class",state);
	};
	
	function changeMode(event){
		var mode=event.data.mode;
		trace("mode "+mode);
		changeViewMode(mode);
		manager.setCookie(cookie_name,String(mode));
		createProgram();
	}
	
	function changeViewMode(mode){
		d.getElementById("searchbox-program-text-container").innerHTML="";
		d.getElementById("searchbox-programs").innerHTML="";
		switch(mode){
			case MODE_IMG:d.getElementById("searchbox-image-mode-on").style.display="none";
				d.getElementById("searchbox-image-mode-off").style.display="inline";
				d.getElementById("searchbox-text-mode-on").style.display="inline";
				d.getElementById("searchbox-text-mode-off").style.display="none";
				d.getElementById("searchbox-programs-text").style.display="none";
				d.getElementById("searchbox-programs").style.display="block";
				view_mode=MODE_IMG;
				break;
		case MODE_TEXT:d.getElementById("searchbox-image-mode-on").style.display="inline";
				d.getElementById("searchbox-image-mode-off").style.display="none";
				d.getElementById("searchbox-text-mode-on").style.display="none";
				d.getElementById("searchbox-text-mode-off").style.display="inline";
				d.getElementById("searchbox-programs-text").style.display="block";
				d.getElementById("searchbox-programs").style.display="none";
				view_mode=MODE_TEXT;
				break;
		default:d.getElementById("searchbox-image-mode-on").style.display="none";
				d.getElementById("searchbox-image-mode-off").style.display="inline";
				d.getElementById("searchbox-text-mode-on").style.display="inline";
				d.getElementById("searchbox-text-mode-off").style.display="none";
				d.getElementById("searchbox-programs-text").style.display="none";
				d.getElementById("searchbox-programs").style.display="block";
				view_mode=MODE_IMG;
				break;
		}
	}
	
	function pagingAction(){
		var max=maxPage||1;
		var current=currentPage+1;
		var page=current+" / "+max;
		$("#searchbox-navigation-header-pages").text(page);
		$("#searchbox-navigation-footer-pages").text(page);
	}
	
	function next(){
		currentPage++;
		if(currentPage>=(maxPage-1)){
			navigationChange('next',"off");
		}
		if(currentPage>(maxPage-1)){
			currentPage--;
			return false;
		}
		navigationChange('prev',"on");
		setImagePrograms();
		pagingAction();
		return false;
	}
	
	function prev(){
		currentPage--;
		if(currentPage<=0){
			navigationChange('prev',"off");
		}
		if(currentPage<0){
			navigationChange('prev',"off");
			currentPage++;
			return false;
		}
		navigationChange('next',"on");
		setImagePrograms();
		pagingAction();
		return false;
	}
	
	function close(){
		$("#searchbox-overlay, #searchbox-overlay_ie, #searchbox-wrapper").remove();
		$("object, embed").css({visibility:"visible"});
		if($("#flash_area2").length>0){
			ytvMovieSendToActionScript("play");
		}
		return false;
	}
	
	var ticker_target;
	var ticker_target_width;
	var ticker_pos=0;
	var ticker_id;
	var over_id;
	var is_out=false;
	function slider(){
		ticker_pos--;
		if($.browser.msie)ticker_pos-=1;
		if(ticker_pos<-ticker_target_width){
			ticker_pos=isticker_width;
		}
		ticker_target.style.left=ticker_pos+"px";
		if($.browser.msie&&$.browser.version<7){
			ticker_id=setTimeout(slider,20);
		}else{
			ticker_id=setTimeout(slider,20);
		}
	}
	
	function restSlider(){
		if(is_out){
			ticker_pos=0;
		}
		clearTimeout(over_id);
	}
	
	var MouseOver_Action;
	var MouseOut_Action;
	MouseOver_Action=function(event){
		var inner=event;
		is_out=false;
		ticker_target=inner;
		ticker_target_width=inner.offsetWidth;
		$(ticker_target).stop();
		slider();
	}
	
	MouseOut_Action=function(){
		clearTimeout(ticker_id);
		if(!ticker_target)return;
		$(ticker_target).animate({left:0},200)
		is_out=true;
		over_id=setTimeout(restSlider,1);
	}
	
	function ticker(outer,inner){
		ticker_pos=0;
		outer.onmouseover=function(){
			var _inner=inner;
			return MouseOver_Action(_inner);
		}
		outer.onmouseout=function(){
			return MouseOut_Action();
		}
	}
	
	//----------------------------------------
	//XMLの取得？
	//----------------------------------------
	function load(){
		try{
			//取得成功
			$.ajax({
//********************************************************************************
//ローカルテスト用
				url:options.REQUEST_URL+'?genre='+options.genre+'&weekday='+options.weeks+'&timeline='+options.time,type:'GET',dataType:'xml',
				//url:'genre_test'+options.genre+'.xml',type:'GET',dataType:'xml',
//********************************************************************************
					error:function(){
						noXML();
					},
					success:function(xml){
						var create=onLoadXML.bench("onLoadXML");
						create(xml);
					}
			});
		}catch(e){
			//取得失敗
			noXML();
		}
	}
	
	function onLoadXML(xml){
		trace("onLoad");
		var root=xml.documentElement;
		if(!root.hasChildNodes())noHIT();
		var item;
		var itemNode;
		var childNodes=root.childNodes;
		var rootlen=childNodes.length;
		var childlen;
		
//********************************************************************************
//表示順を整形
//	※XMLをソートし直すのがベスト、難しそうなので条件ごとに取得の繰り返しで対応
//	※XMLは50音順でソート済
//********************************************************************************
		
		//元ソース
		//for(var i=0;rootlen>i;i++){
		//	itemNode=childNodes[i];
		//	if(itemNode.nodeType!=1)continue;
		//	childNode=itemNode.childNodes;
		//	childlen=childNode.length;
		//	item=getChildItem(childNode,childlen);
		//	programData.push(item);
		//}
		
		//種別ごとの格納用データ初期化
		var tmpObi = new Array();			//①帯番組
		var tmpYtv = new Array();			//②YTV番組
		var tmpOut = new Array();			//③外部番組
		var tmpTok = new Array();			//④特番組
		var tmpOth = new Array();			//⑤不明番組
		var tmpEnd = new Array();			//⑥終了番組
		for(wlc=1;wlc<=7;wlc++){
			tmpYtv[wlc] = new Array();	//月～日(1～7)
			tmpOut[wlc] = new Array();	//月～日(1～7)
		}
		
		for(var i=0;rootlen>i;i++){
			itemNode=childNodes[i];
			if(itemNode.nodeType!=1)continue;
			childNode=itemNode.childNodes;
			childlen=childNode.length;
			
			//曜日と外部フラグを取得
			var weekday="";
			var outFlag=0;
			for(var j=0;childlen>j;j++){
				nodes=childNode[j];
				if(nodes.nodeType!=1)continue;
				
				value=getNodeValue(nodes.childNodes);
				name=nodes.nodeName;
				
				if(name=="outFlag"){	outFlag=value;	}
				
				//weekdayを整形
				if(name=="weekday"){
					var weekTmp="";
					var endTmp=0;
					for(var k=0;nodes.childNodes.length>k;k++){
						node=nodes.childNodes[k];
						if(node.nodeType!=1)continue;
						weekTmp += getNodeValue(node.childNodes);
						if(getNodeValue(node.childNodes)=="0"){
							endTmp=1;
						}
					}
					
					//複数あれば、帯番組扱いとする
					//ただし、終了番組なら帯番組としない
					if(endTmp==1){
						weekday = 0;
					}else
					if(weekTmp.length<=1){
						weekday = weekTmp;
					}else{
						weekday = 8;
					}
				}
			}
			
			//データを取得
			item=getChildItem(childNode,childlen);
			
			//振り分け
			if(weekday==8){
				//①帯番組（weekday=8）
				tmpObi.push(item);
			}else
			if((outFlag!=1) && (1<=weekday && weekday<=7)){
				//②YTV番組（weekday=1～7）
				tmpYtv[weekday].push(item);
			}else
			if((outFlag==1) && (1<=weekday && weekday<=7)){
				//③外部番組（weekday=1～7）
				tmpOut[weekday].push(item);
			}else
			if(weekday==9){
				//④特番組（weekday=9）
				tmpTok.push(item);
			}else
			if(weekday!=0){
				//⑤不明番組（weekday=なし、但しweekday!=0）
				tmpOth.push(item);
			}else
			if(weekday==0){
				//⑥終了番組（weekday=0）
				tmpEnd.push(item);
			}
			
		}
		
		//①帯番組をリストに登録
		for(lc=0;lc<tmpObi.length;lc++){
			programData.push(tmpObi[lc]);
		}
		//②YTV番組をリストに登録
		for(wlc=1;wlc<=7;wlc++){
			for(lc=0;lc<tmpYtv[wlc].length;lc++){
				programData.push(tmpYtv[wlc][lc]);
			}
		}
		//③外部番組をリストに登録
		for(wlc=1;wlc<=7;wlc++){
			for(lc=0;lc<tmpOut[wlc].length;lc++){
				programData.push(tmpOut[wlc][lc]);
			}
		}
		//④特番組をリストに登録
		for(lc=0;lc<tmpTok.length;lc++){
			programData.push(tmpTok[lc]);
		}
		//⑤不明番組をリストに登録
		for(lc=0;lc<tmpOth.length;lc++){
			programData.push(tmpOth[lc]);
		}
		//⑥終了番組をリストに登録
		for(lc=0;lc<tmpEnd.length;lc++){
			programData.push(tmpEnd[lc]);
		}
		
//********************************************************************************
		
		onLoadComplete();
	}
	
	function getChildItem(node,len){
		var nodes;
		var item={
		};
		var value;
		var name;
		for(var j=0;len>j;j++){
			nodes=node[j];
			if(nodes.nodeType!=1)continue;
			value=getNodeValue(nodes.childNodes);
			name=nodes.nodeName;
			if(name=="refEventName"){
				item.title=value;
			}else if(name=="refPcUrl"){
				item.url=value;
			}else if(name=="refPic"){
				if(value=="")value=options.NO_IMAGE_URL;
				item.img=value;
			}else if(name=="target"){
				item.target=value;
			}else if(name=="newFlag"){
				item.isnew=value;
			}else if(name=="housoTime"){
				item.time=value;
			}else if(name=="specialTime"){
				item.special=value;
			}else if(name=="genre"){
				item.genre=getGenre(nodes.childNodes);
			}
		}
		return item;
	}
	
	function getGenre(value){
		if(value.length<1)return"";
		var node;
		var genres=[];
		for(var i=0;value.length>i;i++){
			node=value[i];
			if(node.nodeType!=1)continue;
			genres.push(options.GENRES[getNodeValue(node.childNodes)]);
		}
		return genres.join("・");
	}
	
	function getNodeValue(value){
		if(value.length<1)return"";
		return value[0].nodeValue;
	}
	
	function noXML(){
		var msg=d.getElementById("searchbox-message");
		msg.style.display="block";
		if(typeof msg.textContent!="undefined"){
			msg.textContent=options.NO_XML_MESSAGE;
		}else{
			msg.innerText=options.NO_XML_MESSAGE;
		}
	}
	
	function noHIT(){
		var msg=d.getElementById("searchbox-message");
		msg.style.display="block";
		if(typeof msg.textContent!="undefined"){
			msg.textContent=options.NO_HIT_MESSAGE;
		}else{
			msg.innerText=options.NO_HIT_MESSAGE;
		}
	}
	
	function getLayer(){
		var html='\
		 <div id="searchbox-title-dummy"></div> \
		 <div id="searchbox-date-dummy"></div> \
		 <div id="searchbox-genre-dummy"></div> \
		 <div id="searchbox-other-dummy"></div> \
		 <div id="searchbox-container"> \
		 <div id="searchbox-content"> \
			<div id="searchbox-header" class="searchbox-header"> \
			<div id="searchbox-header-genre"></div> \
			<div id="searchbox-header-batsu1" class="searchbox-header-batsu"></div> \
			<div id="searchbox-header-weeks"></div> \
			<div id="searchbox-header-batsu2" class="searchbox-header-batsu"></div> \
			<div id="searchbox-header-time"></div> \
			<div id="searchbox-header-label"></div> \
			<a id="searchbox-header-close" href="#"></a> \
			</div> \
			<div id="searchbox-header-navigation" class="searchbox-navigation"> \
			<span id="searchbox-header-navigation-prev" class="off"><a class="searchbox-navigation-prev" href="#"></a></span> \
			<div id="searchbox-navigation-header-pages" class="searchbox-navigation-pages"></div> \
			<span id="searchbox-header-navigation-next" class="off"><a class="searchbox-navigation-next" href="#"></a></span> \
			<div id="searchbox-mode-select"> \
			 <span id="searchbox-image-mode-on">画像</span> \
			 <span id="searchbox-image-mode-off">画像</span> \
			 <span> / </span> \
			 <span id="searchbox-text-mode-on">テキスト</span> \
			 <span id="searchbox-text-mode-off">テキスト</span> \
			</div> \
			</div> \
			<div id="searchbox-programs"> \
			</div> \
			<div id="searchbox-programs-text"> \
			 <div id="searchbox-program-text-header"> \
			 <span id="searchbox-program-text-header-title">番組タイトル</span> \
			 <span id="searchbox-program-text-header-date">放送時間</span> \
			 <span id="searchbox-program-text-header-genre">ジャンル</span> \
			 <span id="searchbox-program-text-header-special">スペシャル</span> \
			</div> \
			<div id="searchbox-program-text-container"> \
			</div> \
			</div> \
			<div id="searchbox-loading-image"> \
			 <img src="/images/2009/indicator.gif" width="32" height="32" /> \
			</div> \
			<div id="searchbox-message"> \
			</div> \
			<div id="searchbox-footer"> \
			 <div id="searchbox-footer-navigation" class="searchbox-navigation"> \
			 <span id="searchbox-footer-navigation-prev" class="off"><a class="searchbox-navigation-prev" href="#"></a></span> \
			 <div id="searchbox-navigation-footer-pages" class="searchbox-navigation-pages"></div> \
			 <span id="searchbox-footer-navigation-next" class="off"><a class="searchbox-navigation-next" href="#"></a></span> \
			 </div> \
			 <a id="searchbox-footer-close" href="#"></a> \
			</div> \
		 </div> \
		 </div> ';
		return html;
	}
	
	function getImageProgram(){
		var html='\
		<div class="searchbox-program-imageLayer"></div> \
		<div class="searchbox-program-imageBox"> \
		 <a><img width="144" height="81" class="searchbox-program-image" /></a> \
		</div> \
		<div class="searchbox-program-newicon"> \
		 <img width="41" height="16" src="/images/2009/ytv_search_new_icon.png" class="searchbox-program-newicon-image" /> \
		</div> \
		<div class="searchbox-program-title-outer searchbox-program-ticker"> \
		 <a class="searchbox-program-title-inner searchbox-program-inner"></a> \
		</div> \
		<div class="searchbox-program-title-icon searchbox-program-icon"></div> \
		<div class="searchbox-program-date-outer searchbox-program-ticker"> \
		 <p class="searchbox-program-date-inner searchbox-program-inner"></p> \
		</div> \
		<div class="searchbox-program-date-icon searchbox-program-icon"></div> \
		<div class="searchbox-program-genre-outer searchbox-program-ticker"> \
		 <p class="searchbox-program-genre-inner searchbox-program-inner"></p> \
		</div> \
		<div class="searchbox-program-genre-icon searchbox-program-icon"></div> \
		<div class="searchbox-program-special-outer searchbox-program-ticker"> \
		 <p class="searchbox-program-special-inner searchbox-program-inner"></p> \
		</div> \
		<div class="searchbox-program-special-icon searchbox-program-icon"></div>';
		return html;
	}
	
	function loadingShow(){
		d.getElementById("searchbox-loading-image").style.display="block";
	}
	
	function loadingHide(){
		d.getElementById("searchbox-loading-image").style.display="none";
	}
	
	function _resizeOverlay(){
		var full_width=$(window).width();
		if(full_width<960)full_width=960;
		var full_height=$(document).height();
		$('#searchbox-overlay, #searchbox-overlay_ie, #searchbox-wrapper').css({'height':full_height,'width':full_width});
	}
	
	function setSize(){
		var full_height=parseInt($(window).height());
		var wrapper=d.getElementById("searchbox-wrapper");
		var overlay=d.getElementById("searchbox-overlay_ie");
		trace("full_height: "+full_height);
		if(full_height<=768){
			isticker_width=80;
			window_mode=1;
			wrapper.className="ytvSearchsmall";
			overlay.className="ytvSearchsmall";
		}else{
			window_mode=0;
			isticker_width=150;
			wrapper.className="ytvSearchbig";
			overlay.className="ytvSearchbig";
		}
	}
	
	var Init=init.bench("init");
	Init();
	return this;
};

$(document).ready(onReady);
var searchbox_select_genre=1;
var searchbox_select_week=1;
var searchbox_select_time=1;
function onReady(){
	var index=0;
	var genrelist=$("#tv_category_result img");
	var genrelist_images=[];
	var current_genre;
	genrelist.each(function(){
		if($(this).css("display")=="block"){
			current_genre=index;
			searchbox_select_genre=index+1;
		}
		genrelist_images.push($(this));
		index++;
	});
	var genres=$("#menu1 a");
	index=1;
	genres.each(function(){
		var ind=index;
		$(this).bind("click",(function(){
			var before=genrelist_images[current_genre];
			before.css({display:"none"});
			current_genre=ind-1;
			searchbox_select_genre=ind;
			mclosetime();
			var after=genrelist_images[current_genre];
			after.css({display:"block"});
			return false;
		}));
		index++;
	});
	var weeklist=$("#tv_week_result img");
	var weeklist_images=[];
	var current_week;
	index=0;
	weeklist.each(function(){
		if($(this).css("display")=="block"){
			current_week=index;
			searchbox_select_week=index+1;
		}
		weeklist_images.push($(this));
		index++;
	});
	var weeks=$("#menu2 a");
	index=1;
	weeks.each(function(){
		var ind=index;
		$(this).bind("click",(function(){
			var before=weeklist_images[current_week];
			before.css({display:"none"});
			current_week=ind-1;
			searchbox_select_week=ind;
			mclosetime();
			var after=weeklist_images[current_week];
			after.css({display:"block"});
			return false;
		}));
		index++;
	});
	var timelist=$("#tv_time_result img");
	var timelist_images=[];
	var current_time;
	index=0;
	timelist.each(function(){
		if($(this).css("display")=="block"){
			current_time=index;
			searchbox_select_time=index+1;
		}
		timelist_images.push($(this));
		index++;
	});
	var times=$("#menu3 a");
	index=1;
	times.each(function(){
		var ind=index;
		$(this).bind("click",(function(){
			var before=timelist_images[current_time];
			before.css({display:"none"});
			current_time=ind-1;
			searchbox_select_time=ind;
			mclosetime();
			var after=timelist_images[current_time];
			after.css({display:"block"});
			return false;
		}));
		index++;
	});
	var submit=$("#tv_search_btn");
	submit.bind("click",onSubmit);
}

function onSubmit(){
	var genre=(searchbox_select_genre==9)?"":searchbox_select_genre;
	var weeks=(searchbox_select_week==8)?"":searchbox_select_week;
	var time=(searchbox_select_time==7)?"":searchbox_select_time;
	$("body").yomiuriTvSearch({"genre":genre,"weeks":weeks,"time":time,type:"search"});
	return false;
}

function onReady2(){
	var submit=$("#tv_search_btn");
	submit.bind("click",onSubmit2);
}

function onSubmit2(){
	var genre="";
	var weeks="";
	var time="";
	$("body").yomiuriTvSearch({"genre":genre,"weeks":weeks,"time":time,type:"search"});
	return false;
}

secondlyYtvGlobalNavigationFlash=function(genre,weeks,time){
	trace("flash "+genre+" "+weeks+" "+time);
	if(genre==null||genre=="null"){
		genre="";
	}
	if(weeks==null||weeks=="null"){
		weeks="";
	}
	if(time==null||time=="null"){
		time="";
	}
	var option={
	};
	option.genre=genre;
	option.weeks=weeks;
	option.time=time;
	option.type="search";
	$("body").yomiuriTvSearch(option);
}})(jQuery);

function thisMovie(movieName){
	if(navigator.appName.indexOf("Microsoft")!=-1){
		return window[movieName];
	}else{
		return document[movieName];
	}
}

function ytvMovieSendToActionScript(value){
	try{
		thisMovie("flash_area2").ytvMovieSendToActionScript(value);
	}catch(e){
	}
}

function secondlyYtvGlobalNavigationFlashgetRef(){
	return location.href;
}





//********************************************************************************

//--------------------------------
//ジャンルのみ検索
//--------------------------------
function genreSearch(genre){
	//[ジャンル]のみ渡す、[曜日][時間帯]は指定なし
	secondlyYtvGlobalNavigationFlash(genre,"","");
}

//--------------------------------
//曜日のみ検索
//--------------------------------
function weekSearch(week){
	//[曜日]のみ渡す、[ジャンル][時間帯]は指定なし
	secondlyYtvGlobalNavigationFlash("",week,"");
}

