﻿var commentdata=null;

function postAJAXCommentRequest(id, type) {
	displayLoadingScreen();
	var request="comment?id="+id+"&type="+type;
	startAJAXRequest(request, processAJAXCommentResponse);
}

function processAJAXCommentResponse(datastring) {
	var parts=datastring.split("|");
	var i,k;
	var start;
	commentdata=new Array();
	for(i=0;i<parts.length;i++) {
		var comment=new Array();
		if(parts[i]!="") {
			var subparts=parts[i].split("#");
			if(subparts.length==6) {
				comment.push(parseInt(subparts[0]));
				comment.push(subparts[1]);
				comment.push(parseInt(subparts[2]));
				comment.push(parseInt(subparts[3]));
				comment.push(parseInt(subparts[4]));
				comment.push(decodeText(subparts[5]));
				commentdata.push(comment);
			}
		}
	}
	displayTab(commenttabid,0,0,0);
}

function displayComments(listbody) {
	var listcontent=document.createElement("table");
	listcontent.id="listcontent";
	listcontent.width="100%";
	listcontent.border=0;
	listcontent.cellPadding=4;
	listcontent.cellSpacing=0;
	var listcontent_tbody=document.createElement("tbody");
	var i;
	var arraylength=commentdata.length;
	if(loggedinas!=null) arraylength++;
	for(i=0;i<arraylength;i++) {
		var listcontent_tr=document.createElement("tr");
		var listcontent_tr_td=document.createElement("td");
		var listcontent_tr_td_table=document.createElement("table");
		var	listcontent_tr_td_table_tbody=document.createElement("tbody");
		listcontent_tr_td_table.width="100%";
		listcontent_tr_td_table.border=0;
		listcontent_tr_td_table.cellPadding=4;
		listcontent_tr_td_table.cellSpacing=0;
		listcontent_tr_td_table.className="commentOuter";
		var listcontent_tr_td_table_tr=document.createElement("tr");
		listcontent_tr_td_table_tr_td=document.createElement("td");
		listcontent_tr_td_table_tr_td.className="commentTitle";
		var listcontent_tr_td_table_tr_td_table=document.createElement("table");
		var	listcontent_tr_td_table_tr_td_table_tbody=document.createElement("tbody");
		listcontent_tr_td_table_tr_td_table.width="100%";
		listcontent_tr_td_table_tr_td_table.border=0;
		listcontent_tr_td_table_tr_td_table.cellPadding=0;
		listcontent_tr_td_table_tr_td_table.cellSpacing=0;
		listcontent_tr_td_table_tr_td_table_tr=document.createElement("tr");
		listcontent_tr_td_table_tr_td_table_tr_td=document.createElement("td");
		listcontent_tr_td_table_tr_td_table_tr_td.width="50%";
		var listcontent_tr_td_table_tr_td_table_tr_td_strong=document.createElement("strong");
		if(i<commentdata.length) {
			var commentnumber="#"+(i+1);
			var commentowner=" - "+commentdata[i][1];
			var commentdate=new Date(commentdata[i][3]*1000);
			var commenttimestamp=formatDate(commentdate);
			listcontent_tr_td_table_tr_td_table_tr_td_strong.appendChild(document.createTextNode(commentnumber));
			listcontent_tr_td_table_tr_td_table_tr_td.appendChild(listcontent_tr_td_table_tr_td_table_tr_td_strong);
			listcontent_tr_td_table_tr_td_table_tr_td.appendChild(document.createTextNode(commentowner+" "));
			listcontent_tr_td_table_tr_td_table_tr_td_span=document.createElement("span");
			listcontent_tr_td_table_tr_td_table_tr_td_span.className="lilbitsmallertext";
			listcontent_tr_td_table_tr_td_table_tr_td_span.appendChild(document.createTextNode("("+commenttimestamp+" Uhr)"));
			listcontent_tr_td_table_tr_td_table_tr_td.appendChild(listcontent_tr_td_table_tr_td_table_tr_td_span);
			listcontent_tr_td_table_tr_td_table_tr.appendChild(listcontent_tr_td_table_tr_td_table_tr_td);
			listcontent_tr_td_table_tr_td_table_tr_td2=document.createElement("td");
			listcontent_tr_td_table_tr_td_table_tr_td2.width="50%";
			listcontent_tr_td_table_tr_td_table_tr_td2.align="right";
			listcontent_tr_td_table_tr_td_table_tr_td2.className="lilbitsmallertext";
			if(commentdata[i][1]==loggedinas || accountlevel>=2) {
				listcontent_tr_td_table_tr_td_table_tr_td2.appendChild(document.createTextNode("Aktionen: "));
				listcontent_tr_td_table_tr_td_table_tr_td2_a=document.createElement("a");
				listcontent_tr_td_table_tr_td_table_tr_td2_a.href="javascript:deleteComment("+commentdata[i][0]+")";
				listcontent_tr_td_table_tr_td_table_tr_td2_a.appendChild(document.createTextNode("löschen"));
				listcontent_tr_td_table_tr_td_table_tr_td2.appendChild(listcontent_tr_td_table_tr_td_table_tr_td2_a);
				listcontent_tr_td_table_tr_td_table_tr_td2.appendChild(document.createTextNode(" | "));
			}
			listcontent_tr_td_table_tr_td_table_tr_td2.appendChild(document.createTextNode("Bewertung: "));
			listcontent_tr_td_table_tr_td_table_tr_td2_span=document.createElement("span");
			if(commentdata[i][4]>0) {
				listcontent_tr_td_table_tr_td_table_tr_td2_span.className="positiverating";
				listcontent_tr_td_table_tr_td_table_tr_td2_span.appendChild(document.createTextNode("+"+commentdata[i][4]));
			}
			if(commentdata[i][4]<0) {
				listcontent_tr_td_table_tr_td_table_tr_td2_span.className="negativerating";
				listcontent_tr_td_table_tr_td_table_tr_td2_span.appendChild(document.createTextNode(commentdata[i][4]));
			}
			if(commentdata[i][4]==0) {
				listcontent_tr_td_table_tr_td_table_tr_td2_span.className="neutralrating";
				listcontent_tr_td_table_tr_td_table_tr_td2_span.appendChild(document.createTextNode(commentdata[i][4]));
			}
			listcontent_tr_td_table_tr_td_table_tr_td2.appendChild(listcontent_tr_td_table_tr_td_table_tr_td2_span);
			listcontent_tr_td_table_tr_td_table_tr_td2.appendChild(document.createTextNode(" "));
			listcontent_tr_td_table_tr_td_table_tr_td2_a=document.createElement("a");
			listcontent_tr_td_table_tr_td_table_tr_td2_a.href="javascript:rateComment("+commentdata[i][0]+",'positive')";
			listcontent_tr_td_table_tr_td_table_tr_td2_a.appendChild(document.createTextNode("[+]"));
			listcontent_tr_td_table_tr_td_table_tr_td2.appendChild(listcontent_tr_td_table_tr_td_table_tr_td2_a);
			listcontent_tr_td_table_tr_td_table_tr_td2.appendChild(document.createTextNode(" "));
			listcontent_tr_td_table_tr_td_table_tr_td2_a2=document.createElement("a");
			listcontent_tr_td_table_tr_td_table_tr_td2_a2.href="javascript:rateComment("+commentdata[i][0]+",'negative')";
			listcontent_tr_td_table_tr_td_table_tr_td2_a2.appendChild(document.createTextNode("[-]"));
			listcontent_tr_td_table_tr_td_table_tr_td2.appendChild(listcontent_tr_td_table_tr_td_table_tr_td2_a2);
			listcontent_tr_td_table_tr_td_table_tr.appendChild(listcontent_tr_td_table_tr_td_table_tr_td2);
		} else {
			listcontent_tr_td_table_tr_td_table_tr_td_strong.appendChild(document.createTextNode("Neuen Kommentar schreiben"));
			listcontent_tr_td_table_tr_td_table_tr_td.appendChild(listcontent_tr_td_table_tr_td_table_tr_td_strong);	
			listcontent_tr_td_table_tr_td_table_tr.appendChild(listcontent_tr_td_table_tr_td_table_tr_td);
		}
		listcontent_tr_td_table_tr_td_table_tbody.appendChild(listcontent_tr_td_table_tr_td_table_tr);
		listcontent_tr_td_table_tr_td_table.appendChild(listcontent_tr_td_table_tr_td_table_tbody);
		listcontent_tr_td_table_tr_td.appendChild(listcontent_tr_td_table_tr_td_table);
		listcontent_tr_td_table_tr.appendChild(listcontent_tr_td_table_tr_td);
		listcontent_tr_td_table_tbody.appendChild(listcontent_tr_td_table_tr);
		listcontent_tr_td_table.appendChild(listcontent_tr_td_table_tbody);
		listcontent_tr_td_table_tr2=document.createElement("tr");
		listcontent_tr_td_table_tr2_td=document.createElement("td");
		//listcontent_tr_td_table_tr2_td.bgColor="#FFFFFF";
		if(i<commentdata.length) {
			if(commentdata[i][4]>=25 && commentdata[i][2]<2) {
				listcontent_tr_td_table_tr2_td.className="commentcolorpositive";
			} else {
				if(commentdata[i][4]<0 && commentdata[i][2]<2) {
					listcontent_tr_td_table_tr2_td.className="commentcolornegative";
				} else {
					listcontent_tr_td_table_tr2_td.className="commentcolor"+commentdata[i][2];
				}
			}
			var lines=commentdata[i][5].split("\n");
			var k;
			for(k=0;k<lines.length;k++) {
				listcontent_tr_td_table_tr2_td.appendChild(document.createTextNode(lines[k]));
				if(k+1<lines.length) listcontent_tr_td_table_tr2_td.appendChild(document.createElement("br"));
			}
		} else {
			listcontent_tr_td_table_tr2_td_textarea=document.createElement("textarea");
			listcontent_tr_td_table_tr2_td_textarea.cols=80;
			listcontent_tr_td_table_tr2_td_textarea.rows=6;
			listcontent_tr_td_table_tr2_td_textarea.name="mycomment";
			listcontent_tr_td_table_tr2_td_textarea.id="mycomment";
			listcontent_tr_td_table_tr2_td.appendChild(listcontent_tr_td_table_tr2_td_textarea);
			listcontent_tr_td_table_tr2_td_input=document.createElement("input");
			listcontent_tr_td_table_tr2_td_input.type="button";
			listcontent_tr_td_table_tr2_td_input.name="sendcomment";
			listcontent_tr_td_table_tr2_td_input.id="sendcomment";
			listcontent_tr_td_table_tr2_td_input.value="Abschicken";
			listcontent_tr_td_table_tr2_td_input.onclick=sendComment;
			listcontent_tr_td_table_tr2_td.appendChild(listcontent_tr_td_table_tr2_td_input);
		}
		listcontent_tr_td_table_tr2.appendChild(listcontent_tr_td_table_tr2_td);
		listcontent_tr_td_table_tbody.appendChild(listcontent_tr_td_table_tr2);
		listcontent_tr_td_table.appendChild(listcontent_tr_td_table_tbody);
		listcontent_tr_td.appendChild(listcontent_tr_td_table);
		listcontent_tr.appendChild(listcontent_tr_td);
		listcontent_tbody.appendChild(listcontent_tr);
		listcontent.appendChild(listcontent_tbody);
	}
	listbody.appendChild(listcontent);
}

function sendComment() {
	var textarea=document.getElementById("mycomment");
	var commenttext=textarea.value;
	var postparams=new Array();
	postparams.push("id");
	postparams.push(identifier);
	postparams.push("type");
	postparams.push(identifiertype);
	postparams.push("text");
	postparams.push(encodeURIComponent(commenttext));
	var sendbutton=document.getElementById("sendcomment");
	sendbutton.disabled=true;
	startAJAXPostRequest("comment", postparams, processAJAXSendCommentResponse);
}

function processAJAXSendCommentResponse(response) {
	var sendbutton=document.getElementById("sendcomment");
	sendbutton.disabled=false;
	if(response=="success") {
		commentdata=null;
		displayTab(commenttabid,0,0,0);
	} else {
		alert("Beim Speichern des Kommentars trat ein Fehler auf: "+response);
	}
}

function rateComment(commentid, rating) {
	rating=(rating=="positive")?1:0;
	var request="comment?command=rate&commentid="+commentid+"&positive="+rating;
	startAJAXRequest(request, processAJAXCommentRatingResponse);	
}

function deleteComment(commentid) {
	var request="comment?command=delete&commentid="+commentid;
	startAJAXRequest(request, processAJAXCommentRatingResponse);	
}

function processAJAXCommentRatingResponse(response) {
	alert(response);
	commentdata=null;
	displayTab(commenttabid,0,0,0);	
}
