window.onload = Start;

function Start(){
CheckCookies();
CheckIfLoggedIn();
}

var regExp = /<\/?[^>]+>/gi;
function ReplaceTags(xStr){
xStr = xStr.replace(regExp,"");
return xStr;
}

var request = false;
try {
 request = new XMLHttpRequest();
} catch (trymicrosoft) {
 try {
   request = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (othermicrosoft) {
   try {
     request = new ActiveXObject("Microsoft.XMLHTTP");
   } catch (failed) {
     request = false;
   }
 }
}
if (!request)
alert("Error initializing XMLHttpRequest!");
/********************************************/
var request2 = false;
try {
 request2 = new XMLHttpRequest();
} catch (trymicrosoft) {
 try {
   request2 = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (othermicrosoft) {
   try {
     request2 = new ActiveXObject("Microsoft.XMLHTTP");
   } catch (failed) {
     request2 = false;
   }
 }
}
if (!request2)
alert("Error initializing XMLHttpRequest!");

/******************/
/* Trim functions */
/******************/
function LTrim( value ) {
var re = /\s*((\S+\s*)*)/;
return value.replace(re, "$1");
}
function RTrim( value ) {
var re = /((\s*\S+)*)\s*/;
return value.replace(re, "$1");
}
function trim( value ) {
return LTrim(RTrim(value));
}
/*************************/
/* End of trim functions */
/*************************/

/***************************/
/* Check for numeric input */
/***************************/

function IsNumeric(strString)
   {
   var strValidChars = "0123456789";
   var strChar;
   var blnResult = true;

   if (strString.length === 0) return false;
   for (i = 0; i < strString.length && blnResult === true; i++)
      {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         {
         blnResult = false;
         }
      }
   return blnResult;
   }
/************************/
/* End of numeric input */
/************************/

/***************/
/* Log in code */
/***************/
function CheckSubscriber(){
username = document.entrance.username.value;
password = document.entrance.password.value;
if (!username || !password)
	{
	return;
	}
var url = "PHP/checkUser.php?";
url += "param1=" + username + "&param2=" + password;
request2.open("GET", url, true);
request2.onreadystatechange = LoginResponse;
request2.send(null); 
}

function LoginResponse(){
 if (request2.readyState == 4)
 	{
 	if (request2.status == 200)
   		{
     	var response = trim(request2.responseText);
     	
     	if (response == "Unknown")
     		{
     		document.entrance.reset();
     		document.getElementById("remember").disabled = false;
     		document.getElementById("help").disabled = false;
     		CrumbleCookies();
     		
     		message = "The username and/or\r\n";
     		message += "password is incorrect.\r\n\r\nClick [ Help ] to retrieve\r\n";
     		message += "your username & password.\r\n\r\n";
     		message += "Thank you.";
     		alert(message);
     		return;
     		}
     	
     	if (response == "Expired")
     		{
     		message = "Your subscription has expired.\r\n\r\n";
     		message += "To renew, please call Kimmi Crosby\r\n";
     		message += "on +44 (0)1763 223223 or e-mail\r\n";
     		message += "kim@WalnutMedical.info.\r\n\r\n";
     		message += "Thank you.";
     		alert(message);
     		return;
     		}
     	
     	document.getElementById("help").disabled = true;
     	document.getElementById("enter").disabled = true;
     
     	
     	// Set cookie if checkbox ticked
     	if (document.memory.remember.checked)
     		{
     		BakeCookie();
     		}
     	
     	responseparts = response.split("#");
     	register = responseparts[0];
     	daysleft = responseparts[1];
     
     	if (daysleft == 1)
     		{
     		message = "Your subscription expires tomorrow.\r\n\r\n";
     		message += "To renew, please call Kimmi Crosby\r\n";
     		message += "on +44 (0)1763 223223 or e-mail\r\n";
     		message += "renew@WalnutMedical.info.\r\n\r\n";
     		message += "Thank you.";
     		alert(message);	
     		}

     	if (daysleft > 1 && daysleft <= 60)
     		{
     		message = "Your subscription expires in " + daysleft + " days.\r\n\r\n";
     		message += "To renew, please call Kimmi Crosby\r\n";
     		message += "on +44 (0)1763 223223 or e-mail\r\n";
     		message += "renew@WalnutMedical.info.\r\n\r\n";
     		message += "Thank you.";
     		alert(message);
     		}
     
     	registerparts = register.split("|");
     	if(registerparts.length == 1)
     		{
     		if (register == "E")
     			{
     			document.getElementById("databasechoice").style.display = "block";
     			document.getElementById("databasechoicebody").style.display = "block";
     			}
     		if (register == "G") window.location = "Germany/Search.html";
     		if (register == "BE") window.location = "Benelux/Search.html";
     		if (register == "F") window.location = "France/Search.html";    	
     		if (register == "I") window.location = "Italy/Search.html";
     		if (register == "S") window.location = "Spain/Search.html";
     		if (register == "U") window.location = "UK/Search.html";
     		if (register == "AL") window.location = "Alpine/Search.html";
     		if (register == "A") window.location = "America/Search.html";
     		if (register == "CZ") window.location = "Czech/Search.html";
     		if (register == "M") document.getElementById("managementchoice").style.display = "block";
     		}
     	    		
     	if(registerparts.length > 1)
     		{
     		FillMultichoice(registerparts)
     		}
     	} 
   else
   		{
     	alert("status is " + request.status);
     	}
 	}
}

function FillMultichoice(registerparts){
	countries = new Array();
	countries["E"] = "<a href = 'Europe/Search.html'>Europe</a><br />";
    countries["A"] = "<a href = 'America/Search.html'>America</a><br />";
    countries["BE"] = "<a href = 'Benelux/Search.html'>Benelux</a><br />";
    countries["F"] = "<a href = 'France/Search.html'>France</a><br />";
    countries["G"] = "<a href = 'Germany/Search.html'>Germany</a><br />";
    countries["I"] = "<a href = 'Italy/Search.html'>Italy</a><br />";
    countries["S"] = "<a href = 'Spain/Search.html'>Spain</a><br />";
    countries["AL"] = "<a href = 'Alpine/Search.html'>Switzerland &amp; Austria</a><br />";
    countries["U"] = "<a href = 'UK/Search.html'>United Kingdom</a><br />";
    countries["C"] = "<a href = 'Canada/Search.html'>Canada</a><br />";
    countries["CZ"] = "<a href = 'Czech/Search.html'>Czech Republic</a><br />";
    
   
    document.getElementById("multichoice").style.display = "block";
    document.getElementById("multichoicetop").style.display = "block";
    multiwords = "";
    	for (k=0;k<registerparts.length;k++)
    		{
    		if (registerparts[k] == 'E')
    			{
    			multiwords += countries['E'];
    			multiwords += countries['BE'];
    			multiwords += countries['F'];
    			multiwords += countries['G'];
    			multiwords += countries['I'];
    			multiwords += countries['S'];
    			multiwords += countries['AL'];
    			multiwords += countries['U'];
    			}
    		else
    			{
    			multiwords += countries[registerparts[k]];
    			}
    		}
    	document.getElementById("multichoice").innerHTML = multiwords;
}

function SelectAction(){
if (document.databases.register[0].checked) window.location = "Management/Subscribers/Subscribers.html";
if (document.databases.register[1].checked) window.location = "Management/DataInputters/DataInputters.html";
if (document.databases.register[2].checked) window.location = "Management/Europe/Search.html";
if (document.databases.register[3].checked) window.location = "Management/America/Search.html";
}


/************************/
/* Creating two Cookies */
/************************/
function BakeCookie() {
UsernameCookie();
PasswordCookie();
}

function UsernameCookie(){
var date = new Date();
date.setTime(date.getTime()+(400*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
value = document.entrance.username.value;
if(!value)
	{
	return;
	}
var curCookie = "username =" + escape(value) +  expires + "; path=/";
document.cookie = curCookie;
}

function PasswordCookie(){
var date = new Date();
date.setTime(date.getTime()+(400*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
value = document.entrance.password.value;
if(!value)
	{
	return;
	}
var curCookie = "password =" + escape(value) +  expires + "; path=/";
document.cookie = curCookie;
}
		/* End of Cookie creation */

/*****************/
/* End of log in */
/*****************/

/**************************************/
/* Code to deal with forgotten log in */
/**************************************/

function Forgotten(){
state = document.getElementById("forgotten").style.display;
state = (state == 'block')?'none':'block';
document.getElementById("forgotten").style.display = state;
}

function ForgottenDetails(){
email = document.forgottendetails.email.value;
if (!email) 
	{
	Forgotten();
	return;
	}
if (!CheckEmail(email))
	{
	alert("There's a problem\nwith this e-mail!");
	document.forgottendetails.email.focus();
	return;
	}

url = "PHP/getForgotten.php?email=" + email;
request.open("GET", url, true);
request.onreadystatechange = ForgottenResponse;
request.send(null);

}

function ForgottenResponse(){
if (request.readyState == 4)
	{
	if (request.status == 200)
   		{
     	response = request.responseText;
     	response = trim(response);
     	
     	if (response == "Unknown")
     		{
     		Forgotten();
     		message = "This e-mail address is is not\r\nin our database.\r\n\r\nPlease contact us.";
     		alert(message);
     		return;
     		}
     		
     	if (response == "Expired")
     		{
     		Forgotten();
     		message = "The licence has expired!\r\n\r\n";
     		message += "Please contact us to renew.";
     		alert(message);
     		return;
     		}

     	daysleft = response;
     	message = "Your new password has been e-mailed.\r\n\r\nYour current subscription has " + daysleft +" days left";

     	Forgotten();
     	alert(message);
     	}
   else
   		{
     	alert("status is " + request.status);
     	}
 	}
}

function CheckEmail(email){
var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
if (filter.test(email))
	{
	return true;
	}
else
	{
	return false;
	}
}

/********************************/
/* End of forgotten log in code */
/********************************/

/***************************************/
/* Code to deal with change of details */
/***************************************/

function Change(){
state = document.getElementById("change").style.display;
state = (state == 'block')?'none':'block';
document.getElementById("change").style.display = state;

document.changedetails.oldusername.value = document.entrance.username.value;
document.changedetails.oldpassword.value = document.entrance.password.value;
}

function ChangeDetails(){
oldusername = document.changedetails.oldusername.value;
oldpassword = document.changedetails.oldpassword.value;
newusername = document.changedetails.newusername.value;
newpassword = document.changedetails.newpassword.value;

if (!oldusername && !oldpassword && !newusername && !newpassword) Change();

if (!oldusername)
	{
	document.changedetails.oldusername.focus();
	return;
	}

if (!oldpassword)
	{
	document.changedetails.oldpassword.focus();
	return;
	}

if (!newusername)
	{
	document.changedetails.newusername.focus();
	return;
	}

if (!newpassword)
	{
	document.changedetails.newpassword.focus();
	return;
	}

	url = "PHP/changeDetails.php?oldusername=" + oldusername;
	url += "&oldpassword=" + oldpassword;
	url += "&newusername=" + newusername;
	url += "&newpassword=" + newpassword;
	request.open("GET", url, true);
	request.onreadystatechange = ChangeResponse;
	request.send(null);
}

function ChangeResponse(){
if (request.readyState == 4)
 	{
 	if (request.status == 200)
   		{
     	response = request.responseText;
     	response = trim(response);

     	if (response == "Unknown")
     		{
     		message = "The username and/or\r\n";
     		message += "password is incorrect.\r\n\r\nClick [ Help ] to retrieve\r\n";
     		message += "your username & password.\r\n\r\n";
     		message += "Thank you.";
     		}

     	if (response == "Expired")
     		{
     		message = "Your subscription has expired.\r\n\r\n";
     		message += "To renew, please call Kimmi Crosby\r\n";
     		message += "on +44 (0)1763 223223 or e-mail\r\n";
     		message += "kim@WalnutMedical.info.\r\n\r\n";
     		message += "Thank you.";
     		}

     	if (response == "Created" )
     		{
     		message = "Your new username and/or password\r\nhas been registered.\r\n\r\n";
     		message += "An e-mail confirming the details\r\nhas been sent to your address.";
     		document.entrance.username.value = document.changedetails.newusername.value;
     		document.entrance.password.value = document.changedetails.newpassword.value;

     		CrumbleCookies();
     		document.getElementById("remember").disabled = false;
     		}
     		
     	alert(message);
     	Change();
     	}
 	else
		{
     	alert("status is " + request.status);
     	}
 	}
}

/****************************/
/* End of change of details */
/****************************/

/****************************/
/* Check for Cookies        */
/* Load boxes with the data */
/****************************/
function CheckCookies(){
var uname = GetCookie('username');
var pword = GetCookie('password');
if (!uname || !pword || uname === null || pword === null)
	{
	document.entrance.username.value = "";
	document.entrance.password.value = "";
	return;
	}

document.entrance.username.value = uname;
document.entrance.password.value = pword;
document.getElementById("remember").disabled = true;
document.getElementById("help").disabled = true;
}

function GetCookie(name) {
var start = document.cookie.indexOf( name + "=" );
var len = start + name.length + 1;
if (( !start ) && (name != document.cookie.substring( 0, name.length )))
	{
	return null;
	}
if ( start == -1 ) return null;
var end = document.cookie.indexOf( ";", len );
if ( end == -1 ) end = document.cookie.length;
return unescape(document.cookie.substring(len, end ));
}


function CrumbleCookies(){
var value = "";
var date = new Date();
date.setTime(date.getTime()+(-1*24*60*60*1000));
var expires = "; expires="+date.toGMTString();

document.cookie = "username = " + value +  expires + "; path=/";
document.cookie = "password = " + value +  expires + "; path=/";

}
/***********************/
/* End of cookie check */
/***********************/

/************************/
/* Code to prevent user */
/* logging in twice     */
/************************/

function CheckIfLoggedIn(){
var url = "PHP/checkLog.php";
request2.open("GET", url, true);
request2.onreadystatechange = DealWithLog;
request2.send(null); 
}

function DealWithLog(){
if (request2.readyState == 4)
	{
	if (request2.status == 200)
   		{
     	var response = trim(request2.responseText);
     	if (response == "No")
     		{
     		enter.disabled = false;
     		}
     	else
     		{
     		enter.disabled = true;
     		document.getElementById("databasechoice").style.display = (response == "E")?'block':'none';
     		document.getElementById("databasechoicebody").style.display = (response == "E")?'block':'none';
     		document.getElementById("managementchoice").style.display = (response == "M")?'block':'none';
     		if (response.indexOf('|') != -1)
     			{
     			registerparts = response.split("|");
     			FillMultichoice(registerparts);
     			} 
     		}
     	} 
	else
   		{
     	alert("status is " + request2.status);
     	}
 	}
}
/*****************************/
/* End of double log-in code */
/*****************************/

/***************************************/
/* Function to log off & clear details */
/***************************************/

function LogOff(){
document.entrance.username.value = "";
document.entrance.password.value = "";
document.getElementById("enter").disabled = false;
document.getElementById("changebutton").disabled = false;
document.getElementById("remember").disabled = false;
document.getElementById("help").disabled = false;

document.getElementById("databasechoice").style.display = 'none';
document.getElementById("databasechoicebody").style.display = 'none';
document.getElementById("managementchoice").style.display = 'none';
document.getElementById("multichoice").style.display = 'none';
document.getElementById("multichoicetop").style.display = "none";
CrumbleCookies();

var url = "PHP/destroySession.php";
request.open("GET", url, true);
request.send(null);
}
