var cal1;function init(){onLoadY();cal1=new YAHOO.widget.Calendar("cal1","cal1Container");cal1.render();};var xmlhttp=false;var ymap;var appid="metromash";var listHTML="";var listCount=0;function c(target,service){if(target!==""){var url='yproxy.php?'+encodeURI(target);xmlhttp.open('GET',url,true);xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4&&xmlhttp.status==200){document.getElementById('result').innerHTML='';document.getElementById('searchResponse').innerHTML='';f(xmlhttp.responseText,service);}else{clearResultList();document.getElementById('result').innerHTML="Loading...";document.getElementById('searchResponse').innerHTML="&nbsp;&nbsp;&nbsp;Searching...";}};xmlhttp.send(null);}};function showList(){listHTML="&nbsp;&nbsp;&nbsp;Found "+listCount+"<br/><ol>"+listHTML+"</ol>";document.getElementById("searchResultsDiv").innerHTML=listHTML;};function removeChildren(node){try{if(node==undefined||node==null){alert("node is undefined");return;}var len=node.childNodes.length;alert("node has len = "+len);for(var i=0;i<len;i++){node.removeChild(node.childNodes[i]);}var len2=node.childNodes.length;alert("after deletion node has "+len2);}catch(e){alert(e);}};function clearResultList(){listHTML="";listCount=0;};function addListElem(text){listCount++;listHTML+="<li>"+text+"</li>";};function f(parseMeString,service){var parser=new DOMImplementation();var domDoc=parser.loadXML(parseMeString);if(domDoc==null){alert("There was a problem parsing search results.");return;}var docRoot=domDoc.getDocumentElement();ymap.removeMarkersAll();clearResultList();var text;if(service=="events"){var errors=docRoot.getElementsByTagName("Error");if(errors!=null&&errors.length>0){alert("There was an error retrieving upcoming events.  Please try again later.");return;}try{var items=docRoot.getElementsByTagName("event");for(var i=0;i<items.length;i++){try{var lat=items.item(i).getAttribute("latitude");var lon=items.item(i).getAttribute("longitude");var name=items.item(i).getAttribute("name");var descr=items.item(i).getAttribute("description");var startDate=items.item(i).getAttribute("start_date");var startTime=items.item(i).getAttribute("start_time");var eventId=items.item(i).getAttribute("id");var venueId=items.item(i).getAttribute("venue_id");}catch(e){}var point=new YGeoPoint(parseFloat(lat),parseFloat(lon));var smart="<div style='width: 150px; color: black; font-size: small; margin: 0 3px 2px 3px;'>";smart+="<b>"+name+"</b><br/><b>Date:</b> "+startDate+"<br/><b>Time:</b> "+startTime+"<br />"+descr;text=name+", "+startDate+", at "+startTime;var myMarker=d(point,i,smart,"E");ymap.addOverlay(myMarker);addListElem(text);}}catch(e){}}if(service=="traffic"){var errors=docRoot.getElementsByTagName("Error");if(errors!=null&&errors.length>0){alert("There was an error retrieving traffic data.  Please try again later.");return;}var items=docRoot.getElementsByTagName("Result");for(var i=0;i<items.length;i++){try{var lat=items.item(i).getElementsByTagName("Latitude").item(0).getFirstChild().getNodeValue();var lon=items.item(i).getElementsByTagName("Longitude").item(0).getFirstChild().getNodeValue();var title=items.item(i).getElementsByTagName("Title").item(0).getFirstChild().getNodeValue();var descr=items.item(i).getElementsByTagName("Description").item(0).getFirstChild().getNodeValue();var severity=items.item(i).getElementsByTagName("Severity").item(0).getFirstChild().getNodeValue();var type=items.item(i).getAttribute("type");}catch(e){}var point=new YGeoPoint(parseFloat(lat),parseFloat(lon));var smart="<div style='width: 150px; color: black; font-size: small; margin: 0 3px 2px 3px;'>";smart+="<b>"+title+"</b><br />"+"Type: "+type+"<br />"+"Severity: "+severity+"<br />"+descr;var myMarker=d(point,i,smart,"T");ymap.addOverlay(myMarker);text=title+" ("+type+", "+severity+")";addListElem(text);}}else if(service=="local"){var errors=docRoot.getElementsByTagName("Error");if(errors!=null&&errors.length>0){alert("The location you entered could not be found.  Please try again.");return;}var items=docRoot.getElementsByTagName("Result");for(var i=0;i<items.length;i++){try{var lat=items.item(i).getElementsByTagName("Latitude").item(0).getFirstChild().getNodeValue();var lon=items.item(i).getElementsByTagName("Longitude").item(0).getFirstChild().getNodeValue();var title=items.item(i).getElementsByTagName("Title").item(0).getFirstChild().getNodeValue();var address=items.item(i).getElementsByTagName("Address").item(0).getFirstChild().getNodeValue();var city=items.item(i).getElementsByTagName("City").item(0).getFirstChild().getNodeValue();var state=items.item(i).getElementsByTagName("State").item(0).getFirstChild().getNodeValue();var phone=items.item(i).getElementsByTagName("Phone").item(0).getFirstChild().getNodeValue();var ratings=items.item(i).getElementsByTagName("Rating");if(ratings.item(0).getElementsByTagName("AverageRating").item(0).getFirstChild()!=null){var avRat=ratings.item(0).getElementsByTagName("AverageRating").item(0).getFirstChild().getNodeValue();}else{avRat="n/a"}if(ratings.item(0).getElementsByTagName("TotalRatings").item(0).getFirstChild()!=null){var totRat=ratings.item(0).getElementsByTagName("TotalRatings").item(0).getFirstChild().getNodeValue();}else{avRat="n/a"}}catch(e){}var point=new YGeoPoint(parseFloat(lat),parseFloat(lon));var smart="<div style='width: 150px; color: black; font-size: small; margin: 0 3px 2px 3px;'>";smart+="<b>"+title+"</b><br />"+"<b>Average Rating:</b> "+avRat+"<br />"+"<b>Total Ratings:</b> "+totRat+"<br/>";smart+="<b>Address:</b> "+address+", "+city+"<br/>";smart+="<b>Phone: </b>"+phone+"<br/>";text=title+" ("+phone+"): "+address+", "+city;addListElem(text);var myMarker=d(point,i,smart,"L");ymap.addOverlay(myMarker);}}else if(service=="geocode"){var errors=docRoot.getElementsByTagName("Error");if(errors!=null&&errors.length>0){alert("The location you entered could not be found.  Please try again");return;}var items=docRoot.getElementsByTagName("Result");for(var i=0;i<items.length;i++){try{var lat=items.item(i).getElementsByTagName("Latitude").item(0).getFirstChild().getNodeValue();var lon=items.item(i).getElementsByTagName("Longitude").item(0).getFirstChild().getNodeValue();}catch(e){}var point=new YGeoPoint(parseFloat(lat),parseFloat(lon));var smart="<div style='width: 150px; color: black; font-size: small; margin: 0 3px 2px 3px;'>";smart+="Long: "+lon+"<br />"+"Lat: "+lat;var myMarker=d(point,i,smart,"");text="Latitude: "+lat+", Longitude: "+lon;addListElem(text);ymap.drawZoomAndCenter(point,6);ymap.addOverlay(myMarker);}}showList();};function d(point,number,msg,type){var marker=new YMarker(point,'id'+number);marker.addLabel('<div style="font-weight: bold;font-color:red">'+(number+1)+'</div>');YEvent.Capture(marker,EventsList.MouseClick,function(){marker.openSmartWindow(msg)});return marker;};function onLoadY(){if(window.XMLHttpRequest){xmlhttp=new XMLHttpRequest();xmlhttp.overrideMimeType('text/xml');}else if(window.ActiveXObject){xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}ymap=new YMap(document.getElementById('mapbox'));ymap.addPanControl();ymap.addZoomShort();var startPoint=new YGeoPoint(30.26,-97.74);ymap.drawZoomAndCenter(startPoint,7);};function addAustinEvents(){ymap.addOverlay(new YGeoRSS('http://upcoming.org/syndicate/v2/metro/70'));};function getTodayDate(){new Date();};function isDateSelected(){var dates=cal1.getSelectedDates();if(dates!=null){if(dates.length>0){return true;}}return false;};function getSelectedDate(){var dates=cal1.getSelectedDates();if(dates!=null){if(dates.length>0){return dates[0];}}};function addZero(num){if(num<10){return "0"+num;}return ""+num;};function formatDate(date){return(date.getYear()+1900)+"-"+addZero(date.getMonth()+1)+"-"+addZero(date.getDate());};function searchEvents(){var center=ymap.getCenterLatLon();var zoomLevel=ymap.getZoomLevel();var uri;if(isDateSelected()){var date=getSelectedDate();minDateCal=YAHOO.widget.DateMath.subtract(date,YAHOO.widget.DateMath.DAY,1);maxDateCal=YAHOO.widget.DateMath.add(date,YAHOO.widget.DateMath.DAY,1);minDate=formatDate(minDateCal);maxDate=formatDate(maxDateCal);uri="http://upcoming.org/services/rest/?api_key=63b20e8075&method=event.search&location="+center.Lat+","+center.Lon+"&min_date="+minDate+"&max_date="+maxDate+"&radius=30";}else{uri="http://upcoming.org/services/rest/?api_key=63b20e8075&method=event.search&location="+center.Lat+","+center.Lon+"&max_date=2006-04-15&radius=25";}setResultsHeader("<b>Upcoming Events</b>");c(uri,"events");};function addTraffic(){var center=ymap.getCenterLatLon();var zoomLevel=ymap.getZoomLevel();var uri="http://api.local.yahoo.com/MapsService/V1/trafficData?appid="+appid+"&latitude="+center.Lat+"&longitude="+center.Lon+"&zoom="+zoomLevel;c(uri,"traffic");setResultsHeader("<b>Current Traffic Conditions</b>");};function addLocal(searchFor){var center=ymap.getCenterLatLon();var zoomLevel=ymap.getZoomLevel()*5;var query;if(searchFor==null||searchFor==undefined){query=document.getElementById("localquery").value;}else{query=searchFor;}var uri="http://api.local.yahoo.com/LocalSearchService/V2/localSearch?appid=metromash&query="+query+"&latitude="+center.Lat+"&longitude="+center.Lon+"&radius="+zoomLevel+"&results="+20;c(uri,"local");setResultsHeader("<b>Local Search Results</b>");};function addGeocode(){var query=document.getElementById("geoquery").value;var uri="http://api.local.yahoo.com/MapsService/V1/geocode?appid=metromash&location="+query;c(uri,"geocode");setResultsHeader("<b>Current Map Location</b>");};function setResultsHeader(text){document.getElementById("searchResultsHeader").innerHTML=text;} 
