YAHOO.namespace("aos.community");

YAHOO.aos.community.Utils = function() {
};

YAHOO.aos.community.Utils.prototype = {

	getComments : function(articleId) {
		var div = YAHOO.util.Dom.get("AOS_ComBox");
		if (div) {
			var handleSuccess = function(obj) {
				if (obj.responseText !== undefined) {
					clearTimeout(communityTimer);
					div.innerHTML = obj.responseText;
				}
			};
			var handleFailure = function(obj) {
				clearTimeout(communityTimer);
				div.innerHTML = "<div class='AOS_ErrorMsgStrong'>Någonting gick fel när kommentarerna skulle laddas. Vi ber om ursäkt för detta. Ladda gärna om sidan och prova igen.</div>";
			};
			var callback = {
				success: handleSuccess,
				failure: handleFailure,
				timeout: 10000
			};
			var communityTimer = setTimeout("YAHOO.util.Dom.get('AOS_ComBox').innerHTML = \"<div class='AOS_BoxLoad'>Laddar kommentarer<br/><br/><img src='/template/gfx/framework/aos_ajaxloader.gif' width='24' height='24' alt='Laddar kommentarer'/></div>\"", 1000);
			var url = "/template/community/commentsContent.jsp?articleId=" + articleId;
			YAHOO.util.Connect.asyncRequest("GET", url, callback);
		}
	},

	submitComment : function(form, articleId) {
		if ( form.text.value === null || form.text.value === "" ) {
			YAHOO.util.Dom.get('AOS_FormErrorMsg').innerHTML = "Du måste skriva en kommentar.<br/>";
		}
		else {
			YAHOO.aos.community.utils.addComment(form, articleId);
		}
	},

	addComment : function(form, articleId) {
		var div = YAHOO.util.Dom.get("AOS_BoxForm");
		if (div) {
			var handleSuccess = function(obj) {
				if (obj.responseText !== undefined) {
					var status = YAHOO.lang.trim(obj.responseText);
					clearTimeout(communityAddCommentTimer);
					div.innerHTML = obj.responseText;
					div.focus();
				}
			};
			var handleFailure = function(obj) {
				clearTimeout(communityAddCommentTimer);
				div.innerHTML = "<div class='AOS_ErrorMsgStrong AOS_BoxFormStatusBox'>Någonting gick fel, vi ber om ursäkt för detta. Försök igen eller återkom senare. Tänk även på att kommentaren inte får vara längre än 4000 tecken.</div>";
			};
			var callback = {
				success: handleSuccess,
				failure: handleFailure,
				timeout: 10000
			};

			var url = "/template/community/addComment.jsp";
			var data = "articleId=" + encodeURIComponent(articleId) +
				"&userName=" + encodeURIComponent(form.userName.value) +
				"&title=" + encodeURIComponent(form.title.value) +
				"&text=" + encodeURIComponent(form.text.value) +
				"&vote=" + encodeURIComponent(form.vote.value);
			var communityAddCommentTimer = setTimeout("YAHOO.util.Dom.get('AOS_BoxForm').innerHTML = \"<div class='AOS_BoxLoad'>Skickar kommentar<br/><br/><img src='/template/gfx/framework/aos_ajaxloader.gif' width='24' height='24' alt='Skickar kommentar'/></div>\"", 500);
			YAHOO.util.Connect.asyncRequest("POST", url, callback, data);
		}
	},

	getPage : function(page, articleId, pageSize) {
		var div = YAHOO.util.Dom.get("AOS_BoxCB");
		if (div) {
			var handleSuccess = function(obj) {
				if (obj.responseText !== undefined) {
					clearTimeout(communityGetPageTimer);
					div.innerHTML = obj.responseText;
				}
			};
			var handleFailure = function(obj) {
				clearTimeout(communityGetPageTimer);
				div.innerHTML = "<div class='AOS_ErrorMsgStrong AOS_BoxFormStatusBox'>Någonting gick fel, vi ber om ursäkt för detta. Ladda om sidan och försök igen.</div>";
			};
			var callback = {
				success: handleSuccess,
				failure: handleFailure,
				timeout: 10000
			};
			var url = "/template/community/printComments.jsp?p=" + page + "&articleId=" + articleId + "&pageSize=" + pageSize;
			var communityGetPageTimer = setTimeout("YAHOO.util.Dom.get('AOS_BoxCB').innerHTML = \"<div class='AOS_BoxLoad'>Laddar kommentar<br/><br/><img src='/template/gfx/framework/aos_ajaxloader.gif' width='24' height='24' alt='Skickar kommentar'/></div>\"", 500);
			YAHOO.util.Connect.asyncRequest("GET", url, callback);
		}
	},

	setPageSize : function(articleId, pageSize) {
		YAHOO.aos.community.utils.getPage(0, articleId, pageSize);
	},

	showAbuseForm: function(abuseLink) {
		var url = "http://snack.aftonbladet.se/reportAbuse.action?abuseLink=" + abuseLink;
		var params = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=700,height=550';
		var abuseWindow = window.open(url,'Anmäl',params);
		abuseWindow.focus();
		return false;
	},

	showAbuseFormYui : function(abuseLink) {

		var abusePanel = "AOS_AbusePanel" + abuseLink;
		YAHOO.util.Dom.get('AOS_AbuseContainer').innerHTML = "<div id=\"" + abusePanel + "\"><div class=\"hd\"></div><div class=\"bd\"></div><div class=\"ft\"></div></div>";

		var AOS_AbusePanel = new YAHOO.widget.Panel(abusePanel,
			{
				width:"852px",
				height:"580px",
				visible:false,
				draggable:true,
				close:true
			}
		);
		var src = "http://snack.aftonbladet.se/reportAbuse.action?abuseLink=" + abuseLink;
		AOS_AbusePanel.setHeader("Allt om Stockholm - Anmäl en kommentar");
		AOS_AbusePanel.setBody("<iframe src='" + src + "' width='830' height='500' frameborder='0'></iframe>");
		AOS_AbusePanel.render();
		AOS_AbusePanel.center();
		AOS_AbusePanel.show();
	}
}
YAHOO.aos.community.utils = new YAHOO.aos.community.Utils();

