var businessesMap, businessesMapCTool;
var maps=new Array(), mapsCTool=new Array();
var mapInfoDivEl, mapInfoDivCurOpenInfoCard;
function populateBusinessInfo(data)
 {
  var bisnum=data.substring(0, data.indexOf(';'));
  var dDiv=document.getElementById('businessExtraDiv'+bisnum);
  if (! dDiv) { return; }
  dDiv.innerHTML=data.substring(data.indexOf(';')+1, data.length);
  var i, buf, nbuf=data.substring(data.indexOf(';')+1, data.length);
  while (nbuf.indexOf('<'+'script')!=-1)
   {
    i=nbuf.indexOf('<'+'script');
    buf=nbuf.substring(i+31, nbuf.length);
    buf=buf.substring(0, parseInt(buf.indexOf('<'+'/script>')));
    eval(buf);
    nbuf=nbuf.substring(i+buf.length+5);
   }
  dDiv.style.display='';
 }
function loadBusinessInfo(businessnum, listingid)
 {
  var dDiv=document.getElementById('businessExtraDiv'+businessnum);
  if (! dDiv) { return; }
  var maintable=document.getElementById('resultMainTable'+businessnum);
  if ((curOpenBusiness[businessnum])&&(curOpenBusiness[businessnum]=='businessnum'))
   {
    if (dDiv.style.display=='')
     { 
      dDiv.style.display='none';
      if (maintable)
       {
        if (maintable.className=='resultsBgSponsoredOpened') { maintable.className='resultsBgSponsored'; }
        else { maintable.className='resultsBg'; }
       }
      return;
     }
    if (dDiv.innerHTML!='')
     {
      dDiv.style.display='';
      if (maintable)
       {
        if (maintable.className=='resultsBgSponsored') { maintable.className='resultsBgSponsoredOpened'; }
        else { maintable.className='resultsBgOpened'; }
       }
      return;
     }
   }
  curOpenBusiness[businessnum]='businessnum';
  dDiv.innerHTML=document.getElementById('AJAXLOADINGSPAN').innerHTML;
  dDiv.style.display='';
  if (maintable)
   {
    if (maintable.className=='resultsBgSponsored') { maintable.className='resultsBgSponsoredOpened'; }
    else { maintable.className='resultsBgOpened'; }
   }
  ajax_function=populateBusinessInfo;
  var url=Base_Link+'&ajax=1'+String.fromCharCode(38)+'act=approximatch%20search'+String.fromCharCode(38)+'businessnum='+businessnum+String.fromCharCode(38)+'id='+listingid+'&what='+srch+'&csvcats='+csvcats;
  if (maintable.className=='resultsBgSponsoredOpened') { url+='&nologo=1'; }
  makeRequest(url);
 }

function showCityDetailsOnAllBusinessesMap(citySpanNum, label)
 {
  if ((mapInfoDivCurOpenInfoCard!='')&&(mapInfoDivCurOpenInfoCard==citySpanNum)) { return; }
  hideCityDetailsOnAllBusinessMap(citySpanNum);
  mapInfoDivEl=document.createElement('div');
  mapInfoDivEl.id='businessDetailsWithinMapSpan'+citySpanNum;
  var pos=[0,0];
  var d=document.getElementById('businessMapPoint'+citySpanNum);
  while ((d)&&(d.offsetParent)) { pos[0]+=d.offsetLeft; pos[1]+=d.offsetTop; d=d.offsetParent; }
  mapInfoDivEl.style.position='absolute';
  mapInfoDivEl.style.top=(pos[1]-document.getElementById('businessMapPoint'+citySpanNum).offsetHeight-5)+'px';
  mapInfoDivEl.style.left=(pos[0]+document.getElementById('businessMapPoint'+citySpanNum).offsetWidth+5)+'px';
  mapInfoDivEl.style.width='150px';
  mapInfoDivEl.style.backgroundColor='#0178B0';
  mapInfoDivEl.style.color='#FFFFFF';
  mapInfoDivEl.style.borderWidth='1px';
  mapInfoDivEl.style.borderColor='#000000';
  mapInfoDivEl.style.borderStyle='solid';
  mapInfoDivEl.style.paddingTop='5px';
  mapInfoDivEl.style.paddingLeft='5px';
  mapInfoDivEl.style.paddingRight='5px';
  mapInfoDivEl.style.paddingBottom='5px';
  mapInfoDivEl.style.fontSize='13px';
  mapInfoDivEl.style.fontfontWeight='bold';
  mapInfoDivEl.style.zIndex = 65540; 
  mapInfoDivEl.innerHTML=label;
  document.body.appendChild(mapInfoDivEl);
 }

function hideCityDetailsOnAllBusinessMap(citySpanNum)
 {
  if ((mapInfoDivCurOpenInfoCard!='')&&(mapInfoDivCurOpenInfoCard==citySpanNum)) { return; }
  if (mapInfoDivEl) { mapInfoDivEl.parentNode.removeChild(mapInfoDivEl); mapInfoDivEl=''; mapInfoDivCurOpenInfoCard=''; }
 }

function showBusinessInfoCardOnAllBusinessesMap(citySpanNum, label)
 {
  if ((mapInfoDivEl)&&(mapInfoDivEl.id=='businessDetailsWithinMapSpan'+citySpanNum)&&(mapInfoDivCurOpenInfoCard!='')&&(mapInfoDivCurOpenInfoCard==citySpanNum))
   { mapInfoDivEl.parentNode.removeChild(mapInfoDivEl); mapInfoDivEl=''; mapInfoDivCurOpenInfoCard=''; return; }
  if (mapInfoDivEl)
   { mapInfoDivEl.parentNode.removeChild(mapInfoDivEl); mapInfoDivEl=''; }
  mapInfoDivCurOpenInfoCard=citySpanNum+'';
  mapInfoDivEl=document.createElement('div');
  mapInfoDivEl.id='businessDetailsWithinMapSpan'+citySpanNum;
  var pos=[0,0];
  var d=document.getElementById('businessMapPoint'+citySpanNum);
  while ((d)&&(d.offsetParent)) { pos[0]+=d.offsetLeft; pos[1]+=d.offsetTop; d=d.offsetParent; }
  mapInfoDivEl.style.position='absolute';
  mapInfoDivEl.style.top=(pos[1]-document.getElementById('businessMapPoint'+citySpanNum).offsetHeight-5)+'px';
  mapInfoDivEl.style.left=(pos[0]+document.getElementById('businessMapPoint'+citySpanNum).offsetWidth+5)+'px';
  mapInfoDivEl.style.width='250px';
  mapInfoDivEl.style.backgroundColor='#FEF4D0';
  mapInfoDivEl.style.borderWidth='1px';
  mapInfoDivEl.style.borderColor='#006792';
  mapInfoDivEl.style.borderStyle='solid';
  mapInfoDivEl.style.paddingTop='5px';
  mapInfoDivEl.style.paddingLeft='5px';
  mapInfoDivEl.style.paddingRight='5px';
  mapInfoDivEl.style.paddingBottom='5px';
  mapInfoDivEl.style.fontSize='14px';
  mapInfoDivEl.style.fontfontWeight='bold';
  mapInfoDivEl.style.zIndex = 65540; 
  eval('mapInfoDivEl.onclick=function(){mapInfoDivCurOpenInfoCard='+String.fromCharCode(39)+String.fromCharCode(39)+';hideCityDetailsOnAllBusinessMap('+citySpanNum+');}');
  mapInfoDivEl.innerHTML=label;
  document.body.appendChild(mapInfoDivEl);
 }

function loadBusinessMap(businessnum, latval, longval)
 {
  var dDiv=document.getElementById('businessExtraDiv'+businessnum);
  if (! dDiv) { return; }
  if ((curOpenBusiness[businessnum])&&(curOpenBusiness[businessnum]=='map'))
   {
    if (dDiv.style.display=='') { dDiv.style.display='none'; return; }
    if (dDiv.innerHTML!='') { dDiv.style.display=''; return; }
   }
  curOpenBusiness[businessnum]='map';
  var maphtml=document.getElementById('singleBusinessMapTemplateSpan').innerHTML;
  maphtml=maphtml.replace(/MAPIDPLACEHOLDER/g, 'myMap'+businessnum).replace(/MAPBUTTONSNAMEPLACEHOLDER/g, 'maps'+businessnum).replace(/MAPNAMEPLACEHOLDER/g, 'maps['+businessnum+']').replace(/MAPLONGPLACEHOLDER/g, longval).replace(/MAPLATPLACEHOLDER/g, latval);
  dDiv.innerHTML=maphtml;
  dDiv.style.display='';
  ShowPoiMap('myMap'+businessnum, true, longval+','+latval, '', {control:true,overview:true,markerlayer:true, level:4});
 }

function switchResultsListMap()
 {
  var resultsOnMapIndication=document.getElementById('resultsOnMapIndicationTable');
  var resultsOnMapMap=document.getElementById('resultsOnMapMapTable');
  var resultsListingIndicationTable=document.getElementById('resultsListingIndicationTable');
  if ((! resultsOnMapIndication)||(! resultsOnMapMap)||(! resultsListingIndicationTable)) { return; }
  if (resultsOnMapIndication.style.display=='none')
   {
    resultsListingIndicationTable.style.display='none';
    resultsOnMapIndication.style.display='';
    resultsOnMapMap.style.display='';
    var d=document.getElementById('allResultsMap');
    if ((d)&&(d.innerHTML==''))
     {
      var mapPoints=new Array();
      for (var i=0;i<resultsLatAr.length;i++)
       { 
	 mapPoints[i]=resultsLongAr[i]+','+resultsLatAr[i]; 
         if (i==0) { mapPoints[i]='101.700,3.167'; }
         if (document.getElementById('businessNumOnMap'+resultsPoints[i]))
         { document.getElementById('businessNumOnMap'+resultsPoints[i]).style.display=''; }
       }
      ShowResultMap('allResultsMap', true, mapPoints, resultsLabels, {control:true,overview:true,markerlayer:true, level:4});
     }
    else
     {
      for (var i=0;i<resultsLatAr.length;i++)
       {
        if (document.getElementById('businessNumOnMap'+resultsPoints[i]))
         { document.getElementById('businessNumOnMap'+resultsPoints[i]).style.display=''; }
       }
     }
   }
  else
   {
    if (mapInfoDivEl)
     { mapInfoDivEl.parentNode.removeChild(mapInfoDivEl); mapInfoDivEl=''; }
    resultsOnMapIndication.style.display='none';
    resultsOnMapMap.style.display='none';
    resultsListingIndicationTable.style.display='';
    for (var i=0;i<resultsLatAr.length;i++)
     {
      if (document.getElementById('businessNumOnMap'+resultsPoints[i]))
       { document.getElementById('businessNumOnMap'+resultsPoints[i]).style.display='none'; }
     }
   }
 }
function printAllBusinessesMap()
 {
  var mapPoints=new Array();
  for (var i=0;i<resultsLatAr.length;i++)
   { mapPoints[i]=resultsLongAr[i]+','+resultsLatAr[i]; }
  if (i==0) { mapPoints[i]='101.700,3.167'; }
  PrintResultMap('allResultsMap', mapPoints, resultsLabels);
 }
var listingsCheckedForCompare='', curOpenBusiness=new Array();
var resultsLatAr=new Array(), resultsLongAr=new Array(), resultsLabels=new Array();
