﻿/**
 * @author Max
 */
$('top_bar').injectBefore($(document.body).getChildren()[0]);

var AjaxStatas={
	holder:$$("#top_bar .ajaxstatus")[0],
	init:function(){
	
	},
	err:function(msg){
		alert(msg);
		AjaxStatas.holder.setProperty("title",msg);	
		AjaxStatas.holder.setStyle("background-image","url(inc/function_bar/err.gif)");
		AjaxStatas.holder.setStyle("display","");
	},
	loading:function(){
		AjaxStatas.holder.setStyle("background-image","url(inc/function_bar/loading.gif)");
		AjaxStatas.holder.setStyle("display","");
	},
	hide:function(){
		AjaxStatas.holder.setStyle("display","none");
	}
}
AjaxStatas.init();


var Topbar={
	user:null,
	container:$('top_bar'),
	loginform:$('loginform'),
	memberstatas:$('memberstatas'),
	memberstatasTmp:$('memberstatasTmp'),
	
	loginUrl:"login.aspx",
	logoutUrl:"/logout.aspx?id="+Date(),
	queryUrl:"inc/querypopno.asp?id="+ Date(),
	
	isClose:false,
	
	init:function(){
		Topbar.checkStata();

		Topbar.container.setStyle("display","");
		
		Topbar.disableLink();
		Topbar.initMenu($$("#top_bar .index ul"));
		$('btlogin').addEvent('click',function(){
			Topbar.login();
		});
		Topbar.bindCaseButton();
		
		$$("#loginform input").each(function(input){
				input.addEvent("keypress",function(event){
					var event = new Event(event);
					if(event.key=="enter"){
						Topbar.login();
					}
				});
				input.addEvent("focus",function(){
					if(this.value.length>0){
						this.select();
					}
				});
		});
	},
	disableLink:function(){
		$$('#top_bar a').each(function(link,index){
			if(link.getProperty("href")=="#")
				link.setProperty("href","javascript:void(0)");
		});
	},
	bindCaseButton:function(){
		var link = $("toggletopbar");

		link.addEvent('click', function(){

			var toggleFx = new Fx.Style(Topbar.container, 'opacity', {
				duration: 500, 
				transition: Fx.Transitions.quartInOut
			});

			toggleFx.start(1,0);
			
			(function(){
				Topbar.container.setStyle("display","none");
			}).delay(50);
			

		});
	},
	initMenu:function(uls){
		
		uls.each(function(submenu,i){
			var holder = submenu.getPrevious();
			if(!holder.hasClass("holder"))return;
			
			var parent =holder.getParent();
			
			var postion = parent.getCoordinates();
			if(parent.getTag()=="div")postion =parent.getParent().getCoordinates();
			
			
			var coord = holder.getCoordinates();
			
			var left=coord.left-postion.left;

			submenu.setStyle("top",coord.height);
			submenu.setStyle("left",left);
			
			
			parent.addEvent("mouseover",function(){
				submenu.setStyle("visibility","visible");
			});
			
			parent.addEvent("mouseout",function(){
				submenu.setStyle("visibility","hidden");
			});
		});	
	},
	checkStata:function(){
		AjaxStatas.loading();
		var queryXHR = new XHR({method: 'get',onSuccess:function(data){
			if(data!="nocookie"&&data.split("---").length==3){
				Topbar.parseUser(data);
			}else{
				user=null;
			}
			Topbar.refreshStata();
			AjaxStatas.hide();
		}}).send(Topbar.queryUrl);
	},
	refreshStata:function(){
		if(Topbar.user==null){
			Topbar.loadloginform();
		}else{
			Topbar.loadmemberstatas();
		}
	},
	loadmemberstatas:function(){
		var myTemplate = Topbar.memberstatasTmp.value;
		var parsed = simpleTemplateParser.parseTemplate(myTemplate, Topbar.user);
		Topbar.memberstatas.setHTML(parsed);
		Topbar.memberstatas.setStyle("display","");
		Topbar.loginform.setStyle("display","none");
		
		(function(){
			Topbar.disableLink();
			$('btlogout').addEvent('click',function(){
					Topbar.logout();
			});
			Topbar.initMenu($$("#memberstatas ul"));
			$$("#loginform input").each(function(input){
				input.setProperty("value","");
			});
		}).delay(50);
					
	},
	loadloginform:function(){
		Topbar.loginform.setStyle("display","");
		Topbar.memberstatas.setStyle("display","none");
		Topbar.memberstatas.setHTML("");
	},
	login:function(){
		AjaxStatas.loading();
		new Ajax(Topbar.loginUrl, {method: 'get',onComplete:function(data){
	       if(data.indexOf("波普_用户登录")!=-1){
		   		AjaxStatas.err("您的用户名或密码有误!");
			}else{
		   		Topbar.checkStata();
				AjaxStatas.hide();
		   }   	
		}}).request(Topbar.loginform.toQueryString());
	},
	logout:function(){
		AjaxStatas.loading();
		var queryXHR = new XHR({method: 'get',onSuccess:function(data){
			Topbar.loadloginform();
			AjaxStatas.hide();
		}}).send(Topbar.logoutUrl);
	},
	parseUser:function(data){
		Topbar.user = {};
		var tmp=data.split("---");
		Topbar.user.id=tmp[0];
		Topbar.user.revmsg=tmp[2];
		Topbar.user.allmsg=tmp[1];
	}
};

Topbar.init();
//window.addEvent('load', Topbar.init);