function Commentary()
{
	this.oAjaxThreads = new Array();
	this.loadingThreads = 0;
	this.temp = new Array();
}


Commentary.prototype.getNextThread = function()
{
	var i = 0;
	
	if (this.oAjaxThreads.length == 0)
	{
		var oAjax = new AJAX();
		this.oAjaxThreads.push(oAjax);		
	}

	while (this.oAjaxThreads[i] && this.oAjaxThreads[i].working && i < this.oAjaxThreads.length )
	{
		i++;
	}
	
	if (!this.oAjaxThreads[i])
	{
		var oAjax = new AJAX();
		this.oAjaxThreads.push(oAjax);		
	}
	
	return this.oAjaxThreads[i];
}

Commentary.prototype.loadAll = function(id)
{
	var oAjax =  this.getNextThread();
	oAjax.url = '/admin/commentary/loadAll'
	oAjax.data = 'id='+id;
	oAjax.method = 'post';
	oAjax.addRequestListener(this, this.allLoaded, false);
	oAjax.open();
}

Commentary.prototype.allLoaded = function(xmlDocument)
{
	document.getElementById("account_view").style.display= "";			
	
	var oDOMHelper = new DOMHelper();
	oDOMHelper.removeChilds(document.getElementById('account_view'));
	
	var oParser = new XMLParser(xmlDocument);
	var oCommentaries = oParser.getNodeValue('commentary');
	
	if(oCommentaries)
	{
		var oTable = document.createElement('table');
		oTable.setAttribute('border', 1);
		oTable.setAttribute('width', '100%');
		document.getElementById('account_view').appendChild(oTable);
		
		var oTBody = document.createElement('tbody');
		oTable.appendChild(oTBody);
		
		var oTr = document.createElement('tr');
		oTBody.appendChild(oTr);
		
		var oTd = document.createElement('td');		
		oTd.setAttribute('colspan',"12");
		var a = document.createElement("a");
		a.setAttribute('href', "javascript:void(0);");
		a.setAttribute('onclick', "document.getElementById('account_view').style.display='none';");
		a.innerHTML = '[X]';
		oTd.appendChild(a);
		
		oTr.appendChild(oTd);
		
		var oTr = document.createElement('tr');
		oTBody.appendChild(oTr);
		
		var oTd = document.createElement('td');
		oTd.innerHTML = 'Id';
		oTr.appendChild(oTd);
		
		var oTd = document.createElement('td');
		oTd.innerHTML = 'Account';
		oTr.appendChild(oTd);
		
		var oTd = document.createElement('td');
		oTd.innerHTML = 'Title';
		oTr.appendChild(oTd);
		
		var oTd = document.createElement('td');
		oTd.innerHTML = 'ShortDescription';
		oTr.appendChild(oTd);
		
		var oTd = document.createElement('td');
		oTd.innerHTML = 'Articles';
		oTr.appendChild(oTd);
		
		var oTd = document.createElement('td');
		oTd.innerHTML = 'Media';
		oTr.appendChild(oTd);
		
		var oTd = document.createElement('td');
		oTd.innerHTML = 'Body';
		oTr.appendChild(oTd);
		
		var oTd = document.createElement('td');
		oTd.innerHTML = 'AddedOn';
		oTr.appendChild(oTd);
		
		var oTd = document.createElement('td');
		oTd.innerHTML = 'Actions';
		oTr.appendChild(oTd);
		for(var i = 0; i < oCommentaries.length; i++)
		{
			var oCommentariesParser = new XMLParser(oCommentaries[i]);
	
			var id = oCommentariesParser.getNodeValue('id');
			var accountId = oCommentariesParser.getNodeValue('accountId');
			var title = oCommentariesParser.getNodeValue('title');
			var shortDescription = oCommentariesParser.getNodeValue('shortDescription');
			var articleId = oCommentariesParser.getNodeValue('articleId');
			var mediaId = oCommentariesParser.getNodeValue('mediaId');
			var body = oCommentariesParser.getNodeValue('body');
			var addedOn = oCommentariesParser.getNodeValue('addedOn');
						
			var oTr = document.createElement('tr');
			oTr.setAttribute('id', id);
			oTBody.appendChild(oTr);
			
			var oTd = document.createElement('td');
			oTd.innerHTML = id;
			oTr.appendChild(oTd);
			
			var oTd = document.createElement('td');
			oTd.innerHTML = accountId;
			oTr.appendChild(oTd);
					
			var oTd = document.createElement('td');
			oTd.innerHTML = title;
			oTr.appendChild(oTd);
			
			var oTd = document.createElement('td');
			oTd.innerHTML = shortDescription;
			oTr.appendChild(oTd);
			
			var oTd = document.createElement('td');
			oTd.innerHTML = articleId;
			oTr.appendChild(oTd);
			
			var oTd = document.createElement('td');
			oTd.innerHTML = mediaId;
			oTr.appendChild(oTd);
					
			var oTd = document.createElement('td');
			oTd.innerHTML = body;
			oTr.appendChild(oTd);
			
			var oTd = document.createElement('td');
			oTd.innerHTML = addedOn;
			oTr.appendChild(oTd);
			
			var oTd = document.createElement('td');
			oTr.appendChild(oTd);
			
			var delLink = document.createElement('a');
			delLink.setAttribute('href', 'javascript:void(0);');
			var me = this;
			delLink.setAttribute('id', id);
			delLink.onclick = function () { me.deleteCommentary(this) };
			delLink.innerHTML = '[D]';
			oTd.appendChild(delLink);
			/*
			var editLink = document.createElement('a');
			editLink.setAttribute('href', 'javascript:void(0);');
			var me = this;
			editLink.setAttribute('id', id);
			editLink.onclick = function () { me.newForm(this) };
			editLink.innerHTML = '[E]';
			oTd.appendChild(editLink);
			*/
		}
	}
	else
	{
		document.getElementById("account_view").style.display= "none";	
		alert("Not found")
	}
}

Commentary.prototype.deleteCommentary = function(delLink)
{
	var oAjax =  this.getNextThread();
	
	var id = delLink.getAttribute('id');
	oAjax.url = '/admin/commentary/delete'
	oAjax.data = 'id='+id;
	
	oAjax.method = 'post';
	oAjax.addRequestListener(this, this.commentaryDeleted, false);
	oAjax.open();
}

Commentary.prototype.commentaryDeleted = function(xmlDocument)
{
	alert("Commentary successfully removed.");
	var oParser = new XMLParser(xmlDocument);
    var id = oParser.getNodeValue('id');
    
	var oTr = document.getElementById(id);
	oTr.style.display = 'none';
}

Commentary.prototype.saveCommentary = function()
{
	var oAjax =  this.getNextThread();
	oAjax.url = '/itemCommentary/saveItemCommentary';
	oAjax.data = oDOMHelper.getFormData(document.getElementById("formComment"))+"&body="+FCKeditorAPI.GetInstance("bodyComment").GetXHTML(true);
	oAjax.method = 'post';
	oAjax.addRequestListener(this, this.commentaryAdded, false);
	oAjax.open();
}

Commentary.prototype.commentaryAdded = function(xmlDocument, text)
{
	//window.location.reload();
}

Commentary.prototype.sendMail = function(id, objectId)
{
	if(confirm('Are you sure you want to send this comemntary to all sustainers?'))
	{
		if(document.getElementById('sendMailZsustainers'))
		{
			document.getElementById('sendMailZsustainers').disabled = true;
		}
		
		var object = document.getElementById(objectId);
		if(object)
		{
			object.style.display = 'none';
		}
		
		var messageMail = oUtils.urlencode(FCKeditorAPI.GetInstance("bodyMail").GetXHTML(true));
		
		var oAjax = this.getNextThread();
		oAjax.url = '/admin/commentary/sendMailCommentaries';
		oAjax.method = 'post';
		oAjax.data = 'commentaryId='+id+'&customMessage='+messageMail;
		oAjax.addRequestListener(this, this.renderSendMail, false);
		oAjax.open();
		
		document.getElementById("loadingGifLive").style.display = "";
	}
}

Commentary.prototype.renderSendMail = function(xmlDocument, text)
{
	var oParser = new XMLParser(xmlDocument);
	alert(oParser.getNodeValue('msg'));
	if(document.getElementById('sendMailZsustainers'))
	{
		document.getElementById('sendMailZsustainers').disabled = false;
	}
	document.getElementById("loadingGifLive").style.display = "none";
}

Commentary.prototype.validateSubmission = function() 
{
	var msg = '';
	var error = false;
	var free = false;

	if(document.getElementById('accountId'))
	{
		if(document.getElementById('accountId').value == '')
		{
			msg += 'You have not filled field account'+'\n';
			error = true;
		}
	}
	
	if(document.getElementById('title').value == '')
	{
		msg += 'You have not filled field title'+'\n';
		error = true;
	}
	
	if(document.getElementById('shortTitle').value == '')
	{
		msg += 'You have not filled field short title'+'\n';
		error = true;
	}
	
	if(document.getElementById('description').value == '')
	{
		msg += 'You have not filled field description'+'\n';
		error = true;
	}
	
	if(navigator.appName!='Netscape')
	{
		if(FCKeditorAPI.GetInstance( 'body' ).GetHTML() == '')
		{
			msg += 'You have not filled Body Content'+'\n';
			error = true;
		}
	}
	
	if(error)
	{
		alert(msg);
	}
	else
	{
		oCategorySelector.save('commentary');
	}
}

Commentary.prototype.setSendMail = function()
{
	document.getElementById('fckMail').style.display = '';
	if ( !document.all )
	{
		var oEditor = FCKeditorAPI.GetInstance( 'bodyMail' ) ;

		if (  oEditor.EditMode == FCK_EDITMODE_WYSIWYG )
			oEditor.MakeEditable() ;
	}
}


var oCommentary = new Commentary();