// JavaScript Document - handle login for Crosswalk

var login = function(){
	var txtUserName = document.getElementById('member_login');
	var txtPassword = document.getElementById('member_password');
	var callLogin = true;
	var errorMsg = "";
	var lblError = document.getElementById('login-error');

	lblError.innerHTML = errorMsg;

	if (!txtUserName.value.length) {
		callLogin = false;
		errorMsg = "<strong>Invalid Username</strong><br>";
	}
	if (!txtPassword.value.length) {
		errorMsg += "<strong>Invalid Password</strong>";
		callLogin = false;
	}

	if (callLogin==true){
		// if username and password exist - use$.ajax to create a httpRequest 
		var formval = { customer_login:txtUserName.value, customer_password:txtPassword.value };
		$.ajax({
				type: "POST",
				url: "../account_login_crosswalk_action.cfm",
				dataType: "json",
				data: formval,
				success: handleLogin,
				error: handleError_login
			});			

	} else {
		lblError.innerHTML = errorMsg;
	}
	
	return false;
}

//handles login success/failure and manages the change in 
//	UI functionality from not logged in to logged in
var handleLogin = function(response){
	access_level_user = response.access_level;

	if (response.msg == "LOGIN_SUCCESS"){	
		//if login box was opened from a click on the grid 
		//- show the detail for that grid box
		if (bDisplayDetail){
			//repopulate the sidebar
			populateSideBar();
			//add click functionality to close button
			var closeButton = document.getElementById('close');
			if (closeButton.addEventListener){ 
				closeButton.addEventListener("click", closeSidebar,false);
				
			} else if (closeButton.attachEvent) {
				closeButton.attachEvent ("onclick",closeSidebar,false);
			}		
			
			//getDetail w/ Col and Row passed in
			getDetail(sRow,sCol);
			//reset the boolean
			bDisplayDetail = 0;

		} else {
		//login box was opened from link at the top of the page 
		//- there is no data to display in the detail	
			closeSidebar();
		}

		changeContent();
		//$("#utilities #search-link").addClass("selected").css("display","list-item");
		getUserCustomization();
		
		var sRssHref = "/rss/" + response.customer_id;
    	document.getElementById('aRss').href = sRssHref;
		
		//remove login click functionality from link so it does not open an empty sideBar
		var customizeLink_view = document.getElementById('customizeLink_view');
		detachShowSideBarClickEvent(customizeLink_view);

		var sHref = "../account_logout_action.cfm";
		document.getElementById('loginText').innerHTML = "<a id='loginLink' href='../account_logout_action.cfm'>Log Out</a>";
    	document.getElementById('loginLink').href = sHref;
	} else if (response.msg == "LOGIN_NOTSUBSCRIBED") {
		lblError = document.getElementById('login-error');
		lblError.innerHTML = " *You are authenticated but must Subscibe";
	} else {
			lblError = document.getElementById('login-error');
			lblError.innerHTML = " *Invalid Login";
	}
	return false;

}

var handleError_login = function(error){
	//alert("login error !!!!" + dumpObj(error));
	lblError = document.getElementById('login-error');
	lblError.innerHTML = " *Invalid Login";
	//lblError.innerHTML = dumpObj(error);
}

//Debug Dump method
var MAX_DUMP_DEPTH = 10;

function dumpObj(obj, name, indent, depth) {

	  if (depth > MAX_DUMP_DEPTH) {
			 return indent + name + ": <Maximum Depth Reached>\n";
	  }

	  if (typeof obj == "object") {
			 var child = null;
			 var output = indent + name + "\n";
			 indent += "\t";
			 for (var item in obj)
			 {
				   try {
						  child = obj[item];
				   } catch (e) {
						  child = "<Unable to Evaluate>";
				   }

				   if (typeof child == "object") {
						  output += dumpObj(child, item, indent, depth + 1);
				   } else {
						  output += indent + item + ": " + child + "\n";
				   }
			 }
			 return output;
	  } else {
			 return obj;
	  }
}


