function addFilter(fn){
	$(".filter").css("opacity","0.5").css("cursor","pointer").one("click",fn).fadeIn("slow");
}
function getObjectStyle(className){
	var d = document.styleSheets[0];
	var r = d.cssRules || d.rules;
	for( var i=0; i<r.length; ++i ){
		if( r[i].selectorText.indexOf(className) != -1 )
			return r[i].style;
	}
	var d = document.styleSheets[1];
	var r = d.cssRules || d.rules;
	for( var i=0; i<r.length; ++i ){
		if( r[i].selectorText.indexOf(className) != -1 )
			return r[i].style;
	}
	return null;
}

(function(){
	$("#page-header").load("index.php #page-header > div",loaded);
})();

function loaded()
{
(function(){
	var lo = $("#logout-icon a");
	if( !lo.attr("title") )return

	var ldn = $(".login_display_name");
	if( ldn.html() ){
		var t = ldn.html();
		t = "["+t.split(" [ ")[1].split(" ]")[0]+"]";
		ldn.html(t);
	}
	var h = lo.attr("href");
	$("#logout").css("visibility","visible").fadeTo("slow",1.0).find("a").attr("rel",h).attr("href","#logout").click(function(){
		$("#loginform").load(h+" #infomessage").css("z-index","5").fadeIn("slow");
		addFilter(function(){
			$(".filter").unbind("click").css("cursor","default");
		});
	});
})();

$("div.fade > a").each(function(){// fade
	  var id = "#"+$(this).parent().attr("id")
	  if(id=="#")return true;
	  var search = id+(jQuery.browser["msie"]?" A:hover":" a:hover");
	  var css = getObjectStyle(search);
	  if(!css)return true;
	  var setting = css.backgroundPosition;

	  css.backgroundPosition = "";
	  $(this).css({backgroundPosition:setting,opacity:"0"})
	    .hover(
	      function(){ $(this).stop().fadeTo("fast",1.0,function(){  $(this).css("opacity","1") }) },
	      function(){ $(this).stop().fadeTo("fast",0.0,function(){ $(this).css("opacity","0") }) }
	    );
	});

$("#search-box p input[type=image]").hover(
	function(){ $(this).stop().fadeTo("fast",1) },
	function(){ $(this).stop().fadeTo("fast",0) } );

(function(){ //tooltip
  var _tip = { All:"0 0", Racers:"-109px 0", Monsters:"-218px 0", Eden:"-327px 0", Shooter:"-436px 0", home:"-545px 0" };
  var _t = $("#tooltip");
  var _end_opacity = "1.0";
  var InitTooltip = (function(){var w=_t.width();var h=_t.height();return function(){_t.css({left:-w+"px",top:-h+"px"});} })();
  var decideXY = (function(){
    return function(e){
      var a = e.offset();
      var _x = a.left + e.width() - 15;
      var _y = a.top  + e.height()- 12;
      return {x:_x,y:_y};
    }
  })();
  InitTooltip();

  $("div.select_kind_box div").each(function(){
    var This = $(this);
    //var _value = This.parent().attr("value");
    var _value = This.attr("value");
    if( !_value )return true;
    This.hover(
      function(){ var e=decideXY(This); _t.fadeTo("fast",_end_opacity,function(){ This.css("opacity","1") }).css({"backgroundPosition":_tip[_value],left:e.x+"px",top:e.y+"px"}) },
      function(){ InitTooltip(); });
  });
})();

/*
(function(){ //tooltip
  var _tip = { All:"0 0", Racers:"-109px 0", Monsters:"-218px 0", Eden:"-327px 0", Shooter:"-436px 0", home:"-545px 0" };
  var _t = $("#tooltip");
  var InitTooltip = (function(){var w=_t.width();var h=_t.height();return function(){_t.css({left:-w+"px",top:-h+"px"});} })();
  var decideXY = (function(){
    return function(e){
      var _x = e.pageX+10;
      var _y = e.pageY+10;
      return {x:_x,y:_y};
    }
  })();

  InitTooltip();

  $("div.select_kind_box a").each(function(){
    var _value = $(this).parent().attr("value");
    if( !_value )return true;
  $(this).hover(
    function(e){ _t.fadeTo("fast","1.0",function(){$(this).css("opacity","1.0")}).css("backgroundPosition",_tip[_value]); },
    function(){ _t.stop().fadeTo(0.1,"0.0",InitTooltip) } )
    .mousemove(function(e){
      var _ar = decideXY(e);
      _t.css({left:_ar["x"]+"px",top:_ar["y"]+"px"})
    });
  });
  _t.hover(
    function(){ _t.stop().fadeTo("fast","1.0") },
    function(){ _t.stop().fadeTo(0.1,"0.0",InitTooltip) });
})(); //tooltip
*/

(function(){ //contact
	$("#contact a").click(function(){
		function all_close(){
			$(".filter").fadeOut("slow");
			$("#form,#form_dialog").fadeOut("slow");
		}
		$("#form_dialog").fadeIn("slow");
		$("#form").fadeIn("slow",function(){
			var _sb = $("#submit_button");
			var _cb = $(".clear_button");
			$(".close_button").one("click",all_close);
			_cb.one("click",function(){
				$("#title,#from,#message").val("");
				$(".filter").fadeOut("slow");
				$("#form,#form_dialog").fadeOut("slow");
			});
			_sb.click(function _Send(){
				_cb.fadeTo("normal",0,function(){$(this).css("visibility","hidden")});
				$(this).attr("src","/fourth_image/sending_mail.gif");
				var _title = $("#title").val();
				if( _title.indexOf("[forum] ") == -1)
					$("#title").val("[forum] "+_title);

				$.post("/contact.php",$("#contact_form").serialize(),function(t){
					if(t=="YES"){
						$("#title,#from,#message").val("");
						$("#form").fadeOut("slow");
					}else{
						$("#result").fadeIn("fast");
					}
					_cb.stop().css("visibility","visible").fadeTo("normal",1.0);
					_sb.attr("src","/fourth_image/button.gif");
				});
			});

			$("#title,#from,#message").keyup(function(){
				$("#result").fadeOut("fast");
				_cb.stop().css("visibility","visible").fadeTo("normal",1.0);
			});
		});
		addFilter(all_close);
		return false;
	});
})();

function NewAddress(){
  this._url = document.URL.split("#");

  function LoginForm(func,name,This){
	return function(){
		This = This || $(this);
		This.fadeOut("fast");
		var action = This.attr("action");
		var id = name.attr("name");
		var serialize = This.serialize()+"&"+id+"="+name.val();
		$.post(action,serialize,function(e){ $("#loginform").get(0).innerHTML = e; func(e); });
		return false; };
  }

  function result_run(e){
  	var mess = $("#loginform").find("#infomessage").html();
	if( !mess )return;
  	$("#loginform").html(mess);
	$(".filter").unbind("click").css("cursor","default");
	(function(){// IE
		if( '\v'!='v' )return;
		$("#loginform").append($(document.createElement("div")).attr("id","login_ie").css("color","white"));
		var c = 0;
		setTimeout(function _T(){
			if( (c+=1)!=200 )setTimeout(_T,100);
			$("#login_ie").html(""+c);
		},100);
	})();
  }

  // example: "http://example.com/#white" -> "white"
  this.Select = {
    "login": function(){
	function login_run(e){
		$("#login")
		  .submit(LoginForm(function(e){login_run(e);result_run(e);},$("#login1")))
		  .hide().fadeIn("slow").find("dl.first input").focus();
	}

      var login_href=$("#login-logout-icon a").attr("rel");
      $("#loginform").load(login_href,function(){
        login_run();
      }).css("z-index","5").fadeIn("slow");
      addFilter(function(){
        $(this).fadeOut("slow");
        $("#loginform").fadeOut("slow");
      });
    },
    "register": function(){

	function agreement_run(e){
		$("#agreement")
			.submit(LoginForm(function(e){agreement_run(e);register_run(e);},$("#agreed")))
			.hide().fadeIn("slow");
	}
	
	function register_run(e){
		$("#register")
			.submit(LoginForm(function(e){register_run(e);result_run(e);},$("#submit")))
			.hide().fadeIn("slow");
		(function(){
			$("#lang").change(function(){
				document.forms["register"].change_lang.value = $(this).val();
				LoginForm(function(e){register_run(e)},$("#submit"),$("#register"))();
			});
		})();
	}

	var reg_href = $("#register-icon a").attr("rel");
	$("#loginform").load(reg_href,function(){
	  agreement_run();
	}).css("z-index","5").fadeIn("slow");
	addFilter(function(){
          $(this).fadeOut("slow");
          $("#loginform").fadeOut("slow");
	});
    }
  };
  this.Exec = this.Select[this._url[1]] || function(){ return this };
  return this;
}
if( !!$("#login-logout-icon a").attr("href") )
	$("#login-logout-icon a").attr("rel",$("#login-logout-icon a").attr("href")).attr("href","#login").click(function(e){ NewAddress().Select.login() });
if( !!$("#register-icon a").attr("href") )
	$("#register-icon a").attr("rel",$("#register-icon a").attr("href")).attr("href","#register").click(function(e){ NewAddress().Select.register() });
NewAddress().Exec();
}