/* --------------------------------
| FUNCTION:	checkLogin(divIn)
| CREATED:	
| MODIFIED:	
|			2/22/09 - added password reset cases, added default case to if user logged in
|			2/16/09
			12/26/11 - disabled setting XHR content-length and connection

| AUTHOR: 	Seth DeSantis	
| PURPOSE: 	
|
|
| 	divIn.id = divId_******_#######
|            
|	divId_******_#
|	01234567891111
|			  0123
|
| 	where * = type of div this function is being called from
| 	use substring(6,12) to get ****** value
| 
| 	CASES:
| 	comLog - from blog comment login / enter div
| 	splLog - from splash page login div
|	pasRes - from password reset page
|	topBar - from top bar
|
-------------------------------- */
function checkLogin(divIn) {

	//activate alert box
	if (document.getElementById('tb_bg')) {
		topBar_alertThinking('1');
	} 
	
	var sBody="";
	
	var oXHR = createXHR();
	oXHR.open("post", "/s9/login/checkLogin.php", true);
	
	oXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	//oXHR.setRequestHeader("Content-length", sBody.length);
	//oXHR.setRequestHeader("Connection", "close"); 
	
	oXHR.onreadystatechange = function() {
		if(oXHR.readyState < 4)
		{
			
		}
		if (oXHR.readyState == 4) {
			//activate alert box
			if (document.getElementById('tb_bg')) {
				//need fix 12/26/11
				topBar_alertThinking('0');
			} 
			if (oXHR.status == 200) {
				var divId = divIn.id;
				usrLog('CHECK LOGIN',divId);
				divId = divId.substring(6,12);
				
				divIn.innerHTML="";
				var xmlrows = oXHR.responseXML;
				var xmlUser = xmlrows.getElementsByTagName("User");
				if (xmlUser.length > 0) {	//IF user is logged in
					
					switch (divId) { 
					//Comment Entry Login Div
					case 'comLog':
						createComEntry(divIn);
						//checkLogin(document.getElementById("divId_splLog"));	//call checkLogin again to update main login div
						//checkLogin(document.getElementById("divId_topBar"));	//call checkLogin again to update tobBar login div
						break;
					//Splash Login Div
					case 'splLog':
						displayWelcome(divIn, xmlrows);
						break;
					//Password Reset Div
					case 'pasRes' :
						
						break;
					//topBar Div
					case 'topBar' :
						display_TopBar_Welcome(divIn, xmlrows);
						//checkLogin(document.getElementById("divId_splLog"));	//call checkLogin again to update main login div
						break;
					}

				} else {					//IF user is not logged in
					switch (divId) { 
					//Password Reset Div
					case 'pasRes' :
						create_passReset(divIn);
						break;
					//topBar Div
					case 'topBar' :
							
							createLogin_topBar(divIn);
						break;
					default:
						var divId = divIn.id;
						createLogin(divIn);
					}
				}
			} else {				
				divIn.innerHTML ='error with getting login:'+oXHR.responseText;
				usrLog('ERROR',divIn.id)
			}
		} 
	};

	//Send the request
	oXHR.send(sBody);
}

/* --------------------------------
| FUNCTION:	sendLogout();
| CREATED:	
| MODIFIED:	
|			2/15/10 	-	added topBar case
			12/26/11 - disabled setting XHR content-length and connection

| AUTHOR: 	Seth DeSantis	
| PURPOSE: 	
|-------------------------------- */
function sendLogout(divIn) {
	//activate alert box
	if (document.getElementById('tb_bg')) {
		topBar_alertThinking('1');
	} 
	var sBody="";
		
	var oXHR = createXHR();
	oXHR.open("post", "/s9/login/sendLogout.php", true);
	
	oXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	//oXHR.setRequestHeader("Content-length", sBody.length);
	//oXHR.setRequestHeader("Connection", "close"); 
	
	oXHR.onreadystatechange = function() {
		if(oXHR.readyState < 4) {
			
		}
		if (oXHR.readyState == 4) {
			//activate alert box
			if (document.getElementById('tb_bg')) {
				topBar_alertThinking('0');
			} 
			if (oXHR.status == 200) {
				var divId = divIn.id;
				divId = divId.substring(6,12);
				switch(divId) {
				case 'splLog':
					checkLogin(divIn);
					break;
				case 'topBar':
					checkLogin(divIn);
					break;					
				}
			} else {					
				alert('error with logout:'+oXHR.responseText);
			}
		} else {				
			
		} 
	};
	//Send the request
	oXHR.send(sBody);
}

/* --------------------------------
| FUNCTION:	displayWelcome(divIn);
| CREATED:	
| MODIFIED:	
| AUTHOR: 	Seth DeSantis	
| PURPOSE: 	
|-------------------------------- */
function displayWelcome(divIn, xmlUser) {
	divIn.innerHTML=""
	
	var xUsr = xmlUser.getElementsByTagName("User");
	var xUsr_fname = xmlUser.getElementsByTagName("f_name");
	var fname = xUsr_fname[0].firstChild.data;
	
	var div_wel_txt = document.createElement("div");
	div_wel_txt.innerHTML='Welcome '+ fname;
	div_wel_txt.style.paddingTop='20px';
	//div_wel_txt.id="divId_splLog";
	divIn.appendChild(div_wel_txt);
	
	var div_btn_logout = document.createElement("div");
	div_btn_logout.className="s9_btn_aDiv";
	divIn.appendChild(div_btn_logout);
	
	var a_btn_logout = document.createElement("a");
	a_btn_logout.className="s9_btn_aLink";
	a_btn_logout.innerHTML="log out";
	div_btn_logout.onclick= function() {
		sendLogout(divIn);	
	}
	div_btn_logout.appendChild(a_btn_logout);
	
}


/* --------------------------------
| FUNCTION:	display_TopBar_Welcome(divIn, xmlrows)
| CREATED:	3/2/09
| MODIFIED:	
|			2/15/10
| AUTHOR: 	Seth DeSantis	
| PURPOSE: 	
|-------------------------------- */
function display_TopBar_Welcome(divIn, xmlUser) {
	divIn.innerHTML=""
	
	var xUsr = xmlUser.getElementsByTagName("User");
	var xUsr_fname = xmlUser.getElementsByTagName("f_name");
	var fname = xUsr_fname[0].firstChild.data;

	var tb_menuItem = document.createElement("a");
	tb_menuItem.id = "tb_menu_user";
	tb_menuItem.className='tb_menuItem_blue_off';
	tb_menuItem.appendChild(document.createTextNode('hello '+ fname));
	tb_menuItem.onclick= function() {
		tb_menu_swap(this);
	};
	divIn.appendChild(tb_menuItem);	
	
	//menu item expand : login box
	var tb_mie_user = document.createElement("div");
	tb_mie_user.id = "tb_mie_user";
	tb_mie_user.style.display="none";
	tb_mie_user.className="tb_menuItem_expand";
	divIn.appendChild(tb_mie_user);	

	var s9_topBar_user_div = document.createElement("div");
	s9_topBar_user_div.className="s9_topBar_user_div";
	tb_mie_user.appendChild(s9_topBar_user_div);
	
	//control panel
	var a_btn_cp = document.createElement("a");
	a_btn_cp.className="s9_btn_aLink_1";
	a_btn_cp.innerHTML="control panel";
	a_btn_cp.onclick= function() {
		window.location = "http://www.sethdesantis.com/userFun/userFun.php";	
	}
	s9_topBar_user_div.appendChild(a_btn_cp);
	
	var div_btn_logout = document.createElement("div");
	div_btn_logout.className="s9_btn_aDiv";
	s9_topBar_user_div.appendChild(div_btn_logout);
	
	var a_btn_logout = document.createElement("a");
	a_btn_logout.className="s9_btn_aLink_1";
	a_btn_logout.innerHTML="log out";
	div_btn_logout.onclick= function() {
		sendLogout(divIn);	
	}
	div_btn_logout.appendChild(a_btn_logout);
	
	
	
	
}



/* --------------------------------
| FUNCTION:	createLogin(divIn)
| CREATED:	
| MODIFIED:	
| AUTHOR:	Seth DeSantis		
| PURPOSE: 
|-------------------------------- */

function createLogin(divIn) {
	var div_login = document.createElement("div");
	div_login.className="s9_login_div";
	//div_login.target=function() { alert('target');};
	//div_login.action='';;
	//div_login.onSubmit = function() { alert('submit');};
	//div_login.ons
	divIn.appendChild(div_login);
	
	var div_log_alert = document.createElement("div");
	div_log_alert.innerHTML = "please log in:";
	div_log_alert.className="s9_login_row_info";
	div_login.appendChild(div_log_alert);
	
	var div_log_email_row = document.createElement("div");
	div_log_email_row.className="s9_login_row";
	div_login.appendChild(div_log_email_row);
	
	var text_email = document.createElement("div");
	text_email.className="s9_login_row_txt";
	text_email.innerHTML="email";
	div_log_email_row.appendChild(text_email);
	
	var inpt_email = document.createElement("input");
	inpt_email.className="s9_login_row_inpt";
	inpt_email.type="text";
	inpt_email.name="email";
	div_log_email_row.appendChild(inpt_email);
	
	
	var div_log_pass_row = document.createElement("div");
	div_log_pass_row.className="s9_login_row";
	div_login.appendChild(div_log_pass_row);
	
	var text_pass = document.createElement("div");
	text_pass.className="s9_login_row_txt";
	text_pass.innerHTML="password";
	div_log_pass_row.appendChild(text_pass);

	
	var inpt_pass = document.createElement("input");
	inpt_pass.className="s9_login_row_inpt";
	inpt_pass.type="password";
	inpt_pass.name="password";
	div_log_pass_row.appendChild(inpt_pass);
	
	var regEx_email = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/
	
	

	inpt_submitDiv = document.createElement("div"); 
	inpt_submitDiv.className ="s9_btn_aDiv";
	div_login.appendChild(inpt_submitDiv);
	
	var inpt_submit =  document.createElement("a");
	//inpt_submit.type="submit";
	inpt_submit.className="s9_btn_aLink";
	//inpt_submit.value="submit";
	inpt_submit.innerHTML="submit";
	inpt_submit.onclick= function(){
		var ary_logErr = new Array();
		div_log_alert.innerHTML='';
		if (inpt_email.value.match(regEx_email)){
			inpt_email.style.backgroundColor="";
		} else {
			ary_logErr.push("Please enter a valid email");	
			inpt_email.style.backgroundColor="#FCC";
		}
		if (inpt_pass.value != ''){
			inpt_pass.style.backgroundColor="";
		} else {
			ary_logErr.push("Please enter your password");
			inpt_pass.style.backgroundColor="#FCC";
		}
		if (ary_logErr.length > 0) {
			
			for (var logErr_c = 0; logErr_c < ary_logErr.length; logErr_c++) {
				div_log_alert.appendChild(document.createTextNode(ary_logErr[logErr_c]));
				div_log_alert.appendChild(document.createElement("br"));
			}
		} else {
			sendLogin(inpt_email.value, inpt_pass.value, divIn, div_log_alert);
		}
		
	};
	
	inpt_submitDiv.appendChild(inpt_submit);
	
	//register
	inpt_regDiv = document.createElement("div");
	inpt_regDiv.className ="s9_btn_aDiv";
	div_login.appendChild(inpt_regDiv);
	var inpt_reg =  document.createElement("a");
	inpt_reg.className="s9_btn_aLink";
	inpt_reg.innerHTML="register";
	inpt_reg.href="/userReg/userReg.php";
	inpt_regDiv.appendChild(inpt_reg);
	
	//password reset
	inpt_pasDiv = document.createElement("div");
	inpt_pasDiv.className ="s9_btn_aDiv";
	div_login.appendChild(inpt_pasDiv);
	var inpt_pas =  document.createElement("a");
	inpt_pas.className="s9_btn_aLink";
	inpt_pas.innerHTML="reset password";
	inpt_pas.href="/s9/pass/index.php";
	inpt_pasDiv.appendChild(inpt_pas);
	
	var spacer =  document.createElement("div");
	spacer.className="spacer";
	div_login.appendChild(spacer);
	
}

function create_topBar(divIn) {

	thinkingState = 0;
	
	//create topBar
	var topBar = document.createElement("div");
	topBar.id = "topBar";
	divIn.appendChild(topBar);
	
	var tb_bg = document.createElement("div");
	tb_bg.id = "tb_bg";
	topBar.appendChild(tb_bg);
	
	var tb_content = document.createElement("div");
	tb_content.id = "tb_content";
	topBar.appendChild(tb_content);
	
	var tb_top = document.createElement("div");
	tb_top.id = "tb_top";
	tb_content.appendChild(tb_top);	
	
	// ----- BEGIN ----- :add left site info/link ----------
	
	var tb_left_site = document.createElement("div");
	tb_left_site.id="tb_left_site";
	tb_top.appendChild(tb_left_site);
	
	var siteLink = document.createElement("a");
	siteLink.alt = "sethdesantis.com - the official web site for seth desantis";
	siteLink.href="http://www.sethdesantis.com/";
	siteLink.appendChild(document.createTextNode("sethdesantis.com"));
	tb_left_site.appendChild(siteLink);
	
	var siteDesc = document.createElement("h1");
	siteDesc.innerHTML="site & content by Seth DeSantis";
	tb_left_site.appendChild(siteDesc);
	
	// ----- END ----- :add left site info/link ----------
	
	// ----- BEGIN ----- :menu item : login ----------
	var tb_menu_login = document.createElement("div");
	tb_menu_login.id = "tbmen_topBar";
	tb_top.appendChild(tb_menu_login);
	
	var tb_menu_arrow = document.createElement("div");
	
	checkLogin(tb_menu_login);
	// ----- END ----- :menu item : login ----------
	
	
		
	
	
	
	var spacer = document.createElement("div");
	spacer.className = "spacer";
	tb_top.appendChild(spacer);	
}

//swap menu item display
function tb_menu_swap(elementIn) {
	var extraDiv = document.getElementById('tb_mie_'+(elementIn.id).substring(8));
	if (extraDiv.style.display=="none") {
		$(extraDiv).fadeIn(400);
		elementIn.className="tb_menuItem_blue_on";
		//extraDiv.style.display="";

	} else  {
		$(extraDiv).fadeOut(400);
		elementIn.className="tb_menuItem_blue_off";
		//extraDiv.style.display="none";
	}
}

//obj menu item
function tb_menuItem(id_in) {
	var menuItem = document.createElement('a');
	menuItem.id=id_in;
	menuItem.className="tb_menuItem";
	menuItem.onmouseover = function() {
		
	};
	menuItem.onmouseout = function() {
		
	}
	
}

/* --------------------------------
| FUNCTION:	createLogin_topBar(divIn)
| CREATED:	3/2/09
| MODIFIED:	
|			2/9/10
|			2/15/10
| AUTHOR:	Seth DeSantis		
| PURPOSE: 
|-------------------------------- */

function createLogin_topBar(divIn) {
		
	
	//menu item top : login
	var tb_menuItem = document.createElement("a");
	tb_menuItem.id = "tb_menu_login";
	tb_menuItem.className='tb_menuItem_blue_off';
	tb_menuItem.appendChild(document.createTextNode("sign in"));
	tb_menuItem.onclick= function() {
		tb_menu_swap(this);
	};
	divIn.appendChild(tb_menuItem);	
	
	//menu item expand : login box
	var tb_mie_login = document.createElement("div");
	tb_mie_login.id = "tb_mie_login";
	tb_mie_login.style.display="none";
	tb_mie_login.className="tb_menuItem_expand";
	divIn.appendChild(tb_mie_login);	

	var div_login = document.createElement("div");
	div_login.className="s9_topBar_login_div";
	tb_mie_login.appendChild(div_login);
	
	
	var s9_topBar_login_div_bg = document.createElement("div");
	s9_topBar_login_div_bg.className="s9_topBar_login_div_bg";
	div_login.appendChild(s9_topBar_login_div_bg);
	
	var topBar_login_loginDiv = document.createElement("div");
	topBar_login_loginDiv.className="topBar_login_loginDiv";
	div_login.appendChild(topBar_login_loginDiv);
	
	var topBar_login_registerDiv = document.createElement("div");
	topBar_login_registerDiv.className="topBar_login_registerDiv";
	div_login.appendChild(topBar_login_registerDiv);
	
	//login welcome text
	var topBar_login_text = document.createElement("div");
	topBar_login_text.className="topBar_login_text";
	topBar_login_text.innerHTML = "<span class='topBar_login_text_span'>sign in</span> to view photo albums, comment on blogs, and access the control panel"
	topBar_login_loginDiv.appendChild(topBar_login_text);
	
	// alert div
	var div_log_alert = document.createElement("div");
	div_log_alert.innerHTML = "";
	div_log_alert.className="s9_topBar_login_row_info";
	topBar_login_loginDiv.appendChild(div_log_alert);
	
	// login form, login inputs will go in here
	var topBar_login_loginForm = document.createElement("div");
	topBar_login_loginForm.className="topBar_login_loginForm";
	//topBar_login_loginForm.method="";
	topBar_login_loginDiv.appendChild(topBar_login_loginForm);
	
	var topBar_login_contentBg = document.createElement("div");
	topBar_login_contentBg.className="topBar_login_contentBg";
	//div_login.appendChild(topBar_login_contentBg);
	
	// email row
	var div_log_email_row = document.createElement("div");
	div_log_email_row.className="s9_topBar_login_row";
	topBar_login_loginForm.appendChild(div_log_email_row);
	
	var text_email = document.createElement("div");
	text_email.className="s9_topBar_login_row_txt";
	text_email.innerHTML="email";
	div_log_email_row.appendChild(text_email);
	
	var inpt_email = document.createElement("input");
	inpt_email.className="s9_topBar_login_row_inpt";
	inpt_email.type="text";
	inpt_email.name="email";
	div_log_email_row.appendChild(inpt_email);
	
	
	var div_log_pass_row = document.createElement("div");
	div_log_pass_row.className="s9_topBar_login_row";
	topBar_login_loginForm.appendChild(div_log_pass_row);
	
	var text_pass = document.createElement("div");
	text_pass.className="s9_topBar_login_row_txt";
	text_pass.innerHTML="password";
	div_log_pass_row.appendChild(text_pass);

	
	var inpt_pass = document.createElement("input");
	inpt_pass.className="s9_topBar_login_row_inpt";
	inpt_pass.type="password";
	inpt_pass.name="password";
	div_log_pass_row.appendChild(inpt_pass);
	
	var regEx_email = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/
	
	

	inpt_submitDiv = document.createElement("div");
	inpt_submitDiv.className ="s9_btn_aDiv";
	topBar_login_loginForm.appendChild(inpt_submitDiv);
	
	var inpt_submit =  document.createElement("input");
	inpt_submit.type="submit";
	inpt_submit.className="topBar_login_inptSubmit";
	//inpt_submit.innerHTML="submit";
	inpt_submit.onclick= function(){
		var ary_logErr = new Array();
		div_log_alert.innerHTML='';
		if (inpt_email.value.match(regEx_email)){
			inpt_email.style.backgroundColor="";
		} else {
			ary_logErr.push("Please enter a valid email");	
			inpt_email.style.backgroundColor="#FCC";
		}
		if (inpt_pass.value != ''){
			inpt_pass.style.backgroundColor="";
		} else {
			ary_logErr.push("Please enter your password");
			inpt_pass.style.backgroundColor="#FCC";
		}
		if (ary_logErr.length > 0) {
			
			for (var logErr_c = 0; logErr_c < ary_logErr.length; logErr_c++) {
				div_log_alert.appendChild(document.createTextNode(ary_logErr[logErr_c]));
				div_log_alert.appendChild(document.createElement("br"));
			}
		} else {
			sendLogin(inpt_email.value, inpt_pass.value, divIn, div_log_alert);
		}
		
	};
	
	inpt_submitDiv.appendChild(inpt_submit);
	
	
	//password reset
	inpt_pasDiv = document.createElement("div");
	inpt_pasDiv.className ="s9_btn_aDiv";
	topBar_login_loginDiv.appendChild(inpt_pasDiv);
	var inpt_pas =  document.createElement("a");
	inpt_pas.className="s9_btn_aLink";
	inpt_pas.innerHTML="reset password";
	inpt_pas.href="/s9/pass/index.php";
	inpt_pasDiv.appendChild(inpt_pas);
	
	//register text
	var topBar_reg_text = document.createElement("div");
	topBar_reg_text.className="topBar_login_text";
	topBar_reg_text.innerHTML = "<span class='topBar_login_text_span'>not registered?</span> sign up is quick, easy, and free. the benefits include: <ul><li>photo album access</li><li>blog commenting</li><li>use the control panel</li></ul> "
	topBar_login_registerDiv.appendChild(topBar_reg_text);
	
	//register
	inpt_regDiv = document.createElement("div");
	inpt_regDiv.className ="topBar_reg_linkDiv";
	topBar_login_registerDiv.appendChild(inpt_regDiv);
	var inpt_reg =  document.createElement("a");
	inpt_reg.className="s9_btn_aLink";
	inpt_reg.innerHTML="register";
	inpt_reg.href="/userReg/userReg.php";
	inpt_regDiv.appendChild(inpt_reg);
	
	
	var spacer =  document.createElement("div");
	spacer.className="spacer";
	div_login.appendChild(spacer);
	
}

/* --------------------------------
| FUNCTION:	topBar_alertThinking
| CREATED:	2/16/10
| MODIFIED:	
| AUTHOR:	Seth DeSantis		
| PURPOSE: 
|-------------------------------- */


function topBar_alertThinking(state) {
	//alert(arguments.callee.caller.toString());
	if (state == 1) {
		thinkingState = thinkingState + 1;
	} else if (state ==0) {
		thinkingState = thinkingState - 1;
	}
	
	if (thinkingState == 0) {
		document.getElementById('tb_bg').style.backgroundColor='#999';
	} else {
		document.getElementById('tb_bg').style.backgroundColor='#F00';
	}

	//document.getElementById('tb_bg').style.backgroundColor='#F00';
	
}

function topBar_alertThinking_done() {
	document.getElementById('tb_bg').style.backgroundColor='#999';
	
}

/* --------------------------------
| FUNCTION:	sendLogin(email, pass, divIn, divAlert)
| CREATED:	
| MODIFIED:	

| AUTHOR:	Seth DeSantis		
| PURPOSE: 
|-------------------------------- */

function sendLogin(email, pass, divIn, divAlert) {
	//activate alert box
	if (document.getElementById('tb_bg')) {
		topBar_alertThinking('1');
	} 
	var sBody = "email="+encodeURIComponent(email)+"&pass="+encodeURIComponent(pass);
	
	
	var oXHR = createXHR();
	oXHR.open("post", "/s9/login/sendLogin.php", true);
	
	oXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	//oXHR.setRequestHeader("Content-length", sBody.length);
	//oXHR.setRequestHeader("Connection", "close"); 
	
	oXHR.onreadystatechange = function() {
		if(oXHR.readyState < 4)
		{
			
		}
		
		if (oXHR.readyState == 4) {
			//var divInId = divIn.id;
			//activate alert box
			if (document.getElementById('tb_bg')) {
				topBar_alertThinking('0');
			} 
			if (oXHR.status == 200) {
				if(oXHR.responseText > 0) {
					usrLog('LOGIN',divIn.id);
					checkLogin(divIn);
				} else {
					usrLog('LOGIN FAILED',divIn.id);
					divAlert.innerHTML = "login failed: try again, recover password, or register";
					
				}
			} else {			
				usrLog('ERROR','PHP PAGE FROM sendLogin');
				divAlert.innerHTML=('error with getting login:'+oXHR.responseText);
			}
		} 
	};

	//Send the request
	oXHR.send(sBody);
}
