function showfriendallrefresh (param1, param2)
{
    //debug ('FRIEND ALL');
	var bcount = 0;
	var obj;
	while (true) 
	{
		obj = $('showfriendbrowsecontent_'+bcount);
		if (obj != null) 
		{
			showfriendbrowserefresh(bcount, 0);
			bcount++;
		} else if (bcount < 10) {
            bcount++;  
        } else {
            break;
        }
        //debug(bcount);
	}
}

// chamada qdo se passa o mouse sobre um registro
// basicamente so se muda a classe CSS
function showfriendbrowseover( div, bcount, idx )
{
	var obj = $('showfriendbrowse'+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 showfriendbrowseout( div, bcount, idx )
{
	var obj = $('showfriendbrowse'+bcount);
	div.className = obj.selected == idx ? 'item_selected' : 'item';
}


function showfriendbrowseclick( 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=showfriendbrowse';
//	ajaxrequest( urlget, 'backtohome', $('showfriendbrowse'+bcount), 0 );
//	showfriendbrowserefresh( bcount, 0 );
}

var detailrequest = null;

/* gets the product record vars */


function showfriendbrowserec( 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] );
	
        //debug( brecs[bcount][idx].cols[2] , bcount, 'idx = ' + idx, 'id = ' + id );

}

function showfriendbrowsesortby( bcount, idx )
{
	var obj = $('showfriendbrowse'+bcount);
	if( !isdefined(obj.sort) ) obj.sort = 1;
	if( obj.sort == idx ) idx *= -1;
	obj.sort = idx;
	showfriendbrowserefresh( bcount, 0 );
}

function showfriendbrowsesearch( 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 = $('showfriendbrowse'+bcount);

	if (( sval == obj.search ) && (tval == obj.userstatus )) {
		o.search.focus();
	} else {
		obj.search = sval;
		obj.userstatus = tval;
		obj.selected = -1;
		showfriendbrowserefresh( bcount, 0 );
	}
	return false;
}


function showfriendbrowseinsearch( o )
{
	var sval = o.search.value;
	if( sval == o.search.getAttribute( 'default') ) 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 = $('showfriendbrowse'+bcount);

	//if (sval == obj.search && cval == obj.userstatus )	{
	if (sval == obj.search )	{
		o.search.focus();
	} else 	{
		obj.search = sval;
//		obj.userstatus = cval;
		obj.selected = -1;
		showfriendbrowserefresh( bcount, 0 );
	}
	return false;
}



function showfriendbrowserefresh( bcount, idx )
{
	
	$('showfriendbrowsecontent_'+bcount).innerHTML = '';
	idx = brec[bcount];
	delete brecs[bcount];
	showfriendbrowseget( bcount, idx );
	/*
	var obj = $('showfriendbrowse' + bcount );
	var atoken = obj.atoken;

	refreshpage('home.php', atoken);
	*/
}

function showfriendbrowsesave( idx )
{
	var func = function() { ajaxrequest('save.php?ident=' + showfriendbrowseident + '&val=' + idx, '', null, 0); }
}


// desenha os primeiros showfriendbrowsepag registros a partir do indice idx
function showfriendbrowseshow( bcount, idx )
{
//	debug ('show', idx);
	var l, c, i, out = '', rec, max1, max2, nav, items;
	var sr, er;
	var obj = $('showfriendbrowse' + bcount );
	var trec = obj.trec;
	var td;
	var content = $('showfriendbrowsecontent_'+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 + showfriendbrowsepag;
	if( se > btotrecs[bcount] ) se = btotrecs[bcount];

	if( sr > 1 )
		prev = '<td class="browseprev" onmousedown="showfriendbrowseshow(' + bcount + ', ' + (brec[bcount]-showfriendbrowsepag) + ')"></td>';
	else
		prev = '<td class="browseprev_off"></td>';

	if( se < btotrecs[bcount] )
		next = '<td class="browsenext" onmousedown="showfriendbrowseshow(' + bcount + ', ' + (brec[bcount]+showfriendbrowsepag) + ')"></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
	items = '';


	// 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];
		// se o registro j� existe no buffer...
		if( isdefined( rec ) ) 	{
			var classn = obj.selected == i ? 'item_selected' : 'item';
			items += '<tr><td><div id="tr' + bcount + '_' + i + '" valign=top class=' + classn + ' onmouseover="showfriendbrowseover(this,' + bcount + ', ' + i + ')"  onmouseout="showfriendbrowseout(this,' + bcount + ', ' + i + ')">';
	
			if (obj.tag == 2) 
			{
				var uid = rec.cols[0];
				var usr = rec.cols[1];
				var uname = rec.cols[2];
				var name = rec.cols[2];
				var uthumb = rec.cols[3];
				var thumb = rec.cols[3];
				var fid = rec.cols[4];
				var fsr = rec.cols[5];
				var fname = rec.cols[6];
				var fname = rec.cols[6];
				var fthumb = rec.cols[7];
				var active = rec.cols[8];
				var added_date = rec.cols[10];
				var pinimg = 'tool/c_main/pin_blue_micro.gif';

				var user  = '<img align=right src="' + pinimg + '" style="float: right"><table cellpadding=0 cellspacing=0 border=0><tr><td width=40 valign=top style="padding:0px; width: auto;"><div class=square40><a href="javascript:pinusr(' + uid + ','+usr+')"><img src="' + thumb + '" onload="imgsquare( this, 40 )"></a></div><td valign=top style="padding:0px; width: auto; padding-left: 5px;"><div class=name><a href="javascript:pinusr(' + uid + ','+usr+')">'+ name +'</a></div>';
				var venue = '</td></tr></table>' ;

			} else {
				var txtuser = rec.cols[11];
				var name = rec.cols[2];
				var addr = rec.cols[3];
				var city = rec.cols[4];
				var state = rec.cols[5];
				var country = rec.cols[6];
				var tmp = [addr,city,state,country];
				while( tmp.length && (tmp[0]=='' || tmp[0]==name )) tmp.shift();
				if( country == 'US' ) tmp.pop();
				var txtaddr = tmp.join(', ');
				var txtdate = rec.cols[10];
				var uid = rec.cols[8];
				var usr = rec.cols[9];
				var vid = rec.cols[0];
				var vsr = rec.cols[1];
				var thumb = rec.cols[12];
				var active = rec.cols[17];
				var isfriend = rec.cols[18] == '1';
				var buzz = rec.cols[22] == 1 ? 1 : 0;
				var color = 'blue';
				if( isfriend ) color = 'red';
				if( isfriend && active > 0 ) color = 'green';
				if( uid == myuid ) color = 'yellow';
				var pinimg = 'tool/c_main/pin_' + color + '_micro.gif';

	//			debug( pinimg );
	//
				var user  = '<img align=right src="' + pinimg + '" style="float: right"><table cellpadding=0 cellspacing=0 border=0><tr><td width=40 valign=top style="padding:0px; width: auto;"><div class=square40><a href="javascript:pinusr(' + uid + ','+usr+')"><img src="' + thumb + '" onload="imgsquare( this, 40 )"></a></div><td valign=top style="padding:0px; width: auto; padding-left: 5px;"><div class=name><a href="javascript:pinusr(' + uid + ','+usr+')">'+ txtuser +'</a></div>';

				var venue = '<div class=addr><a href="javascript:pinvenue(' + vid + ', ' + vsr + ')">' + rec.cols[2] + '</a></div><div class=addr>' + txtaddr + '</div><div class=datetime>' + txtdate ;
					//if( rec.cols[14] > 0 ) venue += '<div class=ucount>Users:' + rec.cols[14] + ' | Friends:' + rec.cols[15] + '</div>';
					venue += '</div></td></tr></table>' ;
			}
			if (obj.tag == 0) 
            {
				var action = '<div class=action><table cellpadding=0 cellspacing=0 border=0><tr><td><a href="javascript:deletefriend('+ uid +', '+ usr +', '+ bcount +')">Remove Friend</a></td></tr></table></div>';
			} 
            else if (obj.tag == 1)
            { 
                if (!isfriend )
				    var action = '<div class=action><table cellpadding=0 cellspacing=0 border=0><tr><td><a href="javascript:addfriend('+ uid +', '+ usr +', '+ bcount +')">Add Friend</a></td></tr></table></div>';
                else
                    var action = '';
			} 
            else 
            {
				var action = '<div class=action><table cellpadding=0 cellspacing=0 border=0><tr>'
					+ '<td><a href="javascript:answerfriend(' + fid + ', ' + fsr + ', ' + uid + ', ' + usr + ', 1,  ' + bcount + ')">Accept</a> &nbsp; | &nbsp;</td>'
					+ '<td><a href="javascript:answerfriend(' + fid + ', ' + fsr + ', ' + uid + ', ' + usr + ', 0,  ' + bcount + ')">Reject</a></td>'
					+ '</tr></table></div>';
			}

			items += user + venue + action;
			pos = rec.cols[7].split(',');
			items += '</div></td></tr>';
		}
	/*	else
		{
			// se nao existe no buffer, faz um get para pegar a pagina do registro
			// a propria showfriendbrowseget vai desenhar qdo chegar o resultado
			//showfriendbrowseget( bcount, Math.floor(i/showfriendbrowsepag)*showfriendbrowsepag );
			return;
		} */
	} 

	// insere o conteudo gerado no div content do componente
	content.innerHTML = '<table border="0" cellspacing="0" cellpadding="0" width=100% id="showfriendbrowsecontent_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 resultshowfriendbrowse( 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;

//	debug( '<textarea style="width: 400px; height: 500px;">' + txt + '</textarea>' );

	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;
//	debug (trec, frec, lrec);

    if (obj.tag == 2) 
    {
        $('ntrecreq').innerHTML = 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;
			}
		}
		//debug( frec, lrec, trec );

		btotrecs[bcount] = trec;

		for( j = 0, i = frec ; i <= lrec ; i++, j++ )
		{
			var cols = ntag( reclist[j], 'c' );
			showfriendbrowserec( bcount, i, cols );
		}
		showfriendbrowseshow( obj.bcount, brec[bcount] );
	}
	else
	{
		var addnew = '';
		var stat = [ '', '', 'active ', 'inactive ' ];
		var usr = [ 'users', 'friends' ];

		if (obj.tag == 0) 
			var mytext = TXT_ADDFRIENDS_NOT_FOUND_0;
		else if (obj.tag == 1) {
			if (obj.search > '')
				var mytext = TXT_ADDFRIENDS_NOT_FOUND_0;
			else
				var mytext = msg(TXT_ADDFRIENDS_NOT_FOUND_1, obj.search);
		} else 
			var mytext = TXT_ADDFRIENDS_NOT_FOUND_2;

		mytext += '.';

		//mytext += '<br><br><a style="color: #3B5998" target="_top" href="' + apppath + 'p=invite">' + TXT_INVITE_MORE + '</a>.';
		$('showfriendbrowsecontent_'+bcount).innerHTML = '<div class=noresult>' + mytext + '<br><br><br><br></div><div class=wide>' + addnew + '</div>';
		//$('search' + bcount).select();
		//debug( obj.qry );
		buttonizeall( $('showfriendbrowsecontent_'+bcount) );
	}
}

function showfriendbrowsechangepublic( bcount,  v )
{
	var id = 'showfriendbrowse' + bcount;
	var obj = $(id);
	showfriendbrowserefresh( bcount, 0 );
}

function showfriendbrowseget( bcount, idx )
{
	var id = 'showfriendbrowse' + bcount;
	var obj = $(id);
	if (obj.tag == 1) 
	{
		if( ! isdefined( obj.search ) ) return;
		if( obj.search.length < 3 ) return;
	}
	var url = obj.url;
	var jpar = url.match( /\?/ ) ? '&' : '?';
	var params = '';
	if( isdefined( obj.uid ) ) params += '&id=' + obj.uid;
	if( isdefined( obj.usource ) ) params += '&src=' + obj.usource;
	if( isdefined( obj.search ) && obj.search != obj.search_ini) params += '&search=' + obj.search;
	if( isdefined( obj.userstatus ) ) params += '&status=' + obj.userstatus;
	if( isdefined( obj.usearea ) && obj.usearea == 1 ) params += '&vid=' + obj.vid + '&vsr=2';
	params += '&atoken=' + auth_token;
	params += '&mydomain=' + appdomain;

	var urlget = url + jpar + params + '&bcount=' + bcount + '&r=' + rpar();
	if( $('showfriendbrowsecontent_'+bcount).innerHTML == '' ) 
		$('showfriendbrowsecontent_'+bcount).innerHTML = '<div class=loading>' + TXT_SEARCHING + '</div>';
	obj.qry = urlget;
	//debug ( 'showfriendbrowse <a target="_blank" href="' + urlget + '">link friendget</a>' );
	ajaxrequest( urlget, 'resultshowfriendbrowse', obj, 1 );
}


function showfriendbrowse( hang, url, title, uid, usource, tag, vid ) 
{
	var i, rb, b, bcount, search;
	
	hang.innerHTML = '';
	bcount = browserct++;
	id = 'showfriendbrowse' + bcount;
	var div = ce( 'DIV' );
	div.className = 'showfriendbrowse';
	div.id = id;
	hang.appendChild( div );
	div.bcount = bcount;
	div.detailscript = '';
	div.url = url;
	div.deleteme = uid == myuid ? 1 : 0;
	div.uid = uid;
	div.nopublic = 0;
	div.usource = usource;
	div.tag = tag;
	div.userstatus = 0;
	div.vid = vid;
	div.usearea = 0;
	div.useorder = -1;
	div.formdiv = true;
	div.className = 'showfriendbrowse';

//	div.search_ini = 'looking for someone?';
//	div.search = div.search_ini;
	var titlex = '<h1>' + title + '</h1>' ;
	var titleh1 = '<h1 id="friendtitle_'+ bcount + '"></h1>' ;

	//var search = '';
	//var search = searchinusers( 'showfriendbrowseinsearch', 'search' + bcount, div.search);
	var search = searchinfriend( 'showfriendbrowseinsearch', 'search' + bcount, div.search, div.srchin, 0 );
	//if (tag == 2) search = '';
	
	div.innerHTML = '<div class="generalhead" id="head' + bcount + '">' + titlex + search + titleh1 + '</div>'
			+ '<table width=100% cellpadding=0 cellspacing=0 border=0><tr><td valign=top><div id="showfriendbrowsecontent_' + bcount + '" cclass="content"></div></td></tr></table>';


	if (tag == 0) 
	{
		var title_txt = '<table cellpadding=0 cellspacing=0 border=0 class=opt><td>' + TXT_OPT_LISTING + ':<td><div id="activeopt">aa</div><td><td><div id="areaopt">ccc</div></table>';

		$('friendtitle_'+bcount).innerHTML = title_txt;

		var oidx = div.userstatus > 0 ? div.userstatus -1 : 0;
		optionset( 'activeopt', [
							[ TXT_OPT_ALL, function() { div.userstatus = 0; showfriendbrowserefresh( div.bcount, 0 );  }], 
							[ TXT_OPT_ACTIVE, function() { div.userstatus = 2; showfriendbrowserefresh( div.bcount, 0 ); }],
							[ TXT_OPT_INACTIVE, function() { div.userstatus = 3; showfriendbrowserefresh( div.bcount, 0 ); }]
							], getvar('activeopt', 0), false );

		var oidx = div.usearea;
		optionset( 'areaopt', [
							[ TXT_OPT_ANYWHERE, function() { div.usearea = 0; showfriendbrowserefresh( div.bcount, 0 ) }], 
							[ TXT_OPT_IN_AREA, function() { div.usearea = 1; showfriendbrowserefresh( div.bcount, 0 ) }],
							], getvar('areaopt', 0), false );

		div.userstatus =  Array( 0, 2, 3 )[getvar('activeopt', 0)];
		div.usearea =  Array( 0, 1 )[getvar('areaopt', 0)];
	}

	brec[bcount] = 0;
	showfriendbrowserefresh( bcount, 0 );
	//showfriendbrowseget( bcount, 0 );
	buttonizeall( div );
	formformat(div);
}

