function initiate() {
	questres = -1;
}

function resetboxes_mainhome(x) {
// need to fix this
}

function resetboxes_myhome(x) {
//	if (x != 'resultQ') {
//		hide("resultQ");
//	}
//	if (x != 'resultT') {
//		hide("resultT");
//	}
	if (x != 'toptopics') {
		hide('toptopics');
	}
	if (x != 'answersto') {
		hide('answersto');
	}
	if (x != 'openquestions') {
		hide('openquestions');
	}
}
	
function ltrim(sString) {
	while (sString.substring(0,1) == ' ') {
		sString = sString.substring(1, sString.length);
	}
	return sString;
}

function getCookie(c_name) {
	if (document.cookie.length>0) { 
		c_start=document.cookie.indexOf(c_name + "=")
		if (c_start!=-1) { 
			c_start=c_start + c_name.length+1 
			c_end=document.cookie.indexOf(";",c_start)
			if (c_end==-1) c_end=document.cookie.length
			return unescape(document.cookie.substring(c_start,c_end))
		} 
	}
	return ""
}

function setCookie(c_name,value,expiredays) {
	var exdate=new Date()
	exdate.setDate(exdate.getDate()+expiredays)
	document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : "; expires="+exdate.toGMTString())
}

function checkCookie(str) {
	cusername=getCookie('cusername')
	cchecknum=getCookie('cchecknum')
	if (cusername!=null && cusername!="") {
		window.location = "/?username=" + cusername + "&checknum=" + cchecknum + str;
	}
}

function xmlhttpPost(strURL,i) {
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
 			if (i==1) {
	            updatepage(self.xmlHttpReq.responseText);
			}
			else {
	            updatepage2(self.xmlHttpReq.responseText);
			}
        }
    }
    self.xmlHttpReq.send(getquerystring());
}

/*
function xmlhttpPostNoParam(strURL,x) {
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
            document.getElementById(x).innerHTML = self.xmlHttpReq.responseText;
        }
    }
    self.xmlHttpReq.send();
}

function gettoptopics() {
	xmlhttpPostNoParam('/toptopics.php','toptopics');
	
}
*/

function getquerystring() {
    qstr = 'interests=' + escape(document.question.interests.value);  // NOTE: no '?' before querystring
    return qstr;
}

function updatepage(str){
    document.getElementById("result").innerHTML = str;
}

function updatepage2(str){
    document.getElementById("result2").innerHTML = str;
}

function dispatch() {
	xmlhttpPost('/indirect.php',1);
	hide('speclink');
}

function dispatch2() {
	xmlhttpPost('/indirect2.php',2);
	hide('speclink2');
}

function xmlhttpPostTopicSearch(strURL) {
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
            updatepageTopicSearch(self.xmlHttpReq.responseText);
        }
    }

    self.xmlHttpReq.send(getquerystringQuestSearch());
}

function updatepageTopicSearch(str){
	questtop = str.substr(0,str.search("<>"));
	var x = str.substr(str.search("<>")+2);
	if (x != '') {
		questres = 0;
	}
	document.getElementById("resultT").innerHTML = x;
    document.getElementById("resultT").style.display = "block";
}

function topicsearchf(e) {
	questsubmit = false;
	var i = document.topic.interests.value.lastIndexOf(",");
	if (i == -1) {
		sglint = document.topic.interests.value;
	}
	else {
		sglint = ltrim(document.topic.interests.value.substring(i+1));
	}
	otherint = document.topic.interests.value.substring(0,i);
	if (sglint != '') {
		var key = window.event ? e.keyCode : e.which;
		document.topic.interests.focus();
		if (key == 40) {
			if (questres < (questtop-1)) {
				questres++;
			    document.getElementById("questres"+questres).className = "activetexta";
			}
			if (questres > 0) {
				questresm = questres - 1;
			    document.getElementById("questres"+questresm).className = "activetext";
				document.topic.interests.value = document.topic.interests.value;
			}
		}
		else if (key == 38) {
			if (questres > 0) {
				questres--;
			    document.getElementById("questres"+questres).className = "activetexta";
			}
			if (questres < (questtop-1)) {
				questresm = questres + 1;
			    document.getElementById("questres"+questresm).className = "activetext";
			}
		}
		else if (key == 13) {
			if (questres >= 0) {
				if (i == -1) {
					document.topic.interests.value = document.getElementById("questres"+questres).innerHTML + ", ";
				}
				else {
					document.topic.interests.value = document.topic.interests.value.substring(0,i) + ", " + document.getElementById("questres"+questres).innerHTML + ", ";
				}
				questres = -1;
				questtop = 0;
			    document.getElementById("resultT").innerHTML = "";
			}
		}
		else if (key < 33 || key > 39) {
			questres = -1;
			questtop = 0;
			xmlhttpPostTopicSearch('/questsearch.php?typ=topic');
		}
	}
	else {
		questres = -1;
		questtop = 0;
	    document.getElementById("resultT").innerHTML = "";
	}
}

function topictophover() {
	for (var j=0;j<questtop;j++) {
		document.getElementById("questres"+j).className = "activetext";
	}
	questres = -1;
}

function topictopclick(qind) {
	var i = document.topic.interests.value.lastIndexOf(",");
	if (i == -1) {
		document.topic.interests.value = qind + ", ";
	}
	else {
		document.topic.interests.value = document.topic.interests.value.substring(0,i) + ", " + qind + ", ";
	}
	questres = -1;
	questtop = 0;
    document.getElementById("resultT").innerHTML = "";
	document.topic.interests.focus();
}

function xmlhttpPostQuestSearch(strURL) {
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
            updatepageQuestSearch(self.xmlHttpReq.responseText);
        }
    }

    self.xmlHttpReq.send(getquerystringQuestSearch());
}

function getquerystringQuestSearch() {
    qstr = 'keywords=' + escape(sglint) + '&otherint=' + escape(otherint);  // NOTE: no '?' before querystring
    return qstr;
}

function updatepageQuestSearch(str){
	questtop = str.substr(0,str.search("<>"));
	var x = str.substr(str.search("<>")+2);
	if (x != '') {
		questres = 0;
	}
	document.getElementById("resultQ").innerHTML = x;
    document.getElementById("resultQ").style.display = "block";
}

function questsearchf(e) {
	questsubmit = false;
	var i = document.question.interests.value.lastIndexOf(",");
	if (i == -1) {
		sglint = document.question.interests.value;
	}
	else {
		sglint = ltrim(document.question.interests.value.substring(i+1));
	}
	otherint = document.question.interests.value.substring(0,i);
	if (sglint != '') {
		var key = window.event ? e.keyCode : e.which;
		document.question.interests.focus();
		if (key == 40) {
			if (questres < (questtop-1)) {
				questres++;
			    document.getElementById("questres"+questres).className = "activetexta";
			}
			if (questres > 0) {
				questresm = questres - 1;
			    document.getElementById("questres"+questresm).className = "activetext";
				document.question.interests.value = document.question.interests.value;
			}
		}
		else if (key == 38) {
			if (questres > 0) {
				questres--;
			    document.getElementById("questres"+questres).className = "activetexta";
			}
			if (questres < (questtop-1)) {
				questresm = questres + 1;
			    document.getElementById("questres"+questresm).className = "activetext";
			}
		}
		else if (key == 13) {
			if (questres >= 0) {
				if (i == -1) {
					document.question.interests.value = document.getElementById("questres"+questres).innerHTML + ", ";
				}
				else {
					document.question.interests.value = document.question.interests.value.substring(0,i) + ", " + document.getElementById("questres"+questres).innerHTML + ", ";
				}
				questres = -1;
				questtop = 0;
			    document.getElementById("resultQ").innerHTML = "";
			}
		}
		else if (key < 33 || key > 39) {
			questres = -1;
			questtop = 0;
			xmlhttpPostQuestSearch('/questsearch.php?typ=quest');
		}
	}
	else {
		questres = -1;
		questtop = 0;
	    document.getElementById("resultQ").innerHTML = "";
	}
}

function questtophover() {
	for (var j=0;j<questtop;j++) {
		document.getElementById("questres"+j).className = "activetext";
	}
	questres = -1;
}

function questtopclick(qind) {
	var i = document.question.interests.value.lastIndexOf(",");
	if (i == -1) {
		document.question.interests.value = qind + ", ";
	}
	else {
		document.question.interests.value = document.question.interests.value.substring(0,i) + ", " + qind + ", ";
	}
	questres = -1;
	questtop = 0;
    document.getElementById("resultQ").innerHTML = "";
	document.question.interests.focus();
}

function topictopclick(qind) {
	var i = document.topic.interests.value.lastIndexOf(",");
	if (i == -1) {
		document.topic.interests.value = qind + ", ";
	}
	else {
		document.topic.interests.value = document.topic.interests.value.substring(0,i) + ", " + qind + ", ";
	}
	questres = -1;
	questtop = 0;
    document.getElementById("resultT").innerHTML = "";
	document.topic.interests.focus();
}

function show(divid) {
	document.getElementById(divid).style.display = "block";
}

function showi(divid) {
	document.getElementById(divid).style.display = "inline";
}

function hide(divid) {
	document.getElementById(divid).style.display = "none";
}

function toggle(divid) {
	if (document.getElementById(divid).style.display == "block") {
		hide(divid);
	}
	else {
		show(divid);
	}
}

function alldir(j) {
	document.topic.directopt3.checked = true;
	document.topic.directopt4.checked = false;
	for(var i=0;i<j;i++) {
//		var k = "direct" + i;
//		document.topic.eval(k).checked = true;
		eval("document.topic.direct" + i + ".checked = true;");
	}
}

function nodir(j) {
	document.topic.directopt3.checked = false;
	document.topic.directopt4.checked = true;
	for(var i=0;i<j;i++) {
//		var k = "direct" + i;
//		document.topic.eval(k).checked = false;
		eval("document.topic.direct" + i + ".checked = false;");
	}
}

function custdir(j) {
	document.topic.directopt3.checked = false;
	document.topic.directopt4.checked = false;
}

function alldir1(j) {
	document.topic.directopt5.checked = true;
	document.topic.directopt6.checked = false;
	for(var i=0;i<j;i++) {
//		var k = "direct1a" + i;
//		document.topic.eval(k).checked = true;
		eval("document.topic.direct1a" + i + ".checked = true;");
	}
}

function nodir1(j) {
	document.topic.directopt5.checked = false;
	document.topic.directopt6.checked = true;
	for(var i=0;i<j;i++) {
//		var k = "direct1a" + i;
//		document.topic.eval(k).checked = false;
		eval("document.topic.direct1a" + i + ".checked = false;");
	}
}

function custdir1(j) {
	document.topic.directopt5.checked = false;
	document.topic.directopt6.checked = false;
}

function togglesenddir() {
	if (document.topic.directopt1.checked) {
		show('speclink');
	}
	else {
		hide('speclink');
	}
}

function togglesenddir2() {
	if (document.topic.directopt2.checked) {
		show('speclink2');
	}
	else {
		hide('speclink2');
	}
}

function alldirf(j) {
	document.questionf.directopt3.checked = true;
	document.questionf.directopt4.checked = false;
	for(var i=0;i<j;i++) {
//		var k = "direct" + i;
//		document.questionf.eval(k).checked = true;
		eval("document.questionf.direct" + i + ".checked = true;");
	}
}

function nodirf(j) {
	document.questionf.directopt3.checked = false;
	document.questionf.directopt4.checked = true;
	for(var i=0;i<j;i++) {
//		var k = "direct" + i;
//		document.questionf.eval(k).checked = false;
		eval("document.questionf.direct" + i + ".checked = false;");
	}
}

function custdirf(j) {
	document.questionf.directopt3.checked = false;
	document.questionf.directopt4.checked = false;
}

function alldirf1(j) {
	document.questionf.directopt5.checked = true;
	document.questionf.directopt6.checked = false;
	for(var i=0;i<j;i++) {
//		var k = "direct1a" + i;
//		document.questionf.eval(k).checked = true;
		eval("document.questionf.direct1a" + i + ".checked = true;");
	}
}

function nodirf1(j) {
	document.questionf.directopt5.checked = false;
	document.questionf.directopt6.checked = true;
	for(var i=0;i<j;i++) {
//		var k = "direct1a" + i;
//		document.questionf.eval(k).checked = false;
		eval("document.questionf.direct1a" + i + ".checked = false;");
	}
}

function custdirf1(j) {
	document.questionf.directopt5.checked = false;
	document.questionf.directopt6.checked = false;
}

function togglefwddir() {
	if (document.questionf.directopt1.checked) {
		show('speclink3');
	}
	else {
		hide('speclink3');
	}
}

function togglefwddir2() {
	if (document.questionf.directopt2.checked) {
		show('speclink4');
	}
	else {
		hide('speclink4');
	}
}

function addInt() {
	if (document.addintform.interests.value!="") {
		document.addintform.interests.value += ", ";
	}
	document.addintform.interests.value += document.addintform.exints.value;
	document.addintform.exints.value = "-";
}

function addIntq() {
	if (document.question.interests.value!="") {
		document.question.interests.value += ", ";
	}
	document.question.interests.value += document.addintform.exints.value;
	document.question.exints.value = "-";
}

function resultswap (x,y) {
	var temp = document.getElementById(x).innerHTML;
	document.getElementById(x).innerHTML = document.getElementById(y).innerHTML;
	document.getElementById(y).innerHTML = temp;
}

function addOption (selectbox,text) {
	var optn = document.createElement("OPTION");
	optn.text = text;
	optn.value = text;
	selectbox.options.add(optn);
}

function checkoption (level, topiclevel) {
	var targetlevel = level + 1;
//	var source = document.topic.eval('topicsbox' + level);
	eval("var source = document.topic.topicsbox" + level);
	var cur = new Array();
	cur = source.selectedIndex;
	if (cur != -1) {
		cur = source.options[cur].text;
		if (level != 0) {
			document.getElementById('curtopic').innerHTML = "Add " + cur;
		}
		else {
			document.getElementById('curtopic').innerHTML = "";		
		}
		if (level != topiclevel) {
	//		var target = document.topic.eval('topicsbox' + targetlevel);
			eval("var target = document.topic.topicsbox" + targetlevel);
			target.options.length=0;
			cur = topics[cur];
			for (var j=0;j<cur.length;j++) {
				addOption(target,cur[j]);
			}
			if (cur.length == 0) {
				target.style.display = "none";
			}
			else {
				target.style.display = "inline";
			}
			for (var i=targetlevel+1;i<=topiclevel;i++) {
	//			document.topic.eval('topicsbox' + i).style.display = "none";
				eval("document.topic.topicsbox" + i + ".style.display = 'none'");
			}
		}
	}
}

function checkoption2 (level, topiclevel) {
	var targetlevel = level + 1;
//	var source = document.question.eval('topicsbox' + level);
	eval("var source = document.question.topicsbox" + level);
	var cur = new Array();
	cur = source.selectedIndex;
	if (cur != -1) {
		cur = source.options[cur].text;
		if (cur != "" && level != 0) {
			document.getElementById('curtopic2').innerHTML = "Add " + cur;
		}
		else {
			document.getElementById('curtopic2').innerHTML = "";		
		}
		if (level != topiclevel) {
	//		var target = document.question.eval('topicsbox' + targetlevel);
			eval("var target = document.question.topicsbox" + targetlevel);
	//		document.question.eval('topicsbox' + targetlevel).options.length=0;
			eval("document.question.topicsbox" + targetlevel + ".options.length=0");
			cur = topics[cur];
			for (var j=0;j<cur.length;j++) {
				addOption(target,cur[j]);
			}
			if (cur.length == 0) {
	//			document.question.eval('topicsbox' + targetlevel).style.display = "none";
				eval("document.question.topicsbox" + targetlevel + ".style.display='none'");
			}
			else {
	//			document.question.eval('topicsbox' + targetlevel).style.display = "inline";
				eval("document.question.topicsbox" + targetlevel + ".style.display='inline'");
			}
			for (var i=targetlevel+1;i<=topiclevel;i++) {
	//			document.question.eval('topicsbox' + i).style.display = "none";
				eval("document.question.topicsbox" + i + ".style.display='none'");
			}
		}
	}
}

function checkoption3 (level, topiclevel, topic) {
var targetlevel = level + 1;
//	var source = document.topic.eval('topic' + topic + 'x' + level);
	eval("var source = document.topic.topic" + topic + "x" + level);
	var cur = new Array();
	cur = source.selectedIndex;
	if (cur != -1) {
		cur = source.options[cur].text;
		document.getElementById('topic' + topic + 'p').innerHTML = cur;
		if (level != 0) {
			document.getElementById('topic' + topic + 'e').innerHTML = cur;
			document.getElementById('topic' + topic + 'r').innerHTML = cur;
		}
	//	document.topic.eval('topicrel' + topic).value = cur;
		eval("document.topic.topicrel" + topic + ".value = '" + cur + "'");
		if (level != topiclevel) {
	//		var target = document.topic.eval('topic' + topic + 'x' + targetlevel);
			eval("var target = document.topic.topic" + topic + "x" + targetlevel);
	//		document.topic.eval('topic' + topic + 'x' + targetlevel).options.length=0;
			eval("document.topic.topic" + topic + "x" + targetlevel + ".options.length=0");
			cur = topics[cur];
			for (var j=0;j<cur.length;j++) {
				addOption(target,cur[j]);
			}
			if (cur.length == 0) {
	//			document.topic.eval('topic' + topic + 'x' + targetlevel).style.display = "none";
				eval("document.topic.topic" + topic + "x" + targetlevel + ".style.display='none'");
			}
			else {
	//			document.topic.eval('topic' + topic + 'x' + targetlevel).style.display = "inline";
				eval("document.topic.topic" + topic + "x" + targetlevel + ".style.display='inline'");
			}
			for (var i=targetlevel+1;i<=topiclevel;i++) {
	//			document.topic.eval('topic' + topic + 'x' + i).style.display = "none";
				eval("document.topic.topic" + topic + "x" + i + ".style.display='none'");
			}
		}
	}
}

function addtopic() {
	var topic = document.getElementById('curtopic').innerHTML.substring(4);
	var intf = document.topic.interests.value;
	var intfl = document.topic.interests.value.length;
	var addon;
	if (intf.substring(intfl-1)==",") {
		addon = " ";
	}
	else if (intf != "" && intf.substring(intfl-2)!=", ") {
		addon = ", ";
	}
	else {
		addon = "";
	}
	document.topic.interests.value = document.topic.interests.value + addon + topic + ", ";
	document.topic.interestsbrws.value = document.topic.interestsbrws.value + "," + topic + ",";
	document.getElementById('curtopic').innerHTML = "";
}

function addtopic2() {
	var topic = document.getElementById('curtopic2').innerHTML.substring(4);
	var intf = document.question.interests.value;
	var intfl = document.question.interests.value.length;
	var addon;
	if (intf.substring(intfl-1)==",") {
		addon = " ";
	}
	else if (intf != "" && intf.substring(intfl-2)!=", ") {
		addon = ", ";
	}
	else {
		addon = "";
	}
	document.question.interests.value = document.question.interests.value + addon + topic + ", ";
	document.question.interestsbrws.value = document.question.interestsbrws.value + "," + topic + ",";
	document.getElementById('curtopic2').innerHTML = "";
}

function ask1() {
	document.topic.askstage.value=('1');
	document.topic.submit();
}