
function CalChangeDepartment()
{
    document.getElementById('hdnCalDept').value = document.getElementById('CalHostedByList').value;
    if (document.getElementById('CalEventTypesList') != null)
    {
        CalGetEventTypes();
    }
    else
    {
        ShowEvents();
    }
}

function ShowEvents()
{
    if (document.getElementById('hdnCalEvt').value == "")
    {
        document.getElementById('CalEventTable').innerHTML = "";
    }
    else
    {
        var req = GetRequestObj('ShowCalendarEvents');
        req.onreadystatechange = EventComplete;
        strSoap = "<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'>"
        strSoap = strSoap + "<soap:Body>"
        //var oDT = new Date();
        strSoap = strSoap + "<ShowCalendarEvents xmlns='http://tempuri.org/'><DeptID>" + document.getElementById('hdnCalDept').value + "</DeptID><EventTypeID>" + document.getElementById('hdnCalEvt').value + "</EventTypeID><strDate>" + document.getElementById('hdnCalDate').value + "</strDate></ShowCalendarEvents>"
        strSoap = strSoap + "<ShowCalendarEventsResponse xmlns='http://tempuri.org/'><ShowCalendarEventsResult>string</ShowCalendarEventsResult></ShowCalendarEventsResponse>"
        strSoap = strSoap + "</soap:Body></soap:Envelope>"
        req.send(strSoap);
    }
}
function CalGetEventTypes()
{
    var req = GetRequestObj('GetEventTypes');
    req.onreadystatechange = EventTypeComplete;
    strSoap = "<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'>"
    strSoap = strSoap + "<soap:Body>"
    strSoap = strSoap + "<GetEventTypes xmlns='http://tempuri.org/'><DeptID>" + document.getElementById('hdnCalDept').value + "</DeptID></GetEventTypes>"
    strSoap = strSoap + "<GetEventTypesResponse xmlns='http://tempuri.org/'><GetEventTypesResult>string</GetEventTypesResult></GetEventTypesResponse>"
    strSoap = strSoap + "</soap:Body></soap:Envelope>"
    req.send(strSoap);
}

function CalChangeEventType()
{
    document.getElementById('hdnCalEvt').value = document.getElementById('CalEventTypesList').value;
    ShowEvents();
}
function DisplayDate(oDT)
{
    var strMonth = '';
    switch(oDT.getMonth())
    {
        case 0:
            strMonth = 'January';
            break;
        case 1:
            strMonth = 'February';
            break;
        case 2:
            strMonth = 'March';
            break;
        case 3:
            strMonth = 'April';
            break;
        case 4:
            strMonth = 'May';
            break;
        case 5:
            strMonth = 'June';
            break;
        case 6:
            strMonth = 'July';
            break;
        case 7:
            strMonth = 'August';
            break;
        case 8:
            strMonth = 'September';
            break;
        case 9:
            strMonth = 'October';
            break;
        case 10:
            strMonth = 'November';
            break;
        case 11:
            strMonth = 'December';
            break;
    }
    document.getElementById('CalMonthText').innerHTML = strMonth + ' ' + oDT.getFullYear();
}
function CalPrevMonth()
{
    var oDT = new Date(document.getElementById('hdnCalDate').value);
    oDT.setMonth(oDT.getMonth() - 1); 
    document.getElementById('hdnCalDate').value = oDT.toDateString();
    DisplayDate(oDT);
    ShowEvents();
}
function CalSetMonth()
{
    if (document.getElementById('hdnCalDate').value != '')
    {
        var oDT = new Date(document.getElementById('hdnCalDate').value);
        document.getElementById('hdnCalDate').value = oDT.toDateString();
        DisplayDate(oDT);
        ShowEvents();
    }
}

function CalNextMonth()
{
    var oDT = new Date(document.getElementById('hdnCalDate').value);
    oDT.setMonth(oDT.getMonth() + 1); 
    document.getElementById('hdnCalDate').value = oDT.toDateString();
    DisplayDate(oDT);
    ShowEvents();
}

function EventComplete()
{
    var strHTML;
    strHTML = ProcessResponse(req);
    if (strHTML.length > 0)
    {
        //alert(strHTML);
        if (strHTML == '_') 
        {
            strHTML = '';
        }
        document.getElementById('CalEventTable').innerHTML = strHTML;
    }
}
function EventTypeComplete()
{
    var strHTML;
    var oSelect = document.getElementById('CalEventTypesList');
    strHTML = ProcessResponse(req);
    if (strHTML.length > 0)
    {
        document.getElementById('CalEventTypesBlock').innerHTML = strHTML;
        if (document.getElementById('CalEventTypesList').options.length == 0)
        {
            var oOption = document.createElement("OPTION");
            var oSelect1 = document.getElementById('CalEventTypesList');
            oSelect1.options.add(oOption);
            oOption.innerText = "NO EVENTS AVAILABLE";
            oOption.value = "";
        }
        CalChangeEventType();
    }
}
    function ProcessResponse(req)
    {
        var strHTML = '';
        if (req.readyState == 4) 
        {
            if (req.status == 200) 
            {
                if (window.ActiveXObject)
                {
                    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
                    xmlDoc.loadXML(req.responseText);
                    strHTML = xmlDoc.text;
                }
                else
                {
                    var x = 0;
                    while(x < req.responseXML.childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes.length)
                    {
                        strHTML += req.responseXML.childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[x].nodeValue;
                        x++;
                    }
                } 
            }
            else 
            {
                alert("An error occured processing your request:\n" + req.statusText);
            }
        }
        return strHTML
    }            
    
        function GetRequestObj(oMethod)
    {
        // branch for native XMLHttpRequest object
        if (window.XMLHttpRequest) 
        {
            req = new XMLHttpRequest();
        // branch for IE/Windows ActiveX version
        }
        else if (window.ActiveXObject) 
        {
            req = new ActiveXObject("MSXML2.XMLHTTP");
        }
        url= 'http://www.polkcountyiowa.gov/AjaxService/PageService.asmx';
        req.open("POST", url, true);
        req.setRequestHeader("Content-Type", "text/xml");
        req.setRequestHeader("SOAPAction", "http://tempuri.org/" + oMethod);
        return req;              
    }
