// JavaScript Document

//General Overlay Collection
var overlays;

overlays = new OverlayCollection('overlays',20);
//Settings
overlays.useLabels = true;
overlays.labelType= 'Numeric';
overlays.even = false;
overlays.catIcons = false;


overlays.getIconStyle = function(placemark){
	var iconstyle = 'default';
	return iconstyle;
}

overlays.hidePlacemarkListingsContainer = function(){
	var container = $P('placemarkContainer');
	var list = $P('placemarkList');
	if(container == null)
		container = list;
		
	if(container != null){
		container.style.display = 'none';
	}
}

overlays.showPlacemarkListingsContainer= function(){
	var container = $P('placemarkContainer');
	var list = $P('placemarkList');
	if(container == null)
		container = list;
		
	if(container != null){
		container.style.display = '';
	}
}

//Clear Placemarks
overlays.clearPlacemarkListings = function(){
	var list = $P('placemarkList');
	this.hidePlacemarkListingsContainer();	
	if(list != null){
		list.innerHTML = '';
	}
}

//Show Placemarks
overlays.showPlacemarkListings = function(){
	this.clearPlacemarkListings();

	if(this.length > 0){
		$P('placemarkList').innerHTML = '';
		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);
		$P('placemarkList').appendChild(t);
		this.showPlacemarkListingsContainer();
	}

	this.showPaging();
}


//Show Placemarks
overlays.markPlacemarkListings = function(){
	this.unmarkPlacemarkListings();
	if(this.length > 0){
		var placemarks = this.getPage(this.currPage);
		var a,img;
		for (var i = 0; i < placemarks.length; i++){
			var placemark = placemarks[i];
			var spot = $P('placemark_' + placemark.prikey);
			if(spot != null){
				spot.innerHTML = '<a href="javascript:goToPlacemark(\'' + placemark.prikey + '\')"><img src=\"' + placemark.icon.image +'\" border=\"0\"></a>';
			}
		}
	}
}

//Clear Placemarks
overlays.unmarkPlacemarkListings = function(){
	if(this.length > 0){
		var placemarks = this.getPage(this.currPage);
		var tmp;
		var spot;
		for (var i = 0; i < placemarks.length; i++){
			//if(tmp)
			//	document.removeElement(tmp);
			//tmp = $P('img_viewmap_' + placemarks[i].prikey);
			//if(tmp)
			//	document.removeElement(tmp);			
			spot = $P('placemark_' + placemarks[i].prikey);
			if(spot != null){
				spot.innerHTML = '';
			}
		}
	}
}

overlays.addToList = function(placemark){
	var list = $P('placemarkList');
	var str = '';
	if(list != null){
		var d= document.createElement('div');
		str = parsePlacemarkData('<div class="Explorer_Listing"><img class="iconimage" src="placemark:iconimage" /><div style="float: right;width:125px;"><span id="imageplacemark:prikey" style="placemark:displayimage"><img class="list-image" src="../includes/images/listings/placemark:imagefile" /></span></div><h6><a href="javascript:goToPlacemark(placemark:prikey)" class="explorerListingTitle">placemark:name</a></h6><br /><div style="clear"></div><p class="explorerListingAddress">placemark:address</p><div class="Explorer_ListingLinks"><img src="../includes/images/plus_sign.gif" class="plus" /> <a title="View On Map" href="javascript:goToPlacemark(placemark:prikey);">Map It!</a><br /><img src="../includes/images/plus_sign.gif" class="plus" /> <a title="More Information"  href="../listings/index.cfm?action=display&amp;listingID=placemark:prikey&amp;hit=1">See Full Description</a></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> &nbsp;&nbsp; ';
	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>';

	$P('paging_top').innerHTML = pagingstr;
	$P('paging_bottom').innerHTML  = pagingstr;

	$P('paging_top_container').style.display = $P('paging_bottom_container').style.display = (numPages >= 1 ? '' : 'none');

	if(page > 1){
		var pagefirst = $$('.page_first');
		pagefirst.each(
			function(a){
				Event.observe(a,'click',function(e){
						overlayCollection.map.showPlacemarks(overlayCollection,1);
						Event.stop(e);
					}
				);
			}
		);

		var pageprevious = $$('.page_previous');
		pageprevious.each(
			function(a){
				Event.observe(a,'click',function(e){
						overlayCollection.map.showPlacemarks(overlayCollection,overlayCollection.currPage-1);
						Event.stop(e);
					}
				);
			}
		);
	}


	if(page < numPages){
		var pagenext = $$('.page_next');
		pagenext.each(
			function(a){
				Event.observe(a,'click',function(e){
						overlayCollection.map.showPlacemarks(overlayCollection,overlayCollection.currPage+1);
						Event.stop(e);
					}
				);
			}
		);


		var pagelast = $$('.page_last');
		pagelast.each(
			function(a){
				Event.observe(a,'click',function(e){
						overlayCollection.map.showPlacemarks(overlayCollection,overlayCollection.numPages());
						Event.stop(e);
					}
				);
			}
		);
	}



}

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=displayListing&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){
}
