var theResultId = '';

var cmReqUrl = "/assets/scripts/getcomm.x";
var cmResultId = "theCommentBay";
var cmSearchId = "cq";
var cmStartDelay = 200;
var cmTimer = false; 
var cmShowDelay = 0;
var cmReq;
var theid;
var showing = false;
var thezone;

var cmJson = true; 
var cmMethod = 'json';

var numResultId = "theCommentCounter";
var postResultId = "theCommentatorResponse";

//alert('z');

function commentToggle(aid) {
	theid = aid;
	
	x=document.getElementById('theCommentWardrobe');
	y=document.getElementById('theComTri');
	
	if (showing) {
		var res = document.getElementById(cmResultId);
		res.innerHTML = '';
		showing = false;
		y.src='/assets/images/closed8.png';
		x.style.display='none';
	} else {
		showing = true;
		x.style.display='block';
		y.src='/assets/images/open8.png';
		z = document.getElementById("zone");
		cmGetXML(cmReqUrl + "?type=comments&id=" + aid + "&z=" + escape(z.value) + "&method=" + escape(cmMethod));
	}
}
function sendComment(aid) {
	theid = aid;
	z = document.getElementById("zone");
	thezone = escape(z.value);
	p = document.getElementById("poster");
	h = document.getElementById("hood");
	c = document.getElementById("theActualComment");
	cmGetXML(cmReqUrl + "?type=postresponse&id=" + aid + "&p=" + escape(p.value) + "&h=" + escape(h.value) + "&c=" + escape(c.value) + "&z=" + escape(z.value) + "&method=" + escape(cmMethod));
}
function reportAbuse(pid) {
	z = document.getElementById("zone");
	thezone = escape(z.value);
	cmGetXML(cmReqUrl + "?type=reportabuse&id=" + pid + "&z=" + escape(z.value)  + "&method=" + escape(cmMethod));
}
function cmGetXML(cmUrl){
	//alert(cmUrl);
	if (window.ActiveXObject) {
		cmReq = new ActiveXObject("Microsoft.XMLHTTP");
		if (cmReq) {
			if (cmJson) {cmReq.onreadystatechange = cmProcReqJson; }
			else { cmReq.onreadystatechange = cmProcReq; }
			cmReq.open("GET", cmUrl, true);
			cmReq.send();
		}
	} else if (window.XMLHttpRequest) {
		cmReq = new XMLHttpRequest();
		if (cmJson) { cmReq.onreadystatechange = cmProcReqJson; }
		else { cmReq.onreadystatechange = cmProcReq; }
		if (cmUrl.length > 150) {
			var parameters = cmUrl.substr(cmReqUrl.length + 1);
			cmReq.open('POST', cmReqUrl, true);
			cmReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			cmReq.setRequestHeader("Content-length", parameters.length);
			cmReq.setRequestHeader("Connection", "close");
			cmReq.send(parameters);
		} else {
			cmReq.open("GET", cmUrl, true);
			cmReq.send(null);
		}
	}
}
function cmProcReqJson(){
	//alert(cmReq.readyState);
	
	if (cmReq.readyState == 4) {
		if (cmReq.status == 200) {
			try {	
				if (cmReq.responseText) {
					var response = cmReq.responseText;
					var results = window.jsonParse(response);
					
					var resNum = results.num;
					var resType = results.type;
					var resHtml = results.html;
					var resStatus = results.status;
					
					if (resType == 'postresponse') {
						showing = true;
						if (resStatus == '1') {
							c = document.getElementById("theActualComment");
							c.value = '';
						}
						cmGetXML(cmReqUrl + "?id=" + theid + "&z=" + thezone +  "&type=comments" + "&method=" + escape(cmMethod));
					} else if (resNum) {
						var comb = document.getElementById("theComButton");
						var comt = document.getElementById("theComTri");
						var comw = document.getElementById("theCommentWardrobe");
						var numr = document.getElementById(numResultId);
					
						if (resNum == "0") {
							if (comb) comb.style.display = 'none';
						} else {
							if (comb) comb.style.display = 'inline';
							if (comw) comw.style.display = 'block';
							if (comt) comt.src='/assets/images/open8.png';
						}
						if (numr && (resNum.length < 10)) numr.innerHTML = resNum;
					}
									
					if (resType == 'comments') theResultId = cmResultId;
					else theResultId = postResultId;
					
					var res = document.getElementById(theResultId);
					res.innerHTML = resHtml;
					res.style.display = '';	
					
					
				}
				
				
			} catch (error) {
				alert(error+ "\n" + cmReq.statusText);
			}
			
		} else {
			alert("There was a problem retrieving the XML data:\n" + cmReq.statusText);
		}
	}
}
function cmProcReq(){
	if (cmReq.readyState == 4) {
		if (cmReq.status == 200) {
		try {	
			if(cmReq.responseXML && cmReq.responseXML.documentElement) {
			
				response = cmReq.responseXML.documentElement;
				var rname = response.getElementsByTagName('type')[0].firstChild.data;
				if (rname == "comments") theResultId = cmResultId;
				else theResultId = postResultId;
				var res = document.getElementById(theResultId);
				if (response.getElementsByTagName('results')[0].firstChild != null) {
					//workaround of weird Firefox javascript bug:
					//strip out XML tags to leave just the HTML blob, since
					//Firefox craps out on the contents of large XML tags
					var results = cmReq.responseText;
					results = results.replace(/>comments</gi,"><");
					results = results.replace(/>postresponse</gi,"><");
					results = results.replace(/>reportabuse</gi,"><");
					results = results.replace(/>\d+</gi,"><");
					results = results.replace(/<.+?>/gi,"");
					
					//workaround decoding of XML-unfriendly characters
					results = results.replace(/{@@}/g,"&");
					results = results.replace(/}}/g,">");
					res.innerHTML = results.replace(/{{/g,"<");	
				}
				
				if (rname == "postresponse") {
					showing = true;
					cmGetXML(cmReqUrl + "?id=" + theid + "&z=" + thezone + "&type=comments");
				} else if (response.getElementsByTagName('num')[0].firstChild != null) {
					var numero = response.getElementsByTagName('num')[0].firstChild.data;
					if (numero == 0) document.getElementById("theComButton").style.display = 'none';
					else {
document.getElementById("theComButton").style.display = 'inline';
document.getElementById("theCommentWardrobe").style.display = 'block';
document.getElementById("theComTri").src='/assets/images/open8.png';
					}
					document.getElementById(numResultId).innerHTML = numero;	
				}
			} else if (cmReq.responseText) {
				var results = cmReq.responseText;
				var pat = />postresponse</gi;
				
				numero = results.replace(/.+?<num>/gi,"");
				numero = numero.replace(/<\/num>.+/gi,"");
				
				if (pat.test(results)) {
					showing = true;
					cmGetXML(cmReqUrl + "?id=" + theid + "&z=" + thezone +  "&type=comments");
				} else if (numero) {
					if (numero == "0") document.getElementById("theComButton").style.display = 'none';
					else {
document.getElementById("theComButton").style.display = 'inline';
document.getElementById("theCommentWardrobe").style.display = 'block';
document.getElementById("theComTri").src='/assets/images/open8.png';
					}
					if (numero.length < 10) document.getElementById(numResultId).innerHTML = numero;
				}
				
				pat = />comments</gi;
				
				if (pat.test(results)) theResultId = cmResultId;
				else theResultId = postResultId;
				
				results = results.replace(/>reportabuse</gi,"><");
				results = results.replace(/<type>.+?<\/type>/gi,"");
				results = results.replace(/>\d+</gi,"><");
				results = results.replace(/<.+?>/gi,"");
				
				var res = document.getElementById(theResultId);
				
				//workaround decoding of XML-unfriendly characters
				results = results.replace(/{@@}/g,"&");
				results = results.replace(/}}/g,">");
				res.innerHTML = results.replace(/{{/g,"<");	
			}
			res.style.display = '';
			
		} catch (error) {
			alert(error+ "\n" + cmReq.statusText);
		}
			
		} else {
			alert("There was a problem retrieving the XML data:\n" + cmReq.statusText);
		}
	}
}
function cmHideResults(){
	document.getElementById(cmResultId).style.display = 'none';
}


