// JavaScript Document

//General Overlay Collection
var overlays = new OverlayCollection('overlays',20);

//Settings
overlays.useLabels = true;
overlays.labelType= 'Numeric';
overlays.even = true;
overlays.catIcons = false;
overlays.showListingMarkers = true; //This determines if the listing will have the icon appended to it

/* Don't override the icon style chosen. */
/*overlays.getIconStyle = function(placemark){
	return 'default';
}*/

overlays.hidePlacemarkListingsContainer = function(){
	$("#placemarkContainer,#placemarkList").hide();
}

overlays.showPlacemarkListingsContainer= function(){
	$("#placemarkContainer,#placemarkList").show();
}

//Clear Placemarks
overlays.clearPlacemarkListings = function(){
	this.hidePlacemarkListingsContainer();	
	$("#placemarkList").html("");
}

//Show Placemarks
overlays.showPlacemarkListings = function(){
	this.clearPlacemarkListings();

	if (this.length > 0) {
		var placemarks = this.getPage(this.currPage);
		for (var i = 0; i < placemarks.length; i++) {
				var str = this.addToList(placemarks[i]);
			$('#placemarkList').append(str);
		}
	}
	$('#placemarkList').append('<div class="clear" />');

/*
		var t = document.createElement('TABLE');
		t.id = 'placemarkTable';
		t.cellPadding = '0';
		t.cellSpacing = '0';
		t.border = '0';
		t.width='100%';
		var tb = document.createElement('TBODY');
		tb.id = 'placemarkTBody';
		t.appendChild(tb);
		var placemarks = this.getPage(this.currPage);
		var tr = null;
		for (var i = 0; i < placemarks.length; i++){
			if(i % 2 == 0){
				tr = document.createElement('TR');
			}
			var td = document.createElement('TD');
			td.vAlign = 'top';
			td.align='';
			td.width='50%';
			var str = this.addToList(placemarks[i]);
			td.innerHTML = str;
			tr.appendChild(td);
			if(i %2 == 1){
				tb.appendChild(tr);
				tr = null;
			}
		}
		if (tr != null) {
		 tb.appendChild(tr);
 } 
 	else if ($('#placemarkList').children().length == 0 && tb.innerHTML == '') {
		 tr = document.createElement('TR');
		 var td = document.createElement('TD');
		 td.vAlign = 'top';
		 td.align = '';
		 var str = '<div class="Explorer_Listing"><p style="color: #000000; font-weight: bold;">There are no listings visible with the current filter settings.<br />Please modify them on the right-hand side to see your results.</p></div>';
		 td.innerHTML = str;
		 tr.appendChild(td);
		 tb.appendChild(tr);
	 }
*/

// 		$('#placemarkList').append(t); 
		this.showPlacemarkListingsContainer();
	
	if($("#leftCont .bodyCont").innerHeight() > $("#rightCont .bodyRight").innerHeight())
		$("#rightCont .bodyRight").css({height:$("#leftCont .bodyCont").innerHeight()});
	else
		$("#rightCont .bodyRight").css({height:""});

	this.showPaging();
}

//Show Placemarks
overlays.markPlacemarkListings = function(){
	this.unmarkPlacemarkListings();
	logit('Calling markPlacemarkListings');		

	if(this.length > 0){
		var placemarks = this.getPage(this.currPage);
		var self = this;
		if (this.showListingMarkers) {
			for (var i = 0; i < placemarks.length; i++) {
				logit('Calling showListingMarkers i is' + i);		
				var placemark = placemarks[i];
				html = parsePlacemarkData('<a href="#" class="markerLink"><img src="placemark:sm_iconimage"></a>', placemarks[i]);
				//This commented out but you can use this to append to the marker image if need be, so it is left for reference
				//if (jQuery('#placemark_' + placemarks[i].prikey).length) {
				//	html = '&nbsp;|&nbsp;' + html;
				//}
				
				if (jQuery('#placemark_' + placemarks[i].prikey).length) {
					placemarkHolder = jQuery('#placemark_' + placemarks[i].prikey);
					placemarkHolder.html(html);
					jQuery("a", placemarkHolder).click(function(){
						goToPlacemark(jQuery(this).data("placemark").prikey);
						return false;
					}).data("placemark", placemark);
				} else if (jQuery('#placemark_pri_' + placemarks[i].prikey).length) {
					placemarkHolderPri = jQuery('#placemark_pri_' + placemarks[i].prikey);
					placemarkHolderPri.html(html);
					jQuery("a", placemarkHolderPri).click(function(){
						goToPlacemark(jQuery(this).data("placemark").prikey);
						return false;
					}).data("placemark", placemark);
				}
			}
		}
	}
}

//Clear Placemarks
overlays.unmarkPlacemarkListings = function(){
	if(this.length > 0){
		var placemarks = this.getPage(this.currPage);
		for (var i = 0; i < placemarks.length; i++)
			if (jQuery('#placemark_' + placemarks[i].prikey).length) {
				$('.placemark_' + placemarks[i].prikey).html("");
			} else if (jQuery('#placemark_pri_' + placemarks[i].prikey).length) {
			$('.placemark_pri_' + placemarks[i].prikey).html("");
			}
	}
}

overlays.addToList = function(placemark){
	var list = $('#placemarkList').get(0);
	var str = '';
	if(list != null){
		var d= document.createElement('div');
		str = parsePlacemarkData('<div class="Explorer_Listing"><div class="mapListingTop"></div><a href="#" class="marker" onclick="return goToPlacemark(placemark:prikey);"><img src="placemark:sm_iconimage" align="left" border="0"></a><a href="#" onclick="return goToPlacemark(placemark:prikey);" class="explorerListingTitle">placemark:name</a><div class="explorerListingAddress">placemark:address</div><div class=\"explorerListingDescription\"></div><div class="Explorer_ListingLinks"><a title="View On Map" href="#" onclick="return goToPlacemark(placemark:prikey);">View On Map</a><a title="More Information"  href="../listings/index.cfm?action=display&amp;listingID=placemark:prikey&amp;menuID=21&amp;hit=1">More Info</a></div><div class="mapListingBottom"></div></div>',placemark);
		overlays.even = !overlays.even;
	}
	return str;
}

overlays.showPaging = function(){
	var page = this.currPage;
	var numPages = this.numPages();
	var overlayCollection = this;
	var pagingstr = '<span class="pageCnt">Page ' + this.currPage + ' of ' + numPages + '</span>';
	pagingstr += '<span class="pageNav">';
	if(page > 1){
		pagingstr += '<a href="#" class=\"page_first\">First</a>';
		pagingstr += ' | <a href = "#" class=\"page_previous\">Previous</a>';
	}
	else{
		pagingstr += 'First';
		pagingstr += ' | Previous';
	}

	if(page < numPages){
		pagingstr += ' | <a href="#" class=\"page_next\">Next</a>';
		pagingstr += ' | <a href="#" class=\"page_last\">Last</a>';
	}
	else{
		pagingstr += ' | Next';
		pagingstr += ' | Last';
	}
	pagingstr += '</span>';

	$('#paging_top,#paging_bottom').html(pagingstr);

	if(numPages > 1)
		$('#paging_top,#paging_bottom').show();
	else
		$('#paging_top,#paging_bottom').hide();
	

	if(page > 1)
	{
		$('.page_first').click(function(){overlayCollection.map.showPlacemarks(overlayCollection,1); return false;});
		$('.page_previous').click(function(){overlayCollection.map.showPlacemarks(overlayCollection,overlayCollection.currPage-1); return false;});
	}
	if(page < numPages)
	{
		$('.page_next').click(function(){overlayCollection.map.showPlacemarks(overlayCollection,overlayCollection.currPage+1); return false;});
		$('.page_last').click(function(){overlayCollection.map.showPlacemarks(overlayCollection,overlayCollection.numPages()); return false;});
	}
}

overlays.getInfoHTML = function(placemark){
	var addr = new Address();
	try{
		addr.loadFromObject(placemark);
	}
	catch(ex){
	}
	var str = new String();
	str = '<div class=\"infoWindowTitle\">placemark:name</div>';
	str += '<div class=\"infoWindowAddress\">' + addr.toHTMLString() + '</div>';
	str += '<span onclick=\"svp();" class=\"fakelink\">Streetview</span>';
	str += '<ul class=\"infoWindowOptions\">';
	str += placemark.weburl.length > 0 ? '<li><a href=\"' + this.root +'/includes/redirects/webcount.cfm?listingID=placemark:prikey\" target=\"_blank\">Visit website</a></li>' : '';	
	str += '<li><a href=\"./index.cfm?action=display&listingid=placemark:prikey&hit=1">More Info</a></li>';
	str += '<li><a href=\"javascript:getDirections(placemark:prikey)">Directions</a></li>';
//	str += '<li><a href=\"javascript:directions.directionsFrom(placemark:prikey)\">Directions From Here</a></li>';
	str += '</ul>';
	if(placemark.distance){
			str += '<div class=\"infoWindowSection\">Distance: ' + placemark.distance.toFixed(1) + ' miles</div>';
	}

	return parsePlacemarkData(str,placemark);
}

overlays.updateBubble = function(args){
}

