﻿/** ABOS Javascript file
  *
  * Contains definitions for reusable functions for AJAX Applications 
  *
  * By: Mbonisi Masilela (9/14/2008)
  *
  */

function CreateAJAXObject()
{
	var ajaxRequest;
	try
	{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer Browsers
		try
		{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				// Something went wrong, old browser or javascript is disabled
				ajaxRequest = null;
			}
		}
	}
	return ajaxRequest;
}

/* Create an AJAX Class */

function AJAX()
{
    this.ajaxObj;

	try
	{
		// Opera 8.0+, Firefox, Safari
		this.ajaxObj = new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer Browsers
		try
		{
			this.ajaxObj = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				this.ajaxObj = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				// Something went wrong, old browser or javascript is disabled
				this.ajaxObj = null;
			}
		}
	}
	
	this.query = query;
	this.queryProxy = queryProxy;
	this.getStatus = getStatus;
	this.getResponseText = getResponseText;
	this.objectCreated = objectCreated;
	this.proxyPath = '/AJAXProxy/query.aspx?url=';
}

function query(url)
{
    this.ajaxObj.open("GET", url, false);
    this.ajaxObj.send(null);    
}

function queryProxy(url)
{
    this.query(this.proxyPath + url);
}

function setProxyPath(path)
{
    this.proxyPath = path;
}

function getStatus()
{
    return this.ajaxObj.status;
}

function getResponseText()
{
    return this.ajaxObj.responseText;
}

function objectCreated()
{
    if(this.ajaxObj == null)
        return false;
    else
        return true;
}