/**
 * @author nicola
 */
dojo.require("dijit.form.TextBox");
dojo.require("dijit.Dialog");
dojo.require("dojox.encoding.digests.MD5");
dojo.require("dojo.fx");
dojo.require("dojox.fx.flip");
	

var encodeData = function(){
	var currentAction = document.createElement("div");
	currentAction.className = "currentAction";
	currentAction.id = "currentAction";
	currentAction.innerHTML = "<span>Encrypting...</span>";
	//document.body.appendChild(currentAction);
	var ded = dojox.encoding.digests;
	var encodedPwd = ded.MD5(dojo.byId("challenge").value + ded.MD5(dojo.byId("password").value, ded.outputTypes.Hex), ded.outputTypes.Hex);
	document.forms[1].username.value = dojo.byId("username").value;
	document.forms[1].password.value = encodedPwd;
	//currentAction.innerHTML = "<span style='background:#f00'>Sending data...</span>";
};
function init(){
	dojo.byId("username").focus();
	var dk = dojo.keys;
	dojo.connect(dojo.byId("username"), "onkeypress", function(evt){
		var resCode = evt.charCode || evt.keyCode;
		if (resCode == dojo.keys.ENTER || resCode == dk.TAB){
		    var anim = dojox.fx.flip({
		        node: "formWrapper",
		        dir: "left",
                depth: .3,
		        duration: 250
		    });
			dojo.connect(anim, "onEnd", this, function(){ 
    			dojo.byId("usernameContainer").style.display = "none"; 
    			dojo.byId("passwordContainer").style.display = "block"; 
    			dojo.byId("password").focus();
			});											  
			anim.play(); 
			evt.preventDefault();
			evt.stopPropagation(); 
		}
	});
	dojo.connect(dojo.byId("password"), "onkeypress", function(evt) {
		var resCode = evt.charCode || evt.keyCode;
		if(resCode == dk.ENTER || resCode == dk.TAB){
		    var anim = dojox.fx.flip({
		        node: "formWrapper",
		        dir: "left",
                depth: .3,
		        duration: 250
		    });
			dojo.connect(anim, "onEnd", this, function(){ 
    			dojo.byId("passwordContainer").style.display = "none"; 
    			dojo.byId("messageContainer").style.display = "block"; 
    			encodeData();
    			document.forms[1].submit(); 
			});											  
			anim.play(); 
			evt.preventDefault();
			evt.stopPropagation(); 
		}else if(resCode == dk.ESCAPE){
            anim = dojox.fx.flip({
                node: "formWrapper",
                dir: "right",
                depth: .3,
                duration: 250
            });
            dojo.connect(anim, "onEnd", this, function(){ 
                dojo.byId("usernameContainer").style.display = "block"; 
                dojo.byId("passwordContainer").style.display = "none"; 
                dojo.byId("username").focus();
            });                                           
            anim.play(); 
            evt.preventDefault();
            evt.stopPropagation(); 
		}
	});
	dojo.connect(document.forms[1], "onsubmit", encodeData);
	// dialogs
	var aboutNode = document.createElement("div");
	var aboutContent = "<div class='about'><div>Notapad, web IDE [ 0.1a ]</div>" + 
		"Based on the CodeTextArea widget<div style='margin-top:5px;width:100%;" + 
		"text-align:center'><button onclick='dijit.byId(\"aboutDialog\").hide()' " +
		"style='margin-auto;'>Close</button></div></div><div class='author'>" + 
		"<a class=\"toHome\" href='http://www.nicolarizzo.com'>Nicola Rizzo</a>, 2008</div>";
	aboutNode.innerHTML = aboutContent;
	//document.body.appendChild(aboutNode);
	var aboutDialog = new dijit.Dialog({
		id: "aboutDialog",
		title: "About notapad",
		refocus: false
	}, aboutNode);
	
	dojo.connect(dojo.byId("about"), "onclick", this, function(){ aboutDialog.show(); });
}
dojo.addOnLoad(init);
