/*********************************************************************************/
/**			copyright (c) PlanetCalc.com, 2007  			**/
/**		    	Table renderer classes					*/
/*********************************************************************************/

function CommentsRenderer( placeholderid, maxNavigationPages ) {
	this.inheritFrom = RecordsetRenderer;
	this.inheritFrom(placeholderid, maxNavigationPages);

	var me = this;

	this.GetEmptyLines = function ( linesCount ) {
		return "";
	}

	this.CreateTableHeader = function ( sortcolumn, sortdirection, renderSorting ) {
		return "";
	}

	this.CreateRowData = function( rowclass, record ) {

		/* useful stuff
	    var property, propCollection = "";

    	for(property in record)
	    {
    	    propCollection += (property + ": " + record[property] + "\n");
	    }    
	    alert(propCollection);
		*/

		var data = '<tr>';
		data += '<td colspan=2 class="comment_created">';
		data += Spanner('comment_posted', me.Header.GetFormatter('posted') ? me.Header.GetFormatter('posted').Format('posted', record ) : record['posted']);
		if (me.Header.GetFormatter('spamVotes')) { //can report spam
			data += '<span class="spam_control">'; 
			if (me.Header.GetFormatter('spamDelete')) { //can delete spam
				data += me.Header.GetFormatter('spamDelete').Format('spamDelete', record );
				data += ' ';
			}
			data += me.Header.GetFormatter('spamControl').Format('spamControl', record ) + ' ' + record['spamVotes'] + '/' + record['spamLimit']
			data += '</span>';
		}
		data += "</td>";
		data += '</tr>';
		data += '<tr class="comment_data">';
		data += '<td class="author_info">';
		if (0 == record['role'])
			data += this.RenderAnonimousInfo(record);
		else {
			data += Paragrapher('nick', me.Header.GetFormatter('nickname') ? me.Header.GetFormatter('nickname').Format('nickname', record ) : record['nickname']);		
			data += Paragrapher('role', me.Header.GetFormatter('role') ? me.Header.GetFormatter('role').Format('role', record ) : record['role']);
			data += Paragrapher('photo', me.Header.GetFormatter('photo') ? me.Header.GetFormatter('photo').Format('photo', record ) : record['photo'])
			data += Paragrapher('regdate', me.Header.GetFormatter('created') ? me.Header.GetFormatter('created').Format('created', record ) : record['created']);
			data += Paragrapher('posts', me.Header.GetFormatter('posts') ? me.Header.GetFormatter('posts').Format('posts', record ) : record['posts']);		
		}
		data += '</td>';
		data += '<td class="message">';
		data += record['message'];		
		data += '</td>';
		data += '</tr>';
		return data;
	}	

	this.RenderAnonimousInfo = function( record ) {
		record['photo'] = '/img/none.jpg';
		var res = Paragrapher('nick', me.Header.GetFormatter('nickname') ? me.Header.GetFormatter('nickname').Format('nickname', record ) : record['nickname']);		
		res += Paragrapher('role', me.Header.GetFormatter('role') ? me.Header.GetFormatter('role').Format('role', record ) : record['role']);
		res += Paragrapher('photo', me.Header.GetFormatter('photo') ? me.Header.GetFormatter('photo').Format('photo', record ) : record['photo']);
		return res;
	}	

	function Paragrapher(classname, text) {
		return '<p class="'+ classname + '">' + text + '</p>';
	}

	function Spanner(classname, text) {
		return '<span class="'+ classname + '">' + text + '</span>';
	}
}

