topicid = new Array();
window.onload = init;

function init() {
	explainsearch();
}


function concatarray(arr,andor) {
	var str = "";
	for(i=0; i<arr.length; i++) {
		if(i == 0) {
			str += arr[i]; 
		} else if(i == arr.length-1 && arr.length>2) {
			str += ", " + andor + " " + arr[i]; 
		} else if(i == arr.length-1) {
			str += " " + andor + " " + arr[i]; 
		} else {
			str += ", " + arr[i]; 
		}
	}
	return str;
}

function topicselect(a) {
	var sform = document.getElementById('searchform');
	var idchecked = false;
	var regex = /^TopicID\[([1-9][0-9]*)\]$/;
	for(i=0; i<sform.elements.length; i++) {
		if((arr2 = sform.elements[i].name.match(regex)) != null
			&& sform.elements[i].checked) {
			if(a == 0 && sform.TopicIDAll.checked == true) {
				sform.elements[i].checked = false;
			}
			idchecked = true;
		}
	}
	if(idchecked && a == 1) {
		sform.TopicIDAll.checked = false;
	} else {
		sform.TopicIDAll.checked = true;
	}
	explainsearch();
}

function dateselect(rangeperiod) {
	var sform = document.getElementById('searchform');

	if(rangeperiod == "timeunit") {
		sform.startyear.value = "";
		sform.startmonth.value = "";
		sform.startday.value = "";
		sform.endyear.value = "";
		sform.endmonth.value = "";
		sform.endday.value = "";
	} else {
		sform.timeunittype.options[0].selected = true;
		sform.timeunitval.value = "";
	}

	explainsearch();
}

function explainsearch() {
	var sform = document.getElementById('searchform');
	var explain = document.getElementById('explaination');
	var msgarr = new Array();
	var msgindex = 0;

	if(sform.q.value.length > 0) {
		var fields = new Array("body or subject","subject","body");
		var str = sform.q.value;
		var regex = /\s?(?:([+-]?"[^"]+")|([^\s]+))\s?/g;
		var w = new Array(); //with
		var wo = new Array(); //without

		regex.lastIndex = 0;
		while((arr = regex.exec(str)) != null) {
			for(i=1; i<arr.length; i++) {
				if(arr[i]) {
					if(arr[i].charAt(0) == "+") {
						w[w.length] = arr[i].substring(1,arr[i].length);
					} else if(arr[i].charAt(0) == "-") {
						wo[wo.length] = arr[i].substring(1,arr[i].length);
					} else {
						w[w.length] = arr[i];
					}
				}
			}
		}

		msgindex = msgarr.length;
		msgarr[msgindex] = "";
		if(w.length > 0) {
			msgarr[msgindex] += " contain <b>";
			msgarr[msgindex] += concatarray(w,"and");
			msgarr[msgindex] += "</b>";
			if(wo.length > 0) {
				msgarr[msgindex] += " but";
			}
		}
		if(wo.length > 0) {
			msgarr[msgindex] += " do not contain <b>";
			msgarr[msgindex] += concatarray(wo,"and");
			msgarr[msgindex] += "</b>";
		}
		msgarr[msgindex] += " in the <b>" + fields[sform.fields.value-1] + "</b> of the post";
	}

	if(sform.membername.value.length > 0) {
		msgindex = msgarr.length;
		msgarr[msgindex] = " were submitted by <b>" + sform.membername.value + "</b>";
	}


	if(!sform.timeunittype.options[0].selected
		&& sform.timeunitval.value.length > 0) {
		msgindex = msgarr.length;
		var fields = new Array("","Day(s)","Month(s)","Year(s)");
		for(i=1; i<fields.length; i++) {
			if(sform.timeunittype.options[i].selected) {
				msgarr[msgindex] = " were submitted in the last <b>" + sform.timeunitval.value + " " + fields[i] + "</b>";
			}
		}
	} else if((sform.startyear.value.length == 2 || sform.startyear.value.length == 4)
		&& (sform.startmonth.value.length == 1 || sform.startmonth.value.length == 2)
		&& (sform.startday.value.length == 1 || sform.startday.value.length == 2)
		&& (sform.endyear.value.length == 2 || sform.endyear.value.length == 4)
		&& (sform.endmonth.value.length == 1 || sform.endmonth.value.length == 2)
		&& (sform.endday.value.length == 1 || sform.endday.value.length == 2)) {
		msgindex = msgarr.length;
		var startdate = sform.startmonth.value + "-" + sform.startday.value + "-" + sform.startyear.value;
		var enddate = sform.endmonth.value + "-" + sform.endday.value + "-" + sform.endyear.value;

		msgindex = msgarr.length;
		msgarr[msgindex] = " were submitted between <b>" + startdate + "</b> and <b>" + enddate + "</b>";
	}

	if(msgarr.length > 0) {
		tempstr = concatarray(msgarr,"and");
		explain.innerHTML = "<p class=\"bodymedium\">Show me all the posts that...</p><p>..." + tempstr.substring(1,tempstr.length) + ".</p>";
	} else {
		explain.innerHTML = "<p class=\"bodymedium\">No options specified.</p>";
	}
}

function cleardaterange() {
	var sform = document.getElementById('searchform');
	sform.startyear.value = "";
	sform.startmonth.value = "";
	sform.startday.value = "";
	sform.endyear.value = "";
	sform.endmonth.value = "";
	sform.endday.value = "";
}