var xmlEvents;
var xmlTags;
var t;
var watermarkText = "Event Search";
$(document).ready(function() {

    $(".SearchInput").focus(function() {
        if ($(".SearchInput").val() == watermarkText) {
            $(".SearchInput").val("");
        }
        $(".SearchInput").css({ "color": "#000000", "font-style": "normal" });
        clearTimeout(t);
        return true;
    });

    $(".SearchInput").blur(function() {
        if ($(".SearchInput").val() == "") {
            $(".SearchInput").val(watermarkText);
            $(".SearchInput").css({ "color": "#666" });
        }
       // t = setTimeout("$('.SearchResults').slideUp()", 80);

    });

    $(".SearchInput").keydown(function(e) {
        if (e.which == 8) {
            SearchText = $(".SearchInput").val().substring(0, $(".SearchInput").val().length - 1);
        }
        else {
            SearchText = $(".SearchInput").val() + String.fromCharCode(e.which);
        }
        if (SearchText != "") {
            getResult(SearchText);
            $(".SearchResults").slideDown();
        } else {
            $(".SearchResults").slideUp();
        }
    });

    $.ajax({
        type: "GET",
        url: "SearchFeedXML",
        dataType: "xml",
        success: function(xml) {
        xmlEvents = xml;
        }
    });

});
			
function getResult(s) {
    var out = "";
    var e = "";
    var eArr = new Array();
    var outArr = new Array(512);
    var count = 0;
	var v = "";
	var vArr = new Array();
	var PIPE = new RegExp('\\|', 'g');

	$(".SearchResults").empty();

	if (s.length < 2) {return;}
	if (xmlEvents == null) 
	{
	    setTimeout("getResult('" + s + "')", 250);
	}
		
    // Events
	$("performances>performance", xmlEvents).each(function() {
	    var n = $("eventTitle", this).text().toUpperCase();
	    var ven = $("venue", this).text().toUpperCase();
	    var cit = $("townCity", this).text().toUpperCase();
	    var bt = $("bundleName", this).text().toUpperCase();
	    var bunURL = $("bundleURL", this).text();
	    var evtURL = $("eventURL", this).text();
	    var URL;
	    if ((n.indexOf(s.toUpperCase()) > -1)) {

	        if (bt != '') {
	            if (bt == n) {
	                // Belongs to Bundle, same name as event, Use Bundle URL (original).
	                URL = bunURL;
	            }
	            else {
	                // Belongs to Bundle, name differs, use Event URL (new).
	                URL = evtURL;
	            }
	            
	            
	        }
	        else {
	            // use Event URL
	            URL = evtURL;
	        }

	        // DeDuplicate - and out put.
	        if ((jQuery.inArray(URL + n, eArr)) == -1) 
	        {
	            eArr.push(URL + n);
	            // e += "<div><a class='block' href='" + URL + "'>" + n.replace("<br/>", "").replace("\|", " ") + "</a></div>";
	            outArr[count] = new Array(2);
	            outArr[count][0] = URL;
	            outArr[count][1] = $("eventTitle", this).text();
	            count++;
	        }
	    }
	    if ((bt.indexOf(s.toUpperCase()) > -1)) {

	        if (bt != '') {
	            // Use Bundle URL.
	            URL = bunURL;
	        }
	        else {
	            // use Event URL
	            URL = evtURL;
	        }
	        // DeDuplicate - and out put.
	        if ((jQuery.inArray(URL + bt, eArr)) == -1) {
	            eArr.push(URL + bt);
	            // e += "<div><a class='block' href='" + bunURL + "'>" + $("bundleName", this).text().replace(PIPE, ",") + "</a></div>";
	            outArr[count] = new Array(2);
	            outArr[count][0] = URL;
	            outArr[count][1] = $("bundleName", this).text();
	            count++;
	        }
	    }
	});
	
	var dedupeArr = new Array();
	for (i=0;i<count;i++) {

	    if ((jQuery.inArray(outArr[i][1], dedupeArr)) == -1) 
	    {
	        dedupeArr.push(outArr[i][1]);
	        if (i + 1 < count) {
	            if (outArr[i + 1][1] == outArr[i][1]) {
	                e += "<div><a class='block' href='  /whatson?search=" + outArr[i][1].replace(/ /g, "+").toLowerCase() + "'>" + outArr[i][1].replace("<br/>", "").replace(PIPE, " ") + "</a></div>";
	            }
	            else {
	                e += "<div><a class='block' href='" + outArr[i][0] + "'>" + outArr[i][1].replace("<br/>", "").replace(PIPE, " ") + "</a></div>";
	            }

	        }
	        else {
	            e += "<div><a class='block' href='" + outArr[i][0] + "'>" + outArr[i][1].replace("<br/>", "").replace(PIPE, " ") + "</a></div>";
	        }
	       
	           
	    }
	}
	if (e != "") 
	   {
		    out +="<div class='SearchResultHeader'>EVENTS</div>";
		    out+=e;
	   }
    	
	// Venues
	$("performances>performance", xmlEvents).each(function() {
	    var vn = $("venue", this).text().toUpperCase();
	    var cit = $("townCity", this).text().toUpperCase();
	    if ((vn.indexOf(s.toUpperCase()) > -1) || (cit.indexOf(s.toUpperCase()) > -1)) {
	        var url = $("eventURL", this).text().toUpperCase();

	        if (url != '') {
	            if ((jQuery.inArray($("venue", this).text(), vArr)) == -1) {
	                vArr.push($("venue", this).text());
	                v += "<div><a class='block' href='/whatson?venue=" + vn + "'>" + $("venue", this).text();

	                var tc = $("townCity", this).text();
	                if (tc != '') { v += ", " + tc + "</a></div>"; } else { v += "</a></div>" }

	            }
	        }
	    }
	});

	if (v != "") 
	{
	    out += "<div class='SearchResultHeader'>VENUES</div>";
	    out += v;
	}

    $(".SearchResults").html(out);
}