DBM.module.Comments = {
	
	commentsTarget: "comments_container",
	
	commentsFormTarget: "comments_form_container",
	
	currentCommentId: "",
	
	modulePath: "",
	
	discussionId: "",
	
	addCommentVoteCallback: {
		 success: function(o) {
		 	DBM.util.createDiv(DBM.module.Common.requests[o.tId].target, o.responseText);
		  	DBM.module.Common.defaultCallback.success(o);
		  	var div = new DBM.util.getObj("pointsclicker_"+ DBM.module.Comments.currentCommentId);
			var a = div.obj.childNodes[0];
			a.className = 'pointclicker-faded';
			a.onclick = function() {return false;}
		  },  	
		  failure: function(o) {
		  	DBM.module.Common.defaultCallback.failure(o);
		  },  	
		  timeout: DBM.module.Common.timeout
	},
	
	addCommentVote: function (commentId, voteCount) {
		
		this.currentCommentId = commentId;
				
		DBM.util.createDiv(DBM.module.Common.currentLoadingTarget, DBM.module.Common.defaultLoadingHTML);
		
		var target = "points_" + commentId;
		var loadingTarget = "points_" + commentId;
		var callback = this.addCommentVoteCallback;
		var url = DBM.module.Common.rootUrl+  DBM.module.Comments.modulePath + "/?op=AddCommentVote&commentId=" + commentId + "&vote=1&voteCount=" + voteCount;
		var tId = YAHOO.util.Connect.asyncRequest('GET', url, callback);
		
		DBM.module.Common.addRequest(tId, url, callback, target, loadingTarget, "GET");
		
	},
	
	navigateCallback: {
		success: function(o) {
			if (o.responseText.length > 0) {
				DBM.util.createDiv(DBM.module.Common.requests[o.tId].target, o.responseText);
			}
			else {
		  		DBM.module.Common.defaultCallback.failure(o);
		  	}
			DBM.module.Common.defaultCallback.success(o);
			//ss.scrollNow("comments");	
		},
	
		failure: function(o) {
			DBM.module.Common.defaultCallback.failure(o);
		  	if (DBM.module.Common.requests[o.tId].isStopped) {
			  	errorElement = document.getElementById("navigationError");
			  	
			  	if (errorElement) {
				  	errorElement.className = "errormessage";
				  	errorElement.innerHTML = "Kommentarsystemet svarer ikke. Vennligst prøv igjen.";
			  	}
			  	else {
			  		//alert("Kommentarsystemet svarer ikke. Vennligst prøv igjen " + o.status +  " " + o.statusText + " tekst: " + o.responseText);
			  	}
		  	}
		},  	
		timeout: DBM.module.Common.timeout
		
	},
	
	
	// The callback object for listing comments
	commentsListCallback: {  	
		  success: function(o) {
		  	if (o.responseText.length > 0) {
				DBM.util.createDiv(DBM.module.Common.requests[o.tId].target, o.responseText);
				
				if (o.argument.commentId != undefined && o.argument.commentId != "" ) {
					window.location = "#comment_" + o.argument.commentId;
				}
				
				var source = document.getElementById("comments_total");
				var el1 = document.getElementById("ncomments_top");
				var el2 = document.getElementById("ncomments_bottom");
				
				if (source && el1) {
					if (source == "") {
						el1.innerHTML = "0";	
						
					}
					else {
						el1.innerHTML = source.innerHTML;	
						
					}
				}
				
				if (source && el2) {
					if (source == "") {
						el2.innerHTML = "0";
					}
					else {
						el2.innerHTML = source.innerHTML;	
					}
				}
				
				
		  	}
		  	else {
		  		DBM.module.Common.defaultCallback.failure(o);
		  	}
		  	DBM.module.Common.defaultCallback.success(o);
		  },  	
		  failure: function(o) {
		   	//alert("kunne ikke laste");
		  	DBM.module.Common.defaultCallback.failure(o);
		  	if (DBM.module.Common.requests[o.tId].isStopped) {
			  	errorElement = document.getElementById("navigationError");
			  	
			  	if (errorElement) {
				  	errorElement.className = "errormessage";
				  	errorElement.innerHTML = "Kommentarsystemet svarer ikke. Vennligst prøv igjen.";
			  	}
			  	/*else {
			  		DBM.util.createDiv(DBM.module.Common.requests[o.tId].target, "");
			  	}*/
		  	}
		  },  	
		  timeout: DBM.module.Common.timeout,
		argument: {commentId: ""} 	
	},
	
	// window.location = "#comment_345345";
	
	// Inserts comments as a part of the page
	insertComments: function (discussionId, target, loadingTarget, page, orderType, loadingHTML, callback, tag, commentId) {

		if (loadingTarget == undefined) {
			loadingTarget = this.commentsTarget;	
		}
		
		if (target != undefined) {
			this.commentsTarget = target;	
		}
		
		
		if (commentId != undefined) {
			directString = '&commentId=' + commentId;	
			this.commentsListCallback.argument.commentId = commentId;	
		}
		else {
			directString = '';	
		}
		
		target = this.commentsTarget;
		
		if (loadingHTML == undefined) {
			loadingHTML = DBM.module.Common.defaultLoadingHTML;	
		}
		
		if (page == undefined) {
			page = 1;
		}
		
		if (page == this.commentsListCallback) {
			callback = 1;
		}
		
		if (callback == undefined || callback == '') {
			callback = this.commentsListCallback
		}
		
		if (parseInt(orderType)) {
			
			var orderTypeString = "&orderType=" + orderType;	

		}
		else {
			orderType = "";
			var orderTypeString = "";	
		}

		DBM.util.createDiv(loadingTarget, loadingHTML);
		
		if (tag == undefined || tag == "") {
			
			url = DBM.module.Common.rootUrl +  DBM.module.Comments.modulePath + "/?op=ViewComments&discussionId=" + discussionId + orderTypeString + "&page=" + page + directString;
		}
		else {
			url = DBM.module.Common.rootUrl +  DBM.module.Comments.modulePath + "/?op=ViewCommentsByTag&tag=" + tag + orderTypeString + "&page=" + page;
		}
		
		tId = YAHOO.util.Connect.asyncRequest('GET', url, callback); 
		DBM.module.Common.addRequest(tId, url, callback, target, loadingTarget, "GET");
	
	},
	
	// A wrapper function for insertComments, to include scrolling if necessary
	navigateComments: function (discussionId, divId, loadingDivId, page, doScroll, tag) {
		loadingHTML = '<a class="button loading">' + page + '</a>';
		
		var orderType="";
		if (doScroll) {
			location.hash = divId;
	    	this.insertComments(discussionId, divId, loadingDivId, page, orderType, loadingHTML, this.navigateCallback, tag);
		}
		else {
			this.insertComments(discussionId, divId, loadingDivId, page, orderType, loadingHTML, this.commentsListCallback, tag);
		}
	},
	
	// The callback object for comment forms
	commentsFormCallback: {   
		success: function(o) {

			DBM.util.createDiv(DBM.module.Common.requests[o.tId].target, o.responseText);
		  	DBM.module.Common.defaultCallback.success(o);
		  	
		  	var element = document.getElementById("discussionSourceUrl");
		  	if (element) {
		  		if (element.value == "") {
		  			element.value = top.location;	
		  		}	
		  	}
		  	
		  
		  	//var multi_selector = new MultiSelector( document.getElementById( 'files_list' ), 5 );	
			//multi_selector.addElement( document.getElementById( 'my_file_element' ) );
		  	
		  },  	
		  failure: function(o) { 
		  	DBM.module.Common.defaultCallback.failure(o);
		  	if (DBM.module.Common.requests[o.tId].isStopped) {
			  	errorElement = document.getElementById("navigationError");
			  	if (errorElement) {
				  	errorElement.className = "errormessage";
				  	//errorElement.innerHTML = "Kommentarsystemet svarer ikke. Vennligst forsøk på nytt"; // Vennligst prøv igjen " + o.status +  " " + o.statusText + " " + o.responseText;
			  	}
			  	else {
			  		
			  		DBM.util.createDiv(DBM.module.Common.requests[o.tId].target, "");
			  		//alert("KOMMENTARSKJEMA: Kommentarsystemet svarer ikke. Vennligst prøv igjen " + o.status +  " " + o.statusText + " " + o.responseText);
			  	}
		  	}
		  },  	
		  timeout: DBM.module.Common.timeout
	},
	
	// Inserts a comment form where necessary
	insertCommentsForm: function (discussionId, target, parentId, loadingTarget, loadingHTML) {
		
		if (parentId != undefined) {
			parentIdString = "&parentId=" + parentId;
			
			parentTitleElement = document.getElementById("commenttitle_link_"  + parentId);
			if (parentTitleElement && parentTitleElement.innerHTML != "" && parentTitleElement.innerHTML != undefined) {
				titleString = "&title=" + escape("RE: " + 	parentTitleElement.innerHTML);
			}
			else {
				titleString = "";	
			}
				
		}
		else {
			parentIdString = "";
			titleString = "";
		}
		
		if (discussionId == undefined) {
			discussionId = this.discussionId;	
		}
		
		if (target != undefined) {
			this.commentsFormTarget = target;	
		}
		else {
			target = this.commentsFormTarget;	
		}
		
		if (loadingTarget == undefined) {
			loadingTarget = this.commentsFormTarget;	
		}
		
		if (loadingHTML == undefined) {
			loadingHTML = DBM.module.Common.defaultLoadingHTML;	
		}
		
		DBM.util.createDiv(loadingTarget, loadingHTML);

		var callback = this.commentsFormCallback;
		
		var url = DBM.module.Common.rootUrl +  DBM.module.Comments.modulePath + "/?op=NewComment&discussionId=" + discussionId + parentIdString + titleString;
		var tId = YAHOO.util.Connect.asyncRequest('GET', url, callback); 
		
		DBM.module.Common.addRequest(tId, url, callback, target, loadingTarget, "GET");
	
		
		return false;
	},
	
	// Submits a comment form
	submitCommentForm: function (formId, target, loadingTarget, commentId, loadingHTML) {
		
		if (target != undefined) {
			this.commentsFormTarget = target;	
		}
		
		if (loadingTarget == undefined) {
			loadingTarget = this.commentsFormTarget;	
		}
		
		if (loadingHTML == undefined) {
			loadingHTML = DBM.module.Common.defaultLoadingHTML;	
		}
		
		if (commentId != undefined && commentId != "") {
		    this.submitCommentFormUploadCallback.argument.commentId = commentId;	
		    this.submitCommentFormUploadCallback.argument.target = "feedback_" + commentId;
		}
		else {
			this.submitCommentFormUploadCallback.argument.commentId = "";
			this.submitCommentFormUploadCallback.argument.target = "comments_form_container";
		}
		

		DBM.util.createDiv(loadingTarget, loadingHTML);
		
		var formObject = document.getElementById(formId);	
		YAHOO.util.Connect.setForm(formObject, true, true);  	 	
		var tId = YAHOO.util.Connect.asyncRequest('POST', DBM.module.Common.rootUrl +  DBM.module.Comments.modulePath + "/", this.submitCommentFormUploadCallback);
		
		
	},
	
	// The callback object for submitting a comment form
	submitCommentFormCallback: { 
		success: function(o) {
			//alert(o.responseText);
			DBM.util.createDiv(o.argument.target, o.responseText);

			var element = document.getElementById('updateData');
			if (element) {
				for (i=0; i<element.childNodes.length; i++) {
					node = element.childNodes[i];
					//alert(node.value + " " + node.id);
					if (node.id=="discussionId") {
						var discussionId = node.value;
					}
				}
				DBM.module.Comments.insertComments(discussionId, "comments_container", "commentsfooter")
			}
			
			var element = document.getElementById("discussionSourceUrl");
		  	if (element) {
		  		if (element.value == "") {
		  			element.value = top.location;	
		  		}	
		  	}
		}, 
		
		failure: function(o) {
			alert ("Kommentarsystemet kunne ikke lagre din kommentar. Vennligst prøv igjen");
		},
		timeout: DBM.module.Common.timeout,
		argument: {target: this.commentsFormTarget, commentId: ""} 
	},
	
	submitCommentFormUploadCallback: { 
		upload: function(o) {
			//alert(o.argument.target  + o.tId + o.responseText);
			//alert(DBM.module.Comments.commentsFormTarget + o.argument.commentId + o.tId);

			DBM.util.createDiv(o.argument.target, o.responseText);
			var element = document.getElementById('updateData');
			if (element) {
				for (i=0; i<element.childNodes.length; i++) {
					node = element.childNodes[i];
					//alert(node.value + " " + node.id);
					if (node.id=="discussionId") {
						var discussionId = node.value;
					}
				}
				DBM.module.Comments.insertComments(discussionId, "comments_container", "commentsfooter")
			}
			
			var element = document.getElementById("discussionSourceUrl");
		  	if (element) {
		  		if (element.value == "") {
		  			element.value = top.location;	
		  		}	
		  	}
		},
		argument: {target: this.commentsFormTarget, commentId: ""} 
		
	},
	
	// Submits a comment form
	submitFeedbackForm: function (formObject) {
		
		var loadingTarget = "feedback_buttons";
		var loadingHTML = DBM.module.Common.defaultLoadingHTML;

		YAHOO.util.Connect.setForm(formObject); 
		var target = "feedback_container";

		DBM.util.createDiv(loadingTarget, loadingHTML);
		
		var callback = this.feedbackFormCallback;
		var url = DBM.module.Common.rootUrl + DBM.module.Comments.modulePath + "/"; 	 	
		var tId = YAHOO.util.Connect.asyncRequest('POST', url, callback);
		
		DBM.module.Common.addRequest(tId, url, callback, target, loadingTarget, "POST", formObject);
		
	},
	
	// The callback object for submitting a comment form
	feedbackFormCallback: { 
		success: function(o) {
			//alert(o.responseText);
			
			var response = eval ( "(" + o.responseText + ")" );
			
			var element = document.getElementById("feedback_container_" + response.commentId);
			var z = new YAHOO.widget.Effect(element);
			//YAHOO.util.Dom.removeClass(element,'expanded');
			//YAHOO.util.Dom.addClass(element,'collapsed');
			
			if (response.addClass) {
				YAHOO.util.Dom.addClass('comment_'  + response.commentId, response.addClass);
			}
			
			if (response.removeClass) {
				YAHOO.util.Dom.removeClass('comment_'  + response.commentId, response.removeClass);
			}
			
			var messageText = "";
			if (response.successText) {
				//var messageElement = document.getElementById("message_" + response.commentId);
				//YAHOO.util.Dom.addClass(messageElement,'success_message');
				//messageElement.innerHTML = response.successText;
				messageText = '<span class="success_message">' + response.successText + '</span>';
			}
			else if (response.errorText) {
				//var messageElement = document.getElementById("message_" + response.commentId);
				//YAHOO.util.Dom.addClass(messageElement,'error_message');
				//messageElement.innerHTML = response.errorText;
				messageText = '<span class="error_message">' + response.errorText + '</span>';
			}
			else if (response.errors) {
				//var messageElement = document.getElementById("message_" + response.commentId);
				//YAHOO.util.Dom.addClass(messageElement,'error_message');
				messageText = '<span class="error_message">';
				for(var i = 0; i < response.errors.length; i++) {
					if (i >0) {
						//messageElement.innerHTML += ", ";
						messageText += ", ";
					}
					//messageElement.innerHTML += response.errors[i].errorText;
					messageText += response.errors[i].errorText;
				}
				messageText += '</span>';
			}
			
			if (messageText != "") {
				var fn = function() {
					var z = new YAHOO.widget.Effect(element);
					element.innerHTML = '';
					
					z.BlindDown(50);
					element.innerHTML = '<div class="feedback">' + messageText + '</div>';
				}
				z.BlindUp(0.2, fn);
			}
			else {
				z.BlindUp(0.2);
			}
			
			
			//z.yoyo('<div class="feedback">' + messageText + '</div>');
			
			// Close other buttons
			DBM.module.Comments.closeButton("button_delete_" + response.commentId);
			DBM.module.Comments.closeButton("button_answer_" + response.commentId);
			DBM.module.Comments.closeButton("button_complain_" + response.commentId);
			
		}, 
		
		failure: function(o) {
			//alert ("Kommentaren ble ikke lagret. Vennligst prøv igjen");
		},
		timeout: DBM.module.Common.timeout
	},
	
	showHideComplainFeedback: function (commentId) {
		var element = document.getElementById("feedback_container_" + commentId);
		var button = document.getElementById("button_complain_" + commentId);
		
		if ( !YAHOO.util.Dom.hasClass(button,'button_feedback') ) {

			//var messageElement = document.getElementById("message_" + commentId);
			//messageElement.innerHTML = "";
			
			// Close other buttons
			this.closeButton("button_delete_" + commentId);
			this.closeButton("button_answer_" + commentId);
			this.openButton("button_complain_" + commentId);
			this.openButton("button_complain_" + commentId);
			var z = new YAHOO.widget.Effect(element);
			z.BlindDown(100);
			// Open feedback
			//YAHOO.util.Dom.removeClass(element,'collapsed');
			//YAHOO.util.Dom.addClass(element,'expanded');
			element.innerHTML = 
				'<div class="feedback">' +
					'<form onsubmit="javascript:DBM.module.Comments.submitFeedbackForm(this);return false;">' +
						'<input type="hidden" name="op" value="AddCommentComplaint" />' + 
						'<input type="hidden" name="commentId" value="' + commentId + '" />' + 
						'<input type="hidden" name="templateSet" value="json" />' + 
						'<fieldset class="radio">' +
						'<legend>' +
							'På hvilket grunnlag vil du klage inn denne kommentaren?' +
						'</legend>' +
						'<label for="complaintTypeSpam">' +
							'<input id="complaintTypeSpam" name="complaintType" type="radio" checked="checked" value="1"/>' +
							'Spam' +
						'</label>' +
						'<label for="complaintTypePersonal">' +
							'<input id="complaintTypePersonal" name="complaintType" type="radio" value="2"/>' +
							'Personangrep' +
						'</label>' +
						'<label for="complaintTypeRacial">' +
							'<input id="complaintTypeRacial" name="complaintType" type="radio" value="3"/>' +
							'Rasistisk' +
						'</label>' +
	
						'<label for="complaintTypePornography">' +
							'<input id="complaintTypePornography" name="complaintType" type="radio" value="4"/>' +
							'Pornografisk' +
						'</label>' +
						
						'<label for="complaintTypeOther">' +
							'<input id="complaintTypeOther" name="complaintType" type="radio" value="5"/>' +
							'Annet' +
						'</label>' +
					'</fieldset>' +
					'<div id="feedback_buttons">' +
					'<input type="submit" name="sendComplaint" value="Send klage" class="submit"/> eller <input type="submit" class="submit" name="cancelComplaint" value="Avbryt" onclick="javascript:DBM.module.Comments.showHideComplainFeedback(\'' + commentId + '\');return false;" />' +
					'</div>' +
					'</form>';
				'</div>';
			
		}
		else {
			// Close feeback
			//YAHOO.util.Dom.removeClass(element,'expanded');
			//YAHOO.util.Dom.addClass(element,'collapsed');
			this.closeButton("button_complain_" + commentId);
			var z = new YAHOO.widget.Effect(element);
			z.BlindUp();
			element.innerHTML = "";
			
		}
	},
	
	showHideDeleteFeedback: function (commentId) {
		var element = document.getElementById("feedback_container_" + commentId);
		var button = document.getElementById("button_delete_" + commentId);
		
		if ( !YAHOO.util.Dom.hasClass(button,'button_feedback') ) {
			
			//var messageElement = document.getElementById("message_" + commentId);
			//messageElement.innerHTML = "";
			
			// Close other buttons
			this.closeButton("button_answer_" + commentId);
			this.closeButton("button_complain_" + commentId);
			this.openButton("button_delete_" + commentId);
			var z = new YAHOO.widget.Effect(element);
			z.BlindDown(65);
			// Open feedback
			//YAHOO.util.Dom.removeClass(element,'collapsed');
			//YAHOO.util.Dom.addClass(element,'expanded');
			element.innerHTML =
				'<div class="feedback">' +
					'<b>Ønsker du å fjerne kommentaren helt?</b>' +
					'<form onsubmit="javascript:DBM.module.Comments.submitFeedbackForm(this);return false;">' +
					'<input type="hidden" name="op" value="AdminDeleteComment" />' + 
					'<input type="hidden" name="commentId" value="' + commentId + '" />' + 
					'<input type="hidden" name="templateSet" value="json" />' + 
					'<div id="feedback_buttons">' +
					'<input type="submit" name="sendComplaint" value="Slett kommentar" class="submit"/> eller <input type="submit" class="submit" name="cancelComplaint" value="Avbryt" onclick="javascript:DBM.module.Comments.showHideDeleteFeedback(\'' + commentId + '\');return false;" />' +
					'</div>' +
					'</form>' +
				'</div>';
			
			
		}
		else {
			// Close feeback
			//YAHOO.util.Dom.removeClass(element,'expanded');
			//YAHOO.util.Dom.addClass(element,'collapsed');
			var z = new YAHOO.widget.Effect(element);
			z.BlindUp();
			this.closeButton("button_delete_" + commentId);
			element.innerHTML = "";
		}
	},
	
	showHideStarFeedback: function (commentId, mode) {
		var element = document.getElementById("feedback_container_" + commentId);
		var button = document.getElementById("button_star_" + commentId);
		
		if ( !YAHOO.util.Dom.hasClass(button,'button_feedback') ) {
			
			//var messageElement = document.getElementById("message_" + commentId);
			//messageElement.innerHTML = "";
			
			// Close other buttons
			this.closeButton("button_answer_" + commentId);
			this.closeButton("button_complain_" + commentId);
			this.openButton("button_star_" + commentId);
			this.closeButton("button_destar_" + commentId);
			this.closeButton("button_delete_" + commentId);
			var z = new YAHOO.widget.Effect(element);
			z.BlindDown(65);
			// Open feedback
			//YAHOO.util.Dom.removeClass(element,'collapsed');
			//YAHOO.util.Dom.addClass(element,'expanded');
			
			if (mode == 1) {
				element.innerHTML =
					'<div class="feedback">' +
						'<b>Du kan gi stjerne til innlegg du ønsker skal være mer synlige</b>' +
						'<form onsubmit="javascript:DBM.module.Comments.submitFeedbackForm(this);return false;">' +
						'<input type="hidden" name="op" value="AdminStarComment" />' + 
						'<input type="hidden" name="commentId" value="' + commentId + '" />' + 
						'<input type="hidden" name="templateSet" value="json" />' + 
						'<div id="feedback_buttons">' +
						'<input type="submit" name="sendStar" value="Gi stjerne" class="submit"/> eller <input type="submit" class="submit" name="cancelComplaint" value="Avbryt" onclick="javascript:DBM.module.Comments.showHideStarFeedback(\'' + commentId + '\');return false;" />' +
						'</div>' +
						'</form>' +
					'</div>';
			}
			else {
				element.innerHTML =
					'<div class="feedback">' +
						'<b>Du kan fjerne stjernen til innlegg du ikke synes fortjener den</b>' +
						'<form onsubmit="javascript:DBM.module.Comments.submitFeedbackForm(this);return false;">' +
						'<input type="hidden" name="op" value="AdminRemoveStarComment" />' + 
						'<input type="hidden" name="commentId" value="' + commentId + '" />' + 
						'<input type="hidden" name="templateSet" value="json" />' + 
						'<div id="feedback_buttons">' +
						'<input type="submit" name="sendStar" value="Fjern stjerne" class="submit"/> eller <input type="submit" class="submit" name="cancelComplaint" value="Avbryt" onclick="javascript:DBM.module.Comments.showHideStarFeedback(\'' + commentId + '\');return false;" />' +
						'</div>' +
						'</form>' +
					'</div>';
			}
			
			
		}
		else {
			// Close feeback
			//YAHOO.util.Dom.removeClass(element,'expanded');
			//YAHOO.util.Dom.addClass(element,'collapsed');
			var z = new YAHOO.widget.Effect(element);
			z.BlindUp();
			this.closeButton("button_star_" + commentId);
			element.innerHTML = "";
		}
	},
	
	showHideDestarFeedback: function (commentId, mode) {
		var element = document.getElementById("feedback_container_" + commentId);
		var button = document.getElementById("button_destar_" + commentId);
		
		if ( !YAHOO.util.Dom.hasClass(button,'button_feedback') ) {
			
			//var messageElement = document.getElementById("message_" + commentId);
			//messageElement.innerHTML = "";
			
			// Close other buttons
			this.closeButton("button_answer_" + commentId);
			this.closeButton("button_complain_" + commentId);
			this.closeButton("button_delete_" + commentId);
			this.openButton("button_destar_" + commentId);
			this.closeButton("button_star_" + commentId);
			var z = new YAHOO.widget.Effect(element);
			z.BlindDown(65);
			// Open feedback
			//YAHOO.util.Dom.removeClass(element,'collapsed');
			//YAHOO.util.Dom.addClass(element,'expanded');
			if (mode == 1) {
				element.innerHTML =
				'<div class="feedback">' +
					'<b>Du kan gi antistjerne til innlegg du ønsker skal skjules men ikke slettes</b>' +
					'<form onsubmit="javascript:DBM.module.Comments.submitFeedbackForm(this);return false;">' +
					'<input type="hidden" name="op" value="AdminDestarComment" />' + 
					'<input type="hidden" name="commentId" value="' + commentId + '" />' + 
					'<input type="hidden" name="templateSet" value="json" />' + 
					'<div id="feedback_buttons">' +
					'<input type="submit" name="sendStar" value="Gi antistjerne" class="submit"/> eller <input type="submit" class="submit" name="cancelComplaint" value="Avbryt" onclick="javascript:DBM.module.Comments.showHideDestarFeedback(\'' + commentId + '\');return false;" />' +
					'</div>' +
					'</form>' +
				'</div>';
			}
			else {
				element.innerHTML =
				'<div class="feedback">' +
					'<b>Du kan fjerne antistjernen til innlegg du ikke synes fortjener det</b>' +
					'<form onsubmit="javascript:DBM.module.Comments.submitFeedbackForm(this);return false;">' +
					'<input type="hidden" name="op" value="AdminRemoveDestarComment" />' + 
					'<input type="hidden" name="commentId" value="' + commentId + '" />' + 
					'<input type="hidden" name="templateSet" value="json" />' + 
					'<div id="feedback_buttons">' +
					'<input type="submit" name="sendStar" value="Fjern antistjerne" class="submit"/> eller <input type="submit" class="submit" name="cancelComplaint" value="Avbryt" onclick="javascript:DBM.module.Comments.showHideDestarFeedback(\'' + commentId + '\');return false;" />' +
					'</div>' +
					'</form>' +
				'</div>';	
			}
			
			
		}
		else {
			// Close feeback
			//YAHOO.util.Dom.removeClass(element,'expanded');
			//YAHOO.util.Dom.addClass(element,'collapsed');
			var z = new YAHOO.widget.Effect(element);
			z.BlindUp();
			this.closeButton("button_destar_" + commentId);
			element.innerHTML = "";
		}
	},
	
	showHideAnswerFeedback: function (commentId, discussionId) {
		var element = document.getElementById("feedback_container_" + commentId);
		var button = document.getElementById("button_answer_" + commentId);
		
		if ( !YAHOO.util.Dom.hasClass(button,'button_feedback') ) {
			
			//var messageElement = document.getElementById("message_" + commentId);
			//messageElement.innerHTML = "";
			
			// Close other buttons
			this.openButton("button_answer_" + commentId);
			this.closeButton("button_complain_" + commentId);
			this.closeButton("button_delete_" + commentId);
			
			// Open feedback
			//YAHOO.util.Dom.removeClass(element,'collapsed');
			//YAHOO.util.Dom.addClass(element,'expanded');
			var z = new YAHOO.widget.Effect(element);
			z.BlindDown(400);
			element.innerHTML =
				'<div id="feedback_' + commentId + '" class="feedback">' +
				'</div>';
			this.insertCommentsForm(discussionId, "feedback_" + commentId, commentId);
			
			
		}
		else {
			// Close feeback
			//YAHOO.util.Dom.removeClass(element,'expanded');
			//YAHOO.util.Dom.addClass(element,'collapsed');
			var z = new YAHOO.widget.Effect(element);
			z.BlindUp();
			this.closeButton("button_answer_" + commentId);
			element.innerHTML = "";
		}
	},
	
	openButton: function (buttonId) {
		var button = document.getElementById(buttonId);
		YAHOO.util.Dom.addClass(buttonId,'button_feedback');
		YAHOO.util.Dom.removeClass(buttonId,'button');
	},
	
	closeButton: function (buttonId) {
		var button = document.getElementById(buttonId);
		YAHOO.util.Dom.removeClass(buttonId,'button_feedback');
		YAHOO.util.Dom.addClass(buttonId,'button');
	},
	
	init: function (in_discussionId, in_rootUrl, in_modulePath, in_listContainer, in_formContainer, in_commentId) {




		if (in_discussionId != undefined) {
			DBM.module.Comments.discussionId = in_discussionId;	
		}
		
		if (in_rootUrl != undefined) {
			DBM.module.Common.rootUrl = in_rootUrl;	
		}
		
		if (in_modulePath != undefined) {
			DBM.module.Comments.modulePath = in_modulePath;	
		}
				
		if (in_listContainer == undefined || in_listContainer == "") {
			in_listContainer = 	this.commentsTarget;
		}
		
		if (in_commentId == undefined) {
			var getCommentId = this.getVar("commentId");
			if (getCommentId > 0) {
				in_commentId = getCommentId;	
			}	
		}
		
		this.insertComments(in_discussionId, in_listContainer, this.commentsTarget, 1, '', DBM.module.Common.defaultLoadingHTML, this.commentsListCallback, '', in_commentId);

		
		if (in_formContainer == undefined || in_formContainer == "") {
			in_formContainer = this.commentsFormTarget;
		}
		
		this.insertCommentsForm(in_discussionId, in_formContainer);
	
		
	},
	
	showHideCommentForm: function () {
		
	},

	expandCollapseComment: function(in_commentId) {
		
		// Expand/collapse button
		var button = "collapse_" + in_commentId;
		
		// Elements which should collapse/expand
		var elements = new Array();
		elements[0] = "commentbody_" + in_commentId; 
		elements[1] = "commenttools_" + in_commentId; 
		elements[2] = "pointsclicker_" + in_commentId; 
		elements[3] = "commentpoints_" + in_commentId; 
		elements[4] = "commentbyline_" + in_commentId;
		//elements[5] = "profile_image_" + in_commentId;
		//elements[4] = "commentdata_" + in_commentId;
		
		var comment = "comment_" + in_commentId;
		if (YAHOO.util.Dom.hasClass(elements[0], "collapsed")) {
			YAHOO.util.Dom.removeClass(elements, "collapsed");
			YAHOO.util.Dom.addClass(button, "collapse");
			YAHOO.util.Dom.removeClass(button, "expand");
			YAHOO.util.Dom.addClass(comment, "comment");
			YAHOO.util.Dom.removeClass(comment, "morecomments");
			YAHOO.util.Dom.removeClass("profile_image_" + in_commentId, "collapsed");
		}
		else {
			YAHOO.util.Dom.addClass(elements, "collapsed");
			YAHOO.util.Dom.addClass(button, "expand");
			YAHOO.util.Dom.removeClass(button, "collapse");
			YAHOO.util.Dom.removeClass(comment, "comment");
			YAHOO.util.Dom.addClass(comment, "morecomments");
			YAHOO.util.Dom.addClass("profile_image_" + in_commentId, "collapsed");
		}
	},
	
	expandAll: function() {
		var elements = YAHOO.util.Dom.getElementsByClassName('setasexpanded', 'div', 'comments_container');
		
		if (YAHOO.util.Dom.hasClass(elements[0], "collapsed")) {
			
			YAHOO.util.Dom.removeClass(elements, "collapsed");
		
			var elements = YAHOO.util.Dom.getElementsByClassName('setasexpanded', 'a', 'comments_container');
			YAHOO.util.Dom.removeClass(elements, "collapsed");
			
			var elements = YAHOO.util.Dom.getElementsByClassName('setasexpanded', 'p', 'comments_container');
			YAHOO.util.Dom.removeClass(elements, "collapsed");
			
			var elements = YAHOO.util.Dom.getElementsByClassName('setasexpand', 'a', 'comments_container');
			YAHOO.util.Dom.addClass(elements, "collapse");
			YAHOO.util.Dom.removeClass(elements, "expand");
	
			var elements = YAHOO.util.Dom.getElementsByClassName('setascomment', 'div', 'comments_container');
			YAHOO.util.Dom.removeClass(elements, "morecomments");
			YAHOO.util.Dom.addClass(elements, "comment");
			
		}
		else {
			YAHOO.util.Dom.addClass(elements, "collapsed");
		
			var elements = YAHOO.util.Dom.getElementsByClassName('setasexpanded', 'a', 'comments_container');
			YAHOO.util.Dom.addClass(elements, "collapsed");
			
			var elements = YAHOO.util.Dom.getElementsByClassName('setasexpanded', 'p', 'comments_container');
			YAHOO.util.Dom.addClass(elements, "collapsed");
			
			var elements = YAHOO.util.Dom.getElementsByClassName('setasexpand', 'a', 'comments_container');
			YAHOO.util.Dom.addClass(elements, "expand");
			YAHOO.util.Dom.removeClass(elements, "collapse");
	
			var elements = YAHOO.util.Dom.getElementsByClassName('setascomment', 'div', 'comments_container');
			YAHOO.util.Dom.addClass(elements, "morecomments");
			YAHOO.util.Dom.removeClass(elements, "comment");
		}
		
		
	},
	
	
	getVar: function(name) {
		
		get_string = document.location.search;         
		return_value = '';
		
		do { //This loop is made to catch all instances of any get variable.
		name_index = get_string.indexOf(name + '=');
		
		if(name_index != -1)
		  {
		  get_string = get_string.substr(name_index + name.length + 1, get_string.length - name_index);
		  
		  end_of_value = get_string.indexOf('&');
		  if(end_of_value != -1)                
		    value = get_string.substr(0, end_of_value);                
		  else                
		    value = get_string;                
		    
		  if(return_value == '' || value == '')
		     return_value += value;
		  else
		     return_value += ', ' + value;
		  }
		} while(name_index != -1)
		
		//Restores all the blank spaces.
		space = return_value.indexOf('+');
		while(space != -1)
		  { 
		  return_value = return_value.substr(0, space) + ' ' + 
		  return_value.substr(space + 1, return_value.length);
						 
		  space = return_value.indexOf('+');
		  }
		
		return(return_value);        
     }

}	

