// JavaScript Document





/* REGISTRATION -------------------------------------------------------------------------------- */

function showRegistration(){  
	// user needs to register - so this function gets rid of the login area and adds the registration area 
	 
	var login_div = document.getElementById("form_div");
	clearAll(login_div);
	addRegistration(login_div);
	loginFailed_Alert_showing = false;
	emailSentMsg_showing = false;
	

}

function addRegistration(elementToAppendTo){
	//alert(elementToAppendTo);
	//after the login section is cleared this adds the registration div under in the form_div
	
	var reg_div = null;
	
	regDiv = document.createElement("div");
	regDiv.innerHTML = "<div id='registration_form'><h1>REGISTER</h1><p>Email: <input type='text' name='register_email' id='register_email' /></p><p>Create Password: <input type='password' name='register_password' id='register_password' /><br />(Must be at least 5 letters long.)</p><p>Confirm Password: <input type='password' name='register_confirm_password' id='register_confirm_password' /></p><p><span class='optional'> * </span> Job Title: <input type='text' name='register_title' id='register_title' /></p><p><span class='optional'>* </span> Field of Practice: <select name='register_field' id='register_field' ><option value='--'>--</option><option value='Acute Care'>Acute Care</option><option value='Community Health Care'>Community Health Care</option><option value='Education'>Education</option><option value='Home Health Care'>Home Health Care</option><option value='Long Term Care'>Long&ndash;Term Care</option><option value='Mental Health'>Mental Health Care</option><option value='Public Health'>Public Health</option><option value='Non-Clinical'>Non-Clinical</option><option value='Research'>Research</option><option value='Other'>Other</option></select> </p><p><span class='optional'>* </span> Years of Practice: <input type='text' name='register_years' id='register_years' /></p><p><span class='optional'>* </span> Province &frasl; Territory: <select name='register_province' id='register_province' ><option value='--'>--</option><option value='Alberta'>Alberta</option><option value='British Columbia'>British Columbia</option><option value='Manitoba'>Manitoba</option><option value='New Brunswick'>New Brunswick</option><option value='Newfoundland'>Newfoundland</option><option value='Northwest Territories'>Northwest Territories</option> <option value='Nova Scotia'>Nova Scotia</option><option value='Nunavut'>Nunavut</option><option value='Ontario'>Ontario</option><option value='Prince Edward Island'>Prince Edward Island</option><option value='Quebec'>Quebec</option><option value='Saskatchewan'>Saskatchewan</option><option value='Yukon'>Yukon</option></select></p><p>Organization: <input name='register_organization' id='register_organization' type='text' /></p><p>LHIN: <select name='register_lhin' id='register_lhin' ><option value='--'>--</option><option value='Central'>Central</option><option value='Central East'>Central East</option><option value='Central West'>Central West</option><option value='Champlain'>Champlain</option><option value='Erie St. Clair'>Erie St. Clair</option><option value='Hamilton Niagara Haldimand Brant'>Hamilton Niagara Haldimand Brant</option> <option value='Mississauga Halton'>Mississauga Halton</option><option value='North East'>North East</option><option value='North Simcoe Muskoka'>North Simcoe Muskoka</option><option value='North West'>North West</option><option value='South East'>South East</option><option value='South West'>South West</option><option value='Toronto Central'>Toronto Central</option><option value='Waterloo Wellington'>Waterloo Wellington</option><option value='none'>none</option></select></p><p><span class='optional'>* </span> Country : <input type='text' name='register_country' id='register_country' onkeydown='if(event.keyCode==13) register();' /></p><p><span class='optional'>* </span>Please rate your eHealth expertise on the point scale below.  (1 being that you require help from s, 5 being that you help s with eHealth)</p><table align='right'><tr><td><input type='radio' name='register_expertise' value='1' id='expertise1' /></td><td><input type='radio' name='register_expertise' value='2' id='expertise2' /></td><td><input type='radio' name='register_expertise' value='3' id='expertise3' /></td><td><input type='radio' name='register_expertise' value='4'  id='expertise4'/></td><td><input type='radio' name='register_expertise' value='5' id='expertise5' /></td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr></table><p>&nbsp;</p><p>&nbsp;</p><p><span class='optional'>* </span> How did you find out about this Course?: <select name='foundcourse_field' id='foundcourse_field' ><option value='RNAO web site'>RNAO web site</option><option value='RNAO Newsletter'>RNAO Newsletter</option><option value='From a friend / colleague'>From a friend / colleague</option><option value='My employer'>My employer</option><option value='Internet search'>Internet search</option><option value='RN Journal'>RN Journal</option><option value=''></option></select></p><p><a href='#' onclick='register()'>Register</a></p><p><span class='optional'>* optional</span></p></div><div id='login_instructions'><h1>Login</h1><p>I have already Registered.  I want to login.</p><p><a href='#'  onclick='showLogin()'>Login</a></p></div>";
	
	
	elementToAppendTo.appendChild(regDiv);
}

function register(){
	
	
	//alreadyRegistered_Alert();
	var email = document.getElementById("register_email").value.toLowerCase();
	var password = document.getElementById("register_password").value.toLowerCase();
	var confirmPassword = document.getElementById("register_confirm_password").value.toLowerCase();
	
	var title = document.getElementById("register_title").value;
	var field = document.getElementById("register_field").value;
	var years = document.getElementById("register_years").value;
	var province = document.getElementById("register_province").value;
	var country = document.getElementById("register_country").value;
	
	
    var organization = document.getElementById("register_organization").value;
	var lhin = document.getElementById("register_lhin").value;
	var foundcourse = document.getElementById("foundcourse_field").value;
	
	var expertise = 0
	
	var colRadio = document.getElementsByName("register_expertise");
	
		
	for(var i=0; i < colRadio.length; i ++){
		
		if (colRadio[i].checked){
		
		   expertise = colRadio[i].value;
						
   		 }
 	 }
	
	

		
	
	
	

	
	
	
	
	
	if (!validEmail(email)){
				document.getElementById("register_email").focus()
				alert("Please enter a valid email.")
			
				return false;
	}
	
	if (!invalids(password)){
				alert("Please enter a valid password.  It must be at least 5 letters in length.");
				document.getElementById("register_password").focus();
				
				return false;
	}
	
	if (password != confirmPassword){
				alert("The confirmation password does not match the password entered.")
				document.getElementById("register_confirm_password").focus();
				
				return false;
			}

	if (organization == '') {
		alert("The organization field is required.")
		document.getElementById("register_organization").focus();
		return false;
        }
		
	if (lhin == '--') {
		alert("The LHIN field is required.")
		document.getElementById("register_lhin").focus();
		return false;
        }	
	
	
	var url = "login_register.asp?email=" + escape(email) + "&password=" + escape(password) + "&title=" + escape(title) + "&field=" + escape(field) + "&province=" + escape(province) + "&country=" + escape(country) + "&organization=" + escape(organization) + "&lhin=" + escape(lhin) + "&expertise=" + escape(expertise) + "&years=" + escape(years) + "&foundcourse=" + escape(foundcourse) + "&dummy=" + new Date().getTime();
	
	
	createRequest();
	
	request.onreadystatechange = registerResponse;
	request.open("GET",url,true);
	request.send(null);


}
	



function registerResponse(){
	
	if (request.readyState == 4) {
		   if (request.status == 200) {
      			var response = request.responseText;
				
	  			if(response == "true"){
					window.location = "module1/mod1_p1.asp"
				}else{
					alreadyRegistered_Alert();
				}
	 		}
	}
}	


var alreadyRegistered_Alert_showing = false;

function alreadyRegistered_Alert(){
	
	if(alreadyRegistered_Alert_showing == false){
		//get the element to which you want to attach the alert /// top of login
		alreadyRegistered_Alert_showing = true;
		var login_div = document.getElementById("registration_form");
		
		alreadyRegisteredMsg = document.createElement("div");
		alreadyRegisteredMsg.innerHTML = "<p class='alert'>Our records show that email has already been registered.  Please use another email, or use the <a href='#' onclick='showLogin();'>Forgot Password</a> function.</p>"
	
	
		login_div.appendChild(alreadyRegisteredMsg);
	}	

}


/* LOGIN -------------------------------------------------------------------------------- */

function showLogin(){
	// user needs to login - so this function gets rid of the login area and adds the registration area
	
	var login_div = document.getElementById("form_div");
	clearAll(login_div);
	addLogin(login_div)
	alreadyRegistered_Alert_showing = false;
}



function addLogin(elementToAppendTo){
	//after the registration section is cleared this adds the login div under in the form_div
	var logDiv = null;
	logDiv = document.createElement("div");
	logDiv.innerHTML = "<div id='login_form'><h1>LOGIN</h1><p>Email: <input type='text' name='login_email' /><br />Password: <input type='password' name='login_password' onKeyDown='if(event.keyCode==13) login();' /></p><p><a href='#' onclick='login();'>Login</a></p></div><div id='register_instructions'><h1>REGISTER</h1><p>This learning tool is free to anyone wishing to use it.  To use  it, you must first register.</p><p><a href='#' onclick='showRegistration();' >Register</a></p></div><div id='forgot_form'><h1>FORGOT PASSWORD</h1><p>Email: <input type='text' name='forgot_email' id='forgot_email' onKeyDown='if(event.keyCode==13) forgotPassword();' /></p><p><a href='#' onclick='forgotPassword();'>Get Password</a></p>"
	
	elementToAppendTo.appendChild(logDiv);
}

function login(){
	//alert("login");
	//loginFailed_Alert();
	var email = document.getElementById("login_email").value.toLowerCase();
	var password = document.getElementById("login_password").value.toLowerCase();
	
	if (!validEmail(email)){
				document.getElementById("login_email").focus()
				alert("Please enter a valid email.")
			
				return false;
	}
	
	if (!invalids(password)){
				alert("Please enter a valid password.  It must be at least 5 letters in length.");
				document.getElementById("login_password").focus();
				
				return false;
	}
	
	var url = "login_login.asp?email=" + escape(email) + "&password=" + escape(password) + "&dummy=" + new Date().getTime();
	
	createRequest();
	
	request.onreadystatechange = loginResponse;
	request.open("GET",url,true);
	request.send(null);
}

function loginResponse(){
	
	if (request.readyState == 4) {
		
		   if (request.status == 200) {
      			var response = request.responseText;
				var responseArray = response.split(",");
				
	  			if(responseArray[0] == "true"){
					
					if(responseArray[1] != "none"){
						var module = getModule(responseArray[1]);
						var moduleTitles = new Array("Introduction","Nursing, Quality Healthcare and eHealth","Computer Technology and Information Processing","Information and Communication Technologies in Client Care","Ontario eHealth Initiatives and Nursing","Professional Issues for Nurses","eHealth and the Nursing Role","Consumer eHealth","Professional Development and eHealth","Conclusion");// Names of all of the modules
						var moduleTitle = moduleTitles[parseFloat(module) - 1];	
						window.location = "bookmark.asp?bookmarkHREF=" + escape(responseArray[1]) + "&bookmarkTitle=" + escape(responseArray[2])  + "&module=" + escape(module) + "&moduleTitle=" + escape(moduleTitle)+ "&dummy=" + new Date().getTime();
						//window.location = "bookmark.asp?bookmarkHREF=" + responseArray[1] + "&bookmarkTitle=" + responseArray[2];		
					}else{
					
						window.location = "module1/mod1_p1.asp";
					}
				}else{
					loginFailed_Alert();
				}
	 		}
	}
}


function getModule(href){
	//from the href...figure out which module we are in
	var hrefString = href;
	var hrefModulePos = hrefString.indexOf("module",0);
	
	if(hrefString.charAt(hrefModulePos + 7) == "/"){
		return(hrefString.charAt(hrefModulePos + 6));				 
	}else{
		return(hrefString.charAt(hrefModulePos + 6)  + hrefString.charAt(hrefModulePos + 7));
	}

}

var loginFailed_Alert_showing = false;

function loginFailed_Alert(){
	//alert user that the login has failed
	if (loginFailed_Alert_showing == false){
		loginFailed_Alert_showing = true;
		var login_div = document.getElementById("login_form");
		
		loginFailedMsg = document.createElement("div");
		loginFailedMsg.innerHTML = "<p class='alert'>That login failed.  Please try again or register.</p>";
		
		login_div.appendChild(loginFailedMsg);
	}	

}





function clearAll(elementToClear) {
	//this clears all the elements in the element provided -  it is being used to clear form div 
	while (elementToClear.firstChild) { 
 	 	elementToClear.removeChild(elementToClear.firstChild);
	}
  
}



/* RETRIEVE FORGOTTON PASSWORD -------------------------------------------------------------------------------- */

function forgotPassword(){
	//alert("Your password details will be forwarded to your given email.");
	
	//forgot_emailNotSent();
	
	
	var email = document.getElementById("forgot_email").value.toLowerCase();
	
	if (!validEmail(email)){
				document.getElementById("forgot_email").focus()
				alert("Please enter a valid email.")
			
				return false;
	}
	
	
	var url = "login_forgot.asp?email=" + escape(email)  + "&dummy=" + new Date().getTime();
	
	createRequest();
	
	request.onreadystatechange = forgotResponse;
	request.open("GET",url,true);
	request.send(null);
		
	
}





var forgot_found = false;

function forgotResponse(){
	if (request.readyState == 4) {
		   if (request.status == 200) {
      			var response = request.responseText;
				
				
	  			if(response == "true"){
					forgot_found = true;
					forgot_emailSent();
				}else{
					forgot_found = false;
					forgot_emailSent();
				}
				
	 		}
	}
	
	
		
}


var emailSentMsg_showing = false;

function forgot_emailSent(){

	if (emailSentMsg_showing == false){
		emailSentMsg_showing = true;
		var login_div = document.getElementById("forgot_form");
		
		emailSentMsg = document.createElement("div");
		
		if(forgot_found == true){
			emailSentMsg.innerHTML = "<p class='alert'>Your login details have been forwared to the email provided.</p>";
		}else{
			emailSentMsg.innerHTML = "<p class='alert'>That email address was not found.</p>";
		}
		login_div.appendChild(emailSentMsg);
	}	
	

}


//function to keep track of the last page that the user was on


function trackLastPage(){
	
	var url = "lastPage.asp?dummy=" + new Date().getTime();
	
	createRequest();
	
	//request.onreadystatechange = forgotResponse;
	request.open("GET",url,true);
	request.send(null);	
	
}
		









