//<![CDATA[

	// Set Icon
   var iconBlue = new GIcon(); 
   iconBlue.image = 'http://hotfootlabs.com/resources/circulation/_images/'+pub_id+'/marker.png';
   // iconBlue.shadow = 'http://hotfootlabs.com/resources/shared/_markers/614/614_map_marker_shadow.png';
   iconBlue.iconSize = new GSize(30, 36);
   iconBlue.shadowSize = new GSize(22, 20);
   iconBlue.iconAnchor = new GPoint(15, 33);
   iconBlue.infoWindowAnchor = new GPoint(15,0);
	
	// Set defaults
	var map;
	var xml;
	var circle;
	var lat = 39.971689;
	var lon = -83.041273;
	
	// Special hack for tigerweekly
	if(pub_id == 1){
		lat = 30.450746;
		lon = -91.154551;
	}
	
	
	var latOffset = 1;
	var lonOffset = 5;
	var default_point = new GLatLng(lat, lon);
	var current_point = '';
	var default_zoom = 11;
	var gmarkers = new Array();
	var glisteners = new Array();
	var eventsList = new Array();
	var listview = new Array();
	var nav_page = 1;
	var events_slot = 0;
	var events = 0;


	
	

	var cal_date = curr_date.getFullYear()+'-'+check_len((curr_date.getMonth()+1))+'-'+check_len(curr_date.getDate());
	
	function change_date(ladd){
		if(ladd)
			curr_date.setDate(curr_date.getDate() + 1);
		else
			curr_date.setDate(curr_date.getDate() - 1);
		cal_date = curr_date.getFullYear()+'-'+check_len((curr_date.getMonth()+1))+'-'+check_len(curr_date.getDate());
		change_map_date();
		clear_everything(0);
		load_xml(cal_date,true);
		
	}
	
	
	// 
	// ////////////////////////////////////////////////////////////////////
	// //// SET AJAX VARS
	// //XMLhttp variable will hold the XMLHttpRequest object
	// var xmlhttp = false;
	// 
	// // If the user is using Mozilla/Firefox/Safari/etc
	// if (window.XMLHttpRequest) {
	//         //Intiate the object
	//         xmlhttp = new XMLHttpRequest();
	//         //Set the mime type
	//         xmlhttp.overrideMimeType('text/xml');
	// }
	// // If the user is using IE
	// else if (window.ActiveXObject) {
	//         //Intiate the object
	//         xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	// }
	
	
	function load_list_view(){
		
//		document.getElementById("show_map_view").display = 'none';
//		alert('whatcha dewin');
	
		//current_view = 'list';
		//output_list_view();
		//document.getElementById("map_body").style.height = '700px';
		//document.getElementById("map").style.height = '700px';
	
		
		myRef = window.open('http://hotfootlabs.com/resources/events/map.php?pub_id='+pub_id+'&market_id='+market_id+'&check=0&hot_map_ver=list&cat_id='+cat_id+'&market_id='+market_id+'&map_date='+cal_date,'mywin','left=20,top=20,width=1007,scrollbars=yes,toolbar=0,menubar=0;resizable=1');
	}
	
		function load_map_view(){

			document.getElementById("show_map_view").style.display = '';
	//		alert('whatcha dewin');
			document.getElementById("show_list_view").style.display = 'none';
			current_view = 'map';
			load();

		}
	
	
	function change_map_date(){
		
		// Set date on guide
		document.getElementById("cal_day").innerHTML = check_len(curr_date.getDate());
		
		var day_abbr = new Array(7);
		day_abbr[0] = "SUN";
		day_abbr[1] = "MON";
		day_abbr[2] = "TUE";
		day_abbr[3] = "WED";
		day_abbr[4] = "THR";
		day_abbr[5] = "FRI";
		day_abbr[6] = "SAT";
		
		document.getElementById("cal_dow").innerHTML = day_abbr[curr_date.getDay()];
		
		var day_month = new Array(12);
		day_month[0] = "JANUARY";
		day_month[1] = "FEBRUARY";
		day_month[2] = "MARCH";
		day_month[3] = "APRIL";
		day_month[4] = "MAY";
		day_month[5] = "JUNE";
		day_month[6] = "JULY";
		day_month[7] = "AUGUST";
		day_month[8] = "SEPTEMBER";
		day_month[9] = "OCTOBER";
		day_month[10] = "NOVEMBER";
		day_month[11] = "DECEMBER";
		
		document.getElementById("cal_month").innerHTML = day_month[curr_date.getMonth()];
		
	//	document.getElementById("cal_year").innerHTML = curr_date.getFullYear();
		
	}
	
	function check_len(str){
		str = String(str);

		if(str.length < 2)
			return '0'+str;
		else
			return str;
	}
	
	function eventer(venue_id,cbizname,caddress,markerNum,cat_id,sub_id,center_distance,title,photo,desc,time){
	
		this.venue_id = venue_id;
		this.cbizname = cbizname;
		this.address = caddress;
		this.markerNum = markerNum;
		this.cat_id = cat_id;
		this.sub_id = sub_id;
		this.center_distance = center_distance;
		this.title = title;
		this.photo = photo;
		this.desc = desc;
		this.time = time
	}
	
	function lister(mthml,csub){
		this.mhtml = mhtml;
		this.csub = csub;
	}
	
   function load() {
     if (GBrowserIsCompatible()) {
       map = new GMap2(document.getElementById("map"));
       map.addControl(new GLargeMapControl3D());
		
		map.disableDoubleClickZoom()
		map.setCenter(default_point, default_zoom);
		
		// New map controls
		//	var extLargeMapControl = new ExtLargeMapControl();
		//	map.addControl(extLargeMapControl);
		
		load_xml(cal_date,false);
			
		
		// Add click to move circle
	    GEvent.addListener(map, "click", function(overlay,point) {

	    			// Check to see if marker was clicked
	    			if(!overlay){
	    				//	alert('not overlay');
	    				// Check to see if in circle
	    				if(!circle.inCircle(point)){
	    					
	    					// Not in, Clear everything
	    					clear_everything(point);
	    					clear_circle();
	    					
	    					// Set Message
	    					document.getElementById("message").innerHTML = '<div class="alert">Loading...</div>';
	    				
	    					// Load Events
	    					load_events(map,point,(default_zoom+2),false);
	    				}
	    			}else{
	    			
						//alert(concatObject(overlay));
	    				//if(overlay.oName('thisIsMarker'))
					
		
						over_point = overlay.getPoint();
	    					    								
	    				if(!circle.inCircle(over_point) && map.getZoom() <= (default_zoom+1)){
						
	    					// Not in, Clear everything
	    					clear_everything(over_point);
	    					clear_circle();
	    					// Set Message
	    					document.getElementById("message").innerHTML = '<div class="alert">Loading...</div>';
	    					// Load Events
	    					load_events(map,over_point,(default_zoom+2),false);
	    				}
	    				
	    			}
	    
	    
	    	     });
     }
   }
	
	
	
	function clear_everything(point){
		
			for(x=0;x < gmarkers.length;x++){
				map.removeOverlay(gmarkers[x]);
				GEvent.removeListener(glisteners[x]);
			}
			// Clear Circle
			//alert(circle);
			// Clear Array
			eventsList = [];
			gmarkers = [];
			listview = [];
			nav_page = 1;
			events_slot = 0;
			// Clear List
			document.getElementById("list").innerHTML='<div class="alert">Loading...</div>';
			document.getElementById("list_nav").innerHTML='';
		
	} 
	function clear_circle(){
		map.removeOverlay(circle);
	}
	
	function concatObject(obj) {
	  str='';
	  for(prop in obj)
	  {
	    str+=prop + " value :"+ obj[prop]+"\n";
	  }
	  return(str);
	}
	
	function debug_xml(){
		window.open('http://hotfootlabs.com/resources/circulation/venu_map_xml.php?show_date='+cal_date+'&market_id='+market_id,'mywin','left=20,top=20,width=1007,scrollbars=yes,toolbar=0,menubar=0;resizable=1');
	}
	
	
	function load_xml(ddate,date_change){
			////////////////////////////////////////////////////////////////////
			//// Load Data From external xml (hopefully cached) (ONLY DO THIS ONCE)
	
		    GDownloadUrl("venu_map_xml.php?pub_id="+pub_id, function(data) {
				
				xml = GXml.parse(data);

				////////////////////////////////////////////////////////////////////
				//// load the evetns
				load_events(map,default_point,default_zoom,date_change);

			});
	}
	
	
	function load_cat(lcat_id,lsub_id){
		
		document.getElementById("message").innerHTML = "Patience Please";
		
		//remove current sele
		document.getElementById("cat_"+cat_id).className = "";
		if(document.getElementById("sub_"+sub_id))
			document.getElementById("sub_"+sub_id).className = "";
		
		
		// Set new
		document.getElementById("cat_"+lcat_id).className = "sele";
		if(document.getElementById("sub_"+lsub_id))
			document.getElementById("sub_"+lsub_id).className = "sele";
		
		cat_id = lcat_id;
		sub_id = lsub_id;
		
		clear_everything(current_point);
	
		load_object(map,current_point,map.getZoom());
		
		if(current_view == 'list')
			output_list_view();
	}
	
	
	function load_events(map,center_point,lzoom,date_change){
		// Change cursor

		
			if(!date_change){
			// Set Current Point
			current_point = center_point;

			// Find current Zoom
			if(map.getZoom() < (default_zoom+2)){

				map.setCenter(center_point, lzoom);
			}
		
			// Check for initial load or reset  move circle off of the map
			if(center_point == default_point)
				center_point = new GLatLng(44.487776, -88.011618);
				
			// Create and add the circle
			circle = new CircleOverlay(center_point, latOffset, "#336699", 1, 1, '#336699', 0.1);
			map.addOverlay(circle);
		
		}
		document.getElementById("message").innerHTML = '<div class="alert">Loading...</div>';
		
		load_object();

	
	}
	

	
	
	function load_object(){
		
			var markers = xml.documentElement.getElementsByTagName("marker");
            
			var ar_num = 0;
			events = 0;
			var list_num = 0;
			//alert(eventsList.length);
			
			for (var i = 0; i < markers.length; i++) {
				 var venue_id = markers[i].getAttribute("venue_id");
	             var name = markers[i].getAttribute("name");
	             //var title = markers[i].getAttribute("title");
				var title = ''; 
				var address = markers[i].getAttribute("address"); 
				var photo = '';
				//var photo = '';
				 var lcat_id = '';
				 var lsub_id = '';
				 var desc = markers[i].getAttribute("window_html");
			//	var desc = '';
				 var csub = '';
				 //var time = markers[i].getAttribute("time");
				var time = '';

	             var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
	                                     parseFloat(markers[i].getAttribute("lng")));
    		
			 
				// if(  ((cat_id > 0 && lcat_id == cat_id) || cat_id < 1)  && ((sub_id > 0 && lsub_id == sub_id) || sub_id < 1)){
			 	
					mhtml = getMarkerHtml(venue_id,title,name,address,photo,desc,lcat_id,time,i);
					listview[list_num] = new lister(mhtml,csub);	
					list_num++;
					load_object_map(point,mhtml,(i+1),venue_id,name,address,lcat_id,lsub_id,title,photo,desc,time);
			   
			    
				
				 
			  
				 //} // End if same category
			
			} // End for loop
			
    			
  		   
			
			// Sort the array (by distance from center)
			eventsList.sort(function(a, b) {
								var x = a.center_distance;
							    var y = b.center_distance;
							   // return ((x < y) ? -1 : ((x > y) ? 1 : 0));
								return x-y;
							});
							
			// Hide Message
			if(events > 0){
				
				document.getElementById("message").innerHTML = events+" Locations";
				
				////////////////////////////////////////////////////////////////////
				//// Output list
				output_list(events_slot,nav_page);
			
			
			}else{
				
				document.getElementById("message").innerHTML = "0 Locations";
				document.getElementById("list").innerHTML = '<div style="padding:10px;">Events only show up here if they fall inside your circle. <br><br> Try moving it to areas where you see blue dots.</div>';
			
				if(current_point == default_point)
					document.getElementById("list").innerHTML = '<div style="padding:0 10px 10px 10px;"><img src="_images/4/closer_look.jpg" width="137" height="283" alt="Closer Look"></div>';
				else
					document.getElementById("list").innerHTML = '<div style="padding:0 10px 10px 10px;"><img src="_images/4/closer_look.jpg" width="137" height="283" alt="Closer Look"></div>';
					
				document.getElementById("list_nav").innerHTML = '';
			
			}	
			
			if(current_view == 'list')
					output_list_view();
	}
	
	function load_object_map(point,mhtml,num,venue_id,name,address,lcat_id,lsub_id,title,photo,desc,time){
		var funcCreateMarker = createMarker; 
		var marker = funcCreateMarker(point, mhtml, iconBlue,num);
		    map.addOverlay(marker);
		    // Test to see if event falls in circle
		    if(circle.inCircle(point)){
			 // Check if category
			
									    	
			 // Calucate Distance
			 var center_distance = point.distanceFrom(current_point)/1000;
		//var center_distance = 0;
			 // Add event to array
			 eventsList[events] = new eventer(venue_id,name,address,(gmarkers.length-1),lcat_id,lsub_id,center_distance,title,photo,desc,time);
			 events++;
			 
			} // End if in circle
			
			
	}
	
		function getMarkerHtml(venue_id,title,name,address,photo,desc,cat_id,time,i){
		
		var mhtml = '<div class="mevent" id="event_'+i+'"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tr>';
		
			if(photo != '')
				mhtml += '<td valign="top" width="1"><div class="photo"><img src="'+photo+'" width="75"></div></td>';
		
		mhtml += '<td>';
		// if(cat_id ==2 || title == '')
		// 		mhtml += '<div class="title">'+desc+'</div>';
		// 	else
		// 			mhtml += '<div class="title">'+title+'</div>';
		mhtml += '<div class="g_header" >';	
//		mhtml += '<img src="http://hotfootlabs.com/resources/events/_images/4/trans.gif" width="1" height="300" style="border:1px solid #af0000;">';		
		mhtml += '<div class="venue">'+name+'</div>';
		mhtml += '<div class="address">'+address+'</div>';
		mhtml += '</div>';
		// if(desc != '' && cat_id!=2)
		// 		mhtml += '<div class="desc">'+desc+'</div>';
		mhtml += desc;
		
		if(time != '')
			mhtml += '<div class="time">'+time+'</div>';
	
	//	mhtml += '<div class="tools">';
	////	mhtml += '';
	//	mhtml += '</div>';
		mhtml += '</td></tr></table>';
		mhtml += '</div>';
			text='<form target="_blank" method="get" name="dir" action="http://maps.google.com/maps" style="margin:0;padding:0 0 0 8px;">';
   				text+='<div style="background-color:#fff;padding:5px 0px;text-align:left;margin-top:0px;margin:bottom:0;border:0px solid #ccc;font-size:11px;color:#666;"><b>Get Directions:</b> &nbsp;';
   				text+='<input type="hidden" name="daddr" value="'+address+'" />';
   				text+='<input id="saddr" type="text" size="35" name="saddr" value="Type Your Address" style="margin:6px 6px 0 0;" OnFocus="if(this.value==\'Type Your Address\'){this.value=\'\';}"/>'; 
   	            text+='<input type="submit" name="btnG" value="GO"/></div></form>';
			mhtml += text;
		return mhtml;
	}
	
	function open_venue(venue_id){
		window.open('http://hotfootlabs.com/resources/events/venue.php?pub_id='+pub_id+'&market_id='+market_id+'&check=0&hot_map_ver=list&cat_id='+cat_id+'&venue_id='+venue_id+'&map_date='+cal_date,'mywin','left=20,top=20,width=1007,scrollbars=yes,toolbar=0,menubar=0;resizable=1');
		
	}
	
	
	function output_list(events_slot,nav_page){
		
		if(arguments.length == 3)
			user_load = arguments[2];
		else
			user_load = false;
			
			
		// Clear out earlier info
		document.getElementById("list").innerHTML = '';
		document.getElementById("list_nav").innerHTML = '';	
		
		// Set Start Letter
		letter_slot = 0;
		
		// Set the current page
		nav_page = nav_page;
		
		var eventsPerPage = 15;
		var list_html = '<ol id="events_list" start="'+(events_slot+1)+'">';
		
		// Check for results < 10
		if(eventsList.length < (events_slot + eventsPerPage))
			list_limit = eventsList.length;
		else
			list_limit = (events_slot + eventsPerPage);	
		
		// Reset marker images
		// if(user_load){
		// 					//alert('reset');
		// 		// for(x = 0; x < gmarkers.length; x++){
		// 		// 			gmarkers[eventsList[x].markerNum].setImage('http://hotfootlabs.com/resources/shared/_markers/614/614_map_marker_noletter.png');
		// 		// 		}
		// 	}
	
		for(x = events_slot; x < list_limit; x++){
			// Create html
			list_html += '<li>';
			//list_html += '<a  href="javascript:show_event('+eventsList[x].markerNum+');">('+eventsList[x].cat_id+') ('+eventsList[x].sub_id+') '+eventsList[x].cbizname+'</a>';
			
			// if(eventsList[x].cat_id == 2 || eventsList[x].title == ''){
			// 		list_html += '<a  href="javascript:show_event('+eventsList[x].markerNum+');">'+limitString(eventsList[x].desc,50)+'</a>';
			// 		list_html += '<br>'+eventsList[x].cbizname;
			// 	}else{
			// 		list_html += '<a  href="javascript:show_event('+eventsList[x].markerNum+');">'+limitString(eventsList[x].title,50)+'</a>';
			// 		list_html += '<br>'+eventsList[x].cbizname;
			// 	}
			//list_html += '<img src="http://hotfootlabs.com/resources/shared/_markers/614/'+(letter_slot+1)+'.png" width="30" height="36">';
			
			 		list_html += '<a  href="javascript:show_event('+eventsList[x].markerNum+');">'+limitString(eventsList[x].cbizname,15)+'</a>';
			list_html += '</li>';
			// Set Marker
							//gmarkers[eventsList[x].markerNum].setImage('http://hotfootlabs.com/resources/shared/_markers/614/614_map_marker_'+String.fromCharCode('A'.charCodeAt() + letter_slot)+'.png');
		//	gmarkers[eventsList[x].markerNum].setImage('http://hotfootlabs.com/resources/shared/_markers/614/'+letter_slot+'.png');
			// var top = (33 * (letter_slot+1));
			// 		//alert(gmarkers[eventsList[x].markerNum].getIcon());
			// 		var licon = gmarkers[eventsList[x].markerNum].getIcon();
			// 		alert(concatObject(licon.sprite));
			// 		licon.sprite.top = top;
			letter_slot++;
		}
		list_html += '</ol>';
		document.getElementById("list").innerHTML = list_html;
		var p = new pagin(x,eventsList.length,eventsPerPage,nav_page);
		document.getElementById("list_nav").innerHTML = p.nav;
		map.getDragObject().setDraggableCursor("default");
		
		////////////////////////////////////////////////////////////////////
		//// Set numbers to markers

		for(x=0; x < eventsList.length; x++){
			gmarkers[eventsList[x].markerNum].setImage('http://hotfootlabs.com/resources/shared/_markers/614/'+(x+1)+'.png');
			lhtml =  getMarkerHtml(eventsList[x].venue_id,eventsList[x].title,eventsList[x].cbizname,eventsList[x].address,'',eventsList[x].desc,'','',0);
			gmarkers[eventsList[x].markerNum].bindInfoWindowHtml(lhtml);
		}
		
	}
	
	function limitString(str,num){
		var str_len = str.length;
		if(str_len > num)
			return str.substring(0,num)+'...';
		else 
			return str;
	}
	
	
	function pagin(startSlot,numResults,eventsPerPage,nav_sele){
	
		this.startSlot = startSlot;
		this.numRestuls = numResults;
		this.pages = Math.ceil( ((+numResults) / (+eventsPerPage)) );
		this.nav = '';
		if(this.pages > 1){
			// Build nav
			var pnav = '<ul id="mapnav">';
			for(x=1; x <= this.pages;x++){
				if(x == 1)
					slot = 0;
				else
					slot += eventsPerPage;
				
				var page_sele = '';
				if(nav_sele == x)
					page_sele = 'id="sele"';
				pnav += '<li '+page_sele+'><a href="javascript:output_list('+slot+','+x+',true);">'+x+'</li>';
			}
			pnav += '</ul>';
			this.nav = pnav;
		}
		
	}
	
	
	
	function output_list_view(){
		
		// if(arguments.length == 3)
		// 		user_load = arguments[2];
		// 	else
		// 		user_load = false;
		
		document.getElementById("show_map_view").style.display = 'none';
		document.getElementById("show_list_view").style.display = '';
		document.getElementById("list_nav").innerHTML = '';	
		
		// Clear out earlier info
		document.getElementById("lister_view").innerHTML = ' ';
		
		// Set Start Letter
		// letter_slot = 0;
		// 	
		// 	// Set the current page
		// 	nav_page = nav_page;
		// 	
		// 	var eventsPerPage = 10;
		var list_html = '<ul id="list_view_list">';
		
		// // Check for results < 10
		// 	if(listview.length < (events_slot + eventsPerPage))
		// 		list_limit = eventsList.length;
		// 	else
		// 		list_limit = (events_slot + eventsPerPage);	
		// 	
		// 	// Reset marker images
		// 	// if(user_load){
		// 	// 					//alert('reset');
		// 	// 		// for(x = 0; x < gmarkers.length; x++){
		// 	// 		// 			gmarkers[eventsList[x].markerNum].setImage('http://hotfootlabs.com/resources/shared/_markers/614/614_map_marker_noletter.png');
		// 	// 		// 		}
		// 	// 	}
		
		var prev_sub = ''
		
		for(x = 0; x < listview.length; x++){
			
			// if(prev_sub != listview[x].csub)
			// 			list_html += '<li class="sub">'+listview[x].csub+'</li>';
			prev_sub = listview[x].csub;
			var shade = '';
			var check_shade = (x % 2);
			if(check_shade == 0)
				shade = 'class="shade"';
			
		
			
			// Create html
			list_html += '<li '+shade+'>';
			//list_html += '<a  href="javascript:show_event('+eventsList[x].markerNum+');">('+eventsList[x].cat_id+') ('+eventsList[x].sub_id+') '+eventsList[x].cbizname+'</a>';
			
			list_html += listview[x].mhtml;
			// if(eventsList[x].cat_id == 2){
			// 		list_html += '<a  href="javascript:show_event('+eventsList[x].markerNum+');">'+eventsList[x].desc+'</a>';
			// 		list_html += '<br>'+eventsList[x].cbizname;
			// 	}else{
			// 		list_html += '<a  href="javascript:show_event('+eventsList[x].markerNum+');">'+eventsList[x].title+'</a>';
			// 		list_html += '<br>'+eventsList[x].cbizname;
			// 	}
			//list_html += '<img src="http://hotfootlabs.com/resources/shared/_markers/614/'+(letter_slot+1)+'.png" width="30" height="36">';
			list_html += '</li>';
			
			
			// Set Marker
			//gmarkers[eventsList[x].markerNum].setImage('http://hotfootlabs.com/resources/shared/_markers/614/614_map_marker_'+String.fromCharCode('A'.charCodeAt() + letter_slot)+'.png');
			//	gmarkers[eventsList[x].markerNum].setImage('http://hotfootlabs.com/resources/shared/_markers/614/'+letter_slot+'.png');
			// var top = (33 * (letter_slot+1));
			// 		//alert(gmarkers[eventsList[x].markerNum].getIcon());
			// 		var licon = gmarkers[eventsList[x].markerNum].getIcon();
			// 		alert(concatObject(licon.sprite));
			// 		licon.sprite.top = top;
		//	letter_slot++;
		}
		list_html += '</ul>';
	//	document.getElementById("lister_vew").innerHTML = list_html;
		document.getElementById("lister_view").innerHTML = list_html;
	//	var p = new pagin(x,eventsList.length,eventsPerPage,nav_page);
	//	document.getElementById("list_nav").innerHTML = p.nav;
	//	map.getDragObject().setDraggableCursor("default");
		
		////////////////////////////////////////////////////////////////////
		//// Set numbers to markers

		// for(x=0; x < eventsList.length; x++){
		// 	gmarkers[eventsList[x].markerNum].setImage('http://hotfootlabs.com/resources/shared/_markers/614/'+(x+1)+'.png');
		// }
		
	}
	
	

	function show_event(i) {
       GEvent.trigger(gmarkers[i], "click");
     }
	
   function createMarker(point, html,use_icon,number_slot) {

	 var marker = new GMarker(point, use_icon);
    // var html = "<b>" + name + "</b> <br/>" + address;

     var listen = GEvent.addListener(marker, 'click', function(data) {
		
 	//	infoOptions = {noCloseOnClick:false};
// //		alert(concatObject(infoOptions));
	
		// map.setCenter(marker.getPoint());
		// 	more_pan();
		marker.openInfoWindowHtml(html);
	
		
	//	marker.noCloseOnClick(false);
	//	marker.pixelOffset(GSize(0, 200));
     });
	
	
	 marker.oName = 'thisIsMarker';
	 marker.m_num = number_slot;
	
	 glisteners.push(listen);
	 gmarkers.push(marker);
	 return marker;

	
   }


	function more_pan(){
		offer = new GSize(0,50);
		map.panBy(offer);
	//	alert(offer);
	}


	////////////////////////////////////////////////////////////////////
	//// Circle Functions
	// This file adds a new circle overlay to GMaps2
	// it is really a many-pointed polygon, but look smooth enough to be a circle.
	
	var CircleOverlay = function(latLng, radius, strokeColor, strokeWidth, strokeOpacity, fillColor, fillOpacity) {
	    this.latLng = latLng;
	    this.radius = radius;
	    this.strokeColor = strokeColor;
	    this.strokeWidth = strokeWidth;
	    this.strokeOpacity = strokeOpacity;
	    this.fillColor = fillColor;
	    this.fillOpacity = fillOpacity;
		this.oName = 'thisIsCircle';
	}

	// Implements GOverlay interface
	CircleOverlay.prototype = GOverlay;

	CircleOverlay.prototype.initialize = function(map) {
	    this.map = map;
	}

	CircleOverlay.prototype.clear = function() {
	    if(this.polygon != null && this.map != null) {
	        this.map.removeOverlay(this.polygon);
	    }
	}

	// Calculate all the points and draw them
	CircleOverlay.prototype.redraw = function(force) {
	    var d2r = Math.PI / 180;
	    circleLatLngs = new Array();
	    var circleLat = this.radius * 0.014483;  // Convert statute miles into degrees latitude
	    var circleLng = circleLat / Math.cos(this.latLng.lat() * d2r);
	    var numPoints = 40;

	    // 2PI = 360 degrees, +1 so that the end points meet
	    for (var i = 0; i < numPoints + 1; i++) { 
	        var theta = Math.PI * (i / (numPoints / 2)); 
	        var vertexLat = this.latLng.lat() + (circleLat * Math.sin(theta)); 
	        var vertexLng = this.latLng.lng() + (circleLng * Math.cos(theta));
	        var vertextLatLng = new GLatLng(vertexLat, vertexLng);
	        circleLatLngs.push(vertextLatLng); 
	    }

	    this.clear();
	    this.polygon = new GPolygon(circleLatLngs, this.strokeColor, this.strokeWidth, this.strokeOpacity, this.fillColor, this.fillOpacity);
	    this.map.addOverlay(this.polygon);
	
	}

	CircleOverlay.prototype.remove = function() {
	    this.clear();
	}

	CircleOverlay.prototype.containsLatLng = function(latLng) {
	    // Polygon Point in poly 	
		if(this.polygon.containsLatLng) {
	        return this.polygon.containsLatLng(latLng);
	    }
	}

	CircleOverlay.prototype.setRadius = function(radius) {
	    this.radius = radius;
	}

	CircleOverlay.prototype.setLatLng = function(latLng) {
	    this.latLng = latLng;
	}
	
	
	////////////////////////////////////////////////////////////////////
	//// ADD SPECIAL POLYGON CODE
		
	// === A method for testing if a point is inside a polygon
	// === Returns true if poly contains point
	// === Algorithm shamelessly stolen from http://alienryderflex.com/polygon/ 
		
	CircleOverlay.prototype.inCircle = function(point) {
	        
			// Do simple calculation so we don't do more CPU-intensive calcs for obvious misses
			var bounds = this.polygon.getBounds();
						
								if(!bounds.containsLatLng(point)) {
								    return false;
								}
			
			
			var j=0;
	        var oddNodes = false;
	        var x = point.lng();
	        var y = point.lat();
		    for (var i=0; i < this.polygon.getVertexCount(); i++) {
	          j++;
	          if (j == this.polygon.getVertexCount()) {j = 0;}
	       
				if (((this.polygon.getVertex(i).lat() < y) && (this.polygon.getVertex(j).lat() >= y))
	          || ((this.polygon.getVertex(j).lat() < y) && (this.polygon.getVertex(i).lat() >= y))) {
	            if ( this.polygon.getVertex(i).lng() + (y - this.polygon.getVertex(i).lat())  /  (this.polygon.getVertex(j).lat()-this.polygon.getVertex(i).lat()) *  (this.polygon.getVertex(j).lng() - this.polygon.getVertex(i).lng())<x ) {
	              oddNodes = !oddNodes
	            }
	          }
	        }
		      return oddNodes;
	  }
	
	
	
	
	


		$(document).ready(function() {

			////////////////////////////////////////////////////////////////////
			//// Search as you type for venues

			// $("input#venue_search").autocomplete(
			// 					"http://hotfootlabs.com/admin/_contents/_xml/biz_search.php",
			// 					{
			// 						delay:10,
			// 						minChars:2,
			// 						matchSubset:2,
			// 						matchContains:1,
			// 						cacheLength:10,
			// 						onItemSelect:selectItem_emp,
			// 						onFindValue:findValue_emp,
			// 						formatItem:formatItem,
			// 						width:308,
			// 						autoFill:true,
			// 						extraParams:{iidpub:pub_id}
			// 					}
			// 				);
		});

		function findValue_emp(li) {
			if( li == null ) return alert("No match!");

			// if coming from an AJAX call, let's use the CityId as the value
			if( !!li.extra ){
				var sValue = li.extra[0];
				var pub = li.extra[1];
			}

			// otherwise, let's just display the value in the text box
			else var sValue = li.selectValue;

		//	location.href = 'main_new.php?iidbiz='+sValue+'&iidpub='+pub+'&page=client&tab=edit&subtab=';
		//	window.open('http://hotfootlabs.com/resources/events/venue.php?pub_id='+pub_id+'&market_id='+pub+'&iidvenue='+sValue,'mywindow');
			//alert('open!');
		
			window.open('http://hotfootlabs.com/resources/events/venue.php?pub_id='+pub_id+'&market_id='+market_id+'&check=0&hot_map_ver=list&cat_id='+cat_id+'&venue_id='+sValue+'&map_date='+cal_date,'mywin','left=20,top=20,width=1007,scrollbars=yes,toolbar=0,menubar=0;resizable=1');
			$("input#venue_search").val('Venue Search'); 
		}

		function selectItem_emp(li) {
			findValue_emp(li);
		}

		function formatItem(row) {
			return row[0] + "";
		}
		
		function cleartitle(obj,title){
			if(obj.value==title){
				obj.value='';
				obj.style.color = "#000000";
				//obj.style.backgroundColor = "#fff0e2";
			}else{
				if(obj.value==''){
					obj.value=title;
					obj.style.color ='#999';
				}
			//	obj.style.backgroundColor = "#fff";
			}
			
		}

   //]]>
