var CASLogin=function(jQuery,ctx,casURL){
	this.j=jQuery;
	this.ctx=ctx;
	this.casURL=casURL;
	this.init();	
};
CASLogin.prototype={
	init:function(){
		var keyHandler=function(keyCode,callback){
			return function(evt){
				var charCode=(evt.charCode)?evt.charCode:((evt.which) ? evt.which : evt.keyCode);
				if(charCode==keyCode){
					callback(charCode);
				}
			}
		}
		/* bind keydown on password input; submit form when enter is pressed */
		var casLogin=this;		
		this.j(".cas-login-password-input",this.ctx).bind("keydown",keyHandler(13,function(){casLogin.login();}));				
		/* bind click */
		this.j(".cas-login-submit",this.ctx).bind("click",function(){casLogin.login();});
		/* bind keydown on username input; go down to password input when enter or down pressed */
		/* and focus on username field */
		this.j(".cas-login-username-input").bind("keydown",keyHandler(40,
				function(){casLogin.j(".cas-login-password-input",casLogin.ctx).focus();}			
		)).focus();
	},
	login:function(){		
		var j=this.j;
		var ctx=this.ctx;
		var username=j(".cas-login-username-input",ctx).attr("value");
		var password=j(".cas-login-password-input",ctx).attr("value");		
		var tmp=j(".cas-login-tmp",ctx);
		tmp.empty();
		tmp.append(
			j("<iframe class='cas-login-iframe' src='"+this.casURL+"'></iframe>")
			.bind("load",function(){				
				var casDoc=tmp.find(".cas-login-iframe").contents();				
				j("#username",casDoc).attr("value",username);
				j("#password",casDoc).attr("value",password);	
				j("#fm1",casDoc).attr("target","_top").get(0).submit.click();
			})
		);			
		j(".cas-login-js-login-form",ctx).hide();
		j(".cas-login-loading",ctx).show();
	}
}
