var ajax = function() {
    return {
        makeXMLRequest: function() {
            var xmlHttp = null;
            try {
                // Firefox, Opera 8.0+, Safari
                xmlHttp = new XMLHttpRequest();
            } catch (e) {
                // Internet explorer
                try {
                    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                }
            }

            return xmlHttp;
        },
        makeRequest: function() {
            var request;
            var browser = navigator.appName;
            if (browser == "Microsoft Internet Explorer") {
                request = new ActiveXObject("Microsoft.XMLHTTP");
            } else {
                request = new XMLHttpRequest();
            }

            return request;
        }
    }
}();

var httpRequest = ajax.makeXMLRequest(); //ajax.makeRequest();
var calendarLocate = "includes/calendar/";

var calendar = function() {
    return {
        getAlert: function() {
            alert("Heloooooyyyyyyyy");
        },
        resetCalendar: function() {

            var url = calendarLocate+"response.php?";
            httpRequest.open("get", url);
            httpRequest.onreadystatechange = function() {
                if (httpRequest.readyState == 4) {
                    var response = httpRequest.responseText;
                    if (response == "") {
                        document.getElementById("calendar-frame").innerHTML = "Failed to load calendar";
                        window.location.reload();
                        //alert("Failed");
                    } else {
                        var splitArray = response.split("|");
                        document.getElementById("calendar-frame").innerHTML = splitArray[0];
                        document.getElementById("list-event").innerHTML = splitArray[1];
                    }
                }
            }
            httpRequest.send(null);
        },
        nextMonth: function(param) {
            var url = calendarLocate+"response.php?"+param;
            httpRequest.open("get", url);
            httpRequest.onreadystatechange = function() {
                if (httpRequest.readyState == 4) {
                    var response = httpRequest.responseText;
                    if (response == "") {
                        document.getElementById("calendar-frame").innerHTML = "Failed to load calendar";
                        window.location.reload();
                    } else {
                        var splitArray = response.split("|");
                        document.getElementById("calendar-frame").innerHTML = splitArray[0];
                        document.getElementById("list-event").innerHTML = splitArray[1];
                    }
                }
            }
            httpRequest.send(null);
        },
        lastMonth: function(param) {
            var url = calendarLocate+"response.php?"+param;
            httpRequest.open("get", url);
            httpRequest.onreadystatechange = function() {
                if (httpRequest.readyState == 4) {
                    var response = httpRequest.responseText;
                    if (response == "") {
                        document.getElementById("calendar-frame").innerHTML = "Failed to load calendar";
                        window.location.reload();
                    } else {
                        var splitArray = response.split("|");
                        document.getElementById("calendar-frame").innerHTML = splitArray[0];
                        document.getElementById("list-event").innerHTML = splitArray[1];
                    }
                }
            }
            httpRequest.send(null);
        },
        nextResult: function(param,paramNext,total) {
            var parseParam  = param.split("&");
            var mon         = parseParam[0].split("=");
            var year        = parseParam[1].split("=");
            var pg          = (paramNext < 2)? 2: paramNext + 1;

            var url         = calendarLocate+"result-event.php?mon="+(mon[1] - 1)+"&year="+year[1]+"&pg="+pg+"&total="+total;
            httpRequest.open("get", url);
            httpRequest.onreadystatechange = function() {
                if (httpRequest.readyState == 4) {
                    var response = httpRequest.responseText;
                    if (response == "") {
                        document.getElementById("list-event").innerHTML = "Failed to load calendar";
                        window.location.reload();
                    } else {
                        document.getElementById("list-event").innerHTML = response;
                        //alert(response);
                    }
                }
            }
            httpRequest.send(null);
            //alert(url);
        },
        prevResult: function(param,paramPrev,total) {
            var parseParam  = param.split("&");
            var mon         = parseParam[0].split("=");
            var year        = parseParam[1].split("=");
            var pg          = (paramPrev < 2)? 2: paramPrev - 1;

            var url         = calendarLocate+"result-event.php?mon="+(mon[1] - 1)+"&year="+year[1]+"&pg="+pg+"&total="+total;
            httpRequest.open("get", url);
            httpRequest.onreadystatechange = function() {
                if (httpRequest.readyState == 4) {
                    var response = httpRequest.responseText;
                    if (response == "") {
                        document.getElementById("list-event").innerHTML = "Failed to load calendar";
                        window.location.reload();
                    } else {
                        document.getElementById("list-event").innerHTML = response;
                        //alert(response);
                    }
                }
            }
            httpRequest.send(null);
            //alert(url);
        }
    }
}();