
function saveattr( vlat, vlong, vid, vrid, vsr, vaddr )
	{
		s_vlat = vlat;
		s_vlong = vlong;
		s_vid = vid;
		s_vrid = vrid;
		s_vsr = vsr;
		s_vaddr = vaddr;
	}	
	function setaddr( addr, fulladdr )
	{
		set_addr = addr;
		set_full_addr = fulladdr;
	}
	function placeisset()
	{
		$('mylocation').innerHTML = set_full_addr;
		//$('myplace').innerHTML='<div class=result>You\'ve set up your area to:<br><b>' + set_addr + '</b>.<br><br>All your searches for places will be within this area from now on. <a href=\"setplace.php?atoken='+auth_token+'&pan=1\">Click here</a> to define a place within ' + set_addr + '.</div>';

		$('myplace').innerHTML='<div class=result>All your searches for places will be within <b>' + set_addr + '</b> until changed.<br><br><a href=\"setplace.php?atoken='+auth_token+'&pan=1&mydomain='+appdomain+'\">Click here</a> to set where you are in ' + set_addr + '. Or go back to the <a href="home.php?atoken='+auth_token+'&mydomain='+appdomain+'">home tab</a>.</div>';

		setpin( myuid, s_vlat, s_vlong, 1, myname, mythumb, s_vid, s_vaddr, '', s_vsr, 1, 1 )

	}

// chamada qdo se passa o mouse sobre um registro
// basicamente so se muda a classe CSS
function areabrowseover( div, bcount, idx )
{
	pinpoint( brecs[bcount][idx].cols[6] );
	var obj = $('areabrowse'+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 areabrowseout( div, bcount, idx )
{
	pinpointout();
	var obj = $('areabrowse'+bcount);
	div.className = obj.selected == idx ? 'item_selected' : 'item';
}


function areabrowseclick( id , type, bcount)
{
	setplace( 0, id, type );
//	var urlget = 'linkmeme.php?source=1&&vrid=' + id + '&&vrsr=' + source + '&bcount=' + bcount + '&atoken=' + atoken + '&pan=areabrowse';
//	ajaxrequest( urlget, 'backtohome', $('rareabrowse'+bcount), 0 );
//	areabrowserefresh( bcount, 0 );
}

var detailrequest = null;

/* gets the product record vars */


function areabrowserec( 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 areabrowsesortby( bcount, idx )
{
	var obj = $('areabrowse'+bcount);
	if( !isdefined(obj.sort) ) obj.sort = 1;
	if( obj.sort == idx ) idx *= -1;
	obj.sort = idx;
	areabrowserefresh( bcount, 0 );
}

function areabrowsesearch( o )
{
	var sval = o.search.value;
	//debug( sval, o.srchcateg.selectedIndex );

	var node = o;
	while( !isdefined( node.bcount ) && node != document.body ) {
		node = node.parentNode;
	}

	var bcount = node.bcount;
	var obj = $('areabrowse'+bcount);

	if( sval == obj.search )
	{
		o.search.focus();
	}
	else
	{
		obj.place = sval;
		obj.selected = -1;
		areabrowserefresh( bcount, 0 );
	}
	return false;
}


function areabrowseinsearch( o )
{
	areabrowsegoogle = false;
	$('areabrowsesearcherr').innerHTML = '';
	$('areabrowsesearcherr').style.display = 'none';
	var sval = o.search.value;
	//var ival = o.srchin.value;
	//var cval = o.srchcateg.value;
	var cval = 1;


	if((sval == 'search') && (cval == ''))
	{
		o.search.focus();
		return false;
	}
	else if( sval == '' && cval == 1 )
	{
		$('areabrowsesearcherr').innerHTML = 'Type a name for search or select a category';
		$('areabrowsesearcherr').style.display = 'block';
		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 = $('areabrowse'+bcount);
		obj.area = sval;
		brec[bcount] = 0;
		areabrowserefresh( bcount, 0 );
	}
	return false;
}



function areabrowserefresh( bcount, idx )
{
	$('areabrowsecontent_'+bcount).innerHTML = '';
	idx = brec[bcount];
	delete brecs[bcount];
	areabrowseget( bcount, idx );
	/*
	var obj = $('areabrowse' + bcount );
	var atoken = obj.atoken;

	refreshpage('home.php', atoken);
	*/
}

function areabrowsesave( idx )
{
	var func = function() { ajaxrequest('save.php?ident=' + areabrowseident + '&val=' + idx + '&atoken=' + auth_token + '&mydomain=' + appdomain , '', null, 0); }
}


// desenha os primeiros areabrowsepag registros a partir do indice idx
function areabrowseshow( bcount, idx )
{
//	debug ('show', idx);
	var l, c, i, out = '', rec, max1, max2, nav, items;
	var sr, er;
	var obj = $('areabrowse' + bcount );
	var td;
	var content = $('areabrowsecontent_'+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 + areabrowsepag;
	if( se > btotrecs[bcount] ) se = btotrecs[bcount];

	if( sr > 1 )
		prev = '<td class="browseprev" onmousedown="areabrowseshow(' + bcount + ', ' + (brec[bcount]-areabrowsepag) + ')"></td>';
	else
		prev = '<td class="browseprev_off"></td>';

	if( se < btotrecs[bcount] )
		next = '<td class="browsenext" onmousedown="areabrowseshow(' + bcount + ', ' + (brec[bcount]+areabrowsepag) + ')"></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
	pinplaceout();
	for( i = idx ; i < se ; i++ )
	{
		rec = brecs[bcount][i];
		if( isdefined( rec ) )
		{
			/*
				setaddr( '$addr', '" . squote( $vaddr ) . "' ); 
				set_vid = $vid; 
				$('myplace').innerHTML='<div class=result>Result:<br><table><tr><td>$vaddr</td><td valign=bottom><input class=button type=button value=\"set area\" onclick=\"setplace( $vid, 0 , 2, \\'placeisset\\' ); rvbrowserefresh( recentvenues.bcount, 0 );\"></table></div>'; 
				setmap( $vlat, $vlong );
				pinplaceout();
				pinplace( '$vlat, $vlong', $vid, 0, " . $venue['source'] . ", '$vaddr', 1 ); 
				saveattr( $vlat, $vlong, $vid, 0, " . $venue['source'] . ", '$vaddr');

			*/
			var classn = obj.selected == i ? 'item_selected' : 'item';
			items += '<tr><td><div id="tr' + bcount + '_' + i + '" valign=top class=' + classn + ' onmouseover="areabrowseover(this,' + bcount + ', ' + i + ')" onmouseout="areabrowseout(this,' + bcount + ', ' + i + ')">';

			set_vid = rec.cols[0];
			vid = set_vid;
			vsr = rec.cols[1];
			addr = rec.cols[2];
			vaddr = rec.cols[3];
			vlat = rec.cols[4];
			vlong = rec.cols[5];

			var val = '<div class=name>' + vaddr + '</div>';
			var action = '<div class=action><input class=button type=button value="set area" onclick="setplace( '+set_vid+', 0 , 2, \'placeisset\' ); rvbrowserefresh( recentvenues.bcount, 0 );"></div>';

			setaddr( addr, vaddr ); 
			setmap( vlat, vlong );
			pinplaceout();
			pinplace( vlat + ', ' + vlong, vid, 0, vsr, vaddr, 1 ); 
			saveattr( vlat, vlong, vid, 0, vsr, vaddr);

			items += val + action;
			items += '</div></td></tr>';
		}
		else
		{
			// se nao existe no buffer, faz um get para pegar a pagina do registro
			// a propria areabrowseget vai desenhar qdo chegar o resultado
			$('areabrowsecontent_'+bcount).innerHTML = '<div class=loading>Loading.</div>';
			areabrowseget( bcount, Math.floor(i/areabrowsepag)*areabrowsepag );
			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="areabrowseclick( event, this, ' + bcount + ', -1, 0)"></div>';
	//else 
	//	var addnew = '<div class=addnew><input type="button" value="Add New" onclick="areabrowseclick( event, this, ' + bcount + ', -1, 0)"></div>';

	// insere o conteudo gerado no div content do componente
	content.innerHTML = '<table border="0" cellspacing="0" cellpadding="0" width=100% id="areabrowsecontent_tab'+bcount+'"><tr><td class=navigator>(Results listed by distance)</td></tr><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 resultareabrowse( 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)
	{
		//debug( frec, lrec, trec );

		btotrecs[bcount] = trec;

		for( j = 0, i = frec ; i <= lrec ; i++, j++ )
		{
			var cols = ntag( reclist[j], 'c' );
			areabrowserec( bcount, i, cols );
		}
		areabrowseshow( obj.bcount, brec[bcount] );
	}
//	else if( !areabrowsegoogle )
//	{
//		areabrowsegoogle = true;
//		areabrowseget( bcount, 0 );
//	}
	else
	{
		var addnew = '';
		$('areabrowsecontent_'+bcount).innerHTML = '<div class=noresult>' + TXT_NO_PLACES_FOUND + '<br><br><br><br></div><div class=wide>' + addnew + '</div>';
		$('search' + bcount).select();
		//debug( obj.qry );
		buttonizeall( $('areabrowsecontent_'+bcount) );
	}
}

var areabrowsegoogle = false;
function areabrowseget( bcount, idx )
{
	if( $('panncontent2') != null ) $('panncontent2').innerHTML = '';
	var id = 'areabrowse' + bcount;
	var obj = $(id);
	var url = obj.url;
	var jpar = url.match( /\?/ ) ? '&' : '?';
	var params = '';
	if( isdefined( obj.area ) ) params += '&area=' + obj.area;
	params += '&atoken=' + auth_token;
	params += '&mydomain=' + appdomain;
	if( idx < 0 ) idx = 0;
	var urlget = url + jpar + 's=' + idx + '&m=' + areabrowseqrysize + params + '&bcount=' + bcount;

	if( $('areabrowsecontent_'+bcount).innerHTML == '' ) 
		$('areabrowsecontent_'+bcount).innerHTML = '<div class=loading>' + TXT_SEARCHING_VENUES + '</div>';

	obj.qry = urlget;
	//debug(urlget);
	ajaxrequest( nocache(urlget), 'resultareabrowse', obj, 1 );
}


function areabrowse( hang, title, url, area )
{
	var i, rb, b, bcount, search;
	
	hang.innerHTML = '';
	bcount = browserct++;
	id = 'areabrowse' + bcount;
	var div = ce( 'DIV' );
	div.className = 'areabrowse';
	div.id = id;
	hang.appendChild( div );
	div.bcount = bcount;
	div.detailscript = '';
	div.url = url;
	div.area = area;
	div.formdiv = true;
	div.className = 'areabrowse';

	var title = title != '' ? '<h1>' + title + '</h1>' : '';
	var search = '';
	var search = searchinarea( 'areabrowseinsearch', 'searcharea' + bcount, div.area) ;

	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="areabrowsecontent_' + bcount + '"></div></td></tr></table>';

//	div.innerHTML = '<table width=210 cellpadding=0 cellspacing=0 border=0><tr><td valign=top><div id="areabrowsecontent_' + bcount + '" class="content"></div></td><td width=1></td></tr></table>';

	brec[bcount] = 0;
	//areabrowseget( bcount, 0 );
//	popbrowse($('areabrowsepopular1_' + bcount), 'Popular Places', 'request_popular.php', 0, 0, 0, atoken, 'city', mycity, 3);
//	popbrowse($('areabrowsepopular2_' + bcount), 'Popular Areas',  'request_popular.php', 1, 0, 0, atoken, '', '', 3);
	buttonizeall( div );
	formformat(div);
}

