// Javascript File for Siteparker Vortals.

function addBookmark(title,url) {
	if (window.sidebar) { 
		window.sidebar.addPanel(title, url,""); 
	} else if( document.all ) {
		window.external.AddFavorite( url, title);
	} else if( window.opera && window.print ) {
		return true;
	}
}

function showMore(content, maxChars) {
	// check the display value of the div, and toggle visibility
	if(document.getElementById("mainContent").style.display == "none") {
		document.getElementById("mainContent").style.display = "";
		document.getElementById("showMoreText").innerHTML = "less..";
	} else {
		document.getElementById("mainContent").style.display = "none";
		document.getElementById("showMoreText").innerHTML = "more..";
	}


}

function showPanel(panel) {
	
	// Hide all panels
	document.getElementById('askPanel').style.display="none";
	document.getElementById('superpagesPanel').style.display="none";
	document.getElementById('cityPanel').style.display="none";
	document.getElementById('bizPanel').style.display="none";
	
	
	// show delected panel.
	document.getElementById(panel).style.display="";
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function showAllCities() {
	var citiesLink = document.getElementById('viewAllCities');
	
	document.getElementById('selectBizPanel').style.display='none';
	
	var citiesPanel = document.getElementById('selectCityPanel');
	var tableWidth = document.getElementById('citiesTable').width;
	var objPosition = findPos(citiesLink);
	citiesPanel.style.display='';
	citiesPanel.style.left = objPosition[0] - tableWidth + 76;
	citiesPanel.style.top = objPosition[1] - 14;
}

function showAllBusinesses() {
	var bizLink = document.getElementById('viewAllBusinesses');
	
	document.getElementById('selectCityPanel').style.display='none';
	
	var bizPanel = document.getElementById('selectBizPanel');
	var tableWidth = document.getElementById('bizTable').width;
	var objPosition = findPos(bizLink);
	bizPanel.style.display='';
	bizPanel.style.left = objPosition[0] - tableWidth + 156;
	bizPanel.style.top = objPosition[1] - 14;
}

function showAllBusinessesIndex() {
	var bizLink = document.getElementById('viewAllBusinesses');
	
	document.getElementById('selectCityPanel').style.display='none';
	
	var bizPanel = document.getElementById('selectBizPanel');
	var tableWidth = document.getElementById('bizTable').width;
	var objPosition = findPos(bizLink);
	bizPanel.style.display='';
	bizPanel.style.left = objPosition[0] - tableWidth + 490;
	bizPanel.style.top = objPosition[1] - 11;
}

function showAllCitiesIndex() {
	var citiesLink = document.getElementById('viewAllCities');
	
	document.getElementById('selectBizPanel').style.display='none';
	
	var citiesPanel = document.getElementById('selectCityPanel');
	var tableWidth = document.getElementById('citiesTable').width;
	var objPosition = findPos(citiesLink);
	citiesPanel.style.display='';
	citiesPanel.style.left = objPosition[0] - tableWidth + 76;
	citiesPanel.style.top = objPosition[1] - 11;
}

function showDirectory(type, css) {
	
	if(document.getElementById('cityTD')) document.getElementById('cityTD').className='bg_nav';
	if(document.getElementById('bizTD')) document.getElementById('bizTD').className='bg_nav';
	if(document.getElementById('moreTD')) document.getElementById('moreTD').className='bg_nav';
	
	if(document.getElementById('cityLink')) document.getElementById('cityLink').className='nav_top';
	if(document.getElementById('bizLink')) document.getElementById('bizLink').className='nav_top';
	if(document.getElementById('moreLink')) document.getElementById('moreLink').className='nav_top';
	
	if(document.getElementById('cityLeftImg')) document.getElementById('cityLeftImg').src='graphics/nav_left_corner.gif';
	if(document.getElementById('bizLeftImg')) document.getElementById('bizLeftImg').src='graphics/nav_left_corner.gif';
	if(document.getElementById('moreLeftImg')) document.getElementById('moreLeftImg').src='graphics/nav_left_corner.gif';
	
	if(document.getElementById('cityRightImg')) document.getElementById('cityRightImg').src='graphics/nav_right_corner.gif';
	if(document.getElementById('bizRightImg')) document.getElementById('bizRightImg').src='graphics/nav_right_corner.gif';
	if(document.getElementById('moreRightImg')) document.getElementById('moreRightImg').src='graphics/nav_right_corner.gif';
	
	// hide all panels
	if(document.getElementById('cityDirectory')) document.getElementById('cityDirectory').style.display='none';
	if(document.getElementById('bizDirectory')) document.getElementById('bizDirectory').style.display='none';
	if(document.getElementById('moreDirectory')) document.getElementById('moreDirectory').style.display='none';
	
	//show panel
	document.getElementById(type+'Directory').style.display='';
	document.getElementById(type+'TD').className='bg_nav_active';
	document.getElementById(type+'Link').className='nav_top_active';
	document.getElementById(type+'LeftImg').src='graphics/'+css+'/nav_active_left_corner.gif';
	document.getElementById(type+'RightImg').src='graphics/'+css+'/nav_active_right_corner.gif';

} 

// get URL variables in location
function getUrlVars() {
	var vars = [], hash;
	var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');

	for(var i = 0; i < hashes.length; i++) {
		hash = hashes[i].split('=');
		vars.push(hash[0]);
		vars[hash[0]] = hash[1];
	}	
	return vars;
}

// GOOGLE MAPS
var map = null;
var geocoder = null;

function load() {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map"));
    
    map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
    geocoder = new GClientGeocoder();
  }
}

function showAddress(address, title) {
  if (geocoder) {
    geocoder.getLatLng(
      address,
      function(point) {
        if (!point) {
          var endPos = document.getElementById('map').style.height.length - 2;
          //alert(document.getElementById('map').style.height.substring(0, endPos)/3);
          document.getElementById('map').style.width= "100%";
          document.getElementById('map').style.height = (document.getElementById('map').style.height.substring(0, endPos)/3);
          document.getElementById('map').style.backgroundColor = "#FFFFFF";
          document.getElementById('map').innerHTML = "<table width=95% border='0' cellspacing='0' cellpadding='0'><tr><td align=center valign=middle style='padding:10px;'><h1 class='heading_vacation_packages'>Cannot Display Map</h1></td></tr></table>";
          document.getElementById('mapResetButton').style.display='none';
          return;
        } else {
          map.setCenter(point, 16);
          var marker = new GMarker(point);
          map.addOverlay(marker);
          marker.openInfoWindowHtml("<b>"+ title + "</b><br>" + address);
        }
      }
    );
  }
}

function addToMap(address, title, id) {
	if(document.getElementById('addToMapCheckbox_'+id).checked == true) {
		if(!geocoder) {
			var urlVariables = getUrlVars();
			var urlChunks = window.location.href.split('?');
			var baseURL = urlChunks[0];
			
			window.location.href = baseURL+
				"?kw="+urlVariables['kw']+
				"&searchBusiness="+urlVariables['searchBusiness']+
				"&searchCity="+urlVariables['searchCity']+
				"&sid="+id+
				"&pg="+urlVariables['pg']+
				"&da="+urlVariables['da'];
		}
		if (geocoder) {
		    geocoder.getLatLng(
		      address,
		      function(point) {
		        if (!point) {
		        	return;
		        } else {
		          var marker = new GMarker(point);
		          map.addOverlay(marker);
		          marker.openInfoWindowHtml("<b>"+ title + "</b><br>" + address);
		          map.setZoom(13)
		        }
		      }
		    );
		  }
		
	}
	else {
		if (geocoder) {
		    geocoder.getLatLng(
		      address,
		      function(point) {
		        if (!point) {
		          alert(address + " not found");
		        } else {
		          map.removeOverlay(point);
		        }
		      }
		    );
		  }
	
	}

}


