g_uploadCounter = 0;

function ShowNewPinAttachBoxes(id) {
	if (id < 4) {
		$("idNewNoteAttach"+id).style.display="";
	}
}

function ReportSelector() {
this.address = null;
this.key = null;

var me = this;

this.Init = function() {
	$("idDetails").style.display="block";
	$("idDetails").update('								\
	<br />										\
	<div id="idAddNewMessage">							\
		<div class="titleBarContainer">						\
			<div class="titleBarContent">					\
				<div style="overflow: auto">				\
				<div id="babelCategory" class="pinType titleFloatLeft"></div>		\
				<div id="babelStatus" class="pinCoord titleFloatRight"></div>	\
				</div>							\
			</div>								\
		</div>									\
				<div id="shortDesc" class="shortDesc"></div>				\
		<div id="idPinData" class="contentHeader">		\
		<div id="idMsgShortDesc"></div>						\
		<div id="idMessages"></div>						\
		</div>									\
		<br />									\
		<div class="titleBarContainer">						\
			<div class="titleBarContent">					\
				<span id="babelAddNote" class="titleFloatLeft"></span>	\
			</div>								\
		</div>									\
		<div id="idNewNote" class="contentHeader">		\
			<div class="clear-block block block-menu rightboxcontent" \
 			<form>								\
			<div id="idAdminOnly" class="formblock" style="display: none">	\
			<span id="babelNewNoteStatus"></span><select id="idNewNoteStatus"></select><span id="babelNewNoteTypeOfUpdate" style="padding-left: 10px"></span><select id="idNewNoteTypeOfUpdate"></select>	\
			</div>								\
			<div class="formblock">						\
			<div id="babelNewNote"></div>					\
			<textarea id="idNewNoteText" class="messageText"></textarea>	\
			<div id="error" class="error" style="display: none"></div>				\
			</div>								\
			<div class="formblock">						\
			<div id="babelNewNoteAttach"></div>				\
			<iframe id="idNewNoteAttach1" frameborder="0" src="" class="upload"></iframe>	\
			<iframe id="idNewNoteAttach2" frameborder="0" src="" class="upload" style="display: none"></iframe>	\
			<iframe id="idNewNoteAttach3" frameborder="0" src="" class="upload" style="display: none"></iframe>	\
			</div>								\
			<div>								\
				<div id="babelNewNoteSend" class="center button"></div>	\
			</div>								\
			</form>								\
			</div>								\
		</div>									\
	</div>										\
	');

	$("babelCategory").update(g_Babel.GetWord("newbug"));
	$("babelNewNoteStatus").update(g_Babel.GetWord("state") + ": ");
	$("babelNewNoteTypeOfUpdate").update(g_Babel.GetWord("bugtype") + ": ");
	$("babelAddNote").update(g_Babel.GetWord("addnote"));
	$("babelNewNote").update(g_Babel.GetWord("note") + ":");
	$("babelNewNoteAttach").update(g_Babel.GetWord("attach") + ":");

	$("idNewNoteAttach1").src = g_webPrefix + "upload_form.php?sessionID=" + g_strSessionID + "&id=1";
	$("idNewNoteAttach2").src = g_webPrefix + "upload_form.php?sessionID=" + g_strSessionID + "&id=2";
	$("idNewNoteAttach3").src = g_webPrefix + "upload_form.php?sessionID=" + g_strSessionID + "&id=3";

	$("babelNewNoteSend").update(g_Babel.GetWord("submit"));

	if (IsAdmin()) {
		for (var i = 0; i < g_pinStatuses.length; i++) {
			var option = new Element("option");
			$("idNewNoteStatus").insert(option);
			option.babelID = g_pinStatuses[i].babelID;
			option.text = g_Babel.GetWord(g_pinStatuses[i].babelID);
			option.value = g_pinStatuses[i].strId;
		}
		for (var i = 1; i < g_pinCategories.length; i++) {
			var option = new Element("option");
			$("idNewNoteTypeOfUpdate").insert(option);
			option.babelID = g_pinCategories[i].m_babelID;
			option.text = g_Babel.GetWord(g_pinCategories[i].m_babelID);
			option.value = g_pinCategories[i].m_strID;
		}
		var option = new Element("option");
		$("idNewNoteTypeOfUpdate").insert(option);
		option.babelID = g_pinCategories[0].m_babelID;
		option.text = g_Babel.GetWord(g_pinCategories[0].m_babelID);
		option.value = g_pinCategories[0].m_strID;

		$("idAdminOnly").style.display = "block";
	}
}

this.SelectReportByAddress = function(address, key) {
	me.Init();
	me.address = address;
	me.key = key;
	$("babelNewNoteSend").onclick=function() {
		if (g_uploadCounter > 0) {
			alert(g_Babel.GetWord("pleasewaitupload"));
			return;
		}

		if (IsAdmin()) {
			g_numOfAllMessages++;
			if ($("idNAllMessages")) $("idNAllMessages").update(g_Babel.GetWord("nmessages") + ": " + g_numOfAllMessages);

			g_Srv.CallFunction("ModifyReport", "pinId=" + key /*serverParams.iID*/ + "&longDescription=" + $("idNewNoteText").value.replace(/&/g,"%26") + "&status=" + $("idNewNoteStatus").options[$("idNewNoteStatus").selectedIndex].value + "&bugType=" + $("idNewNoteTypeOfUpdate").options[$("idNewNoteTypeOfUpdate").selectedIndex].value, 0, me.SelectReportByID);
			//GetBlock("idModifyPinForm").submit();
		}
		else {
			var retVal = me.AddMessageFieldsOK();
			if (retVal == "") {
				g_numOfAllMessages++;
				if ($("idNAllMessages")) $("idNAllMessages").update(g_Babel.GetWord("nmessages") + ": " + g_numOfAllMessages);

				g_Srv.CallFunction("AddNewMessage", "pinId=" + key /*serverParams.iID*/ + "&longDescription=" + $("idNewNoteText").value.replace(/&/g,"%26"), 0, me.SelectReportByID);
			}
			else {
				$("error").style.display = "";
				$("error").update(g_Babel.GetWord("remarkneeded"));
			}
		}

	}


	SetMarker("Pin" /*+ iAddressID*/, address.dCenterX, address.dCenterY, "Pin"/*strMarkerClass*/);

	//g_Srv.ZoomMapRect(0, address.dCenterX, address.dCenterY, address.dCenterX, address.dCenterY, address.dCenterX, address.dCenterY, "", 1, me.ShowPin);
	//g_Srv.CallFunction("SelectPin", "id=" + key, 0, me.FillMessages);
	g_arrMapData[0].selectedPin = key;
	g_Srv.CallMapFunction("SelectPin", 0, "id=" + key, me.FillMessages, 0);
}

this.SelectReportByID = function(id, withZoom) {
	me.Init();	
	me.key = id;
	g_pinList.Refresh();
	$("babelNewNoteSend").onclick=function() {
		if (g_uploadCounter > 0) {
			alert(g_Babel.GetWord("pleasewaitupload"));
			return;
		}

		if (IsAdmin()) {
			g_numOfAllMessages++;
			if ($("idNAllMessages")) $("idNAllMessages").update(g_Babel.GetWord("nmessages") + ": " + g_numOfAllMessages);

			g_Srv.CallFunction("ModifyReport", "pinId=" + id /*serverParams.iID*/ + "&longDescription=" + $("idNewNoteText").value.replace(/&/g,"%26") + "&status=" + $("idNewNoteStatus").options[$("idNewNoteStatus").selectedIndex].value + "&bugType=" + $("idNewNoteTypeOfUpdate").options[$("idNewNoteTypeOfUpdate").selectedIndex].value, 0, me.SelectReportByID);
			//GetBlock("idModifyPinForm").submit();
		}
		else {
			var retVal = me.AddMessageFieldsOK();
			if (retVal == "") {
				g_numOfAllMessages++;
				if ($("idNAllMessages")) $("idNAllMessages").update(g_Babel.GetWord("nmessages") + ": " + g_numOfAllMessages);

				g_Srv.CallFunction("AddNewMessage", "pinId=" + id /*serverParams.iID*/ + "&longDescription=" + $("idNewNoteText").value.replace(/&/g,"%26"), 0, me.SelectReportByID);
			}
			else {
				$("error").style.display = "";
				$("error").update(g_Babel.GetWord("remarkneeded"));
			}
		}

	}


	g_arrMapData[0].selectedPin = id;
	g_Srv.CallMapFunction("SelectPin", 0, "id=" + id, me.FillMessages, withZoom);
}

this.SelectReportByIDWithZoom = function(id) {
	me.SelectReportByID(id, 1);
}

this.AddMessageFieldsOK = function() {
	if ($F("idNewNoteText") == null || $F("idNewNoteText") == "") {
		return "long";
	}
	return "";
}

this.ShowPin = function (serverparams) {
	ClearMarkers(0);
	g_arrMapData[0] = serverparams.mapdata;
	SetMapImage(0);
}

this.FillMessages = function (serverParams, handlerParams) {
	//if (g_arrMapData[0].iShouldDoFit == 1) {
		SetMarker("Pin" /*+ iAddressID*/, serverParams.x, serverParams.y, "Pin"/*strMarkerClass*/);
		g_Srv.ZoomMapRect(0, serverParams.x, serverParams.y, g_arrMapData[0].dShouldFitMinX, g_arrMapData[0].dShouldFitMinY, g_arrMapData[0].dShouldFitMaxX, g_arrMapData[0].dShouldFitMaxY, "", 1, me.ShowPin);
	//}
	/*else*/ if (handlerParams && handlerParams == 1) {
	//alert("alma");
		SetMarker("Pin" /*+ iAddressID*/, serverParams.x, serverParams.y, "Pin"/*strMarkerClass*/);
		//g_Srv.ZoomMapRect(0, serverParams.x, serverParams.y, serverParams.x, serverParams.y, serverParams.x, serverParams.y, "", 1, me.ShowPin);
		g_Srv.ZoomMapRect(0, serverParams.x, serverParams.y, g_arrMapData[0].dShouldFitMinX, g_arrMapData[0].dShouldFitMinY, g_arrMapData[0].dShouldFitMaxX, g_arrMapData[0].dShouldFitMaxY, "", 1);
	}

	if (serverParams.iStatus == 1) {
		$("babelCategory").addClassName("blueArrow");
		$("babelStatus").update("<div class='pinStatus'>" + g_Babel.GetWord("st_active") + "</div>");
	}
	else if (serverParams.iStatus == 2) {
		$("babelCategory").addClassName("greenArrow");
		$("babelStatus").update("<div class='pinStatus'>" + g_Babel.GetWord("st_pending") + "</div>");
	}
	else if (serverParams.iStatus == 3) {
		$("babelCategory").addClassName("grayArrow");
		$("babelStatus").update("<div class='pinStatus'>" + g_Babel.GetWord("st_processed") + "</div>");
	}
	else if (serverParams.iStatus == 4) {
		$("babelCategory").addClassName("redArrow");
		$("babelStatus").update("<div class='pinStatus'>" + g_Babel.GetWord("st_active") + "</div>");
	}
	else if (serverParams.iStatus == 5) {
		$("babelCategory").addClassName("blackArrow");
		$("babelStatus").update("<div class='pinStatus'>" + g_Babel.GetWord("st_archive") + "</div>");
	}

	if (IsAdmin()) {
		if (serverParams.y < 0) {
			$("babelStatus").insert("S");
			$("babelStatus").insert(-serverParams.y + " ");
		}
		else {
			$("babelStatus").insert("N");
			$("babelStatus").insert(serverParams.y + " ");
		}
		if (serverParams.x < 0) {
			$("babelStatus").insert("W");
			$("babelStatus").insert(-serverParams.x);
		}
		else {
			$("babelStatus").insert("E");
			$("babelStatus").insert(serverParams.x);
		}
	}

	$("babelCategory").update("(#" + serverParams.iID + ") " + g_Babel.GetWord(serverParams.category));
	$("shortDesc").update(g_Babel.GetWord(serverParams.description));

	if (IsAdmin()) {
		if (serverParams.iStatus == 1) {
			$("idNewNoteStatus").options[0].selected = true;
		}
		else if (serverParams.iStatus == 2) {
			$("idNewNoteStatus").options[2].selected = true;
		}
		else if (serverParams.iStatus == 3) {
			$("idNewNoteStatus").options[1].selected = true;
		}
		else if (serverParams.iStatus == 5) {
			$("idNewNoteStatus").options[3].selected = true;
		}
		for (var i = 0; i < g_pinCategories.length; i++) {
			if ($("idNewNoteTypeOfUpdate").options[i].text == g_Babel.GetWord(serverParams.category)) {
				$("idNewNoteTypeOfUpdate").options[i].selected = true;
			}
		}
	}

	var iCount = 0;
	$("idMessages").update("");
	for (var i = 0; i < serverParams.iTotal; i++) {

		var hr = new Element("hr", {'class': 'messageSeparator'});
		$("idMessages").insert(hr);
		
		var div = new Element("div");
		$("idMessages").insert(div);

		var p = serverParams.messages[i].strMessage.split("\n");
		var message = "";
		var displacement = 0;
		for (var j = 0; j < p.length; j++) {
		if (serverParams.category == 'poi') {
			if (i == serverParams.iTotal - 1 && p.length >= 12) {
				if (j < 14) {
					var splitted = p[j].split(":");
					if (j == 0) {
						splitted[0] = g_Babel.GetWord("poitype");
					}
					else if (j == 1 && splitted[0].indexOf("Poi") > -1) {
						splitted[0] = g_Babel.GetWord("poisubtype");
						displacement++;
					}
					else if (j == 2 && splitted[0].indexOf("attr") > -1) {
						splitted[0] = g_Babel.GetWord("poiextraattr");
						displacement++;
					}
					else if (j == 1 + displacement) {
						splitted[0] = g_Babel.GetWord("name");
					}
					else if (j == 2 + displacement) {
						splitted[0] = g_Babel.GetWord("brand");
					}
					else if (j == 3 + displacement) {
						splitted[0] = g_Babel.GetWord("settlement");
					}
					else if (j == 4 + displacement) {
						splitted[0] = g_Babel.GetWord("street");
					}
					else if (j == 5 + displacement) {
						splitted[0] = g_Babel.GetWord("housenumber");
					}
					else if (j == 6 + displacement) {
						splitted[0] = g_Babel.GetWord("zip");
					}
					else if (j == 7 + displacement) {
						splitted[0] = g_Babel.GetWord("phone");
					}
					else if (j == 8 + displacement) {
						splitted[0] = g_Babel.GetWord("email");
					}
					else if (j == 9 + displacement) {
						splitted[0] = g_Babel.GetWord("web");
					}
					else if (j == 10 + displacement) {
						splitted[0] = g_Babel.GetWord("opening");
					}
					else if (j == 11 + displacement) {
						splitted[0] = g_Babel.GetWord("note");
					}
					p[j] = "";
					for (var k = 0; k < splitted.length; k++) {
						p[j] = p[j] + splitted[k];
						if (k != splitted.length - 1) {
							p[j] = p[j] + ":";
						}
					}
				}
			}
			}
			message = message + p[j] + "<br />";
		}

		div.innerHTML ='						\
			<div class="msgNum">#' + (serverParams.iTotal - i) + '</div>		\
			<table>							\
			<tbody>							\
			<tr>' +
			(me.ShowUserData ? me.ShowUserData(serverParams, i) : '') +
			'<td class="messageRight">				\
			<div class="messageRightContent">				\
			<div id="message' + i + '">' + message + '</div>	\
			</div>							\
			</td>							\
			</tr>							\
			</tbody>						\
			</table>						\
		';

		for (var j = 0; j < 3; j++) {
			if (serverParams.messages[i].strFileNames[j] && serverParams.messages[i].strFileNames[j] != null && serverParams.messages[i].strFileNames[j] != 0) {
				if (j == 0) {
					$("message" + i).insert("<br /><br />" + g_Babel.GetWord("attachedfiles") + ":<br />");
				}

				var fileholder = new Element("div");
				$("message" + i).insert(fileholder);

				//div.style.color = "Black";
				//div.style.paddingTop = "5px";
				//div.style.fontStyle = "italic";
				//div.style.overflow = "hidden";

				//if (serverParams.downloadable == 1) {
				if (serverParams.messages[i].strThumbnailUrls[j] && serverParams.messages[i].strThumbnailUrls[j] != null && serverParams.messages[i].strThumbnailUrls[j] != "") {
					var img = new Element("img", {src: g_webPrefix + serverParams.messages[i].strThumbnailUrls[j]});
					fileholder.insert(img)
				}
				var fileNameHolder = new Element("span");
				if (IsCurrAdmin() || IsVIP()) {
					var a = new Element("a");
					fileNameHolder.insert(a);
					a.setAttribute("href", g_webPrefix + "download.ashx?sessionID=" + g_strSessionID + "&file=" + serverParams.messages[i].strStoreFileNames[j] + "&origname=" + serverParams.messages[i].strFileNames[j] + "&mimeType=" + serverParams.messages[i].strMimeTypes[j] + "&appId=" + g_strAppID);
					fileNameHolder = a;
				}
				fileNameHolder.update(unescape(serverParams.messages[i].strFileNames[j]));
				fileholder.insert(fileNameHolder);
			}
		}

		/*if (i < serverParams.iTotal - 1) {
			var hr = new Element("hr", {'class': 'messageSeparator'});
			$("idMessages").insert(hr);
		}*/

	}


}


//me.Init(address, key);

//return this;

}

g_ReportSelector = new ReportSelector();