var comment_templates_prepared = false ;
var comment_leftcol_prepared = false ;

var comment_json_template = { version : 3 ,  icon : "0" , color : "rgb(100%,100%,100%)" , text : "" , textsize : "12" , textfont : "0" , textstyles: { bold : "false" , center : "true" , italic : "false" } , inverseorder : true , olddisplay : false } ;

var comment_oldjson_template = {
"1" : { version : 1 ,  icon : "2" , color : "6" , text : "" , textsize : "2" , textfont : "1" , textbold : "0" , textcenter : "0" , textitalic : "0"  , inverseorder : true } ,
"2" : { version : 2 ,  icon : "0" , color : "6" , text : "" , textsize : "12" , textfont : "0" , textstyles: { bold : "false" , center : "true" , italic : "false" } , inverseorder : true }
} ;

var comment_colordesc = { "qmc1" : "color" } ;
var comment_textdesc = { "textstyles" : {"slider": "textsize" , "font" : "textfont" , "bold" : "textstyles.bold" , "italic" : "textstyles.italic", "center" : "textstyles.center" }  } ;

var comment_leftcol_description = [
{ what : "notecolor" , tabname : "tabcolor" , visible : true , elems : [ 
	{ handler : "qsn_addqlubcolorblock" , params : { jsonpath : "color" , others : true ,  transparent:true , title:false , menuseparator: false , modifynote : "qsn_setcolors"  } } 
	] } ,
{ what : "tabstyles" , tabname : "tabtext" , visible : false , elems :[ 
	{ handler : "qsn_addtextsizeslider" , params : { jsonpath : "textsize" } } ,
	{ handler : "qsn_addfontfamilies", params : { jsonpath : "textfont" , ncols : 2  } } ,
	{ handler : "qsn_addtextoptions" , params : { jsonpath : "textstyles" , ncols : 2 , title: "textstyleoptions" ,  opts : [ "bold" , "italic" , "center" ] } } 
	] } ,
{ what : "icone" , tabname : "headericontitle" , visible : false , elems : [ 
	{ handler : "comment_addicon" , params : {  jsonpath : "icon"  } } 
	] }
] ;	


function comment_upgradejson( r ) {
	if ( ! r.version ) r.version = 1 ;
	if ( r.version == comment_json_template.version ) return r ;
	if ( r.version < 2 ) r = comment_upgradejsontov2( r ) ;
	if ( r.version < 3 ) r = comment_upgradejsontov3( r ) ;
	r.version = comment_json_template.version ;
	return r ;
}

function comment_upgradejsontov2( r ) {
	r[ "textstyles" ] = { bold : String( r.textbold!=0 ) , center : String( r.textitalic!=0 ) , italic : String( r.textitalic!=0 ) } ;
	r.textsize = [ "10" , "12" , "15" ][ parseInt( r.textsize , 10 ) - 1 ] ;
	delete r.textbold ;
	delete r.textcenter ;
	delete r.textitalic ;
	if ( r.textsize == 1 ) r.textsize = "10" ;
	if ( r.textsize == 2 ) r.textsize = "12" ;
	if ( r.textsize == 3 ) r.textsize = "15" ;
	return r ; 
}

function comment_upgradejsontov3( r ) {
	r.olddisplay = true;
	return r ; 
}

function comment_template( id ) {
	if ( comment_templates_prepared ) return qsn_template( id , true ) ;
	var div = qsn_installcontainer( "view" , "comment" , ge( "comment_notecontent" ).innerHTML ) ;
	div.style.borderWidth = "0px" ;
	var div = qsn_installcontainer( "edit" , "comment" , ge( "comment_notecontent_edit" ).innerHTML ) ;
	comment_templates_prepared = true ;
	return qsn_template( id , true ) ;
}

/*
function -
function RENDER
*/

var comment_ASparams = [] ;
function comment_AStask() {
	AS.checkremoved_staticcomment_keepnotes( document.mainform[ "q_space" ].value , document.mainform.service.value , comment_ASparams ) ;
}

var comment_AStaskadded = false ;
function comment_addAStask( notedid ) {
	comment_ASparams.push( notedid ) ;
	if ( comment_AStaskadded ) return ;
	AStasks.push( comment_AStask ) ;
	comment_AStaskadded = true ;
}

function comment_renderhtml( xnoteid ) {
	var div = ge( xnoteid ) ;
	var noteid = div.id ; // au cas où l'id de la note a changé
	var r = qsn_thenotes[ noteid ] ;
	qsn_container_renderhtml( div , r ) ;
	var t = gebcn( div , "comment_text" ) ;
	if ( qsn_currstate == "edit" ) {
		t.value = r.text ;
		qsn_blurdefault ( t ) ;
	} else {
		q_innerHTML( t , r.text ) ;

		comment_rendercommentlinks( div, 0 ) ;
		comment_renderdipslay( div, r );
		
		if ( ! qsn_thenotes[ noteid ].common.duplicateid ) {
			if ( window.q_pagemode && q_pagemode() == "makeweb" ) {
				comment_addAStask( noteid ) ;
				var ASres = AS.comment_publishpage( document.mainform[ "q_space" ].value , document.mainform.service.value , noteid , comment_message[ "pagetitle" ].replace( /%s/ , q_currsvcname() ) , q_lang ) ;
				if ( ASres && ASres.pageurl ) comment_renderwebcommentlinks( div , ASres.pageurl , ASres.ncomments ) ;
			} else {
				document.mainform.mission.value = "countComments" ;
				q_ajaxsubmit( { noteid : noteid } , comment_countcomments_done ) ;
			}
		}
	}
	comment_rendericon( div , r ) ;
	qsn_settextproperties( noteid ) ;
	qsn_setcolors( noteid ) ;
}

function comment_renderdipslay( div, r ){
	visibleblock( gebcn( div, "commentaddbtn") , r.olddisplay == false ) ;
	visibleblock( gebcn( div, "comment_count") , r.olddisplay == false ) ;
	visibleblock( gebcn( div, "comment_oldlink") , r.olddisplay == true ) ;
}

function comment_countcomments_done( x ) {
	var noteid = x.noteid;
	var div = ge( noteid ) ;
	var r = qsn_thenotes[ noteid ] ;
	r.nbcomments = x.nbcomments ; 
	comment_rendercommentlinks( div,  r.nbcomments ) ;
}

function comment_rendericon( div, r ) {
	var d = gebcn( div, "comment_noteicon" ) ;
	d.parentNode.style.paddingRight = ( r.icon == "0" ) ?  "0px" : "10px";
	if ( r.icon == "0" ) d.className = d.className.replace(/\bicon[^ ]+\b/, " iconnoicon");
	else if ( r.icon == "1" ) d.className = d.className.replace(/\bicon[^ ]+\b/, " icongrey");
	else if ( r.icon == "2" ) d.className = d.className.replace(/\bicon[^ ]+\b/, " iconorange");
}

function comment_modifynoteicon( id ) {
	var r = qsn_thenotes[ id ] ;
	comment_rendericon( qsn_edittarget , r ) ;
}

/*
function -
function EDIT
*/

function comment_addicon( target , js ){
	var s = '<div class="qsn_iconstable" style="margin: 10px 0 0 -8px"><table  class="comment_headericon_elem" cellspacing="2" cellpadding="0" onclick="qsn_default_handleclick(this , event)" jsonpath="' + js.jsonpath + '" setsetting="q_handleradio" modifynote="comment_modifynoteicon"><tbody><tr><td width="48" valign="bottom"><img class="png" target="1" src="/services/comment/images/comment48grey.png" style="cursor: pointer"/></td><td width="48" valign="bottom"><img class="png" target="2" src="/services/comment/images/comment48orange.png" style="cursor: pointer"/></td><td align="left"><a target="0" name="comment_icon" class="radio off"><img src="/images/blank.gif" />' + comment_message[ "none" ] + '</a><br/><a target="1" name="comment_icon" class="radio off"><img src="/images/blank.gif" />' + comment_message[ "gray" ] + '</a><br/><a target="2" name="comment_icon" class="radio off"><img src="/images/blank.gif" />' + comment_message[ "color" ] + '</a></td></tr></tbody></table></div>' ;
	var div = qsn_addleftcolelem( target , s , "comment_headericon_elem" ) ;
}

function comment_saveedit( ) {
	var r = qsn_thenotes[ qsn_edittarget.id ] ;
	r.text = gebcn( qsn_edittarget , "comment_text" ).value ;
	if ( r.text == comment_message[ "newnoteprompt" ] ) r.text = "" ;
	r.olddisplay = false;
	qsn_saveedit( true ) ;
}

function comment_displaysettings() {
	qsn_initdisplaysetting() ;
	return false ;
}

function comment_newcommentfocusdefault( x, v ) {
	focusdefault( x , comment_message[ v ] , "black" ) ;
}

function comment_newcommentblurdefault( x, v ) {
	blurdefault( x , comment_message[ v ] , "#999" , "black" ) ;
}

/*
function -
function UI
*/

function comment_hideshowcommentform( div ) {
	var d2 = gebcn( div, "comment_newcomment" ) ;
	comment_visiblecommentform( div , ! ( d2.style.display == "block" || d2.style.display == "table" ) ) ;
}

function comment_visiblecommentform( div , b ) {
	var d1 = gebcn( div, "comment_comments" ) ;
	var d2 = gebcn( div, "comment_newcomment" ) ;
	var d3 = gebcn( div, "comment_addnewcomment" ) ;
	var a = gebcn( div, "comment_link");
	
	if ( ! b ) {
		hideshowblock( d2 , d3 ) ;
		a.innerHTML = comment_message["shownewcomment"];
		d1.style.height = ( d1.fullHeight - ( ( d3 ) ? d3.offsetHeight : 0 ) ) + "px" ;
	} else {
		hideshowblock( d3 , d2 ) ;
		a.innerHTML = comment_message["hidenewcomment"];
		if ( ! d1.fullHeight ) d1.fullHeight = d1.offsetHeight + d2.offsetHeight ;
		else d1.style.height = d1.fullHeight - d2.offsetHeight + "px" ;
	}
}

function comment_renderwebcommentlinks( div, pageurl , ncomments ) {
	comment_xrenderwebcommentlinks( "commentaddbtn" , div , pageurl , ncomments ) ;
	comment_xrenderwebcommentlinks( "comment_oldlink" , div , pageurl , ncomments ) ;
	comment_rendercommentlinks( div, ncomments ) ;
}
function comment_xrenderwebcommentlinks( target , div , pageurl , ncomments ) {
	var l = gebcn( div , target ) ;
	if ( ! l ) return ;
	var a1 = gebtn( l, "A") ;
	if ( ! a1 ) return ;
	a1.href = pageurl ;
	l.setAttribute( "onclick" , "document.location = gebtn(this, 'A').href;" ) ;
}

function comment_rendercommentlinks( div, l1 ) {
	var thediv = gebcn( div, "comment_count");
	switch( l1 ) {
		case -1 :
		case 0 :
			thediv.innerHTML = comment_message[ "nocomment" ] ;
			break ;
		case 1 :
			thediv.innerHTML = comment_message[ "onecomment" ] ;
			break ;
		default :
			if ( parseInt( l1, 10 ) ) thediv.innerHTML = comment_message[ "severalcomments" ].replace( "%s", l1 ) ;
			else thediv.innerHTML = comment_message[ l1 ] ;
			break ;
	}
	var l = gebcn( div , "comment_oldlink" ) ;
	var a1 = gebtn( l , "A" );
	switch( l1 ) {
		case -1 :
		case 0 :
			a1.innerHTML = comment_message[ "firstcomment" ] ;
			break ;
		case 1 :
			a1.innerHTML = comment_message[ "showonecomment" ] ;
			break ;
		default :
			if ( parseInt( l1, 10 ) ) a1.innerHTML = comment_message[ "showcomments" ].replace( "%s", l1 ) ;
			else a1.innerHTML = comment_message[ l1 ] ;
			break ;
	}
}

function comment_mouseoverorderbutton( x, mode ) {
	var div = getContainer( x ) ;
	comment_xmouseoverorderbutton( x , qsn_thenotes[ div.getAttribute("target") ].inverseorder , mode ) ;
}

function comment_webmouseoverorderbutton( x, mode ) {
	comment_xmouseoverorderbutton( x , x.ascending , mode ) ;
}

function comment_xmouseoverorderbutton( x , b , mode ) {
	if ( b ) {
		if ( mode == "over" ) q_mouseoverbutton( x ) ;
		else q_mouseoutbutton( x ) ;
	} else {
		if ( mode == "over" ) q_mouseoutbutton( x ) ;
		else q_mouseoverbutton( x ) ;
	}
}

function comment_switchorder( x ) {
	var div = getContainer( x );
	var noteid = div.getAttribute( "target" );
	qsn_thenotes[ noteid ].inverseorder = ! qsn_thenotes[ noteid ].inverseorder ;
	comment_rendercomments( div ) ;
}

function comment_webswitchorder( x ) {
	var b = x.ascending ;
	x.ascending = ! b ;
	gebcn( document.body , "comment_commentsorderinfo" ).innerHTML = comment_message[ ( b ) ? "order1" : "order0" ] ;
	gebcn( document.body , "comment_commentsorder" ).style.backgroundPosition = ( b ) ? "top" : "bottom" ;
	var table = gebtn( gebcn( document.body , "comment_commentslist" ) , "table" ) ;
	var n = table.rows.length / 2 ;
	var tr ;
	for ( var i = n-2 ; i >= 0 ; i-- ) {
		tr = table.rows[ 2*i ] ;
		tr.parentNode.appendChild( tr ) ;
		tr = table.rows[ 2*i ] ; //attention (normalement c'est 2*i+1, mais comme c'est dynamique, le 2*i vient de partir)
		tr.parentNode.appendChild( tr ) ;
	}
}

/*
function -
function COMMENTS
*/

function comment_webinit( svcid ) {
	document.mainform.service.value = svcid.replace( /@.*/ , "@" +q_lang ) ;
	currsvcid = svcid.replace( /@.*/ , "@intl" ) ;
}

function comment_webaddcomment( noteid ) {
	showblock( "q_fullscreenmask" ) ;
	comment_xaddcomment( document.body , noteid , comment_webaddcommentdone ) ;
}
function comment_webaddcommentdone( x ) {
	alert( comment_message[ "messageregistered" ] ) ;
	hideblock( "q_fullscreenmask" ) ;
}

function comment_xaddcomment( div , noteid , callback ,args ) {
//div container : body ou note
	var d = gebcn( div, "comment_newcomment" ) ;
	var inp = getElementsByClassName( d, "comment_inputarea" ) ;
	var j = q_isadmin( memberid ) ? 3 : 0 ; // vérifie seulement la présence du commentaire en mode admin
	var ref = [ "name", "email", "website", "comment" ] ;
	for ( i = j ; i < 4 ; i++ ) {
		if ( i == 2 ) continue ;
		var v = inp[ i ].value ;
		if ( ( v == "" ) || ( v == comment_message[ ref[ i ] + "input" ] ) ) {
			alert ( comment_message[ "missing" + ref[ i ] ] ) ;
			hideblock( "q_fullscreenmask" ) ;
			return focusandselect( inp[ i ] ) ;
		}
		if ( i == 1 ) { // adresse mail
			if ( ! verbosevalidemail ( v.replace( /(^[ ]*)|([ ]*$)/g, "" ) , comment_message [ "invalidemailaddress" ] ) ) {
				hideblock( "q_fullscreenmask" ) ;
				return focusandselect ( inp[ i ] ) ;
			}
		}
	}
	var name = inp[ 0 ].value ;
	var email = inp[ 1 ].value.replace( /(^[ ]*)|([ ]*$)/g, "" ) ;
	var website = inp[ 2 ].value ;
	var comment = inp[ 3 ].value ;
	var date = q_date2isot( new Date() ) ;
	var isadmin = ( q_isadmin(window.memberid)  ) ? 1 : 0 ;
	var emaildata = { } ;
	emaildata[ "objectmail" ] = comment_message[ "mailobject" ].replace( "%p", q_currsvcname() ).replace( "%s", rights_record[ "currspaceright" ].name ) ;
	emaildata[ "bodymail" ] = comment_message[ "mailbody" ].replace( "%n", name ).replace( "%e", email ).replace( "%w", website ).replace( "%c", comment ).replace( "%p", q_currsvcname() ).replace( "%s", rights_record[ "currspaceright" ].name ).replace("%a", window.location.href) ;
	document.mainform.mission.value = "addComment" ;
	q_ajaxsubmit( { noteid : noteid , name : name, email : email , date:date, comment:comment, isadmin:isadmin, website:website , emaildata : emaildata } , callback , args ) ; 
}

function comment_addcomment( x ) {
	var div = getContainer( x );
	var noteid = div.getAttribute( "target");
	var r = qsn_thenotes[ noteid ] ;
	q_fsm_wait() ;
	comment_xaddcomment( div , noteid , comment_loggedaddcommentdone , [ r , div ] ) ;
}

function comment_loggedaddcommentdone( x , r , div ) {
	r.nbcomments = r.nbcomments + 1 ;
	comment_rendercomments( div  );
	q_fsm_delete() ;
	var commentnewcomment = gebcn( div , "comment_newcomment" ) ;
	var inp = getElementsByClassName( commentnewcomment, "comment_inputarea" ) ;
	inp[ 3 ].innerHTML = inp[ 3 ].value = "" ;
	comment_hideshowcommentform( div ) ;
}

function comment_deletecomment( x ) {
	var div = getContainer( x ) ;
	var noteid = div.getAttribute("target");
	if ( ! confirm( comment_message[ "confirmdeletecomment" ] ) ) return ;
	document.mainform.mission.value = "delComment" ;
	q_ajaxsubmit( { noteid : noteid , commentid : x.commentindex }, comment_deletecomment_callback , [ div, noteid ] ) ; 
}

function comment_deletecomment_callback( x , div, noteid ) {
	var r = qsn_thenotes[ noteid ] ;
	r.nbcomments = r.nbcomments - 1;
	comment_rendercomments( div ) ;	
}

function comment_displaycomments( x ) { 
	var noteid = getContainer( x ).id;
	var div = create_elem("DIV", { className : "comment_fullscreendiv container", align : "left", style : { backgroundColor : "white", fontSize : "12px", width : "600px" } } ) ;
	div.setAttribute( "target", noteid ) ;
	div.onmousedown = function( event ){ q_stopPropagation( event ); }
	
	div.appendChild( create_elem( "DIV", { className : "comment_commentsheader" , innerHTML : gebcn( noteid, "comment_commentsheader").innerHTML  } ) );
	div.appendChild( create_elem( "DIV", { className : "comment_comments" , innerHTML : gebcn( noteid, "comment_comments").innerHTML  } ) );
	div.appendChild( create_elem( "DIV", { className : "comment_addnewcomment" , innerHTML : gebcn( noteid, "comment_addnewcomment").innerHTML, style : { display : "none" } } ) );
	var commentnewcomment = div.appendChild( create_elem( "DIV", { className : "comment_newcomment" , innerHTML : gebcn( noteid, "comment_newcomment").innerHTML, style : { display : "none" } } ) );
//	gebcn(div, "sendbtn").setAttribute( "target", noteid );
	
	// On initialise le formulaire
	var inp = getElementsByClassName( commentnewcomment, "comment_inputarea" ) ;		
	if ( q_isadmin( memberid ) ) { // mode admin
		inp[ 0 ].value = q_username( memberid ) ;
		hideblock( inp[ 1 ].parentNode.parentNode ) ; // masque l'e-mail
		hideblock( inp[ 2 ].parentNode.parentNode ) ; // masque l'adresse web
	} else {
		comment_newcommentblurdefault( inp[ 0 ], "nameinput" ) ;
		comment_newcommentblurdefault( inp[ 1 ], "emailinput" ) ;
		if ( q_username( memberid ) != common_message[ "undefineduser" ] ) inp[ 0 ].value = q_username( memberid ) ;
	}
	comment_newcommentblurdefault( inp[ 3 ], "commentinput" ) ;	
	
	q_fsm_reveal( { src : div , title : comment_message["commentsadministration"] , reveal_callback : "comment_fsm_reveal"  } ) ;
}

function comment_fsm_reveal( div, json  ){ 
	comment_rendercomments( json.src ) ;
	comment_visiblecommentform( json.src , true ); 
 }

function comment_rendercomments( div ) {
	var noteid = div.getAttribute( "target" );
	document.mainform.mission.value = "getComment" ;
	q_ajaxsubmit( { noteid : noteid }, comment_rendercomments_callback, [ div, noteid ] ) ; 
}

function comment_rendercomments_callback( x, div, noteid ) {
	var r = qsn_thenotes[ noteid ] ;
	var commentslist = gebcn( div, "comment_commentslist");
	q_innerHTML( commentslist, "");
	
	var n = x.comments.length ;
	r.nbcomments = x.comments.length ; 
	
	var d2 = gebcn( div, "comment_commentsorderinfo");
	var d3 = gebcn( div, "comment_commentsorder");
	var d4 = gebcn( div, "comment_newcomment");
	
	var t = create_table( commentslist , { width : "100%" } );
	if ( n == 0 ) { 
		hideblock( [ d3, d2 ] ) ;
		//comment_hideshowcommentform( div ) ; // affiche le formulaire de commentaire
	} else if ( n == 1 ) {
		hideblock( [ d3, d2 ] ) ;
		comment_renderonecomment( div, t, 0, x.comments[ 0 ] ) ;
	} else {
		if ( r.inverseorder ) {
			d3.style.backgroundPosition = "top" ;
			d2.innerHTML = comment_message[ "order1" ] ;
			for ( var i = n-1; i >= 0; i-- ) comment_renderonecomment( div, t, i, x.comments[ i ] ) ;
		} else {
			d3.style.backgroundPosition = "bottom" ;
			d2.innerHTML = comment_message[ "order0" ] ;
			for ( var i = 0; i < n; i++ ) comment_renderonecomment( div, t, i, x.comments[ i ] ) ;
		}
		showblock( [ d3, d2 ] ) ;
	}
//	showblock( d4 );

	commentslist.appendChild( t );
}

function comment_renderonecomment( div, t, i, c ) {
	var tr, td, isdark, s, src ;
	var origcol = getrealcolor( gcs( gebtn(gebcn(div, "comment_commentsheader"), "TABLE" ) , "backgroundColor" ) );
	
	//var bcgcol = rgbcontrastcolor( origcol, 10 );
	var bcgcol = origcol;
	var bcgcol2 = rgbcontrastcolor( origcol, 80 );
	//var bcgcol2 = rgbcontrastcolor150( origcol ); // ne marche pas sur IE
	
	var textcol = ( rgb2brightness( bcgcol ) < 50 ) ? "#FFF" : "#000" ;
	var textcol2 = ( rgb2brightness( bcgcol2 ) < 50 ) ? "#FFF" : "#000" ;
	var cm = comment_message ;
	var path = "/services/comment/images/" ;
	t.style.cellPadding="0px";
	tr = t.insertRow( -1 ) ;
	
	// coin gauche et icône
	td = create_td( tr , { width: "1%", style : { backgroundColor: ( ( i % 2 != 0 ) ? bcgcol : bcgcol2 ) } } ) ;
	d = create_elem( "div", { className: "png comment_leftcorner" } ) ;	
	src = ( c.isadmin == 1 ) ? "star16.png" : "arrow16.png" ;
	d.appendChild( create_elem( "IMG", { className: "png", src : path + src } ) ) ;
	td.appendChild( d ) ;
	
	// numéro
	td = create_td( tr , { width: "1%", align: "left" } ) ;
	d = td.appendChild( create_elem( "DIV", { className: "comment_commentnumber", innerHTML : ( i + 1 ) + "." , style : { backgroundColor : ( ( i % 2 != 0 ) ? bcgcol : bcgcol2 ), color : ( ( i % 2 != 0 ) ? textcol : textcol2 ) } } ) );
	
	// nom
	td = create_td( tr , { width: "1%", align: "left" } ) ;
	d = td.appendChild( create_elem( "DIV", { className: "comment_commentauthor", innerHTML : c.name , style : { backgroundColor : ( ( i % 2 != 0 ) ? bcgcol : bcgcol2 ), color : ( ( i % 2 != 0 ) ? textcol : textcol2 ) } } ) );

	// coin droit
	td = create_td( tr , { width: "1%", style : { backgroundColor: ( ( i % 2 != 0 ) ? bcgcol : bcgcol2 ) } } ) ;
	td.appendChild( create_elem( "DIV", { className: "png comment_rightcorner" } ) ) ;
	
	// td intermédiaire IE6
	td = create_td( tr , { width: "1%" } ) ;
	// lien web
	td = create_td( tr , { width: "1%", align: "left" } ) ;
	if ( ( c.website != "" ) ) {
		s = create_elem( "A", { href : "http://" + c.website , target : "_blank" , title : cm[ "website" ].replace( "%s", c.name ) } ) ;
		d = create_elem( "IMG", { src : path + "globe16.png", alt : "" , border : "0" , style : { cursor : "pointer" } } ) ;
		s.appendChild( d ) ;
		td.appendChild( s ) ;
	}
	// lien supprimer
	td = create_td( tr , { align: "center", width : "93%" } ) ;
	if ( window.members && window.members[ memberid ] && window.members[ memberid ].userlevel == "admin" ) {
		d = create_elem( "A", { href: "quomodo:comment", innerHTML : cm[ "deletecomment" ], style : { fontSize : "11px", color : "red" } } ) ;
		d = td.appendChild( d ) ;
		d.commentindex = c.id ;
		d.onclick = function( ) { comment_deletecomment( this ); return false; } ;
	}
	
	// date
	td = create_td( tr , { width : "1%", align: "right" } ) ;
	td.appendChild( create_elem( "SPAN", { className: "comment_commentdate", innerHTML : q_isot2string( c.date.toString() ) } ) ) ;
	
	// texte
	tr = t.insertRow( -1 ) ;
	td = create_td( tr );
	td = create_td( tr , { colSpan: "7" } ) ;
	d = td.appendChild( create_elem( "DIV", { className: "comment_commentext", innerHTML : c.comment.replace( /(.)(\1{15})/g , "$1$2 " ), style : { backgroundColor : ( ( i % 2 != 0 ) ? bcgcol : bcgcol2 ) , color : ( ( i % 2 != 0 ) ? textcol : textcol2 ) } } ) ) ;
}

/*
function -
function UTILES
*/

function q_isadmin( x ) {
	if ( window.web_js_loaded ) return false ;
	if ( ! members[ x ] ) return false ;
	if ( members[ x ].userlevel == "admin" ) return true ;
	else return false ;
}

function comment_suppressnote( x ){
	var yes = qsn_suppressnote( x , true ) ;
	/*
	le xml n'est pas supprimé, sinon il y'a risque d'erreur en mode web (si l'admin en publie pas ses modofications)
	if( yes ) {
		document.mainform.mission.value = "deleteXML" ;
		q_ajaxsubmit( { noteid : x } ) ; 
	}
	*/
}

/*
function -
function TOOLBAR
*/

function comment_toolbarversion( id ) {
	return 1 ;
}

var comment_js_loaded = true ;
if ( window.qdyn_loaded ) qdyn_loaded ( "comment_js_loaded" ) ;
