//checks whether the user has signed in before proceeding to chat.
//if the user is not signed in displays a signin message.
function memberAccess(){
	cookie_value = getCookie('u_session');
	if(cookie_value == ' ' || cookie_value == 'undefined' || cookie_value == ''){
		var please_signin_object = document.getElementById("please_signin");
		please_signin_object.style.left = "395px";
		please_signin_object.style.top = "30px";
		var page_width = document.documentElement.clientWidth + document.documentElement.scrollLeft;
		var signin_pagebg = document.createElement('div');
		signin_pagebg.id = 'signin_pagebg';
		signin_pagebg.style.zIndex = 2;
		signin_pagebg.style.position = 'absolute';
		signin_pagebg.style.top = '0px';
		signin_pagebg.style.left = '0px';
		signin_pagebg.style.height = document.documentElement.scrollHeight + 'px';
		signin_pagebg.style.width = page_width + 'px';
		signin_pagebg.style.backgroundColor = 'black';
		signin_pagebg.style.opacity = '0.5';
		signin_pagebg.style.filter += ("progid:DXImageTransform.Microsoft.Alpha(opacity=50)");
    	document.body.appendChild(signin_pagebg); 
		please_signin_object.style.display = document.all ? "":"";
		//var page_height = document.documentElement.scrollHeight;
		//window.scrollBy(0, - + page_height);
		window.scrollBy(0, -2600);
		return false;
	}else{
		return true;
	}
}

//executes when he user clicks ok on the please signin div
function please_ok_button(){
	document.body.removeChild(document.getElementById("signin_pagebg"));
	document.getElementById("please_signin").style.display = "none";
	document.getElementById("username").focus();
}

var checkChatInterval = 0;
function setCookie(name, value){
	var ExpireDate=new Date();
	ExpireDate.setTime(ExpireDate.getTime() + (2 * 3600 * 1000));
	//ExpireDate=getTime() + expire;
	document.cookie = name + "=" + value + "; expires=" + ExpireDate.toGMTString(); 
}

function setSessionCookie(){
	var present = getCookie('u_session');
	if(present != ' ' && present != 'undefined' && present !=''){
		var ExpireDate=new Date();
		ExpireDate.setTime(ExpireDate.getTime() + (2 * 3600 * 1000));
		//ExpireDate=getTime() + expire;
		document.cookie = 'u_session' + "=" + present + "; expires=" + ExpireDate.toGMTString(); 
	}
}


function getCookie(name){
 	if(document.cookie.length>0){
  		start=document.cookie.indexOf(name + "=");
		if(start==-1){
			return "";
		}else{
			start=start + name.length+1;
			end=document.cookie.indexOf(";", start);
  			if(end==-1) {end=document.cookie.length;}
 			return document.cookie.substring(start,end);
		}
	}else{
		return "";
	}
 }
 
 function delCookie(name){
	 if(getCookie(name)!=""){
	var ExpireDate=new Date();
	ExpireDate.setTime(ExpireDate.getTime() - (2 * 3600 * 1000));
		document.cookie=name + "=" + "; expires=" + ExpireDate.toGMTString(); 
	}
 }

function request(){
	if(window.XMLHttpRequest){
		return new XMLHttpRequest();
	}
	else if(window.ActiveXObject){
		return new ActiveXObject("Microsoft.XMLHttp");
	}else{
		document.getElementById("status").innerHTML = 'Your browser does not support this chat facility.' +  
		' Consider upgrading your browser.';
	}
}

signinReq = request();
logoutReq = request();
deleteLogReq = request();
var actionMsg = '';

function enter()
{
	var username = document.getElementById("username").value;
	var password = document.getElementById("password").value;
	if(username != "Username" && username != "" && password != "Password" && password != "")
	{
		document.getElementById("signin_button").style.display = "none";
		document.getElementById("signin_pic").style.display = document.all ? "":"";
		clearInterval(subsequentCheckInterval);
		if((signinReq.readyState == 4 || signinReq.readyState == 0) && username != "" && password != "")
		{
			signinReq.open("GET", 'signin_process.php?user=' + username + '&pass=' + password, true);
			signinReq.onreadystatechange = handleEnter;
			signinReq.send(null);
		}
	}
}


function handleEnter(){
	if(signinReq.readyState == 4 )
	{
		var xmldoc = signinReq.responseXML;
		var message_node = xmldoc.getElementsByTagName("package");
		var signin_pic = document.getElementById("signin_pic");
		if(message_node.length > 0)
		{
			var reply = message_node[0].getElementsByTagName("resp");
			var db_response = reply[0].firstChild.nodeValue;
			var user = message_node[0].getElementsByTagName("user");
			var username = user[0].firstChild.nodeValue;
			var modified_node = message_node[0].getElementsByTagName("test");
			var modified = modified_node[0].firstChild.nodeValue;
			//alert(db_response);
			if(db_response == "allow" || db_response == "used"){
				setCookie('u_session', username);
				setCookie('mode', modified);
				welcome_msg = "Welcome";
				welcome = welcome_msg.bold();
				document.getElementById("signin_button").style.display = "none";
				document.getElementById("username").style.display = "none";
				document.getElementById("password").style.display = "none";
				document.getElementById("forgot").style.display = "none";
				document.getElementById("newuser").style.display = "none";
				document.getElementById("signup").style.display = "none";
				signin_pic.style.display = "none";
				document.getElementById("aftersign").innerHTML = welcome + ' ' + username + ' to a world of oppurtuinities.';
				document.getElementById("aftersign").style.display = document.all ? "":"";
				document.getElementById("signout_button").style.display = document.all ? "":"";
				document.getElementById("edit").style.display = document.all ? "":"";
				if(checkChatInterval == 0){interval = setInterval('top.chatHandle.checkChat()', 3000);	checkChatInterval = 1;}
			}else if(db_response == "prevent"){
				var after_msg = document.getElementById("aftersign");
				signin_pic.style.display = "none";
				actionMsg = 'Wrong';
				if(db_response == "prevent")after_msg.innerHTML = 'Wrong'; else after_msg.innerHTML = 'In Use';
				document.getElementById("aftersign").style.display = document.all ? "":"";
				document.getElementById("username").style.display = document.all ? "":"";
				document.getElementById("password").style.display = document.all ? "":"";
				document.getElementById("forgot").style.display = document.all ? "":"";
				document.getElementById("newuser").style.display = document.all ? "":"";
				document.getElementById("signup").style.display = document.all ? "":"";
				document.getElementById("signin_button").style.display = document.all ? "":"";
				if(checkChatInterval == 1){clearInterval(interval);	checkChatInterval = 0;}
			}
		}
		subsequentCheckInterval = setInterval("subsequentCheck()", 5000);
		
	}
}
	

function logoutWarning()
{
	var page_width = screen.width;
	signin_pagebg = document.createElement('div');
	signin_pagebg.id = 'signin_pagebg';
	signin_pagebg.style.zIndex = 2;
	signin_pagebg.style.position = 'absolute';
	signin_pagebg.style.top = '0px';
	signin_pagebg.style.left = '0px';
	signin_pagebg.style.height = document.documentElement.scrollHeight + 'px';
	signin_pagebg.style.width = page_width + 'px';
	signin_pagebg.style.backgroundColor = 'black';
	signin_pagebg.style.opacity = '0.5';
	signin_pagebg.style.filter += ("progid:DXImageTransform.Microsoft.Alpha(opacity=50)");
	document.body.appendChild(signin_pagebg);
	//top.chatpage.document.body.appendChild(signin_pagebg);
	window.scrollBy(0, -2600);
	document.getElementById("signout_warning").style.display = document.all ? "":"";
}

function logoutAccept()
{
	document.body.removeChild(signin_pagebg);
	document.getElementById("signout_warning").style.display = "none";
	top.chatHandle.clearAll();
	top.document.getElementsByTagName('frameset')[0].cols = "*,0";
	top.chatHandle.frameSize = 0;
	logout();
	usersOnline();
}

function logoutCancel()
{
	document.body.removeChild(signin_pagebg);
	document.getElementById("signout_warning").style.display = "none";
}


function logout(){
	clearInterval(subsequentCheckInterval)
	if(checkChatInterval){clearInterval(checkChatInterval)}
	if(logoutReq.readyState == 4 || logoutReq.readyState == 0){
		var username = getCookie('u_session');
		delCookie('u_session');
		delCookie('mode');
		logoutReq.open("GET", 'signin_process.php?username=' + username, true);
		logoutReq.onreadystatechange = handleLogout;
		logoutReq.send(null);
	}
}

function logoutActions(){
	document.getElementById("signin_pic").style.display = "none";
	document.getElementById("signout_button").style.display = "none";
	//document.getElementById("aftersign").style.display = document.all ? "":"";
	document.getElementById("username").style.display = document.all ? "":"";
	document.getElementById("password").style.display = document.all ? "":"";
	document.getElementById("signin_button").style.display = document.all ? "":"";
	document.getElementById("forgot").style.display = document.all ? "":"";
	document.getElementById("newuser").style.display = document.all ? "":"";
	document.getElementById("signup").style.display = document.all ? "":"";
	document.getElementById("edit").style.display = "none";
}

function handleLogout(){
	if(logoutReq.readyState != 4)
	{
		document.getElementById("signout_button").style.display = "none";
		document.getElementById("signin_pic").style.display = document.all ? "":"";
	}
	if(logoutReq.readyState == 4)
	{
		
		var goodbye_msg = "Bye";
		var goodbye = goodbye_msg.bold();
		document.getElementById("aftersign").innerHTML = goodbye;
		document.getElementById("username").value = "Username";
		document.getElementById("password").value = "Password";
		logoutActions();
		top.chatHandle.clearAll();
		actionMsg = 'Bye';
		subsequentCheckInterval = setInterval("subsequentCheck()", 5000);
	}
	
}

function checkSigninNotNull(){
	welcome_msg = "Welcome";
	welcome = welcome_msg.bold();
	document.getElementById("username").style.display = "none";
	document.getElementById("password").style.display = "none";
	document.getElementById("forgot").style.display = "none";
	document.getElementById("newuser").style.display = "none";
	document.getElementById("signup").style.display = "none";
	document.getElementById("signin_pic").style.display = "none";
	document.getElementById("signin_button").style.display = "none";
	document.getElementById("aftersign").style.display = document.all ? "":"";
	document.getElementById("signout_button").style.display = document.all ? "":"";
}

//This function checks for already signed in users on page load.
function checkSignin(c_name){
	if(c_name == ' ' || c_name == 'undefined' || c_name == ''){
		logoutActions();
		if(checkChatInterval == 1){clearInterval(interval);	checkChatInterval = 0;}
	}else{
		checkSigninNotNull();
		document.getElementById("aftersign").style.display = document.all ? "":"";
		document.getElementById("aftersign").innerHTML = welcome + ' ' + c_name + ' to a world of oppurtuinities.';
		document.getElementById("edit").style.display = document.all ? "":"";
		if(checkChatInterval == 0){interval = setInterval('top.chatHandle.checkChat()', 3000);	checkChatInterval = 1;}
	}
}

//This function periodically checks whether the cookie is still available and assumes the user has signed out. If //cookie is absent.
function subsequentCheck()
{
	var still_cookie = getCookie('u_session');
	if(still_cookie == ' ' || still_cookie == 'undefined' || still_cookie == '')
	{
		document.getElementById("aftersign").innerHTML = actionMsg;
		logoutActions()
		if(checkChatInterval == 1){clearInterval(interval);	checkChatInterval = 0;}
	}
	else
	{
		checkSigninNotNull();
		document.getElementById("aftersign").innerHTML = welcome + ' ' + still_cookie + ' to a world of oppurtuinities.';
		document.getElementById("edit").style.display = document.all ? "":"";
		if(checkChatInterval == 0){interval = setInterval('top.chatHandle.checkChat()', 3000);	checkChatInterval = 1;}
	}
}

function deleteStaleLogin()
{
	deleteLogReq.open("GET", 'second_online_user_pro.php', true);
	deleteLogReq.onreadystatechange = handleEnter;
	deleteLogReq.send(null);
}

function moveUrl(){
	var url = window.location.href;
	var index = url.lastIndexOf("/");
	var suburl = url.substring(index + 1, url.length);
	window.location.assign("sign_up.php?address=" + suburl);
}

function editlink(){
	var www = window.location.href;
	var index = www.lastIndexOf("/");
	var subwww = www.substring(index + 1, www.length);
	window.location.assign("edit_profile.php?address=" + subwww);
}

