var request;
var email2check;
var nick2check;
var emailaddressrequired='[email address required]'
var emailaddressnotrequired='[Not required]'
var bm_mode;
var journalGUID;
var kh
var searchterm;

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);
		}
	}
}

//=========== MANAGE IMAGES ================
function doChangeImage(incontrol){
	var target,imgSRC,srcArray,sel,imageOp,url,resArray;
	var d=new Date();
	var t=d.getTime();

	incontrol.disabled=true;
	target=document.getElementById(incontrol.id.replace('change',''));
	var op=incontrol.id.split('_')[0];
	var GUID=incontrol.id.split('_')[1];
	createRequest();
	switch(op){
		case 'changeimage':
			sel=document.getElementById('ops_'+GUID);
			if(sel.selectedIndex==0){
				alert('No action selected for this photo');
				incontrol.disabled=false;
				return;
			}
			target.style.visibility='hidden';
			imgSRC=target.src;
			srcArray=imgSRC.split('.');
			ext=srcArray[srcArray.length-1];
			/*
			target.style.width='32px';
			target.style.height='32px';
			target.src='/images/ajax-loader.gif';
			*/
			imageOp=sel[sel.selectedIndex].value.split('_')[0];
			sel.style.disabled=true;
			url = '/profiles/domanagephotos.asp?op='+op + '&imageOp='+imageOp +'&ext='+ext;
			data='GUID='+GUID;
			break;
		case 'changecaption':
			target.disabled=true;
			data='GUID='+GUID + '&caption='+encodeURIComponent(target.value);
			url = '/profiles/domanagephotos.asp?op='+op;
			break;
	}
	request.open('POST', url, false);
	request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	request.setRequestHeader("Content-Length", data.length);
	request.send(data);
	var resArray=request.responseText.split('\t');
	request=null;
	switch(op){
		case 'changeimage':
			target.src=imgSRC+'?'+t;
			var iWidth=resArray[1];
			var iHeight=resArray[2]
			target.style.width='100px';
			target.style.height=(iHeight * 100 /iWidth) + 'px';
			sel.style.disabled=false;
			sel.selectedIndex=0
			target.style.visibility='visible';
			if(imageOp=='delete'){
				removeRow(GUID);
			}
			break;
		case 'changecaption':
			alert(resArray[0]);
			target.disabled=false;
			break;
	}
	incontrol.disabled=false;
}

function removeRow(inGUID){
	var imageCount=checkPhotoRows();
	var row=document.getElementById('tr_'+inGUID);
	row.parentElement.removeChild(row);
	if(imageCount==0){
		displayNoPhotoMessage();
	}
	document.getElementById('tab1').innerHTML='Manage photos ('+imageCount+')';
	/*
	var trArray=container.getElementsByTagName('tr');
	for(var t=0;t<trArray.length;t++){
		if(trArray[t].id=='tr_'+inGUID){
			trArray[t].parentElement.removeChild(trArray[t]);
		}
	}
	*/
}

function checkPhotoRows(){
	var count=0;
	var container=document.getElementById('tblManagePhotos');
	var trArray=container.getElementsByTagName('tr');
	for(var t=0;t<trArray.length;t++){
		if(trArray[t].id){
			count=count++;
		}
	}
	return count;
}

function displayNoPhotoMessage(){
	var target=document.getElementById('manageImagesHeader');
	target.innerHTML='<div class="smallbrown">You have no photos in your profile.</div><div class="smallbrown">Click on the next tab to upload some</div>';
}

function reportDeleteImage(incounter,op){
	incounter=incounter*1;
	// /profilesDB/permchastitylock/{F479297F-3B82-4ABC-BCC4-7C1E6307DE65}.jpg|dog locked'
	//http://www.lockedm4m.net/_admin/removeimage.asp?guid={F7B679C3-D1F0-468A-B05A-8FC977B49458}
	var badImageArray=imagearray[incounter].split('|');
	var badNick=badImageArray[0].split('\/')[2];
	var badGUID=badImageArray[0].split('\/')[3].split('.')[0];
	switch(op){
		case 'report':
			var res=prompt('Why do you wish to report this photo:\n"' + badImageArray[1] + '"?');
			if(res!=null && res!=''){
				sendReport(badGUID,res);
			}
			break;
		case 'delete':
			window.open('/_admin/removeimage.asp?guid='+badGUID);
			break;
		default:
			alert(op);
			break;
	}
}

function sendReport(GUID,data){
	createRequest();
	url='/profiles/reportimage.asp?GUID='+GUID + '&data='+data;
	request.open('GET', url, true);
	request.onreadystatechange = doSendReport;
	request.send(null);
}

function doSendReport(){
	//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);
		}
	}
}

function refreshrandomimages(){
	createRequest();
	var url = '/ajax/ajax_getdata.asp?mode=refreshtrandomimages';
	request.open('GET', url, true);
	request.onreadystatechange = dorefreshrandomimages;
	request.send(null);
}

function dorefreshrandomimages(){
	//alert('ready');
	//return;
	if (request.readyState == 4) {
		if (request.status == 200) {
			var response = request.responseText;
			var target=document.getElementById('divRandomimages')
			target.style.visibility='hidden';
			target.innerHTML=response;
			target.style.visibility='visible';
			request=null;
		}
		else {
			alert('bad status is ' + request.status);
		}
	}
}

function search4Nick(){
	searchterm=document.getElementById('inputSearchNick').value;
	searchterm=searchterm.replace (/ /ig,'');
	if(searchterm.length>0){
		var t=Math.random().toString().replace('0.','');
		document.getElementById('searchNick').style.backgroundImage='url(/images/search_progress.gif)';
		createRequest();
		var url = '/ajax/ajax_getdata.asp?t='+t+'&mode=findByNick&nick='+searchterm;
		request.open('GET', url, true);
		request.onreadystatechange = doSearch4Nick;
		request.send(null);
	}
}

function doSearch4Nick(){
	if (request.readyState == 4) {
		if (request.status == 200) {
			var response = request.responseText;
			var responseArray=response.split('\t');
			if(request){
				request=null;
			}
			var target=document.getElementById('searchData')
			target.innerHTML='';
			document.getElementById('searchResheading').style.display='block';
			target.innerHTML=response;
			target.innerHTML=responseArray[0];
			target.style.display='block';
			document.getElementById('searchNick').style.backgroundImage=null; //'url(/images/ajax-loader.gif)';
			if(responseArray[1]){
				document.getElementById('searchCount').innerHTML=responseArray[1];
			}
			else{
				document.getElementById('searchCount').innerHTML='0';
			}
			if(responseArray[2]){
				console.log(response.split('\t')[2]);
			}
		}
		else {
			alert('bad status is ' + request.status);
		}
	}
}

