var tabSum=0;
var activeTabIndex=0;
var activeTabSum=0;

var mimikoTimeLastHour=-1;
var mimikoTimeLastMinute=-1;

var musicList=[
			   {'specialTitle':'默认专辑','specialPath':'default','special':[
					  {'title':'小喵','path':'littleneko.wma'},
					  {'title':'Harry\'s wondrous world','path':'harryswondrousworld.wma'},
					  {'title':'绯想天','path':'hisouten.wma'},
					  {'title':'Title','path':'ragnarokonlinetitlemusic.wma'},
					  {'title':'Etetnal','path':'eternal.wma'},
					  {'title':'美しきもの','path':'beautifulthings.wma'},
					  {'title':'预感','path':'premonition.wma'},
					  {'title':'銀の龍の背に乗って','path':'onthesilverdragonsback.wma'},
					  {'title':'巫 -kannagi-','path':'kannagi.wma'},
					  {'title':'夏夕空','path':'theskyofasummernightfall.wma'},
					  {'title':'Only my railgun','path':'onlymyrailgun.wma'},
					  {'title':'なのです☆','path':'nanodesu.wma'},
					  {'title':'One more time, One more chance -PIANO ver-','path':'onemoretimeonemorechance.wma'},
					  ]},
			   {'specialTitle':'Elysion ~乐园幻想物语组曲~','specialPath':'soundhorizon','special':[
					  {'title':'エルの楽園［→ side_E →］','path':'01.wma'},
					  {'title':'Ark','path':'02.wma'},
					  {'title':'エルの絵本【魔女とラフレンツェ】','path':'03.wma'},
					  {'title':'Baroque','path':'04.wma'},
					  {'title':'エルの肖像','path':'05.wma'},
					  {'title':'Yield','path':'06.wma'},
					  {'title':'エルの天秤','path':'07.wma'},
					  {'title':'Sacrifice','path':'08.wma'},
					  {'title':'エルの絵本【笛吹き男とパレード】','path':'09.wma'},
					  {'title':'StarDust','path':'10.wma'},
					  {'title':'エルの楽園 「→ side_A →」Extra Bonus Track','path':'11.wma'},
					  ]},
			   {'specialTitle':'Elysion ~乐园幻想物语组曲~','specialPath':'soundhorizon','special':[
					  {'title':'「Elysion」システムヴォイス集','path':'12.wma'},
					  ]}
			   ];
var musicListSpecialIndex=1;
var musicListIndex=parseInt( (musicList[musicListSpecialIndex].special.length-1)*Math.random(), 10 );
var musicPlayMode=1;/*0=Stop, 1=Single Loop*/
//============================================================================================================================
$(window)
.resize(function(){
  mimikoStageCssSetting();
})
.load(function(){

  openNewTab('yukidoll/speeddial.php');
  setTimeout("$('#mimikoTab1').click();",500);
  
  musicPlay(1);
  
  $('#locationField').change(function(){locationChange()});
  
  $('#musicTitle')
  .mousedown(function(mimikoMouseClickState){
					  if( musicPlayMode==0 ){
						  musicPlayMode=1;
						  musicPlay(1);
					  }else if( musicPlayMode==1 ){
						  if( mimikoMouseClickState.which==1 ){
							  musicListIndex=musicListIndex+1;
							  if( musicListIndex>(musicList[musicListSpecialIndex].special.length-1) ){
								  musicListIndex=0;
							  };
							  musicPlay(1);
							  return false;
						  }else if( mimikoMouseClickState.which==2 ){
							  musicPlayMode=0;
							  musicPlay(0);
							  return false;
						  }else if( mimikoMouseClickState.which==3 ){
							  musicListIndex=musicListIndex-1;
							  if( musicListIndex<0 ){
								  musicListIndex=(musicList[musicListSpecialIndex].special.length-1);
							  };
							  musicPlay(1);
							  return false;
						  };
					  };
											   })
  .bind("contextmenu", function(){
								return false;
								});
  
  $('#addTab').click(function(){openNewTab('yukidoll/speeddial.php');});
  $('#reloadTab').click(function(){reloadTab();});
  $('#helpPage').click(function(){openNewTab('yukidoll/help.php');});
  $('#removeTab').click(function(){deleteTab(activeTabIndex);});
  
  getMimikoTime();
  
  mimikoStageCssSetting();
});

function mimikoStageCssSetting(){
	$('#topBar')
	.css({ width:window.innerWidth*1, height:24, left:0, top:0 });
	$('#locationField')
	.css({ width:window.innerWidth-320*2-16-8*2-16, left:16+320 });
	$('#mainArea')
	.css({ width:window.innerWidth*1, height:window.innerHeight-48, left:window.innerWidth*0, top:24 });
	$('iframe.mimikoStage')
	.css({ width:window.innerWidth*1, height:window.innerHeight-48 });
	$('#bottomBar')
	.css({ width:window.innerWidth*1, height:24, left:0, top:window.innerHeight-24 });
	$('#tabArea')
	.css({ width:window.innerWidth*1-4*2-16*4-8*4, height:24 });
	$('span.mimikoTab, pre.mimikoTabTitle')
	.css({ width:(window.innerWidth-32-8*9-2)/activeTabSum-8 });
};

function mimikoStageChange(){
	/**/
};

function openNewTab(newTabHref){
	tabSum=parseInt(tabSum,10)+1;
	activeTabSum=activeTabSum+1;
	
	$('#mainArea')
	.append( '<iframe id="mimikoStage'+tabSum+'" class="mimikoStage" mimikoStageIndex="'+tabSum+'" src="'+newTabHref+'" style="display:none;"></iframe>');
	$('#tabArea')
	.append( '<span id="mimikoTab'+tabSum+'" class="mimikoTab" mimikoTabIndex="'+tabSum+'"><pre id="mimikoTabTitle'+tabSum+'" class="mimikoTabTitle">少女祈祷中...</pre></span>');
	
	$('#mimikoTab'+tabSum)
	.css({background:'rgba('+parseInt( 100*Math.random(), 10 )+'%,'+parseInt( 100*Math.random(), 10 )+'%,'+parseInt( 100*Math.random(), 10 )+'%,'+'0.5) url(yukidoll/index/image/tab.png)', opacity:0.5});
	
	tabActionBind();
	
	mimikoStageCssSetting();
};

function tabLoadin(tabHref){
	$('#mimikoTabTitle'+activeTabIndex)
	.html('少女祈祷中...');
					
	$('#mimikoStage'+activeTabIndex)
	.unbind()
	.load(function(){
					$('title')
					.html( $(this).contents().find('title').html() );
					$('#mimikoTabTitle'+parseInt($(this).attr('mimikoStageIndex'),10))
					.html( $(this).contents().find('title').html() );
					});
	
	$('#mimikoStage'+activeTabIndex)
	.attr( 'src', tabHref );
	
	$('#locationField')
	.val( $('#mimikoStage'+activeTabIndex).attr('src').replace(/http:\/\/|www\.|sisituan\.com\/|127\.0\.0\.1\/|\?skinco\=miku/g,'') );
};

function changeTab(getTabIndex){
	activeTabIndex=getTabIndex;
	
	$('iframe.mimikoStage')
	.hide();
	$('#mimikoStage'+getTabIndex)
	.show();
	
	$('span.mimikoTab')
	.css({opacity:0.5});
	$('#mimikoTab'+getTabIndex)
	.css({opacity:1});
	
	$('pre.mimikoTabTitle')
	.css({ background:'none' });
	$('#mimikoTabTitle'+getTabIndex)
	.css({ background:'url(yukidoll/index/image/tabactive.png)' })
	.html( $('#mimikoStage'+getTabIndex).contents().find('title').html() );
	
	$('title')
	.html( $('#mimikoStage'+getTabIndex).contents().find('title').html() );
	
	$('#locationField')
	.val( $('#mimikoStage'+getTabIndex).attr('src').replace(/http:\/\/|www\.|sisituan\.com\/|127\.0\.0\.1\/|\?skinco\=miku/g,'') );
	
	mimikoStageCssSetting();
};

function deleteTab(index){
	if(activeTabSum>1){
		activeTabSum=activeTabSum-1;
		$('#mimikoStage'+index+',#mimikoTab'+index)
		.remove();
		
		mimikoStageCssSetting();
	};
};

function reloadTab(){
	tabLoadin( $('#mimikoStage'+activeTabIndex).attr('src') );
};

function tabActionBind(){
	
	$('iframe.mimikoStage')
	.unbind()
	.load(function(){
					$('#mimikoTabTitle'+parseInt($(this).attr('mimikoStageIndex'),10))
					.html( $(this).contents().find('title').html() );
					});
	
	$('span.mimikoTab')
	.unbind()
	.click(function(){
					changeTab( parseInt($(this).attr('mimikoTabIndex'),10) );
					})
	.dblclick(function(){
					   deleteTab( parseInt($(this).attr('mimikoTabIndex'),10) );
					   });
};

function locationChange(){
	//alert('Bingo!');
	var newLocation=$('#locationField').val();
	//alert(newLocation);
	
		if( newLocation.search(/\:/)==-1 && newLocation.length>6 ){
			//alert('Self Link!');
			tabLoadin(newLocation);
		}else{
			if( newLocation.search(/sisituan|127\.0\.0\.1/)!=-1 && newLocation.length>6 ){
				//alert('Common Link!');
				tabLoadin(newLocation);
			}else if( newLocation.search(/sisituan|127\.0\.0\.1/)==-1 && newLocation.length>6 ){
				//alert('Others Link!');
				window.open(newLocation);
			}else{
				//alert('Error Link!');
			};
		};
};

function getMimikoTime(){
	var mimikoTime=new Date();
	mimikoTimeMilliseconds=mimikoTime.getTime();
	mimikoTime.setTime(mimikoTimeMilliseconds+timeDifference);
	//alert(mimikoTime);
	
	var mimikoMonth=mimikoTime.getMonth();
	var mimikoMonthName='';
	if(mimikoMonth==0){mimikoMonthName='一月'}
	else if(mimikoMonth==1){mimikoMonthName='二月'}
	else if(mimikoMonth==2){mimikoMonthName='三月'}
	else if(mimikoMonth==3){mimikoMonthName='四月'}
	else if(mimikoMonth==4){mimikoMonthName='五月'}
	else if(mimikoMonth==5){mimikoMonthName='六月'}
	else if(mimikoMonth==6){mimikoMonthName='七月'}
	else if(mimikoMonth==7){mimikoMonthName='八月'}
	else if(mimikoMonth==8){mimikoMonthName='九月'}
	else if(mimikoMonth==9){mimikoMonthName='十月'}
	else if(mimikoMonth==10){mimikoMonthName='十一月'}
	else if(mimikoMonth==11){mimikoMonthName='十二月'};
	
	var mimikoDate=mimikoTime.getDate();
	mimikoDateName=mimikoShuzi(mimikoDate);
	
	var mimikoDay=mimikoTime.getDay();
	var mimikoDayName='';
	if(mimikoDay==0){mimikoDayName='星期日'}
	else if(mimikoDay==1){mimikoDayName='星期一'}
	else if(mimikoDay==2){mimikoDayName='星期二'}
	else if(mimikoDay==3){mimikoDayName='星期三'}
	else if(mimikoDay==4){mimikoDayName='星期四'}
	else if(mimikoDay==5){mimikoDayName='星期五'}
	else if(mimikoDay==6){mimikoDayName='星期六'};
	
	var mimikoFestival='';
	var mimikoTodayDate=mimikoMonth+1;
	mimikoTodayDate=mimikoTodayDate+'/'+mimikoDate;
	//alert(mimikoTodayDate);
	switch(mimikoTodayDate){
		
		case '3/17':
		mimikoFestival='龙抬头';
		break;
		
		case '4/1':
		mimikoFestival='愚人节';
		break;
		case '4/4':
		mimikoFestival='复活节';
		break;
		case '4/5':
		mimikoFestival='清明节';
		break;
		case '4/13':
		mimikoFestival='泼水节';
		break;
		
		case '5/1':
		mimikoFestival='劳动节';
		break;
		case '5/4':
		mimikoFestival='五四纪念日';
		break;
		case '5/6':
		mimikoFestival='妈祖诞辰';
		break;
		case '5/9':
		mimikoFestival='母亲节';
		break;
		case '5/30':
		mimikoFestival='五卅纪念日';
		break;
		
		case '6/1':
		mimikoFestival='儿童节';
		break;
		case '6/4':
		mimikoFestival='该内容已屏蔽';
		break;
		case '6/16':
		mimikoFestival='端午节';
		break;
		case '6/20':
		mimikoFestival='父亲节';
		break;
	}; 
	
	var mimikoHours=mimikoTime.getHours();
	if( mimikoHours==mimikoTimeLastHour ){
		/**/
	}else{
		if( mimikoTimeLastHour==-1 ){
			mimikoTimeLastHour=mimikoHours;
			mimikoTimeColor(mimikoHours);
		}else{
			mimikoTimeLastHour=mimikoHours;
			
			//alert('现在时间：'+mimikoShuzi(mimikoHours)+'时整。');
			mimikoTimeColor(mimikoHours);
		};
	};
	
	var mimikoMinutes=mimikoTime.getMinutes();
	if( mimikoMinutes==mimikoTimeLastMinute ){
		/**/
	}else{
		if( mimikoTimeLastMinute==-1 ){
			mimikoTimeLastMinute=mimikoMinutes;
		}else{
			mimikoTimeLastMinute=mimikoMinutes;
		};
	};
	
	//var mimikoSeconds=mimikoTime.getSeconds();
	mimikoHours=mimikoShuzi(mimikoHours);
	mimikoMinutes=mimikoShuzi(mimikoMinutes);
	//mimikoSeconds=mimikoShuzi(mimikoSeconds);
	
	$('#mimikoTime')
	.html( $.trim( mimikoMonthName+mimikoDateName+'日'+' '+mimikoHours+'时'+mimikoMinutes+'分'+' '+mimikoDayName+' '+mimikoFestival ) );

setTimeout('getMimikoTime()', 30000);
};

function mimikoShuzi(num){
	if(num<10){
		var numGe=num+'';
		var numShi='';
		if(numGe=='0'){numGe='零'}
		else if(numGe=='1'){numGe='一'}
		else if(numGe=='2'){numGe='二'}
		else if(numGe=='3'){numGe='三'}
		else if(numGe=='4'){numGe='四'}
		else if(numGe=='5'){numGe='五'}
		else if(numGe=='6'){numGe='六'}
		else if(numGe=='7'){numGe='七'}
		else if(numGe=='8'){numGe='八'}
		else if(numGe=='9'){numGe='九'};
		}else if(num>=10){
			num=num+'';
			var numGe=num.slice(-1);
			//alert(numGe);
			var numShi=num.slice(-2,-1);
			//alert(numShi);
			
			if(numShi=='0'){numShi='零'}
			else if(numShi=='1'){numShi='十'}
			else if(numShi=='2'){numShi='二十'}
			else if(numShi=='3'){numShi='三十'}
			else if(numShi=='4'){numShi='四十'}
			else if(numShi=='5'){numShi='五十'}
			else if(numShi=='6'){numShi='六十'}
			else if(numShi=='7'){numShi='七十'}
			else if(numShi=='8'){numShi='八十'}
			else if(numShi=='9'){numShi='九十'};
			
			//alert(numShi);
			
			if(numGe=='0'){numGe=''}
			else if(numGe=='1'){numGe='一'}
			else if(numGe=='2'){numGe='二'}
			else if(numGe=='3'){numGe='三'}
			else if(numGe=='4'){numGe='四'}
			else if(numGe=='5'){numGe='五'}
			else if(numGe=='6'){numGe='六'}
			else if(numGe=='7'){numGe='七'}
			else if(numGe=='8'){numGe='八'}
			else if(numGe=='9'){numGe='九'};
			
			//alert(numGe);
		};
		
		return( numShi+numGe );
			
};

function musicPlay(mode){
	switch(mode){
		case 0:
		$('#musicTitle')
		.css({'background-color':'rgb(0,0,0)'});
		$('#musicTitleTips')
		.stop(true,false)
		.animate({opacity:0},500)
		.animate({opacity:0},125,function(){
										  $('.bgmPlayer').empty();
										  $('#musicTitleTips')
										  .html( '►' );
										  })
		.animate({opacity:0},125)
		.animate({opacity:1},500);
		break;
		case 1:
		$('#musicTitle')
		.css({ 'background-color':colorfulText(musicList[musicListSpecialIndex].special[ musicListIndex ].title) });
		$('#musicTitleTips')
		.stop(true,false)
		.animate({opacity:0},500)
		.animate({opacity:0},125,function(){
										  $('.bgmPlayer').media({ width:0, height:0, autoplay:true, src:'/yukidoll/index/audio/music/'+musicList[musicListSpecialIndex].specialPath+'/'+musicList[musicListSpecialIndex].special[ musicListIndex ].path, params:{PlayCount:65535} });
										  $('#musicTitleTips')
										  .html( (musicListIndex+1)+' / '+musicList[musicListSpecialIndex].special.length+' - '+musicList[musicListSpecialIndex].special[ musicListIndex ].title+' / '+musicList[musicListSpecialIndex].specialTitle+' - 单曲循环' );
										  })
		.animate({opacity:0},125)
		.animate({opacity:1},500);
		break;
	};
};

function mimikoTimeColor(hour){
	var mimikoTimeColor='';
	switch(hour){
		case 0:
		mimikoTimeColor='rgb(0,0,0)';
		break;
		case 1:
		mimikoTimeColor='rgb(0,0,50)';
		break;
		case 2:
		mimikoTimeColor='rgb(0,0,125)';
		break;
		case 3:
		mimikoTimeColor='rgb(50,50,155)';
		break;
		case 4:
		mimikoTimeColor='rgb(100,100,200)';
		break;
		case 5:
		mimikoTimeColor='rgb(125,150,225)';
		break;
		case 6:
		mimikoTimeColor='rgb(150,200,255)';
		break;
		case 7:
		mimikoTimeColor='rgb(125,190,255)';
		break;
		case 8:
		mimikoTimeColor='rgb(100,185,255)';
		break;
		case 9:
		mimikoTimeColor='rgb(75,180,255)';
		break;
		case 10:
		mimikoTimeColor='rgb(100,200,235)';
		break;
		case 11:
		mimikoTimeColor='rgb(200,220,215)';
		break;
		case 12:
		mimikoTimeColor='rgb(255,250,200)';
		break;
		case 13:
		mimikoTimeColor='rgb(255,245,175)';
		break;
		case 14:
		mimikoTimeColor='rgb(255,235,150)';
		break;
		case 15:
		mimikoTimeColor='rgb(255,230,100)';
		break;
		case 16:
		mimikoTimeColor='rgb(255,225,70)';
		break;
		case 17:
		mimikoTimeColor='rgb(255,180,50)';
		break;
		case 18:
		mimikoTimeColor='rgb(255,150,35)';
		break;
		case 19:
		mimikoTimeColor='rgb(255,125,25)';
		break;
		case 20:
		mimikoTimeColor='rgb(50,80,100)';
		break;
		case 21:
		mimikoTimeColor='rgb(0,60,160)';
		break;
		case 22:
		mimikoTimeColor='rgb(0,50,100)';
		break;
		case 23:
		mimikoTimeColor='rgb(0,20,50)';
		break;
	};
	$('#mimikoTime')
	.css({'background-color':mimikoTimeColor});
};

function colorfulText(text){

var colorR=text.charCodeAt(0);
var colorG=text.charCodeAt(1);
var colorB=text.charCodeAt(text.length-1);
var colorA=1;

if(colorR>9){
colorR=colorR+'';
colorR=colorR.slice(-2);
colorR=parseInt(colorR,10);
};
if(colorG>9){
colorG=colorG+'';
colorG=colorG.slice(-2);
colorG=parseInt(colorG,10);
};
if(colorB>9){
colorB=colorB+'';
colorB=colorB.slice(-2);
colorB=parseInt(colorB,10);
};

var outputColor="rgba("+colorR+"%, "+colorG+"%, "+colorB+"%, "+colorA+")";

return outputColor;
};