var intAjaxType;
var strFilterBy = "";
var strFilterValue = "";
var strSelected_Tour = "";
var xmlHttp;


function GetXmlHttpObject()
{
var objXmlHttp = null;

try
    {
    // Firefox, Opera 8.0+, Safari
    objXmlHttp = new XMLHttpRequest();
    }
catch(e)
    {
    // Internet Explorer
    try
        {
        objXmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
    catch(e)
        {
        objXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }

return objXmlHttp;
}



function startAjax(intArrSettingsIndex, strOptionalParam)
{
var strGetSearchFilter = "";

if (intArrSettingsIndex == 1 || intArrSettingsIndex == 5)
    {
    strGetSearchFilter = getSearchFilter(intArrSettingsIndex);
    }
/* ***** SETTINGS ***** */
var arrSettings = new Array();

arrSettings[0] = new Array();//URL
arrSettings[0][0] = "Dropdownlist.aspx";
arrSettings[0][1] = "?Type=Counties";
arrSettings[0][2] = "&SelectedID=";

arrSettings[1] = new Array();
arrSettings[1][0] = "Ireland_Map.aspx";
arrSettings[1][1] = "?Type=Golf_Clubs";
arrSettings[1][2] = "&FilterBy=" + strGetSearchFilter;

arrSettings[2] = new Array();
arrSettings[2][0] = "Ireland_Map.aspx";
arrSettings[2][1] = "?Type=Golf_Club_Details";
arrSettings[2][2] = "&FilterBy=";

arrSettings[3] = new Array();
arrSettings[3][0] = "Ireland_Map.aspx";
arrSettings[3][1] = "?Type=Golf_Clubs";
arrSettings[3][2] = "&FilterBy=";

arrSettings[4] = new Array();
arrSettings[4][0] = "Ireland_Map.aspx";
arrSettings[4][1] = "?Type=Generic_Map_Info";
arrSettings[4][2] = "&Region_Name=";

arrSettings[5] = new Array();
arrSettings[5][0] = "Ireland_Map.aspx";
arrSettings[5][1] = "?Type=Golf_Clubs";
arrSettings[5][2] = "&FilterBy=" + strGetSearchFilter;
/* ***** SETTINGS ***** */


xmlHttp = GetXmlHttpObject();

if (xmlHttp == null)
    {
    alert("Your browser does not support AJAX!");
    return;
    }

var url = strAjaxLevel + "Ajax/";
url += arrSettings[intArrSettingsIndex][0];
url += arrSettings[intArrSettingsIndex][1];
url += arrSettings[intArrSettingsIndex][2] + strOptionalParam;

intAjaxType = intArrSettingsIndex;
strFilterBy = arrSettings[intArrSettingsIndex][2] + strOptionalParam;

if (strOptionalParam != "" && strOptionalParam.indexOf("=") != -1)
    {
    strFilterValue = strOptionalParam.substring(strOptionalParam.indexOf("=") + 1);
    }

xmlHttp.onreadystatechange = xmlReadyState;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}



function xmlReadyState()
{
if (xmlHttp.readyState == 4)
    {
    if(xmlHttp.status == 200)
        {
        switch(intAjaxType)
            {
            case 0:
            populateDropdown(xmlHttp.responseXML.documentElement);
            break;

            case 1:
            case 3:
            case 5:
            Filter_Map(xmlHttp.responseXML.documentElement);
            break;

            case 2:
            case 4:
            fillMapTextArea(xmlHttp.responseXML.documentElement);
            break;
            }
        }
    }
}



function GetInnerText(node)
{
return (node.textContent || node.innerText || node.text);
}



/* ***** DROPDOWNLIST ***** */
function populateDropdown(objDocumentElement)
{
var arrAllDropdowns = document.getElementsByTagName("select");
var objDropdown;
var looper;

for (looper = 0; looper < arrAllDropdowns.length; looper++)
    {
    if (arrAllDropdowns[looper].id.indexOf("selCounty") != -1)
        {
        objDropdown = arrAllDropdowns[looper];
        break;
        }
    }

if (objDropdown)
    {
    for (looper = objDropdown.options.length - 1; looper > -1; looper--)
        {
        objDropdown.options[looper] = null;
        }

    var nodeTextItems = objDocumentElement.getElementsByTagName('County');
    var nodeValuesItems = objDocumentElement.getElementsByTagName('ID');

    var objListItem = new Option("Select", "0",  false, false);
    objDropdown.options[0] = objListItem;

    for (looper = 0; looper < nodeTextItems.length; looper++)
        {
        objListItem = new Option(GetInnerText(nodeTextItems[looper]), GetInnerText(nodeValuesItems[looper]),  false, false);
        objDropdown.options[objDropdown.length] = objListItem;
        }
    }
}
/* ***** DROPDOWNLIST ***** */



/* ***** MAP ***** */
function Filter_Map(objDocumentElement)
{
hideAllTours();

/* CLEAR ICONS FIRST TO AVIOD JUMP */
var objHoldIconsDiv = document.getElementById("holdIcons");

if (objHoldIconsDiv.hasChildNodes())
    {
    while (objHoldIconsDiv.childNodes.length >= 1)
        {
        objHoldIconsDiv.removeChild(objHoldIconsDiv.firstChild);
        }
    }
/* CLEAR ICONS FIRST TO AVIOD JUMP */

var nodeGolf_Clubs_ID = objDocumentElement.getElementsByTagName('Golf_Clubs_ID');
var nodeShort_Name = objDocumentElement.getElementsByTagName('Short_Name');
var nodePosition_Left;
var nodePosition_Top;

if (strFilterBy.indexOf("Tour_ID") != -1 && intAjaxType != 5)//NOT AN AREA SEARCH
    {
    //nodePosition_Left = objDocumentElement.getElementsByTagName('Tour_Left');
    //nodePosition_Top = objDocumentElement.getElementsByTagName('Tour_Top');
    nodePosition_Left = objDocumentElement.getElementsByTagName('Ireland_Left');
    nodePosition_Top = objDocumentElement.getElementsByTagName('Ireland_Top');

    if (intAjaxType == 1)
        {
        changeMap("selTour","");
        showIrelandMap(1,strSelected_Tour,0);
        }
    }
else if (intAjaxType != 1)//NOT A TOUR SEARCH
    {
    if (strFilterBy.indexOf("Counties_ID") != -1 || strFilterBy.indexOf("County") != -1)
        {
        nodePosition_Left = objDocumentElement.getElementsByTagName('County_Left');
        nodePosition_Top = objDocumentElement.getElementsByTagName('County_Top');

        if (intAjaxType == 5)
            {
            changeMap("selCounty","mapCounty");
            }
        }
    else if (strFilterBy.indexOf("Province") != -1)
        {
        nodePosition_Left = objDocumentElement.getElementsByTagName('Province_Left');
        nodePosition_Top = objDocumentElement.getElementsByTagName('Province_Top');

        if (intAjaxType == 5)
            {
            changeMap("selProvince","map");
            }
        }
    else
        {
        nodePosition_Left = objDocumentElement.getElementsByTagName('Ireland_Left');
        nodePosition_Top = objDocumentElement.getElementsByTagName('Ireland_Top');

        if (intAjaxType == 5)
            {
            showIrelandMap(1,"",1);
            }
        }
    }

var objNewGolfIconsDiv = document.createElement("div");
objNewGolfIconsDiv.id = "golfIcons";
objHoldIconsDiv.appendChild(objNewGolfIconsDiv);

var objGolfIconsLi = document.getElementById("golfIconsLi");
objGolfIconsLi.className = "golfIconsLiOn";

for (var loopNewIcons = 0; loopNewIcons < nodeGolf_Clubs_ID.length; loopNewIcons++)
    {
    var objNewDiv = document.createElement("div");
    objNewDiv.id = GetInnerText(nodeGolf_Clubs_ID[loopNewIcons]);
    objNewDiv.className = "mapIconGolf";
    objNewDiv.onclick = function(){startAjax(2,this.id)};
    objNewDiv.onmouseover = function(){this.className = "mapIconGolfOn"};
    objNewDiv.onmouseout = function(){this.className = "mapIconGolf"};
    objNewDiv.style.left = GetInnerText(nodePosition_Left[loopNewIcons]) + "px";
    objNewDiv.style.top = GetInnerText(nodePosition_Top[loopNewIcons]) + "px";
    objNewDiv.innerHTML = '<a href="javascript:void(0);">' + GetInnerText(nodeShort_Name[loopNewIcons]) + '</a>';

    objNewGolfIconsDiv.appendChild(objNewDiv);
    }

objHoldIconsDiv.className = "showDiv";

if (strFilterValue != "")
    {
    startAjax(4,strFilterValue.replace(/'/g, ""));
    }
}



function changeMap(strSelectID, strRegionPrefix)
{
var objMapIreland = document.getElementById("mapIreland");
objMapIreland.className = "hideDiv";

var objBackButton = document.getElementById("backToIreland");

if (objBackButton.hasChildNodes())
    {
    while (objBackButton.childNodes.length >= 1)
        {
        objBackButton.removeChild(objBackButton.firstChild);
        }
    }

var objNewParaBack = document.createElement("div");
objNewParaBack.innerHTML = '<p><a href="javascript:void(0);" onclick="showIrelandMap(0,\'\',1);">Back to Main Map</a></p>';
objBackButton.appendChild(objNewParaBack);
objBackButton.className = "showDiv";

showRegion('mapProvince','');
hideAllCounties();

var arrAllSelects = document.getElementsByTagName("select");

for (var loopSelects = 0; loopSelects < arrAllSelects.length; loopSelects++)
    {
    if (arrAllSelects[loopSelects].id.indexOf(strSelectID) != -1)
        {
        var objRegionDiv;

        if (strSelectID == "selTour")
            {
            var strTourMapName = arrAllSelects[loopSelects].options[arrAllSelects[loopSelects].selectedIndex].text;
            strTourMapName = strTourMapName.replace(/\s/g, "");
            objRegionDiv = document.getElementById("tour" + strTourMapName);
            }
        else
            {
            objRegionDiv = document.getElementById(strRegionPrefix + arrAllSelects[loopSelects].options[arrAllSelects[loopSelects].selectedIndex].text);
            }

        objRegionDiv.style.filter = "alpha(opacity=100)";
        objRegionDiv.style.opacity = "1.0";
        objRegionDiv.className = "showDiv";
        break;
        }
    }

var objMapTextArea = document.getElementById("mapTextArea");
var strMapTextArea = objMapTextArea.style.height;
var intMapTextArea = (strMapTextArea == "") ? 0 : strMapTextArea.substring(0,strMapTextArea.length - 2);

if (intMapTextArea == 0)
    {
    slideMapTA();
    }
}



function getSearchFilter(intSearchType)
{
strFilterBy = "";
var strAnd = "";

var arrAllDropdowns = document.getElementsByTagName("select");
var objSelTour;
var objSelProvince;
var objSelCounty;
var objSelCourseType;
var objSelGolfClub;

for (var loopDropDowns = 0; loopDropDowns < arrAllDropdowns.length; loopDropDowns++)
    {
    if (arrAllDropdowns[loopDropDowns].id.indexOf("selTour") != -1)
        {
        objSelTour = arrAllDropdowns[loopDropDowns];
        }
    else if (arrAllDropdowns[loopDropDowns].id.indexOf("selProvince") != -1)
        {
        objSelProvince = arrAllDropdowns[loopDropDowns];
        }
    else if (arrAllDropdowns[loopDropDowns].id.indexOf("selCounty") != -1)
        {
        objSelCounty = arrAllDropdowns[loopDropDowns];
        }
    else if (arrAllDropdowns[loopDropDowns].id.indexOf("selCourseType") != -1)
        {
        objSelCourseType = arrAllDropdowns[loopDropDowns];
        }
    else if (arrAllDropdowns[loopDropDowns].id.indexOf("selGolfClub") != -1)
        {
        objSelGolfClub = arrAllDropdowns[loopDropDowns];
        }
    }

    if (intSearchType == 1)
        {
        if (objSelTour.selectedIndex != 0)
            {
            strFilterBy += "Tour_ID=" + objSelTour.options[objSelTour.selectedIndex].value;
            strSelected_Tour = objSelTour.options[objSelTour.selectedIndex].text;
            }
        }
    else if (intSearchType == 5)
        {
        if (objSelProvince.selectedIndex != 0)
        {
            strFilterBy += "Provinces_ID = '" + objSelProvince.options[objSelProvince.selectedIndex].value + "'";
            strAnd = " AND ";

            strFilterValue = objSelProvince.options[objSelProvince.selectedIndex].text;
        }

        if (objSelCounty.selectedIndex != 0)
        {
            strFilterBy += strAnd + "Counties_ID = '" + objSelCounty.options[objSelCounty.selectedIndex].value + "'";
            strAnd = " AND ";

            strFilterValue = objSelCounty.options[objSelCounty.selectedIndex].text;
        }

        if (objSelCourseType.selectedIndex != 0)
        {
            strFilterBy += strAnd + "Course_Type_ID = '" + objSelCourseType.options[objSelCourseType.selectedIndex].value + "'";
            strAnd = " AND ";
        }

        if (objSelGolfClub.selectedIndex != 0)
        {
            strFilterBy += strAnd + "Golf_Clubs_ID = '" + objSelGolfClub.options[objSelGolfClub.selectedIndex].value + "'";
            strAnd = " AND ";
        }
    }

return strFilterBy;
}
/* ***** MAP ***** */



/* ***** GOLF CLUB DETAILS ***** */
var strOldGolfClubName = "";
var strNewGolfClubName = "";



function fillMapTextArea(objDocumentElement)
{
var objMapTextArea = document.getElementById("mapTextArea");
var strMapTextArea = objMapTextArea.style.height;
var intMapTextArea = (strMapTextArea == "") ? 0 : strMapTextArea.substring(0,strMapTextArea.length - 2);

if (intAjaxType == 2)
    {
    var nodeGolf_Club_Name = objDocumentElement.getElementsByTagName('Golf_Club_Name');
    var nodeGolf_Course_Description = objDocumentElement.getElementsByTagName('Golf_Course_Description');
    var nodeCounty = objDocumentElement.getElementsByTagName('County');

    var strGolfClubIntro = "";
    var strGolfClubDetails = "";

    for (var loopClubs = 0; loopClubs < nodeGolf_Club_Name.length; loopClubs++)
        {
        strNewGolfClubName = GetInnerText(nodeGolf_Club_Name[loopClubs]);

        strGolfClubIntro = "<h2>" + strNewGolfClubName + "</h2>";
        strGolfClubIntro += "<p><strong>County:</strong> " + GetInnerText(nodeCounty[loopClubs]) + "</p>";

        strGolfClubDetails += GetInnerText(nodeGolf_Course_Description[loopClubs]);
        }

    objMapTextArea.innerHTML = strGolfClubIntro + strGolfClubDetails;

    if (intMapTextArea == 0 || strOldGolfClubName == strNewGolfClubName)
        {
        slideMapTA();
        }

    strOldGolfClubName = strNewGolfClubName;
    }
else
    {
    var nodeMapInfoHeader = objDocumentElement.getElementsByTagName('Heading');
    var nodeMapInfoContent = objDocumentElement.getElementsByTagName('Content');

    var strMapInfoContent = "";

    for (var loopClubs = 0; loopClubs < nodeMapInfoHeader.length; loopClubs++)
        {
        strMapInfoContent = "<h2>" + GetInnerText(nodeMapInfoHeader[loopClubs]) + "</h2>";
        strMapInfoContent += GetInnerText(nodeMapInfoContent[loopClubs]);
        }

    objMapTextArea.innerHTML = strMapInfoContent;

    if (intMapTextArea == 0)
        {
        slideMapTA();
        }
    }
}