﻿

var loadDateFrame = function(dt) 
{
    //(url, callback, callimmediate, async)
    HttpRequest('vieweventdate.aspx?eventdate=' + dt, eventboxupdate, displayloading, true) ;
}

var loadMonth = function(dt)
{
    HttpRequest('viewmonthcal.aspx?modate=' + dt, calendarupdate, displayloading, true) ;
}

var displayloading = function() { document.getElementById("eventbox").innerHTML = '<img src="_res/images/pagesupport/ajax-loader.gif" border="0" alt="loading" title="loading" />'; }
// var displayloading = function() { document.getElementById("eventbox").innerHTML = 'Loading...'; }

var eventboxupdate = function(response) { document.getElementById("eventbox").innerHTML = response.responseText; }

var calendarupdate = function(response) { document.getElementById("calbox").innerHTML = response.responseText; }

/******************************* HttpRequest Call *******************************/
function HttpRequest(url, callback, callimmediate, async) {

	function GetCallback()
	{
		 if (http_request.readyState == 4) {
	        if (http_request.status == 200) {
	            http_callback(http_request);
	        } else {
	            alert('There was a problem with the HTTP request. (HTTP Error ' + http_request.status + ' ' + http_request.statusText + ')');
	            return false;
	        }
	    }
	}
	
	// validate parameters
	if( typeof( async ) == 'undefined' ) {
		async = true;
	}
	
	if( typeof( callback ) != 'function' && async ) {
		alert( "No callback defined. A callback must be defined for async requests." );
		return false;
	}
	
	if( null!=callimmediate && typeof( callimmediate ) != 'function' && async ) {
		alert( "Immediate call must be of type function." );
		return false;
	}
	
	if(null!=callimmediate) callimmediate();

	// these can have multiple copies over function calls
	// thus isolating them from event handler overwritings
    var http_request = false;
    var http_callback = callback;

	// create the httprequest object
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            //http_request.overrideMimeType('text/xml');
        }
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }

    if (!http_request) {
        alert('Your browser does not support HTTP requests.');
        return false;
    }
    
    if( async ) {
    	http_request.onreadystatechange = GetCallback;
    }
    http_request.open('GET', url, async);
    http_request.send(null);
    
    // for non-async requests, we just return the request object when we're done
    if( !async ) {
    	if (http_request.readyState == 4) {
	        if (http_request.status == 200) {
	            return http_request;
	        } else {
	            alert('There was a problem with the request. (HTTP Error ' + http_request.status + ' ' + http_request.statusText + ')');
	            return false;
	        }
   		}
    }
}

