# konami_command.rb $Revision: 2 $
# Copyright (C) 2007 Michitaka Ohno <elpeo@mars.dti.ne.jp>
# You can redistribute it and/or modify it under GPL2.

def theme_list
	r = ["theme/#{@conf.theme}/#{@conf.theme}.css"]
	Dir::glob( "#{::TDiary::PATH}/theme/*" ).sort.each do |dir|
		theme = dir.sub( %r[.*/theme/], '')
		next if theme == @conf.theme
		next unless FileTest::file?( "#{dir}/#{theme}.css".untaint )
		r << "theme/#{theme}/#{theme}.css"
	end
	"["+r.map{|i| "'#{i}'"}.join( ',' )+"]"
end

add_header_proc do
	<<-HTML
	<script type="text/javascript"><!--
	var themeList = #{theme_list};
	var konamiFlag = 0;
	var konamiCount = 0;
	function konamiCommand(e){
		var konamiKey = (e||window.event).keyCode;
		if (konamiKey == 38 & konamiFlag == 0){//上
			konamiFlag = 1;
		}else if (konamiKey == 38 & konamiFlag == 1){//上
			konamiFlag = 2;
		}else if (konamiKey == 40 & konamiFlag == 2){//下
			konamiFlag = 3;
		}else if (konamiKey == 40 & konamiFlag == 3){//下
			konamiFlag = 4;
		}else if (konamiKey == 37 & konamiFlag == 4){//左
			konamiFlag = 5;
		}else if (konamiKey == 39 & konamiFlag == 5){//右
			konamiFlag = 6;
		}else if (konamiKey == 37 & konamiFlag == 6){//左
			konamiFlag = 7;
		}else if (konamiKey == 39 & konamiFlag == 7){//右
			konamiFlag = 8;
		}else if (konamiKey == 66 & konamiFlag == 8){//B
			konamiFlag = 9;
		}else if (konamiKey == 65 & konamiFlag == 9){//A
			konamiFlag = 0;//フラグ戻す
			var a=document.getElementsByTagName("link");
			for(var i=0;i<a.length;i++){
				if(a[i].rel=='stylesheet'&&a[i].title=='#{@conf.theme}'){
					konamiCount=(konamiCount+1)%themeList.length;
					a[i].href=themeList[konamiCount];
					break;
				}
			}
		}else if(konamiKey == 38){//操作ミス！
			konamiFlag = 1;
		}else{//操作ミス！
			konamiFlag = 0;
		}
	}
	if(window.addEventListener){
		window.addEventListener('keydown',konamiCommand,false);
	}else if(document.attachEvent){
		document.attachEvent('onkeydown',konamiCommand);
	}
	// --></script>
	HTML
end
