window.Login = (function() {
	var pageId = "login";
	var contentId = pageId+"-content";

	
	
	return {
		EMAIL_EMPTY_TEXT: "Email:",
		PASS_EMPTY_TEXT: "Password:",
		
		signIn: function(){

			var signinEmail =  $.trim($("#email").val());

			var show = $('input[name=show_password]:checked').val();

			var signinPassword = $.trim($("#password").val());				

			if (signinEmail !="" && signinPassword != "" && signinEmail != Login.EMAIL_EMPTY_TEXT && signinPassword != Login.PASS_EMPTY_TEXT) {
				
				if(!Util.isEmailValid(signinEmail)) {
					Util.showError("Email is not valid", 3000);
					return false;
				}				
				
				signinPassword = MD5(signinPassword);
				
				var url = window.apiUrl+"?action=apikey&userName="+encodeURIComponent(signinEmail)+"&password="+encodeURIComponent(signinPassword)+"&output=json&recordApiCall=false";
				$.mobile.showPageLoadingMsg();
				$.ajax({
					url: url, 
					success: function(data, textStatus, jqXHR) {
						$.mobile.hidePageLoadingMsg();
						
						if(data.error){
							Util.showError(data.error, 3000);							
						}else{
							if(data.apikey){
								_login.setCookie("userId", data.apikey, 10);
								document.location.href = "index.html";
							}
						}
					}, 
					error: function(jqXHR, textStatus, errorThrown) {
						$.mobile.hidePageLoadingMsg();
						
						var data = eval("("+jqXHR.responseText+")");
						
						if(data.error) {
							Util.showError(data.error, 3000);													
						}
					}, 
					dataType: "json"});	
			} else {
				Util.showError("Please enter username and password", 3000);
			}
		},
		
		signOut: function(fromAndroid){	
			_login.deleteCookie("userId");
			document.location.href = (fromAndroid ? "" : "../")+"login.html";							
		},
	
		setCookie: function(aName, aValue, aLifetime) {
			 var now = new Date();
			 var expiry = new Date(now.getTime() + aLifetime*24*60*60*1000);
			 if ((aValue != null) && (aValue != ""))
			 document.cookie=aName + "=" + escape(aValue) + "; expires=" + expiry.toGMTString() + "; path=/";
			 return _login.getCookie(aName) != null;
		},
	
		getCookie: function(aName) {
			 var aStart, anEnd;
			 if (document.cookie) {
			  aStart = document.cookie.indexOf(aName+"=");
			  if (aStart < 0) return null;
			  aStart = document.cookie.indexOf("=", aStart) + 1;
			  anEnd = document.cookie.indexOf(";", aStart);
			  if (anEnd < 0) anEnd = document.cookie.length;
			  return unescape(document.cookie.substring(aStart, anEnd));
			 }
			 else return null;
		},
	
		deleteCookie: function(aName) {
			 var now = new Date();
			 var expired = new Date(now.getTime() - 2*24*60*60*1000);
			 document.cookie=aName + "=null; expires=" + expired.toGMTString()+"; path=/";
		},
		
		goToSignup: function() {
			location.href = "signup.html";					
		},
		
		signUp: function() {
			var signupEmail =  $.trim(document.getElementById("email").value);
			var signupPassword = $.trim(document.getElementById("password").value);				
			  var date = new Date();
			if (signupEmail !="" && signupPassword != "" && signupEmail != Login.EMAIL_EMPTY_TEXT && signupPassword != Login.PASS_EMPTY_TEXT) { 
				
				if(!Util.isEmailValid(signupEmail)) {
					Util.showError("Email is not valid", 3000);
					return false;
				}
				
				if(signupPassword.length < 6) {
					Util.showError("Password is too short<br/>At least 6 characters are required", 5000);
					return false;
				}				
				
				var userTimezoneOffset=(-date.getTimezoneOffset());	
				var url = window.apiProxyUrl+"?action=addUser&email="+encodeURIComponent(signupEmail)+"&password="+encodeURIComponent(signupPassword)+"&timezone="+userTimezoneOffset+"&output=json&recordApiCall=false";
				$.mobile.showPageLoadingMsg();
				$.ajax({
					url: url, 
					success: function(data, textStatus, jqXHR) {
						$.mobile.hidePageLoadingMsg();
						
						if(data.error){
							Util.showError(data.error, 3000);							
						}else{ 
							if(data.data){
								_login.setCookie("userId", data.data, 10);
								document.location.href = "index.html";
							}else if(data.status){
								Util.showError(data.status, 3000);					
							}
						}
					}, 
					error: function(jqXHR, textStatus, errorThrown) {
						$.mobile.hidePageLoadingMsg();
						
						var data = eval("("+jqXHR.responseText+")");
						
						if(data.error) {
							Util.showError(data.error, 3000);													
						}
					}, 
					dataType: "json"});	
			} else {
				Util.showError("Please enter username and password", 3000);
			}
		}
	}
})();
var _login = window.Login; //shortcut
