
// chamada qdo se passa o mouse sobre um registro
// basicamente so se muda a classe CSS
function invbrowseover( div, bcount, idx )
{
	var obj = $('invbrowse'+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 invbrowseout( div, bcount, idx )
{
	var obj = $('invbrowse'+bcount);
	div.className = obj.selected == idx ? 'item_selected' : 'item';
}

function invnonefriends(bcount, start, end) 
{
	var color = 'white';
	var pinimg = 'tool/c_main/pin_' + color + '_micro.gif';
	for (idx = start; idx <= end ; idx++){
		divipt = $('ipt'+idx);
		divipt.value=0;
		brecs[bcount][idx].clicked = 0;
		divimg = $('userpin'+idx);
		divimg.src=pinimg;
	}
}

function invallfriends(bcount, start, end) 
{
	var color = 'green';
	var pinimg = 'tool/c_main/pin_' + color + '_micro.gif';
	for (idx = start; idx <= end ; idx++){
		divipt = $('ipt'+idx);
		divipt.value=1;
		brecs[bcount][idx].clicked = 1;
		divimg = $('userpin'+idx);
		divimg.src=pinimg;
	}
}

function invbrowseclick( div, bcount, idx)
{
	//rec = brecs[bcount][idx];
	divipt = $('ipt'+idx);
	if (brecs[bcount][idx].clicked == 0){
		divipt.value=1;
		brecs[bcount][idx].clicked = 1;
	} else { 
		divipt.value=0;
		brecs[bcount][idx].clicked = 0;
	}
	divimg = $('userpin'+idx);
	var color = 'white';
	if( brecs[bcount][idx].clicked == 1 ) color = 'green';
	var pinimg = 'tool/c_main/pin_' + color + '_micro.gif';
	divimg.src=pinimg;
}

var detailrequest = null;

/* gets the product record vars */


function invbrowserec( bcount, idx, nodelist )
{
	var i = 0, j;

	brecs[bcount][idx] = new Object;
	brecs[bcount][idx].id = nodelist[0].firstChild.nodeValue;
	brecs[bcount][idx].clicked = 0;
//	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] );
	
	uid = brecs[bcount][idx].cols[0];
	input = '<input type="hidden" id="ipt'+idx+'" name="'+uid+'" value="0">';
	$('spaceinv'+bcount).innerHTML += input;
	
        //debug( brecs[bcount][idx].cols[2] , bcount, 'idx = ' + idx, 'id = ' + id );

}

function invbrowsesortby( bcount, idx )
{
	var obj = $('invbrowse'+bcount);
	if( !isdefined(obj.sort) ) obj.sort = 1;
	if( obj.sort == idx ) idx *= -1;
	obj.sort = idx;
	invbrowserefresh( bcount, 0 );
}

function invbrowsesearch( 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 = $('invbrowse'+bcount);

	if ( sval == obj.search ) {
		o.search.focus();
	} else {
		obj.search = sval;
		obj.selected = -1;
		invbrowserefresh( bcount, 0 );
	}
	return false;
}


function invbrowseinsearch( 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 = $('invbrowse'+bcount);

	if (sval == obj.search )	{
		o.search.focus();
	} else 	{
		obj.search = sval;
		obj.selected = -1;
		invbrowserefresh( bcount, 0 );
	}
	return false;
}



function invbrowserefresh( bcount, idx )
{
	
	$('invbrowsecontent_'+bcount).innerHTML = '';
	idx = brec[bcount];
	delete brecs[bcount];
	invbrowseget( bcount, idx );
	/*
	var obj = $('invbrowse' + bcount );
	var atoken = obj.atoken;

	refreshpage('home.php', atoken);
	*/
}

function invbrowsesave( idx )
{
	var func = function() { ajaxrequest('save.php?ident=' + invbrowseident + '&val=' + idx, '', null, 0); }
}


// desenha os primeiros invbrowsepag registros a partir do indice idx
function invbrowseshow( bcount, idx )
{
//	debug ('show', idx);
	var l, c, i, out = '', rec, max1, max2, nav, items;
	var sr, er;
	var obj = $('invbrowse' + bcount );
	var trec = obj.trec;
	var td;
	var content = $('invbrowsecontent_'+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];

	sr = r + 1;
	se = r + invbrowsepag;
	if( se > btotrecs[bcount] ) se = btotrecs[bcount];

	if( sr > 1 )
		prev = '<td class="browseprev" onmousedown="invbrowseshow(' + bcount + ', ' + (brec[bcount]-invbrowsepag) + ')"></td>';
	else
		prev = '<td class="browseprev_off"></td>';

	if( se < btotrecs[bcount] )
		next = '<td class="browsenext" onmousedown="invbrowseshow(' + bcount + ', ' + (brec[bcount]+invbrowsepag) + ')"></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 = '<tr><td><table id="itemstable">';

	// desenha as linhas com cada registro
	var p = 0;
	for( i = idx ; i < se ; i++ ) {
		rec = brecs[bcount][i];
		p++;
		if( isdefined( rec ) ) 	{
			var classn = obj.selected == i ? 'item_selected' : 'item';
			var myitem = '<td valign="top"><div id="tr' + bcount + '_' + i + '" valign=top class=' + classn + ' onmouseover="invbrowseover(this,' + bcount + ', ' + i + ')"  onmouseout="invbrowseout(this,' + bcount + ', ' + i + ')" onmousedown="invbrowseclick(this, ' + bcount + ', ' + i + ')">';
			var uid = rec.cols[0];
			var usr = rec.cols[1];
			var name = rec.cols[2];
			var thumb = rec.cols[3];
			var clicked = rec.clicked;

			var color = 'white';
			if( clicked ) color = 'green';

			var pinimg = 'tool/c_main/pin_' + color + '_micro.gif';

			var user  = '<img id="userpin'+i+'" 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><img src="' + thumb + '" onload="imgsquare( this, 40 )"></div><div class=name>' + name + '</div></tr></table>' ;
			
			myitem += user + '</div></td>';
		}
	/*	else
		{
			// se nao existe no buffer, faz um get para pegar a pagina do registro
			// a propria invbrowseget vai desenhar qdo chegar o resultado
			//invbrowseget( bcount, Math.floor(i/invbrowsepag)*invbrowsepag );
			return;
		} */
		if (p == 1) items += '<tr valign="top">'+myitem;
		else if (p == invcols) { items += myitem+'</tr>'; p=0; }
		else items += myitem;
	} 
	items += '</table></td></tr>';

	// insere o conteudo gerado no div content do componente
	content.innerHTML = '<table border="0" cellspacing="0" cellpadding="0" width=100% id="invbrowsecontent_tab'+bcount+'"><tr><td align=right class=navigator>' + nav + '</td></tr><tr><td align="right"><a onclick="javascript:invallfriends('+bcount+','+idx+', '+i+')">Invite All</a> | <a onclick="javascript:invnonefriends('+bcount+', '+idx+', '+i+')">Invite None Friends</a></td></tr>' + items + '<tr><td align=right class=navigator><div class=wide>' + nav + '</div></table>';

	// decora os botoes
	buttonizeall( content );
}



function resultinvbrowse( 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( 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' );
			invbrowserec( bcount, i, cols );
		}
		invbrowseshow( obj.bcount, brec[bcount] );
	}
	else
	{
		//mytext += '<br><br><a style="color: #3B5998" target="_top" href="' + apppath + 'p=invite">INVITE more to join</a>.';
        addnew = "Invite your followers";
		mytext = '<br><br>No have user</a>.';
		$('invbrowsecontent_'+bcount).innerHTML = '<div class=noresult>' + mytext + '<br><br><br><br></div><div class=wide>' + addnew + '</div>';
		//$('search' + bcount).select();
		//debug( obj.qry );
		buttonizeall( $('invbrowsecontent_'+bcount) );
	}
}

function invbrowsechangepublic( bcount,  v )
{
	var id = 'invbrowse' + bcount;
	var obj = $(id);
	obj.nopublic = v;
	invbrowserefresh( bcount, 0 );
}

function invbrowseget( bcount, idx )
{
	var id = 'invbrowse' + bcount;
	var obj = $(id);
	var url = obj.url;
	var jpar = url.match( /\?/ ) ? '&' : '?';
	var params = '';
	if( isdefined( obj.uids ) ) params += '&ids=' + obj.uids;
	if( isdefined( obj.search ) && obj.search != obj.search_ini) params += '&search=' + obj.search;
	params += '&atoken=' + auth_token;
	params += '&mydomain=' + appdomain;

	var urlget = url + jpar + params + '&bcount=' + bcount + '&r=' + rpar();
	if( $('invbrowsecontent_'+bcount).innerHTML == '' ) 
		$('invbrowsecontent_'+bcount).innerHTML = '<div class=loading>' + TXT_SEARCHING + '</div>';

	obj.qry = urlget;
	//debug ( '<a target="_blank" href="' + urlget + '">link invget</a>' );
	ajaxrequest( urlget, 'resultinvbrowse', obj, 1 );
}


function invbrowse( hang, url, uids ) {
	var i, rb, b, bcount, search;
	
	hang.innerHTML = '';
	bcount = browserct++;
	id = 'invbrowse' + bcount;
	var div = ce( 'DIV' );
	div.className = 'invbrowse';
	div.id = id;
	hang.appendChild( div );

	div.formdiv = true;
	div.className = 'invbrowse';
	div.bcount = bcount;
	div.detailscript = '';

	div.url = url;
	div.uids = uids;

	var search = searchininvite( 'invbrowseinsearch', 'search' + bcount, div.search );
	var title = '<h1 id="friendtitle_'+ bcount + '">Invite my friends to YellowPin</h1>' ;

	div.innerHTML = '<div class="generalhead" id="head' + bcount + '">' + search + title + '</div><table width=100% cellpadding=0 cellspacing=0 border=0><tr><td valign=top><form name="invfriendsform" target="_top" action="'+basepath+'register_invite.php" method="GET"><div id="spaceinv'+bcount+'"><input type="hidden" name="atoken" value="'+auth_token+'"><input type="hidden" name="mydomain" value="'+appdomain+'"><input type="hidden" name="source" value="'+ appsource+ '"></div><div id="invbrowsecontent_' + bcount + '" cclass="content"></div><input type="submit" value="Invite Friends"></form></td></tr></table>';

	brec[bcount] = 0;
	invbrowserefresh( bcount, 0 );
	//invbrowseget( bcount, 0 );
	buttonizeall( div );
	formformat(div);
}



