var sp2;
var quotes;
var lastTab="infoall";
var tabList=[];
var tabName;
var flg = 0;
var shift;

function switchTab(tab)
{
	if (tab!=lastTab)
	{
		document.getElementById(tab).className=("tabActive");
		document.getElementById(lastTab).className=("tab");
		sp2.showPanel(tab+"Panel");
		lastTab=tab;
	}
}

function switchTab2(tab)
{
	//alert(tab);
	if (tab!=lastTab)
	{
		document.getElementById(tab).className=("tabActive");
		document.getElementById(lastTab).className=("tab");
		lastTab=tab;
	}
}

function fadeInNextQuote()
{
	if (!quotes || quotes.length < 1)
		return;

	var curEle;

	if (typeof quotes.curIndex == "undefined")
		quotes.curIndex = quotes.length - 1;
	else
		curEle = quotes[quotes.curIndex];

	quotes.curIndex = (quotes.curIndex+1)%quotes.length;
	var nextEle = quotes[quotes.curIndex];

	if (curEle)
		Spry.Effect.DoFade(curEle, { from: 100, to: 0 });
	Spry.Effect.DoFade(nextEle, { to: 100, finish: function(){ setTimeout(function(){ fadeInNextQuote(); }, fadeInNextQuote.interval); } });
}

Spry.Widget.SlidingPanels.prototype.onKeyDown = function(e){
	var key = e.keyCode;
	var nodelength = this.currentPanel.childNodes.length;
	var temp;
	var indexno;

	temp= this.currentPanel.attributes;
	if (temp != null && temp.getNamedItem('id') != null ) {
		temp = temp.getNamedItem('id').nodeValue;
		indexno=temp.indexOf("Panel", 0);
		tabName = temp.substring(0,indexno);
	}

	if (!this.hasFocus || (key != this.previousPanelKeyCode && key != this.nextPanelKeyCode))
		return true;

	if (key == this.nextPanelKeyCode) {
		var cnt=0;

		for(;cnt<tabList.length;cnt++){
			if (tabName == tabList[cnt]) {
				if(cnt>=tabList.length-1){
					break;
				}else{
					tabName = tabList[cnt+1];
					break;
				}
			}
		}
		switchTab2(tabName);
		this.showNextPanel();
	}
	else if (key == this.previousPanelKeyCode){
		var cnt=0;

		for(;cnt < tabList.length;cnt++){
			if (tabName == tabList[cnt]) {
				if(cnt<=0){
					break;
				}else{
					tabName = tabList[cnt-1];
					break;
				}
			}
		}

		switchTab2(tabName);
		this.showPreviousPanel();
	}

	if (e.preventDefault) e.preventDefault();
	else e.returnValue = false;
	if (e.stopPropagation) e.stopPropagation();
	else e.cancelBubble = true;

	return false;
};

fadeInNextQuote.interval = 6000;

Spry.Utils.addLoadListener(function()
{
	// Show the sliding panels tab buttons.
	var key = 0;

	Spry.$$(".slidingTabPanelWrapper").setStyle("display: block");
	Spry.$$("#infoall, #info, #func, #event, #mntce, #press").addEventListener("click", function(){ switchTab(this.id); return false; }, false);

	$$(".slidingTabPanelWrapper > ul > li > a").each(function(ele){
		tabList.push(ele.id);
	});

	// Turn the slidingPanel region into a real sliding panel widget.

	Spry.$$("#slidingPanel").addClassName("SlidingPanels").setAttribute("tabindex", "0");
	Spry.$$("#slidingPanel > div").addClassName("SlidingPanelsContentGroup");
	Spry.$$("#slidingPanel .SlidingPanelsContentGroup > div").addClassName("SlidingPanelsContent");
	sp2 = new Spry.Widget.SlidingPanels('slidingPanel');

	// 最新情報一覧にフォーカスがある時に左右キーでタブ遷移する為の処理
	Spry.$$("#infoallPanel > div, #infoPanel > div, #funcPanel > div, #eventPanel > div, #mntcePanel > div, #pressPanel > div").addEventListener("keydown", function(evt){

		key = 0;
		if (sp2.onKeyDown(evt)) {
			if (evt != null) {
				if (!evt.which) {
					key = event.keyCode;
				}
				else {
					key = evt.which;
				}

				var cnt=0;
				if (key == 39) {
						for (; cnt < tabList.length; cnt++) {
							if (tabName == tabList[cnt]) {
								if (cnt >= tabList.length - 1) {
									break;
								}
								else {
									tabName = tabList[cnt + 1];
									switchTab(tabName);
									flg = key;
									break;
								}
							}
						}
				}else if(key == 37) {
						for (; cnt < tabList.length; cnt++) {
							if (tabName == tabList[cnt]) {
								if (cnt <= 0) {
									break;
								}
								else {
									tabName = tabList[cnt - 1];
									switchTab(tabName);
									flg = key;
									break;
								}
							}
						}
				}else {
					flg = 0;
				}

					// IE で keyが左右かどうか
					if (flg == 0) {
						return true;
					}
					else {
						//左右キー
						if (evt.preventDefault) evt.preventDefault();
						else evt.returnValue = false;
						if (evt.stopPropagation) evt.stopPropagation();
						else evt.cancelBubble = true;

						return false;
					}

			}else{
				// keyイベント無しなのでfalse
				return false;
			}
		}else{
			// そもそもonKeyDownが普通に動作していればそれに従うので
			return false;
		}
	},false);

	// 最新情報一覧の「もっと見る」にフォーカスがある時にタブキーでタブ遷移する為の処理
	Spry.$$("#infoallPanel .text_right, #infoPanel .text_right, #funcPanel .text_right, #eventPanel .text_right, #mntcePanel .text_right").addEventListener("keydown", function(evt){
		key = 0;
		if (evt != null) {
			if (!evt.which) {
				key = event.keyCode;
				shift = event.shiftKey;
			}
			else {
				key = evt.which;
				shift = evt.shiftKey;
			}
		}else{
			key = event.keyCode;
			shift = event.shiftKey;
		}

		if(sp2.onKeyDown(evt)){
			var cnt=0;
			if (shift) {
				if (key == 9) {
					flg=0;
					return true;
				}
			}
			else if (key == 9) {
				for (; cnt < tabList.length; cnt++) {
					if (tabName == tabList[cnt]) {
						if (cnt >= tabList.length - 1) {
							break;
						}
						else {
							tabName = tabList[cnt + 1];
							switchTab(tabName);

							if (evt.preventDefault) evt.preventDefault();
							else evt.returnValue = false;
							if (evt.stopPropagation) evt.stopPropagation();
							else evt.cancelBubble = true;

							break;
						}
					}
				}
			}
			else{
				flg=0;
				return true;
			}
			return false;
		}else{
			return false;
		}
	},false);

	// Find the quoteBox and setup any quotes inside it for fading.

	Spry.$$(".quoteBox").setStyle("position: relative; height: 260px;");
	quotes = Spry.$$(".quote").setStyle("position: absolute; top: 0px; left: 0px; opacity: 0; filter: alpha(opacity=0);");
	fadeInNextQuote();
});