var request;
var email2check;
var nick2check;
var emailaddressrequired='[email address required]'
var emailaddressnotrequired='[Not required]'
var bm_mode;
var journalGUID;
var kh

function isURL(invalue){
	invalue=unescape(invalue);
	return (invalue.search(/(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?/) != -1);
}


function createRequest() {
  try {
    request = new XMLHttpRequest();
  } catch (trymicrosoft) {
    try {
      request = new ActiveXObject('Msxml2.XMLHTTP');
    } catch (othermicrosoft) {
      try {
        request = new ActiveXObject('Microsoft.XMLHTTP');
      } catch (failed) {
        request = false;
        alert('failed');
      }
    }
  }
  if (!request){
    alert('Error initializing XMLHttpRequest!');
    }
}

//=========== CHAT USERS ================
function getLoggedInCount(){
	//return;
	createRequest();
	var url = '/ajax/ajax_chatusers.asp';
	request.open('GET', url, true);
	request.onreadystatechange = showChatUsers;
	request.send(null);
}

function showChatUsers(){
	//alert('ready');
	//return;
	if (request.readyState == 4) {
		if (request.status == 200) {
			var response = request.responseText;
			//alert(response);
			document.getElementById('divchatusers').innerHTML=response.split('|')(1);
				request=null;
		}
		else {
			alert('bad status is ' + request.status);
		}
	}
}

//=========== EMAIL CHECK ================
function checkEmail(inemail){
	email2check=inemail;
	if (isEmail(email2check)==false){
		alert('Invalid format email address')
		return;
	}
	createRequest();
	var url = '/ajax//ajax_checksignup.asp?mode=email&data='+inemail;
	request.open('GET', url, true);
	request.onreadystatechange = getEmailOK;
	request.send(null);
}

function getEmailOK(){
	//alert('ready');
	//return;
	if (request.readyState == 4) {
		if (request.status == 200) {
			var response = request.responseText;
			var emailwarning=document.getElementById('bademail')
			var jsignupbutton=document.getElementById('signupButton');
			var jdivPassword=document.getElementById('div_Password');
			var jdivNick=document.getElementById('div_Nick');

			if (response==email2check){
				emailwarning.style.display='';
				emailwarning.innerHTML='There is already a log-in for this email address. Use the link above if you have forgotten your password';
				jsignupbutton.disabled=true;
				jdivPassword.style.display='none';
				jdivNick.style.display='none';

				}
			else{
				emailwarning.style.display='none';
				jsignupbutton.disabled=false;
				jdivPassword.style.display='';
				jdivNick.style.display='';
			}
			request=null;
		}
		else {
			alert('bad status is ' + request.status);
		}
	}
}

//=========== NICK CHECK ================
function checkNick(nick){
	nick2check=nick;
	createRequest();
	var url = '/ajax/ajax_checksignup.asp?mode=nick&data='+nick;
	request.open('GET', url, true);
	request.onreadystatechange = getNickOK;
	request.send(null);
}

function getNickOK(){
	//alert('ready');
	//return;
	if (request.readyState == 4) {
		if (request.status == 200) {
			var response = request.responseText;
			var nickwarning=document.getElementById('badnick')
			var jsignupbutton=document.getElementById('signupButton');
			if (response==nick2check){
				nickwarning.style.display='';
				jsignupbutton.disabled=true;
				}
			else{
				nickwarning.style.display='none';
				jsignupbutton.disabled=false;
			}
			request=null;
		}
		else {
			alert('bad status is ' + request.status);
		}
	}
}

//=========== LEAVE CHAT ================
function leaveChat(nick){
	return;
	//DISABLED FOR NOW
	createRequest();
	var url = '/ajax//ajax_leavechat.asp?nick='+nick;
	request.open('GET', url, true);
	request.onreadystatechange = doLeaveChat;
	request.send(null);
}

function doLeaveChat(){
	//alert('ready');
	//return;
	if (request.readyState == 4) {
		if (request.status == 200) {
			var response = request.responseText;
				request=null;
		}
		else {
			alert('bad status is ' + request.status);
		}
	}
}
//=========== REFRESH STING ================
function jsGetSting(){
	createRequest();
	var url = '/ajax/ajax_getsting.asp';
	request.open('GET', url, true);
	request.onreadystatechange = returnString;
	request.send(null);
}

function returnString(){
	//alert('ready');
	//return;
	var temp,sting;
	if (request.readyState == 4) {
		if (request.status == 200) {
			var response = request.responseText;
			request=null;
			showSting(response);
			/*
			sting=document.getElementById('sting');
			sting.innerHTML='<strong>&ldquo;</strong>'+response+'<strong>&rdquo;</strong>';
			*/
			/*
			for(var i=0;i<response.length+1;i++){
				temp='&ldquo;'+ response.slice(0,i) + '&rdquo';
				document.getElementById('sting').innerHTML=temp;
				}
			*/
		}
		else {
				document.getElementById('sting').innerHTML='A locked boy is a happy boy';
		}
	}
}

//=========== IS LOGGED IN ================
function isLoggedIn(){
	createRequest();
	var url = '/ajax/ajax_isloggedin.asp';
	request.open('GET', url, true);
	request.onreadystatechange = getIsLoggedIn;;
	request.send(null);
}

function getIsLoggedIn(mode){
	//alert('ready');
	//return;
	if (request.readyState == 4) {
		if (request.status == 200) {
			var response = request.responseText;
			//alert(response);
				if(response!='OK'){
					switch (mode){
						case 'root':
							document.location.href='/';
							break;
						case 'chat':
							opener.document.location.href='/';
							self.close;
							break;
					}
				}
				request=null;
		}
		else {
			alert('bad status is ' + request.status);
		}
	}
}
//=========== BINGO CHECK ================
function checkBingoNick(nick){
	nick2check=nick;
	createRequest();
	var url = '/ajax/ajax_checksignup.asp?mode=nick&data='+nick;
	request.open('GET', url, true);
	request.onreadystatechange = getBingoNickOK;
	request.send(null);
}

function getBingoNickOK(){
	//alert('ready');
	//return;
	if (request.readyState == 4) {
		if (request.status == 200) {
			var response = request.responseText;
			if(response==nick2check){
				document.getElementById('isRegistered'.value='OK')
				document.getElementById('recipientemail').value=emailaddressnotrequired;
				document.getElementById('recipientemail').disabled=true;
				emailRecipientInternal=false;
			}
			else{
				document.getElementById('isRegistered'.value='')
				document.getElementById('recipientemail').value=emailaddressrequired;
				document.getElementById('recipientemail').disabled=false;
				document.getElementById('recipientemail').focus();
				emailRecipientInternal=false;
			}
			request=null;
		}
		else {
			alert('bad status is ' + request.status);
		}
	}
}

//=========== BINGO EMAIL ================
function sendBingoResult(recipientname,recipientemail,redball,blueball,mode){
	createRequest();
	var url = '/ajax/ajax_sendbingo.asp?rn='+recipientname+'&re='+recipientemail+'&red='+redball+'&blue='+blueball+'&mode='+mode;
	request.open('GET', url, true);
	request.onreadystatechange = sendBingoResultNow;
	request.send(null);
}

function sendBingoResultNow(){
	//alert('ready');
	//return;
	if (request.readyState == 4) {
		if (request.status == 200) {
			var response = request.responseText;
			alert(response);
			request=null;
		}
		else {
			alert('Sorry, there has been a problem sending the email');
		}
	}
}

//=========== RECENT ACTIVITY ================
function getRecentActivity(){
	createRequest();
	var url = '/ajax/ajax_recentactivity.asp';
	request.open('GET', url, true);
	request.onreadystatechange = doGetRecentActivity;
	request.send(null);
	//ret=setTimeout("jsGetSting()",30000);
}

function doGetRecentActivity(){
	//alert('ready');
	//return;
	if (request.readyState == 4) {
		if (request.status == 200) {
			var response = request.responseText;
				alert(response);
				request=null;
		}
		else {
			alert('bad status is ' + request.status);
		}
	}
}

//=========== SET BOOKMARK ================
function bookmark(inparams){
	switch(document.getElementById('bmtext').innerHTML){
		case jsetbmtext:
			bm_mode='set';
			break;
		case jclearbmtext:
			bm_mode='clear';
			break;
	}
	createRequest();
	var url = '/ajax/ajax_bookmark.asp?mode='+bm_mode+'&data='+inparams;
	request.open('GET', url, true);
	request.onreadystatechange = doBookmark;
	request.send(null);
	//ret=setTimeout("jsGetSting()",30000);
}

function doBookmark(){
	//alert('ready');
	//return;
	if (request.readyState == 4) {
		if (request.status == 200) {
			var response = request.responseText;
			if(response="OK"){
				marker=document.getElementById('bmtext');
				switch(bm_mode){
					case 'set':
						marker.innerHTML=jclearbmtext;
						break;
					case 'clear':
						marker.innerHTML=jsetbmtext;
						break;
				}
				window.location.reload();
			}
			request=null;
		}
		else {
			alert('bad status is ' + request.status);
		}
	}
}

//=========== PROGRESS COUNTER KH VALIDATION ================
function getkhguid(incontrol){
	createRequest();
	kh=incontrol.value
	var url = '/ajax/ajax_getdata.asp?mode=getkhguid&data='+kh;
	request.open('GET', url, true);
	request.onreadystatechange = doGetkhguid;
	request.send(null);
}

function doGetkhguid(){
	//alert('ready');
	//return;
	if (request.readyState == 4) {
		if (request.status == 200) {
			var response = request.responseText;
			var pkh=document.getElementById('progresskh');
				if(response!='not found' && response!='error'){
					document.getElementById('prkhguid').value=response;
					markError(pkh,false);
				}
				else{
					markError(pkh,true);
					alert('User "' + kh + '" not found');
					pkh.focus();
				}
				request=null;
		}
		else {
			alert('bad status is ' + request.status);
		}
	}
}
