/*	
 * loginDialog
 * @version 2009120301
 * @techract
*/	  
var loginDialog;
var loginCont = "login panel";
var LoginDialog = new Class({
	Implements: [Events, Options],
	options:{
		prompt: '请输入您的帐号和密码！',
		note: '&nbsp; ',
		note2: '&nbsp; ',
		usePrompt: true,
		useNote: false,
		forwardUrl: 'http://www.oobang.com/index.tr',
		onCloseToUrl: '',
		groupId: 0
	},
	initialize: function(){
		
	},
	closeToUrlFunc: function(){
		if(this.options.onCloseToUrl!=''){
			if(this.options.onCloseToUrl==window.top.location||this.options.onCloseToUrl+"#"==window.top.location)
				window.top.location.reload(true);
			else
				window.top.location = this.options.onCloseToUrl;
		}
	},
	create: function(options){
		this.options = $extend(this.options, options);
		
		new MUI.Window({
			id:'OOBANGLOGINWINDOW', 
			title:'登陆', 
			content:loginCont, 
			width: 628, 
			height: 387,
			resizable: false,
			onClose: function(){ this.closeToUrlFunc();}.bind(this)
		});
		$(":lh1").innerHTML = this.options.prompt;
		$(":lh2").innerHTML = this.options.note;
		$(":lh3").innerHTML = this.options.note2;
		
		$(":lmp").addEvents({
			"click": function(){
				if(this.value=="请输入邮箱地址或者手机号") this.value="";
			},
			"blur": function(){
				if(this.value=="") this.value="请输入邮箱地址或者手机号";
			}
		});
		$(":lpwi").addEvent("focus", function(){
			this.style.display="none";
			$(":lpwd").style.display = "";
			$(":lpwd").value="";
			$(":lpwd").focus();
		});
		$(":lpwd").addEvents({
			"blur": function(){
				if(this.value==""){
					this.style.display="none";
					$(":lpwi").style.display = "";
					$(":lpwi").value="请输入密码";
				}
			},
			"keydown": function(e){
				if(new Event(e).key=='enter')$(":lsbtn").fireEvent("click");
			}
		});
		$(":lsbtn").addEvent("click", function(){loginDialog.login();});
		
		new roundedRectClass($(":cvt1"), $(":cvc1"), {canvas:"c2", fillStyle:"#ffffff", strokeStyle:"#00d8ff", radius:1, lineWidth:2, useShadow:false});
		new roundedRectClass($(":cvt2"), $(":cvc2"), {canvas:"c2", fillStyle:"#f4ffd5", strokeStyle:"#a5f000", lineWidth:1, useShadow:false});
		
		var email = Cookie.read("email");
		if(email!=null){
			if(email.indexOf('"')>-1)
				email=email.substring(1, email.length-1);
			if(email){
				$(":lmp").value=decode(email);
				$(":lpwi").focus();
			}		
		}
	},
	login: function(){
		if ($(":lmp").value == ''||$(":lmp").value == '请输入邮箱地址或者手机号') {
			$(":lh3").innerHTML = '请输入邮箱地址或者手机号';
			$("OOBANGLOGINWINDOW").shake();
			return;
		}
		if ($(":lpwi").getStyle("display") != 'none' || $(":lpwd").value == '') {
			$(":lh3").innerHTML = '请输入密码';
			$("OOBANGLOGINWINDOW").shake();
			return;
		}
		var current = this;
		new Request({
			url: '/loginAjax.tr',
			onSuccess: function() {
				var action = JSON.decode(this.response.text);
				if(action.historyUrl=='ok'){
					if(current.options.forwardUrl==null || current.options.forwardUrl==''){
						window.parent.location.reload(true);
					}else{
						//LoginDialog.options.forwardUrl=null;
						window.parent.document.location=current.options.forwardUrl;
					}
				}else{
					$(":lh3").innerHTML = '登陆帐号与密码不匹配';
					$("OOBANGLOGINWINDOW").shake();
					return;
				}
			},
			onFailure: function(){
				$(":lh3").innerHTML = "出现未知错误，请稍后再次登陆";
				$("OOBANGLOGINWINDOW").shake();
				return;
			}
		}).send(
			'username='+$(":lmp").value+
			'&password='+$(":lpwd").value+
			'&autoLogin='+$(":lck").checked
		);
		$(":lh3").innerHTML = "登陆中，请等待";
	}
});

window.addEvent("domready", function(){
	loginCont = $(":loginPopup").innerHTML;
	$(":loginPopup").destroy();
	loginDialog = new LoginDialog();
});

function decode(input) {
	var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";     
	var output = "";
	var chr1, chr2, chr3 = "";
	var enc1, enc2, enc3, enc4 = "";
	var i = 0;
	var basetest = /[^A-Za-z0-9\+\/\=]/g;
	if (basetest.exec(input)) return;
	input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
	do {
		enc1 = keyStr.indexOf(input.charAt(i++));
		enc2 = keyStr.indexOf(input.charAt(i++));
		enc3 = keyStr.indexOf(input.charAt(i++));
		enc4 = keyStr.indexOf(input.charAt(i++));
		chr1 = (enc1 << 2) | (enc2 >> 4);
		chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
		chr3 = ((enc3 & 3) << 6) | enc4;
		output = output + String.fromCharCode(chr1);
		if (enc3 != 64) output = output + String.fromCharCode(chr2);
		if (enc4 != 64) output = output + String.fromCharCode(chr3);
		chr1 = chr2 = chr3 = "";
		enc1 = enc2 = enc3 = enc4 = "";
	} while (i < input.length);
	return unescape(output);
}