function getRecentOpinions(page,placeId)
{
	var callback =
	{
		success: function(o)
		{
			//target div
			var placeId = o.argument[0];
			if(placeId)
			{
				$("opinions_" + placeId).innerHTML = o.responseText;
			}
			else
			{
				opinions.innerHTML = o.responseText;
			}
		},
		failure: function(o)
		{
			alert("Error in getRecentOpinions()");
		},
		argument:[placeId]
	}
	
	var post = "page=" + page;
	if(placeId)
	{
		post += "&placeId=" + placeId;
	}
	
	YAHOO.util.Connect.asyncRequest('POST', "mod/opinion/xhrWrapper.php", callback, post); 
}

function showFullOpinion(id,userId)
{
	$(userId + "opinions_text" + id).style.display = "none";
	$(userId + "opinions_fulltext" + id).style.display = "";
	//$(userId + "opinions_controls" + id).style.display = "";
}

function hideFullOpinion(id,userId)
{
	$(userId + "opinions_fulltext" + id).style.display = "none";
	$(userId + "opinions_text" + id).style.display = "";
	//$(userId + "opinions_controls" + id).style.display = "none";
}

function addOpinion(placeId)
{	
	var post = "placeId=" + placeId;
	
	var callback =
	{
		success: function(o)
		{
			if(o.responseText == "__loginFirst__")
			{
				openLoginDialog();
			}
			else
			{
			
				var panelDiv;
				if(addOpinionPanel)
				{
					panelDiv = $("addOpinion_c");
					document.body.removeChild($("addOpinion_mask"));
					panelDiv.removeChild($("addOpinion"));
					document.body.removeChild(panelDiv);
					overlayManager.remove(addOpinionPanel);
				}
				panelDiv = document.createElement("div");
				panelDiv.id = "addOpinion";
				document.body.appendChild(panelDiv);
				
				panelDiv.innerHTML = o.responseText;				
				
				var panel = new YAHOO.widget.Panel(panelDiv,
					{ fixedcenter: true, 
					constraintoviewport: true, 
					visible:false,
					modal: true, 
					width:"485px", 
	//				height:"560px",
					draggable:true } );
					
				overlayManager.register(panel);
				
				addOpinionPanel = panel;
				
				var editorConfig = {
			        height: '100px',
			        width: '407px',
			        dompath: false,
			        focusAtStart: false,
				    toolbar: {
				        titlebar: 'Text',
				        buttons: [
				            { group: 'textstyle',
				                buttons: [
				                    { type: 'push', label: 'Fett', value: 'bold' },
				                    { type: 'push', label: 'Kursiv', value: 'italic' }
				                ]
				            }
				            ,
							{ type: 'separator' },
						    { group: 'insertitem',
						        buttons: [
						            { type: 'push', label: 'HTML Link', value: 'createlink' }
						        ]
						    }		        
						]
				    }
				};
				
				var addOpinionText = new YAHOO.widget.SimpleEditor('addOpinionText', editorConfig);
				addOpinionText.render();
				panel.editor = addOpinionText
				
				panel.hideEvent.subscribe(function(){
					this.editor.hide();
				}) 
				
				panel.render();
				panel.show();
				
	
			}
		},
		failure: function(o)
		{
			alert("Error in addOpinion()");
		}
	}
	YAHOO.util.Connect.asyncRequest('POST', "mod/opinion/xhrAddOpinion.php", callback, post); 		
}

function saveOpinion()
{
	addOpinionPanel.editor.saveHTML();
	
	var form = document.getElementById("opinionAddForm");
	var error = new Array();
	
	if(isEmpty(trim(form.placeName.value)))
	{
		error.push("Bitte gib eine Bezeichnung f&uuml; den Ort ein!");
	}
	if(isEmpty(trim(form.title.value)))
	{
		error.push("Bitte gib einen Titel ein!");
	}
	if(form.channel.selectedIndex == 0)
	{
		error.push("Bitte w&auml;hle eine Kategorie aus!");
	}
	if(!(form.rating[0].checked || form.rating[1].checked))
	{
		error.push("Bitte w&auml;hle aus, ob deine Meinung positiv oder negativ ist!");
	}
	/*if(!isEmpty(form.picture.value) && !isEmpty(form.link.value))
	{
		error.push("content");
	}*/
	if(isEmpty(error))
	{
		YAHOO.util.Connect.setForm(form, true);
		
		var callback =
		{
			success: addOpinionSuccess,
			upload: addOpinionSuccess,
			failure: function(o)
			{
				alert("Error in saveOpinion()");
			},
			argument: [form.placeId.value]
		};
		waitDialog.show();
		YAHOO.util.Connect.asyncRequest('POST', "mod/opinion/xhrSaveOpinion.php", callback); 
	}
	else
	{
		$("opinionAddError").innerHTML = error.join("<br>");
		$("opinionAddError").style.display = "";
	}
}

function addOpinionSuccess(o)
{
	//$("addOpinionText_container").style.display = "none";
	//addOpinionPanel.editor.hide();
	addOpinionPanel.hide();
	/*if(o.responseText != 1)
	{
		alert("Dein Bild konnte nicht upgeloaded werden.");
	}*/
	placeId = o.argument[0];
	
	//alert(o.responseText);
	
	openDashboard(placeId);
	getRecentOpinions(1,null,true);
	if(addNewOpinionMarker != null)
	{
		addNewOpinionMarker.closeInfoWindow();		
	}
	
	mapRefreshPlaces();
	waitDialog.hide();
	try{
		var jsonData = YAHOO.lang.JSON.parse(o.responseText);
		if(jsonData.template_id && jsonData.tokens)
		{
			//alert(YAHOO.lang.JSON.stringify(jsonData.tokens));
			FB.Connect.showFeedDialog(jsonData.template_id,jsonData.tokens);
		}
	}
	catch(e)
	{}
}

function preAddOpinion()
{
	addNewOpinionOnMapMode = false;
	
	var form = document.getElementById("preAddOpinion");
	
	YAHOO.util.Connect.setForm(form);
	
	var callback =
	{
		success: function(o)
		{
			addOpinion(o.responseText);
		},
		failure: function(o)
		{
			alert("Error in preAddOpinion()");
		}
	};
	
	YAHOO.util.Connect.asyncRequest('POST', "mod/opinion/xhrPreAddOpinion.php", callback); 
}

function preAddArtSpot()
{
	addNewOpinionOnMapMode = false;
	
	var form = document.getElementById("preAddArtSpot");
	
	YAHOO.util.Connect.setForm(form);
	
	var callback =
	{
		success: function(o)
		{
			addArtSpot(o.responseText);
		},
		failure: function(o)
		{
			alert("Error in preAddArtSpot()");
		}
	};
	
	YAHOO.util.Connect.asyncRequest('POST', "mod/opinion/xhrPreAddArtSpot.php", callback); 
}

function addArtSpot(placeId)
{	
	var post = "placeId=" + placeId;
	
	var callback =
	{
		success: function(o)
		{
			if(o.responseText == "__loginFirst__")
			{
				openLoginDialog();
			}
			else
			{
			
				var panelDiv;
				if(addArtSpotPanel)
				{
					panelDiv = $("addArtSpot_c");
					document.body.removeChild($("addArtSpot_mask"));
					panelDiv.removeChild($("addArtSpot"));
					document.body.removeChild(panelDiv);
					overlayManager.remove(addArtSpotPanel);
				}
				panelDiv = document.createElement("div");
				panelDiv.id = "addArtSpot";
				document.body.appendChild(panelDiv);
				
				panelDiv.innerHTML = o.responseText;				
				
				var panel = new YAHOO.widget.Panel(panelDiv,
					{ fixedcenter: true, 
					constraintoviewport: true, 
					visible:false,
					modal: true, 
					width:"485px", 
	//				height:"560px",
					draggable:true } );
					
				overlayManager.register(panel);
				
				addArtSpotPanel = panel;
				
				var editorConfig = {
			        height: '100px',
			        width: '407px',
			        dompath: false,
			        focusAtStart: false,
				    toolbar: {
				        titlebar: 'Text',
				        buttons: [
				            { group: 'textstyle',
				                buttons: [
				                    { type: 'push', label: 'Fett', value: 'bold' },
				                    { type: 'push', label: 'Kursiv', value: 'italic' }
				                ]
				            }
				            ,
							{ type: 'separator' },
						    { group: 'insertitem',
						        buttons: [
						            { type: 'push', label: 'HTML Link', value: 'createlink' }
						        ]
						    }		        
						]
				    }
				};
				
				var addArtSpotText = new YAHOO.widget.SimpleEditor('addArtSpotText', editorConfig);
				addArtSpotText.render();
				panel.editor = addArtSpotText
				
				panel.hideEvent.subscribe(function(){
					this.editor.hide();
				}) 
				
				panel.render();
				panel.show();
				
	
			}
		},
		failure: function(o)
		{
			alert("Error in addArtSpot()");
		}
	}
	YAHOO.util.Connect.asyncRequest('POST', "mod/opinion/xhrAddArtSpot.php", callback, post); 		
}

function saveArtSpot()
{
	addArtSpotPanel.editor.saveHTML();
	
	var form = document.getElementById("artSpotAddForm");
	var error = new Array();
	
	if(isEmpty(trim(form.placeName.value)))
	{
		error.push("Bitte gib eine Bezeichnung f&uuml; den Ort ein!");
	}
	if(isEmpty(trim(form.title.value)))
	{
		error.push("Bitte gib einen Titel ein!");
	}
	if(isEmpty(trim(form.picture.value)))
	{
		error.push("Bitte lade ein Bild hoch!");
	}
	if(!(form.rating[0].checked || form.rating[1].checked))
	{
		error.push("Bitte w&auml;hle aus, ob dir das Fotographierte gef&auml;llt oder nicht!");
	}
	/*if(!isEmpty(form.picture.value) && !isEmpty(form.link.value))
	{
		error.push("content");
	}*/
	if(isEmpty(error))
	{
		YAHOO.util.Connect.setForm(form, true);
		
		var callback =
		{
			success: addArtSpotSuccess,
			upload: addArtSpotSuccess,
			failure: function(o)
			{
				alert("Error in saveArtSpot()");
			},
			argument: [form.placeId.value]
		};
		waitDialog.show();
		YAHOO.util.Connect.asyncRequest('POST', "mod/opinion/xhrSaveOpinion.php", callback); 
	}
	else
	{
		$("artSpotAddError").innerHTML = error.join("<br>");
		$("artSpotAddError").style.display = "";
	}
}

function addArtSpotSuccess(o)
{
	addArtSpotPanel.hide();
	placeId = o.argument[0];
	mapRefreshPlaces();
	waitDialog.hide();
	openDashboard(placeId);
	getRecentOpinions(1,null,true);
	if(addNewArtSpotMarker != null)
	{
		addNewArtSpotMarker.closeInfoWindow();		
	}
	try{
		var jsonData = YAHOO.lang.JSON.parse(o.responseText);
		if(jsonData.template_id && jsonData.tokens)
		{	
			//alert(YAHOO.lang.JSON.stringify(jsonData.tokens));
			FB.Connect.showFeedDialog(jsonData.template_id,jsonData.tokens);
		}		
	}
	catch(e)
	{
		
	}
}


function flagOpinion(opinionId)
{
	var post = "opinionId=" + opinionId;
	
	var callback =
	{
		success: function(o)
		{
			if(o.responseText == "__loginFirst__")
			{
				openLoginDialog();
			}
			else
			{
			
				var panelDiv;
				if(flagOpinionPanel)
				{
					panelDiv = $("flagOpinion_c");
					document.body.removeChild($("flagOpinion_mask"));
					panelDiv.removeChild($("flagOpinion"));
					document.body.removeChild(panelDiv);
					overlayManager.remove(flagOpinionPanel);
				}
				panelDiv = document.createElement("div");
				panelDiv.id = "flagOpinion";
				document.body.appendChild(panelDiv);
				
				panelDiv.innerHTML = o.responseText;				
				
				var panel = new YAHOO.widget.Panel(panelDiv,
					{ fixedcenter: true, 
					constraintoviewport: true, 
					visible:false,
					modal: true,
					draggable:true } );
					
				overlayManager.register(panel);
				
				flagOpinionPanel = panel;
																
				panel.render();
				panel.show();
				
			}
		},
		failure: function(o)
		{
			alert("Error in flagOpinion()");
		}
	}
	YAHOO.util.Connect.asyncRequest('POST', "mod/opinion/xhrFlagOpinion.php", callback, post); 		
}

function saveFlagOpinion()
{
	var form = document.getElementById("opinionFlagForm");
	var error = new Array();
	
	if(isEmpty(trim(form.text.value)))
	{
		error.push("Bitte gib einen Grund ein!");
	}
	if(isEmpty(error))
	{
		var callback =
		{
			success: flagOpinionSuccess,
			failure: function(o){
				alert("Error in saveFlagOpinion()");
			}
		};
		post = "opinionId=" + form.opinionId.value + "&text=" + form.text.value;
		YAHOO.util.Connect.asyncRequest('POST', "mod/opinion/xhrSaveFlagOpinion.php", callback,post); 
	}
	else
	{
		$("opinionFlagError").innerHTML = error.join("<br>");
		$("opinionFlagError").style.display = "";
	}
}

function flagOpinionSuccess(o)
{
	flagOpinionPanel.hide();
}