var EXAMPLE_TWO = HOST_URL + '/search/v1/polygon?key=YOUR_KEY_HERE&callback=renderExampleTwoResults';

function showExampleTwoURL() {
    advancedOptions = EXAMPLE_TWO;    

	var maxMatches = document.getElementById("e2_maxMatches").value;
	var inFormat = document.getElementById('e2_inFormat');
	inFormat = inFormat.options[inFormat.selectedIndex].value;
	
    if (inFormat == 'kvp') {
		advancedOptions += "&polygon=39.89568,-76.627936,39.914276,-76.609602,39.89009,-76.599608,39.89568,-76.627936&hostedData=MQA.MQ_82679_Matt,,Address,City,State,Country";
		if(maxMatches != ""){
			advancedOptions += "&maxMatches=" + maxMatches;
		}
	
    } else if (inFormat == 'json') {
        advancedOptions += '&inFormat=json';
		
        advancedOptions += "&json=";
        var jsonText = '{';
		jsonText += "polygon:[39.89568,-76.627936,39.914276,-76.609602,39.89009,-76.599608,39.89568,-76.627936],hostedDataList:[{name:\"MQA.MQ_82679_Matt\", extraCriteria:\"\", fields:[\"Address\", \"City\", \"State\", \"Country\"]}]"
		if(maxMatches != ""){
			jsonText += ",options:{maxMatches:" + maxMatches + "}";
		}
        jsonText += '}';
        advancedOptions += jsonText;
		
    } else if (inFormat == 'xml') {
        advancedOptions += '&inFormat=xml';

        advancedOptions += "&xml=";
        var xmlText = '<search>';
		xmlText += '<polygon>39.89568,-76.627936,39.914276,-76.609602,39.89009,-76.599608,39.89568,-76.627936</polygon><hostedDataList><hostedData><name>MQA.MQ_82679_Matt</name><extraCriteria></extraCriteria><fields><field>Address</field><field>City</field><field>State</field><field>Country</field></fields></hostedData></hostedDataList>'
		if(maxMatches != ""){
			xmlText += "<options><maxMatches>" + maxMatches + "</maxMatches></options>";
		}
		
        xmlText += '</search>'
        advancedOptions += xmlText;
    }
    
    var safe = advancedOptions;
    document.getElementById('exampleTwoUrl').innerHTML = safe.replace(/</g, '&lt;').replace(/>/g, '&gt;');;
};

function renderExampleTwoResults(response) {
    var html = '';
    var i = 0;
    var j = 0;

    if (response.info.statuscode && (response.info.statuscode != 0)) {
        var text = "Whoops!  There was an error during the request";
		text += " [" + response.info.statuscode + "]:\n";
        if (response.info.messages) {
            for (i = 0; i < response.info.messages.length; i++) {
                text += response.info.messages[i] + "\n";
            }
        }
        alert(text);
		return;
    }
    	
    if (response.collections) { // Location ambiguities!
        html = "<p>Whoops!  Ambiguous addresses found in request:</p><ol>";
        for (i = 0; i < response.collections.length; i++) {
            var collection = response.collections[i];
            for (j = 0; j < collection.length; j++) {
                html += '<li>';
                html += ' ' + (collection[j].adminArea5 || ' ');  
                html += ' ' + (collection[j].adminArea4 || ' ');  
                html += ' ' + (collection[j].adminArea3 || ' ');  
                html += ' ' + (collection[j].adminArea2 || ' ');  
                html += ' ' + (collection[j].adminArea1 || ' ');  
                html += '</li>';
            }
        }
        html += '</ol>';
        document.getElementById('exampleTwoResults').innerHTML = html;
        return;        
    }
	
	if (response.resultsCount < 1) {
		alert("No results were in the search area");
		return;
	}

	
	if(response.searchResults){
		html += '<table><tr><th colspan="5">Search Results</th></tr>'
		html += '<tr><td><b>#</b></td><td><b>key/name</b></td><td><b>fields</b></td><td><b>distance</b></td><td><b>shapes</b></td></tr>';
		html += '<tbody>'
		for(var i =0; i < response.searchResults.length; i++){
			var result = response.searchResults[i]
			html += "<tr valign=\"top\">";
			html += "<td>" + result.resultNumber + "</td>";
			html += "<td>key: " + result.key + "<br/>";
			html += "name: " + result.name + "<br/>";
			html += "</td>";
			html += "<td>";
			if(result.fields){
				for (var obj in result.fields){
					var f = result.fields[obj];
					html += obj + ": " + f + "<br/>";					
				}
			}
			html += "</td>";
			html += "<td>distance:" + result.distance + " " + result.distanceUnit + "<br/>";
			html += "source:" + result.sourceName + "</td>";
			html += "<td>";
			if(result.shapePoints){
				if(result.shapePoints instanceof Array){
					for(var j=0; j < result.shapePoints.length; j+=2){
						html += result.shapePoints[j];
						html += ", ";
						html += result.shapePoints[j + 1];
						html += "<br/>";
					}
				}
				else{
					html += result.shapePoints
				}
			}
			html += "</td>";
			html += "</tr>";
		}		
		html += '</tbody></table>';
	}
    
	var divMap = document.getElementById("divExampleTwoMap");
	divMap.innerHTML = "";
	if(divMap){
		window.mapExampleTwo = new MQA.TileMap(divMap);
		//give zoom control
		MQA.withModule('zoomcontrol3', function() {
			mapExampleTwo.addControl(new MQA.LargeZoomControl3(), new MQA.MapCornerPlacement(MQA.MapCorner.TOP_LEFT, new MQA.Size(5, 5)));
		});
		processResults(response, window.mapExampleTwo);
		divMap.style.display = "";
	}

    document.getElementById('exampleTwoResults').innerHTML = html;
}

function doExampleTwo() {
	searchType = '';
    document.getElementById('exampleTwoResults').innerHTML = 'Pending...';
    
    var script = document.createElement('script');
    script.type = 'text/javascript';
    showExampleTwoURL();
    var newURL = advancedOptions.replace('YOUR_KEY_HERE', APP_KEY);
	newURL = newURL.replace("outFormat=xml", "outFormat=json");
    script.src = newURL;
    document.body.appendChild(script);
};
