var xmlhttp = null; var finalXML = null; if (window.ActiveXObject) { finalXML = new ActiveXObject("MSXML2.DOMDocument.3.0"); } else { finalXML = document.implementation.createDocument("","",null); } finalXML.appendChild(finalXML.createElement("markers")); countLength = 0; globalCount=0; var photoid = new Array(); var phototitleid = new Array(); var photoserverid = new Array(); var photosecret = new Array(); function getRequest() { if (window.XMLHttpRequest) { return xmlhttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { return xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } } function sendData() { var request = getRequest(); var url = "flickrproxy.aspx?method=flickr.people.getPublicPhotos&api_key=09c1df5594901a6b833cecbcc2974337¶metertype=user_id¶metervalue=" + document.getElementById("user").value; request.open("GET", url, true); request.onreadystatechange = function() { getData(request) }; request.send(null); } function getData() { if ((xmlhttp.readyState == 4) &&( xmlhttp.status == 200)) { var xmlobject = xmlhttp.responseXML; var photos = xmlobject.getElementsByTagName("photo"); countLength = photos.length; for (var i = 0; i < photos.length; i++) { photoid[i] = photos[i].getAttribute("id"); phototitleid[i] = photos[i].getAttribute("title"); photoserverid[i] = photos[i].getAttribute("server"); photosecret[i] = photos[i].getAttribute("secret"); } sendGeoData(); } } function sendGeoData() { var request = getRequest(); var url = "flickrproxy.aspx?method=flickr.photos.geo.getLocation&api_key=09c1df5594901a6b833cecbcc2974337¶metertype=photo_id¶metervalue="; request.open("GET", url + photoid[globalCount], true); request.onreadystatechange = function() { getGeoData(request) }; request.send(null); } function getGeoData(request) { if (request.readyState == 4 && request.status == 200) { xmlobject = request.responseXML; var newtag = finalXML.createElement("marker"); var loc = xmlobject.getElementsByTagName("location")[0]; var photo = xmlobject.getElementsByTagName("photo")[0]; newtag.setAttribute("lat", loc.getAttribute("latitude")); newtag.setAttribute("lng", loc.getAttribute("longitude")); newtag.setAttribute("address", phototitleid[globalCount]); newtag.setAttribute("secret", photosecret[globalCount]); newtag.setAttribute("server", photoserverid[globalCount]); newtag.setAttribute("user_id", document.getElementById("user").value); newtag.setAttribute("photo_id", photo.getAttribute("id")); finalXML.firstChild.appendChild(newtag); globalCount++; if (globalCount != countLength) { window.setTimeout(sendGeoData, 10); } else { saveXml(); } } } function saveXml() { var xmlToSave = null; if(window.ActiveXObject) { xmlToSave = finalXML.xml } else { xmlToSave = new XMLSerializer().serializeToString(finalXML); } var xmlcode = encodeURIComponent(xmlToSave); var url = "Save.aspx?xml=" + xmlcode; var request = getRequest(); request.open("GET", url, true); request.onreadystatechange = function() { if (request.readyState == 4) { alert("File saved."); } }; if (request.overrideMimeType) { request.overrideMimeType("text/plain"); } request.send(null); }