function abd3msgs_reuse( bcount, mid) {
	location.href=basepath+"abd3_home.php?atoken="+auth_token+"&&mydomain="+appdomain+"&&extra="+mid+"&&tag=10&&";
}


// chamada qdo se passa o mouse sobre um registro
// basicamente so se muda a classe CSS
function abd3msgsbrowseover( div, bcount, idx )
{
	var obj = $('abd3msgsbrowse'+bcount);
	div.className = obj.selected == idx ? 'item_selected' : 'item_over';
}

// chamada qdo se passa o mouse sobre um registro
// basicamente so se muda a classe CSS
function abd3msgsbrowseout( div, bcount, idx )
{
	var obj = $('abd3msgsbrowse'+bcount);
	div.className = obj.selected == idx ? 'item_selected' : 'item';
}


function abd3msgsbrowseclick( id , type , bcount)
{
	//debug( id, source, bcount, atoken );
	//return;
	//setplace( id, 0, type );
//	var urlget = 'linkmeme.php?source=1&&vid=' + id + '&bcount=' + bcount + '&atoken=' + atoken + '&pan=abd3msgsbrowse';
//	ajaxrequest( urlget, 'backtohome', $('abd3msgsbrowse'+bcount), 0 );
//	abd3msgsbrowserefresh( bcount, 0 );
}

var detailrequest = null;

/* gets the product record vars */


function abd3msgsbrowserec( bcount, idx, nodelist )
{
	var i = 0, j;

	brecs[bcount][idx] = new Object;
	brecs[bcount][idx].id = nodelist[0].firstChild.nodeValue;

    //debug(idx, brecs[bcount][idx].id);
    brecs[bcount][idx].cols = new Array;
    for( i = 0 ; i < nodelist.length ; i++ )
        brecs[bcount][idx].cols[i] = nodeval( nodelist[i] );

}

function abd3msgsbrowsesortby( bcount, idx )
{
	var obj = $('abd3msgsbrowse'+bcount);
	if( !isdefined(obj.sort) ) obj.sort = 1;
	if( obj.sort == idx ) idx *= -1;
	obj.sort = idx;
	abd3msgsbrowserefresh( bcount, 0 );
}

function abd3msgsbrowsesearch( o )
{
	var sval = o.search.value == o.search.getAttribute( 'default' ) ? '' : o.search.value;
	var tval = o.srchstatus.value;

	var node = o;
	while( !isdefined( node.bcount ) && node != document.body )
	{
		node = node.parentNode;
	}
	var bcount = node.bcount;
	var obj = $('abd3msgsbrowse'+bcount);

	if (( sval == obj.search ) && (tval == obj.userstatus )) {
		o.search.focus();
	} else {
		obj.search = sval;
		obj.userstatus = tval;
		obj.selected = -1;
		abd3msgsbrowserefresh( bcount, 0 );
	}
	return false;
}


function abd3msgsbrowseinsearch( o )
{
	var sval = o.search.value;
	if( sval == o.search.getAttribute( 'helper') ) sval = '';
//	var cval = o.srchstatus.value;

	var node = o;
	while( !isdefined( node.bcount ) && node != document.body )
	{
		node = node.parentNode;
	}
	var bcount = node.bcount;
	var obj = $('abd3msgsbrowse'+bcount);

	if (sval == '' )	{
		o.search.focus();
//	} else if (sval == obj.search && cval == obj.userstatus )	{
//		o.search.focus();
	} else 	{
		obj.search = sval;
//		obj.userstatus = cval;
		obj.selected = -1;
		abd3msgsbrowserefresh( bcount, 0 );
	}
	return false;
}



function abd3msgsbrowserefresh( bcount, idx )
{
	$('abd3msgsbrowsecontent_'+bcount).innerHTML = '';
	idx = brec[bcount];
	delete brecs[bcount];
	abd3msgsbrowseget( bcount, idx );
	/*
	var obj = $('abd3msgsbrowse' + bcount );
	var atoken = obj.atoken;

	refreshpage('home.php', atoken);
	*/
}

function abd3msgsbrowsesave( idx )
{
	var func = function() { ajaxrequest('save.php?ident=' + abd3msgsbrowseident + '&val=' + idx, '', null, 0); }
}


// desenha os primeiros abd3msgsbrowsepag registros a partir do indice idx
function abd3msgsbrowseshow( bcount, idx )
{
	var l, c, i, out = '', rec, max1, max2, nav, items;
	var sr, er;
	var obj = $('abd3msgsbrowse' + bcount );
	var trec = obj.trec;
	var td;
	var content = $('abd3msgsbrowsecontent_'+bcount);

	if( !isdefined( obj.selected ) ) obj.selected = -1;

	nopopup();

	// acerta idx se tiver fora dos limites
	l = c = i = 0;
	if( idx < 1 ) idx = 0;
	if( idx >= btotrecs[bcount] ) idx = btotrecs[bcount]-1;
	// seta o registro base sendo visualizado atual
	brec[bcount] = idx;

	r = brec[bcount];


	//monta o html para o navegador de paginas
	var title = frienduserstatus(obj);

    //AQUI
	sr = r + 1;
	se = r + abd3msgsbrowsepag;
	if( se > btotrecs[bcount] ) se = btotrecs[bcount];

	if( sr > 1 )
		prev = '<td class="browseprev" onmousedown="abd3msgsbrowseshow(' + bcount + ', ' + (brec[bcount]-abd3msgsbrowsepag) + ')"></td>';
	else
		prev = '<td class="browseprev_off"></td>';

	if( se < btotrecs[bcount] )
		next = '<td class="browsenext" onmousedown="abd3msgsbrowseshow(' + bcount + ', ' + (brec[bcount]+abd3msgsbrowsepag) + ')"></td>';
	else
		next = '<td class="browsenext_off"></td>';

	nav = '<table cellpadding=0 cellspacing=0 border=0><tr>' + prev + '<td class=browsepos>' + sr + ' - ' + se + ' ' + TXT_NAV_OF + ' ' +btotrecs[bcount] + '</td>' + next + '</tr></table>';

	// comeca a montar o resultado. 'items' vai armazenar parte dinamica do html que vai ser inserido
    itemTD = '';

	if (obj.uid > 0) 
		items = '<table border=0><tr><td '+itemTD+'>Message ID</td><td '+itemTD+'>Tag</td><td '+itemTD+' width="15">Message</td><td'+itemTD+' width="15">Date</td><td '+itemTD+'>Subscribers</td><td>Reuse</td></tr>';
	else
		items = '<table border=0><tr><td '+itemTD+'>Message ID</td><td '+itemTD+'>Login</td><td '+itemTD+'>Tag</td><td '+itemTD+' width="15">Message</td><td'+itemTD+' width="15">Date</td><td '+itemTD+'>Subscribers</td></tr>';


	// desenha as linhas com cada registro
	for( i = idx ; i < se ; i++ ) 
    {
		if( !isdefined( brecs[bcount][0] ) )
        {
			debug ("brec nao definido");
		}

		rec = brecs[bcount][i];
		if( isdefined( rec ) ) 
        {
			var classn = 'item';
			items += '<tr id="tr' + bcount + '_' + i + '" valign="top" class="' + classn + '" onmouseover="abd3msgsbrowseover(this,' + bcount + ', ' + i + ')"  onmouseout="abd3msgsbrowseout(this,' + bcount + ', ' + i + ')">';
            var tid = rec.cols[0];
            var tag = rec.cols[1];
            var t_active = rec.cols[2];
            var t_date = rec.cols[3];
            var mid = rec.cols[4];
            var message = rec.cols[5];
            var paid = rec.cols[6];
            var m_date = rec.cols[7];
            var uid = rec.cols[8];
			var login = rec.cols[9];
			var u_super = rec.cols[10];
			var u_promocode = rec.cols[11];
			var u_date = rec.cols[12];
			var c_id = rec.cols[13];
            var name = rec.cols[14];
            var bname = rec.cols[15];
			var addr = rec.cols[16];
			var city = rec.cols[17];
			var subscribers = rec.cols[18];

			var color = 'blue';
			if( t_active == 0 ) color = 'red';
            else if( u_super > 0 ) color = 'green';
            else if( uid == myuid ) color = 'yellow';

			var action = '<a href="javascript:abd3msgs_reuse('+bcount+','+mid+')">Now</a>';
			if (obj.uid > 0)
				var user  = '<td>'+mid+'</td><td>'+tag+'</td><td>'+message+'</td><td>'+m_date+'</td><td>'+subscribers+'</td><td>'+action+'</td>';
			else
				var user  = '<td>'+mid+'</td><td>'+login+'</td><td>'+tag+'</td><td>'+message+'</td><td>'+m_date+'</td><td>'+subscribers+'</td>';

			items += user + '</tr>';
		}
	    /* else
		{
			// se nao existe no buffer, faz um get para pegar a pagina do registro
			// a propria abd3msgsbrowseget vai desenhar qdo chegar o resultado
			//abd3msgsbrowseget( bcount, Math.floor(i/abd3msgsbrowsepag)*abd3msgsbrowsepag );
			return;
		} */
	} 

    items+='</table>';
	// insere o conteudo gerado no div content do componente
	content.innerHTML = '<table border="0" cellspacing="0" cellpadding="0" width=100% id="abd3msgsbrowsecontent_tab'+bcount+'"><tr><td align=right class=navigator>' + nav + items + '<tr><td align=right class=navigator><div class=wide>' + nav + '</div></table>';

	// decora os botoes
	buttonizeall( content );
}



function resultabd3msgsbrowse( xml, obj, txt )
{
	if( checkreload( xml ) ) return;

	var labels, frec, lrec, trec, recfunc, i, j, cols;
	var reclist = ntag( xml, 'rec' );

	var bcount = obj.bcount;
	var detailscript = obj.detailscript;
	var url = obj.url;
	obj = $(obj.id);
	obj.bcount = bcount;
	obj.detailscript = detailscript;
	obj.url = url;


	if( !isdefined( brecs[bcount] ) ) 
    {
		brecs[bcount] = new Array;
		btotrecs[bcount] = 0;
		if( !isdefined(brec[bcount]) ) brec[bcount] = 0;
	}

	frec = vtag( xml, 'firstrec' ) * 1;
	lrec = vtag( xml, 'lastrec' ) * 1;
	trec = vtag( xml, 'totrec' ) * 1;
	obj.frec = frec;
	obj.lrec = lrec;
	obj.trec = trec;

	if( trec > 0)
	{
		labels = ntag( xml, 'labels' );
		if( labels != null && labels.length )
		{
			cols = ntag( labels[0], 'c' )
			obj.labels = new Array;
			for( i = 0 ; i < cols.length ; i++ )
			{
				obj.labels[i] = cols[i].firstChild.nodeValue;
			}
		}

		btotrecs[bcount] = trec;

		for( j = 0, i = frec ; i <= lrec ; i++, j++ )
		{
			var cols = ntag( reclist[j], 'c' );
			abd3msgsbrowserec( bcount, i, cols );
		}
		abd3msgsbrowseshow( obj.bcount, brec[bcount] );
	}
	else
	{
		var addnew = '';
		var stat = [ '', '', 'active ', 'inactive ' ];
		var usr = [ 'users', 'friends' ];

		var mytext = msg( TXT_FRIENDS_NOT_FOUND, stat[obj.userstatus], usr[obj.nopublic] );
		if( obj.search > '' ) mytext += msg( TXT_NAMED, obj.search );
		else mytext += '.';

		mytext += '<br><br><a style="color: #3B5998" target="_top" href="' + apppath + 'p=invite">' + TXT_INVITE_MORE + '</a>.';
		//$('abd3msgsbrowsecontent_'+bcount).innerHTML = '<div class=noresult>' + mytext + '<br><br><br><br></div><div class=wide>' + addnew + '</div>';
		//$('search' + bcount).select();
		buttonizeall( $('abd3msgsbrowsecontent_'+bcount) );
	}
}

function abd3msgsbrowseget( bcount, idx )
{
	var id = 'abd3msgsbrowse' + bcount;
	var obj = $(id);
	var url = obj.url;
	var jpar = url.match( /\?/ ) ? '&' : '?';
	var params = '';

	if( isdefined( obj.uid ) && obj.uid > 0 ) params += '&u_id=' + obj.uid;
	if( isdefined( obj.tid ) && obj.tid > 0 ) params += '&t_id=' + obj.tid;
	if( isdefined( obj.mid ) && obj.tid > 0 ) params += '&m_id=' + obj.mid;
	if( isdefined( obj.search ) && obj.search != obj.search_ini) params += '&search=' + obj.search;

	params += '&sudo=' + obj.superuser;
	params += '&act=' + obj.userstatus;
	params += '&order=' + obj.order;

	params += '&atoken=' + auth_token;
	params += '&mydomain=' + appdomain;

	var urlget = url + jpar + 's=' + idx + '&m=' + abd3msgsqrysize + params + '&&bcount=' + bcount + '&r=' + rpar();
	if( $('abd3msgsbrowsecontent_'+bcount).innerHTML == '' ) 
		$('abd3msgsbrowsecontent_'+bcount).innerHTML = '<div class=loading>' + TXT_SEARCHING + '</div>';

	obj.qry = urlget;
	//debug ( ' abd3msgsbrowse <a target="_blank" href="' + urlget + '">link</a>' );
	ajaxrequest( urlget, 'resultabd3msgsbrowse', obj, 1 );
}

function abd3msgsbrowse ( hang, url, uid, tid, mid, title, userstatus) {
	var i, rb, b, bcount, search;
	
	hang.innerHTML = '';
	bcount = browserct++;

	id = 'abd3msgsbrowse' + bcount;

	var div = ce( 'DIV' );
	div.className = 'abd3msgsbrowse';
	div.id = id;

	hang.appendChild( div );

	div.bcount = bcount;
	div.detailscript = '';
	div.url = url;
	div.uid = uid;
	div.tid = tid;
	div.mid = mid;

	div.userstatus = userstatus;
	div.superuser = 0;
	div.order = 0;

	div.formdiv = true;
	div.className = 'abd3msgsbrowse';

    if (title != '')
	    title = '<h1>'+ title + '<div id="friendtitle_'+ bcount + '"></div></h1>' ;
    else
	    title = '<h1>Tags in ABD3<div id="friendtitle_'+ bcount + '"></div></h1>' ;

	var search = searchinfriend( 'abd3msgsbrowseinsearch', 'search' + bcount, div.search, div.srchin, 0 );

	div.innerHTML = '<div class="generalhead" id="head' + bcount + '">' + search + title + '</div><table width=100% cellpadding=0 cellspacing=0 border=0><tr><td valign=top><div id="abd3msgsbrowsecontent_' + bcount + '" cclass="content"></div></td></tr></table>';

	title = '<table cellpadding=0 cellspacing=0 border=0 class=opt><td>' + TXT_OPT_LISTING + ':<td><div id="active">aa</div></td><td><div id="usersudo">bb</div></td></table>';

	$('friendtitle_'+bcount).innerHTML = title;

	var oidx = div.userstatus > 0 ? div.userstatus -1 : 0;
	optionset( 'active', [
							[ TXT_OPT_ALL, function() { div.userstatus = 0; abd3msgsbrowserefresh( div.bcount, 0 ); }], 
							[ TXT_OPT_ACTIVE, function() { div.userstatus = 1; abd3msgsbrowserefresh( div.bcount,0);}],
							[ TXT_OPT_INACTIVE, function() { div.userstatus = 2; abd3msgsbrowserefresh(div.bcount,0);}]
							], getvar('active', 0), false );

	var oidx = div.superuser;
	optionset( 'usersudo', [
							[ TXT_OPT_ALL, function() { div.superuser=0; abd3msgsbrowserefresh(div.bcount,0);}], 
							[ TXT_OPT_NOADM, function() { div.superuser= 1; abd3msgsbrowserefresh(div.bcount,0);}], 
							[ TXT_OPT_ADM, function() { div.superuser=2; abd3msgsbrowserefresh(div.bcount,0);}],
							], getvar('usersudo', 0), false );

	div.userstatus =  Array( 0, 1, 2 )[getvar('active', 0)];
	div.superuser =  Array( 0, 1, 2 )[getvar('usersudo', 0)];

	brec[bcount] = 0;
	abd3msgsbrowserefresh( bcount, 0 );
	buttonizeall( div );
	formformat(div);
}
