
// chamada qdo se passa o mouse sobre um registro
// basicamente so se muda a classe CSS
function commusersover( div, bcount, idx )
{
	var obj = $('commusers'+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 commusersout( div, bcount, idx )
{
	var obj = $('commusers'+bcount);
	div.className = obj.selected == idx ? 'item_selected' : 'item';
}


function commusersclick( id , source , bcount)
{
	var urlget = 'linkmeme.php?source=' + source + '&&vid=' + id + '&&bcount=' + bcount + '&atoken=' + auth_token + '&pan=commusers&&mydomain='+appdomain;
	ajaxrequest( urlget, 'refreshNow', $('commusers'+bcount), 0 );
	commusersrefresh( bcount, 0 );
}

var detailrequest = null;

/* gets the product record vars */


function commusersrec( bcount, idx, nodelist )
{
	var i = 0, j;

	brecs[bcount][idx] = new Object;
	brecs[bcount][idx].id = nodelist[0].firstChild.nodeValue;
	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 commuserssortby( bcount, idx )
{
	var obj = $('commusers'+bcount);
	if( !isdefined(obj.sort) ) obj.sort = 1;
	if( obj.sort == idx ) idx *= -1;
	obj.sort = idx;
	commusersrefresh( bcount, 0 );
}

function commuserssearch( o )
{
	var sval = o.search.value;
//	debug( sval, o.srchcateg.selectedIndex );
	if( sval == 'search' )
	{
		o.search.focus();
	}
	else if( sval == '' && o.srchcateg.selectedIndex == 0 )
	{
		alert( 'ho' );
		alert( 'Type a venue for search or select a category' );
		alert( 'hey' );
		return false;
	}
	else
	{
		var node = o;
		while( !isdefined( node.bcount ) && node != document.body )
		{
			node = node.parentNode;
		}
		var bcount = node.bcount;
		var obj = $('commusers'+bcount);
		obj.place = o.search.value;
		obj.selected = -1;
		commusersrefresh( bcount, 0 );
	}
	return false;
}

function commusersinsearch( o )
{
	var sval = o.search.value;
//	var ival = o.srchin.value;
	ival = 0;

	if((sval == o.search) && (ival == o.atype)) {
		o.search.focus();
		return false;
	} else	{
		var node = o;
		while( !isdefined( node.bcount ) && node != document.body )
		{
			node = node.parentNode;
		}
		var bcount = node.bcount;
		var obj = $('commusers'+bcount);
		obj.search = sval;
		obj.srchin = ival;
		obj.urltype = parseInt(obj.type)*2+parseInt(ival)+5;
		obj.selected = -1;
		brec[bcount] = 0;
		commusersrefresh( bcount, 0 );
	}
	return false;
}



function commusersrefresh( bcount, idx )
{
	
	$('commuserscontent_'+bcount).innerHTML = '';
	idx = brec[bcount];
	delete brecs[bcount];
	commusersget( bcount, idx );
	/*
	var obj = $('commusers' + bcount );
	var atoken = obj.atoken;

	refreshpage('home.php', atoken);
	*/
}

function commuserssave( idx )
{
	var func = function() { ajaxrequest('save.php?ident=' + commusersident + '&val=' + idx, '', null, 0); }
}


// desenha os primeiros commuserspag registros a partir do indice idx
function commusersshow( bcount, idx )
{
//	debug ('show', idx);
	var l, c, i, out = '', rec, max1, max2, nav, items;
	var sr, er;
	var obj = $('commusers' + bcount );
	var td;
	var content = $('commuserscontent_'+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
	sr = r + 1;
	se = r + commuserspag;
	if( se > btotrecs[bcount] ) se = btotrecs[bcount];

	if( sr > 1 )
		prev = '<td class="browseprev" onmousedown="commusersshow(' + bcount + ', ' + (brec[bcount]-commuserspag) + ')"></td>';
	else
		prev = '<td class="browseprev_off"></td>';

	if( se < btotrecs[bcount] )
		next = '<td class="browsenext" onmousedown="commusersshow(' + bcount + ', ' + (brec[bcount]+commuserspag) + ')"></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>';

	var items = '';


	// desenha as linhas com cada registro
	for( i = idx ; i < se ; i++ )
	{
		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="commusersover(this,' + bcount + ', ' + i + ')"  onmouseout="commusersout(this,' + bcount + ', ' + i + ')">';
			var txtuser = rec.cols[11];
			var addr = rec.cols[3];
			var city = rec.cols[4];
			var tmp = [];
			if( addr > '' ) tmp.push( addr );
			if( city > '' ) tmp.push( city );
			var txtaddr = tmp.join(', ');
			var txtdate = rec.cols[10];
			var thumb = rec.cols[12];
			var vid = rec.cols[0];
			var vsr = rec.cols[1];
			var uid = rec.cols[8];
			var usr = rec.cols[9];
			pos = rec.cols[7].split(',');
			var active = rec.cols[17];
			var isfriend = rec.cols[18] == '1';
			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';


			var user  = '<img align=right src="' + pinimg + '" style="float: right"><table cellpadding=0 cellspacing=0 border=0 class=commusersitem><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+')"><B>' + txtuser + '</B></a></div>';

			var venue = '<div class=datetime>' + txtdate + '</div></td></tr></table>' ;
//			if( obj.type == 0 )
//				setpin( uid, pos[0], pos[1], false, txtuser, thumb, rec.cols[0], '<b>' + rec.cols[2] + '</b><br>' + txtaddr, txtdate, vsr);

			items += user + venue;	
			items += '</div></td></tr>';
		}
		else
		{
			// se nao existe no buffer, faz um get para pegar a pagina do registro
			// a propria commusersget vai desenhar qdo chegar o resultado
			$('commuserscontent_'+bcount).innerHTML = '<div class=loading>Loading.</div>';
			commusersget( bcount, Math.floor(i/commuserspag)*commuserspag );
			return;
		}
	}

	// cria o html para o botao de Add New
	//if (obj.url == 'searchstylist.php')
	//	var addnew = '<div class=addnew><input type="button" value="Invite User" onclick="commusersclick( event, this, ' + bcount + ', -1, 0)"></div>';
	//else 
	//	var addnew = '<div class=addnew><input type="button" value="Add New" onclick="commusersclick( event, this, ' + bcount + ', -1, 0)"></div>';

	// insere o conteudo gerado no div content do componente
	content.innerHTML = '<table border="0" cellspacing="0" cellpadding="0" wwidth=100% id="commuserscontent_tab'+bcount+'"><tr><td align=right class=navigator>' + nav + items + '</table>';

	// decora os botoes
	buttonizeall( content );
}


function resultcommusers( xml, obj, txt )
{
	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( 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' );
			commusersrec( bcount, i, cols );
		}
		commusersshow( obj.bcount, brec[bcount] );
	}
	else
	{
		var addnew = '';
		var mess = obj.type == 0 ? TXT_OPT_THERE_NOW : TXT_OPT_THERE_BEFORE;
		$('commuserscontent_'+bcount).innerHTML = '<div class=noresult>' + mess + '<br><br><br><br></div><div class=wide>' + addnew + '</div>';
		//$('search' + bcount).select();
		//debug( obj.qry );
		buttonizeall( $('commuserscontent_'+bcount) );
	}
}

function commusersget( bcount, idx )
{
	var id = 'commusers' + bcount;
	var obj = $(id);
	var url = obj.url;
	var jpar = url.match( /\?/ ) ? '&' : '?';
	var params = '';
	if( isdefined( obj.urltype ) ) params += '&type=' + obj.urltype;
	if( obj.type == 0 && obj.useinactive == 0 ) params += '&status=1';
	if( isdefined( obj.type_user ) ) params += '&noPublic=' + (obj.type_user);
	if( isdefined( obj.search ) ) params += '&search=' + obj.search;
	params += '&atoken=' + auth_token;
	params += '&mydomain=' + appdomain;
	params += '&order=4';
	if( idx < 0 ) idx = 0;
	var urlget = url + jpar + 's=' + idx + '&m=' + commusersqrysize + params + '&bcount=' + bcount + 'r=' + rpar();
	if( $('commuserscontent_'+bcount).innerHTML == '' ) 
		$('commuserscontent_'+bcount).innerHTML = '<div class=loading>' + TXT_SEARCHING_USERS + '</div>';
	obj.qry = urlget;
   	//debug ( 'commuser <a target="_blank" href="' + urlget + '">link get</a>' );
	ajaxrequest( nocache(urlget), 'resultcommusers', obj, 1 );
}


function commusers( hang, title, url, type_user, type, useinactive )
{
	var i, rb, b, bcount;
	
	hang.innerHTML = '';
	bcount = browserct++;
	id = 'commusers' + bcount;
	var div = ce( 'DIV' );
	div.className = 'commusers';
	div.id = id;
	hang.appendChild( div );
	div.bcount = bcount;
	div.detailscript = '';
	div.url = url;
	div.type_user = type_user;
	div.type = type;
	div.atype = 0;
	div.urltype = parseInt(type)*2+5;
	div.formdiv = true;
	div.className = 'commusers';
	div.search_ini = '';
	div.search = div.search_ini;
	div.useinactive = useinactive;
	var title = title != '' ? '<h1>' + title + '</h1>' : '';

	title += '<table cellpadding=0 cellspacing=0 border=0 class=opt><td>' + TXT_OPT_LISTING + '<td><div id="useropt' + bcount + '"></div></td></table>';

	var search = '';
//	var search = searchincomm( 'commusersinsearch', 'search' + bcount, div.search, div.srchin, div.type);
	
	div.innerHTML = '<div class="generalhead" id="head' + bcount + '">' + title + search + '</div><table width=100% cellpadding=0 cellspacing=0 border=0><tr><td valign=top><div id="commuserscontent_' + bcount + '" cclass="content"></div></td></tr></table>';

	var sactive = type == 0 && useinactive == 0 ? TXT_ACTIVE_INACTIVE : '$1';
	var oidx = div.type_user;

	optionset( 'useropt' + bcount, [
							[ msg( sactive, TXT_OPT_PUBLIC_USERS), function() { div.type_user = 0; commusersrefresh( div.bcount, 0 ) }], 
							[ msg( sactive, TXT_OPT_FRIENDS), function() { div.type_user = 1; commusersrefresh( div.bcount, 0 ) }],
						  ], getvar('useropt'+bcount, 0) , false );
	div.type_user = Array( 0, 1 )[getvar('useropt'+bcount, 0)];

	brec[bcount] = 0;
	commusersget( bcount, 0 );
	buttonizeall( div );
}

