﻿var rssCounter = 0;
var req;

function monthEnglish(theMonth){
	switch (Math.round(theMonth)) {
	case 0:
		return "January";
		break;
	case 1:
		return "February";
		break;
	case 2:
		return "March";
		break;
	case 3:
		return "April";
		break;
	case 4:
		return "May";
		break;
	case 5:
		return "June";
		break;
	case 6:
		return "July";
		break;
	case 7:
		return "August";
		break;
	case 8:
		return "September";
		break;
	case 9:
		return "October";
		break;
	case 10:
		return "November";
		break;
	case 11:
		return "December";
		break;
	default:
		return theMonth;
		break;
	}
}

function dayEnglish(theDay){
	switch (Math.round(theDay)) {
	case 1:
		return "Monday";
		break;
	case 2:
		return "Tuesday";
		break;
	case 3:
		return "Wednesday";
		break;
	case 4:
		return "Thursday";
		break;
	case 5:
		return "Friday";
		break;
	case 6:
		return "Saturday";
		break;
	case 0:
		return "Sunday";
		break;
	default:
		return theDay;
		break;
	}
}

function loadXMLDoc() {
    if (rssCounter < rssList.length) {
	    url = rssList[rssCounter];

	    if (window.XMLHttpRequest) {
	        req = new XMLHttpRequest();
	        req.onreadystatechange = processReqChange;
	        req.open("GET", url, true);
	        req.send(null);
	    } else if (window.ActiveXObject) { //for IE
	        req = new ActiveXObject("Microsoft.XMLHTTP");
					isIE = true;
	        if (req) {
	            req.onreadystatechange = processReqChange;
	            req.open("GET", url, true);
	            req.send();
	        }
	    }
    }
}

function processReqChange() {
    if (req.readyState == 4) { //loaded
        if (req.status == 200) { //OK
					writeHTML(getItems());
					rssCounter++;
					loadXMLDoc();
        } else {
            alert("There was a problem retrieving the XML data:\n" + req.statusText);
        }
    }
}

function getItems() {
	var tmpItems = "";
	
	if(feed == "press_releases") {

		var items = req.responseXML.getElementsByTagName("item");

		for (var i = 0; i < rssShow; i++) {
			if (i < items.length) {
				//var tmp = linkText.indexOf("nypd");
				//linkText = linkText.substring(Number(tmp)+4, linkText.length);
				var tmpDate = new Date(getElementTextNS("", "pubDate", items[i], 0));
				tmpItems = tmpItems + "<span class='highlight_bodytext'>"+ dayEnglish(tmpDate.getDay()) + ", " + monthEnglish(tmpDate.getMonth()) + " " + tmpDate.getDate() + ", " + tmpDate.getFullYear() + "</span><br>";
				var linkText = getElementTextNS("", "link", items[i], 0);
				tmpItems = tmpItems + "<a href='" + linkText + "'><b>";
				tmpItems = tmpItems + getElementTextNS("", "title", items[i], 0) + "</b></a>";
				if (showDesc == true) {
					tmpItems = tmpItems + "<br>" + getElementTextNS("", "description", items[i], 0);
				}
					
				if (i != (rssShow-1)) {
					tmpItems = tmpItems + "<br><br>";
				} else {
					tmpItems = tmpItems + "";
				}
			}
		}

	} else if(feed == "memorial") {

		var items = req.responseXML.getElementsByTagName("officer");

		for (var i = 0; i < rssShow; i++) {
			if (i < items.length) { 

				tmpItems = tmpItems + "<b>" + getElementTextNS("", "name", items[i], 0) + "</b><br />";
				tmpItems = tmpItems + "<i>" + getElementTextNS("", "date", items[i], 0) + "</i><br />";
				tmpItems = tmpItems + "" + getElementTextNS("", "division", items[i], 0) + "";

				if (i != (rssShow-1)) {
					tmpItems = tmpItems + "<br><br>";
				} else {
					tmpItems = tmpItems + "";
				}
			}
		}

	}else if(feed == "memorial_service") {

		var items = req.responseXML.getElementsByTagName("officer");

		for (var i = 0; i < rssShow; i++) {
			if (i < items.length) { 

				tmpItems = tmpItems + "<b>" + getElementTextNS("", "name", items[i], 0) + "</b><br />";
				tmpItems = tmpItems + "<i>" + getElementTextNS("", "date", items[i], 0) + "</i><br />";
				tmpItems = tmpItems + "" + getElementTextNS("", "rank", items[i], 0) + "";

				if (i != (rssShow-1)) {
					tmpItems = tmpItems + "<br><br>";
				} else {
					tmpItems = tmpItems + "";
				}
			}
		}

	} else if (feed == "most_wanted")	{

		var items = req.responseXML.getElementsByTagName("item");

		for (var i = 0; i < items.length; i++) {

			var idText = getElementTextNS("", "id", items[i], 0); // <id>
			var rankText = getElementTextNS("", "rank", items[i], 0); // <rank>
			var firstnameText = getElementTextNS("", "firstname", items[i], 0); // <firstname>
			var lastnameText = getElementTextNS("", "lastname", items[i], 0); // <lastname>
			var sexText = getElementTextNS("", "sex", items[i], 0); // <sex>
			var raceText = getElementTextNS("", "race", items[i], 0); // <race>
			var weightText = getElementTextNS("", "weight", items[i], 0); // <weight>
			var heightText = getElementTextNS("", "height", items[i], 0); // <height>
			var haircolorText = getElementTextNS("", "haircolor", items[i], 0); // <hairColor>
			var hairtypeText = getElementTextNS("", "hairtype", items[i], 0); // <hairType>
			var hairlengthText = getElementTextNS("", "hairlength", items[i], 0); // <hairLength>
			var dobText = getElementTextNS("", "dob", items[i], 0); // <dob>
			var eyecolorText = getElementTextNS("", "eyecolor", items[i], 0); // <eyeColor>
			var eyedescriptionText = getElementTextNS("", "eyedescription", items[i], 0); // <eyeDescription>
			var precinctText = getElementTextNS("", "precinct", items[i], 0); // <precinct>
			var nysidText = getElementTextNS("", "nysid", items[i], 0); // <nysid>
			var casenumberText = getElementTextNS("", "casenumber", items[i], 0); // <caseNumber>
			var crimedescriptionText = getElementTextNS("", "crimedescription", items[i], 0); // <crimeDescription>
			var facefrontText = getElementTextNS("", "facefront", items[i], 0); // <faceFront>
			var facesideText = getElementTextNS("", "faceside", items[i], 0); // <faceSide>
			var caughtText = getElementTextNS("", "caught", items[i], 0); // <caught>


			tmpItems = tmpItems + "<p><span class='area_header'>Most Wanted: " + rankText + "</span><br><img src='../../includes/site_images/misc/hr_499x1.gif'></p>";
			tmpItems = tmpItems + "<img src='../../images/most_wanted/" + rankText + ".jpg' align='left'>";
			tmpItems = tmpItems + "<b>Rank:</b> " + rankText + "<br>";
			if (caughtText == "yes") {
			tmpItems = tmpItems + "<b>Apprehended</b><br>";
			}
			tmpItems = tmpItems + "<b>Name:</b> " + lastnameText + ", " + firstnameText + "<br>";
			tmpItems = tmpItems + "<b>Sex:</b> " + sexText + "<br>";
			tmpItems = tmpItems + "<b>Race:</b> " + raceText + "<br>";
			tmpItems = tmpItems + "<b>Weight:</b> " + weightText + "<br>";
			tmpItems = tmpItems + "<b>Height:</b> " + heightText + "<br>";
			if(dobText != "n/a") {
				var tmpDate = new Date(dobText);
				tmpItems = tmpItems + "<b>Birth</b>: " + dayEnglish(tmpDate.getDay()) + ", " + monthEnglish(tmpDate.getMonth()) + " " + tmpDate.getDate() + ", " + tmpDate.getFullYear() + "<br>";
			}
			tmpItems = tmpItems + "<b>Hair Color:</b> " + haircolorText + "<br>";
			tmpItems = tmpItems + "<b>Hair Type:</b> " + hairtypeText + "<br>";
			tmpItems = tmpItems + "<b>Hair Length:</b> " + hairlengthText + "<br>";
			tmpItems = tmpItems + "<b>Eye Color:</b> " + eyecolorText + "<br>";
			tmpItems = tmpItems + "<b>Eye Description:</b> " + eyedescriptionText + "<br>";
			tmpItems = tmpItems + "<b>Precinct:</b> " + precinctText + "<br>";
			tmpItems = tmpItems + "<b>NYSID:</b> " + nysidText + "<br>";
			tmpItems = tmpItems + "<b>Case Number:</b> " + casenumberText + "<br>";
			tmpItems = tmpItems + "<b>Crime Description:</b> " + crimedescriptionText + "<br>";

			tmpItems = tmpItems + "<br clear='left'><br><br>";
		}

	}


	return tmpItems;
}

function getElementTextNS(prefix, local, parentElem, index) {
    var result = "";
    result = parentElem.getElementsByTagName(local)[index];
    if (result) {
        if (result.childNodes.length > 1) {
            return result.childNodes[1].nodeValue;
				} else if (result.childNodes.length < 1) {
						return "";
        } else {
            return result.firstChild.nodeValue;    		
        }
    } else {
        return "n/a";
    }
}

function writeHTML(tmpHTML) {
	var dispObj = document.getElementById("rssdisp");
	dispObj.innerHTML = dispObj.innerHTML + tmpHTML;
}

loadXMLDoc();