/*
AnoBBS loadscript: anochat_mainwin.js v. 1.0 
The main window 'BBS search/start' functions and open BBSwin function
*/

// Set the skins directory for bbs
var bsetskindir = 'bbs';
// Set the php-script for the bbs search
var urlbs = 'sbbs.php';
// For bbs search, main page. Catches 'Enter' (Carriage return)
function handlebbKeyPress(e) {
if (!e) e = window.event;
	// Triggers on keycode Enter
	if (e && e.keyCode == 13) {
		qUery_bcode(); 
	}
}
// Wether or not to have the auth code field type in window as password or text. Values: text | password
var xinput = 'password';

// The BBS window. It is created by javascript and loads all functionality needed to run
function retBBSz(tCode, dSkin, dSeedz) {
	var setcol1w = '80%';
	var setcol2w = '20%';
	var sknstr = bsetskindir+'/'+dSkin;
	var dox = '<meta http-equiv="Pragma" content="no-cache">\n';
  dox += '<META HTTP-EQUIV="Expires" CONTENT="-1">\n';
	dox += '<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\n';
	dox += '<scr' + 'ipt language="javascript" src="js/anochat_system.js"></scr' + 'ipt>\n';
	dox += '<scr' + 'ipt language="javascript" src="js/anobbs_vars.js"></scr' + 'ipt>\n';
	dox += '<scr' + 'ipt language="javascript" src="js/anobbs.js"></scr' + 'ipt>\n';
	dox += '<scr' + 'ipt language="javascript" src="js/md5.js"></scr' + 'ipt>\n';
	dox += '<scr' + 'ipt language="javascript" src="js/tripleDes.js"></scr' + 'ipt>\n';
	dox += '<link rel="STYLESHEET" type="text/css" href="'+bsetskindir+'/'+dSkin+'/anobbs.css">\n';
	var xtHeader = '<html>\n<head>\n<title>BBS-node: '+tCode+'</title>\n'+dox+'</head>\n';
	xtHeader = xtHeader + '<body class="bbsbody">\n';
	var xtEnd = '</body>\n</html>';
	var xTip = '';
	var retstrtTbl = '<table width="100%" cellpadding="2" cellspacing="0" border="0" class="bbsForumtable">^XTROWS^</table>';
	var tstrtheadl = '<span class="bbsUtiltext" style="margin-left:20px">'+bbslang[1]+'</span><br>';
	var execaform = '<input type="'+xinput+'" name="'+dSeedz+'" id="'+dSeedz+'" value="" class="fieldSubject" autocomplete="off" onKeypress="mAuth(event)" style="width:200px;margin-left:20px">\n'
	+'<input type="button" name="autset" id="autset" value="'+bbslang[76]+'" class="cbutton" style="margin-left:20px" onClick="setbsAcode()">\n'
	var retcTsr = '<tr><td align="left" valign="top" class="bbsTdhead">'+bbslang[1]+'</td></tr>';
	retcTsr += '<tr><td align="left" valign="top" class="bbsTime">&nbsp;</td></tr>';
	retcTsr += '<tr><td align="left" valign="top" class="bbsMsg">'+tstrtheadl+execaform+'<br></td></tr>';
	retcTsr += '<tr><td align="left" valign="top" class="bbsTime">&nbsp;</td></tr>';
	retstrtTbl = retstrtTbl.replace("^XTROWS^", retcTsr);
	var xtrets = '<span id="authleftfloat" name="authleftfloat" class="authleftfloat"></span><span id="authrightfloat" id="authrightfloat" class="authrightfloat"></span>';
	pReturn = '<table width="100%" cellpadding="0" cellspacing="0" border="0" class="mtbl">'
	+'<tr><td colspan="3" align="center" valign="top"><div id="bbshead" name="bbshead" class="bbshead">'+xtrets+'</div>\n</td></tr>\n'
	+'<tr><td width="55%" align="left" valign="top" name="forumlinks" id="forumlinks"></td>'
	+'<td width="5%" align="left" valign="top"><input type="text" name="msgs" id="msgs" value="" class="noborder"></td>'
	+'<td width="40%" align="right" valign="top" name="forumstats" id="forumstats"></td></tr>\n'
	+'<tr><td colspan="3" align="left" valign="top">\n'
	+'<table width="100%" cellpadding="0" cellspacing="0" border="0" class="mtbl">\n'
	+'<tr><td align="left" valign="top">\n'
	+'<input type="hidden" name="gskinstring" id="gskinstring" value="'+sknstr+'">\n'
	+'<input type="hidden" name="nick" id="nick" value="">\n'
	+'<input type="hidden" name="pxml" id="pxml" value="">\n'
	+'<input type="hidden" name="'+MD5(dSeedz)+'" id="'+MD5(dSeedz)+'" value="">\n'
	+'<input type="hidden" name="srcip" id="srcip" value="">\n'
	+'<input type="hidden" name="srcagent" id="srcagent" value="">\n'
	+'<input type="hidden" name="srcsessid" id="srcsessid" value="'+dSeedz+'">\n'
	+'<input type="hidden" name="exec" id="exec" value="srq">\n'
	+'<input type="hidden" name="acxpass" id="acxpass" value="">\n'
	+'<input type="hidden" name="crkey" id="crkey" value="">\n'
	+'<input type="hidden" name="cpkey" id="cpkey" value="">\n'
	+'<input type="hidden" name="cdkey" id="cdkey" value="">\n'
	+'</td>\n'
	+'<td align="left" valign="top" id="logform" name="logform"></td>\n'
	+'</tr></table>\n'
	+'</td></tr>\n'
	+'<tr>\n'
	+'<td colspan="3" align="left" valign="top"><br><br>\n'
	+'<table width="100%" cellpadding="0" cellspacing="0" border="0" class="mtbl">\n'
	+'<tr>\n'
	+'<td width="80%" align="left" valign="top"><div id="converse" name="converse" class="converse">'+retstrtTbl+'</div></td>\n'
	+'<td width="20%" align="left" valign="top" style="padding-right:12px"><div id="chroomh" name="chroomh" class="chroomh">'+bbslang[77]+'<br></div>\n'
	+'<div id="chroom" name="chroom" class="chroom"><br><br><br><br></div></td>\n'
	+'</tr>\n'
	+'<tr>\n'
	+'<td colspan="2" align="left" valign="top" name="xforumlink" id="xforumlink" style="padding-top:12px"></td>\n'
	+'</td></tr></table>\n'
	+'</td></tr>\n'
	+'</table>\n'
	+'<div id="rescroll" name="rescroll"><br></div>\n'
	windowdprops = 'menubar=yes,location=no,toolbar=no,scrollbars=yes,resizable=yes,status=yes,width=990,height=700,top=50,left=50';
	self.name = 'csd_main';
	runbbsdo = window.open("",'bbsd'+tCode,windowdprops);
	with (runbbsdo.document) {
		open();
		write(xtHeader + pReturn + xtEnd);
		runbbsdo.focus();
		close();
	}
}

// Function for unescaping the return in the search layer - deprecated
function dunescape() {
	var dislayer = getElement("esca");
	var dislayere = dislayer.innerHTML;
	dislayere = unescape(dislayere);
	dislayer.innerHTML = dislayere;
}

// Function for unescaping the return in the search layer, with decryption
function dunescapewdes(tdkey) {
  var dislayer = getElement("esca");
	var dislayere = dislayer.innerHTML;
	var dislayercrypt = des(tdkey, hexToString(Trim(dislayere)), 0, 0);
	dislayere = unescape(dislayercrypt);
	if(debug_mode == "1") {
	 alert(dislayere);
	}
	dislayer.innerHTML = dislayere;
}
// Function for unescaping the return in the search layer, direct search
function dusxescape() {
	var dislayer = getElement("middleD");
	var dislayere = dislayer.innerHTML;
	dislayere = unescape(dislayere);
	dislayer.innerHTML = dislayere;
}

function dusxescapewdes(trkey) {
  var dislayer = getElement("middleD");
	var dislayere = dislayer.innerHTML;
	var dislayercrypt = des(trkey, hexToString(Trim(dislayere)), 0, 0);
	dislayere = unescape(dislayercrypt);
	if(debug_mode == "1") {
	 alert(dislayere);
	}
	dislayer.innerHTML = dislayere;
}
// For querying for the bbs, main window
function qUery_bcode() {
	var uniqseed = new Date();
	var urk = uniqseed.toString();
	var ure = MD5(urk);
	var hidcode = Trim(getElement("query_bbcode").value);
	var qcode = Trim(getElement(hidcode).value);
	var sstate = Trim(getElement("searchstate").value);
	var doCP = MD5(MD5(qcode));
	var doCode = MD5(doCP);
	if(qcode != "") {
		var appendsearch = '';
		if(Trim(sstate) != '') {
			var doTQcrypt = des(doCode, doCP, 1, 0);
			var thexurl = '&xtq='+printHex(doTQcrypt);
			appendsearch = '&a=crcht&dsrc='+thexurl;
			sstate.value = '';
			} else {
			sstate.value = 'docreatechat';
		}
  	var jsel = document.createElement('SCRIPT');
  	jsel.type = 'text/javascript';
  	jsel.src = urlbs+'?q='+doCode+appendsearch+'&dummy='+ure;
  	document.body.appendChild(jsel);
	}
}

// Function for resetting values in the main window, as chatwindow loads
function resetMain() {
  if(sscript == "q.php") {
    var mwinlayer = getElement("middleD");
	  var bscontrol = getElement("searchstate");
	  mwinlayer.innerHTML = '';
    } else {
    var ocont = getElement("orgcont");
	  var searchst = getElement("searchstate");
	  var esclayer = getElement("esca");
	  var hidcode = Trim(getElement("query_bbcode").value);
	  var mwinfield = getElement(hidcode);
	  mwinfield.value = '';
	  ocont.value = "";
	  searchst.value = "";
	  esclayer.innerHTML = "";
  }
}

// Function for unescaping the return in the main layer - deprecated
function dunescapech() {
	var dislayer = getElement("middleD");
	var dislayere = dislayer.innerHTML;
	dislayere = unescape(dislayere);
	dislayer.innerHTML = dislayere;
}

// New function for unescaping the return in the main layer, after decrypting
function dunescapechdes(tdxkey) {
  var dislayer = getElement("middleD");
	var dislayere = dislayer.innerHTML;
	var dislayercrypt = des(tdxkey, hexToString(Trim(dislayere)), 0, 0);
	dislayere = unescape(dislayercrypt);
	if(debug_mode == "1") {
	 alert(dislayere);
	}
	dislayer.innerHTML = dislayere;
}

function doSelectedi(dxcode, dxseed){
	var stxsel = getElement("maBBS");
	var stix = stxsel.selectedIndex;
	if(stix > 0) {
		var dxskin = stxsel.options[stix].value;
		retBBSz(dxcode, dxskin, dxseed);
		if(sscript == "q.php") {
      resetQ();
      } else {
      resetMain();
    }
	}
}
		
// Do fetch of content, BBS search form
function qUery_mwcont(file) {
  var scrurl = "anochoice.php";
	var uniqseed = new Date();
	var urk = uniqseed.toString();
	var ure = MD5(urk);
	if(file != "") {
  	var jxsel = document.createElement('SCRIPT');
  	jxsel.type = 'text/javascript';
  	jxsel.src = scrurl+'?z='+file+'&dummy='+ure;
  	document.body.appendChild(jxsel);
	}
}