/* 
 * AJAX scripts
*/

// global variable
var httpRequest;

// create xmlHttp
function createXMLHttpRequest() {
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
        httpRequest = new XMLHttpRequest();
        if (httpRequest.overrideMimeType) {
            httpRequest.overrideMimeType('text/xml');
        }
    } else if (window.ActiveXObject) { // IE
        try {
            httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
            	httpRequest = false;
            }
        }
    }

    if (!httpRequest) {
        alert('Unfortunatelly your browser doesn\'t support this feature.');
        return false;
    }
}

// retrieve XML document as document object
function getAJAXpage(callbackList, url, isGet) {
	var msgObj = document.getElementById("waitMsg");
	msgObj.innerHTML = "Please wait...";

	document.body.style.cursor = 'wait';
	
    if(url == "") {
    	alert('no input data');
        return false;
    }
    
    var paramList = null;

    createXMLHttpRequest();
    // Event
   
    httpRequest.onreadystatechange = function() {
	    if(httpRequest.readyState == 4) {
	        if(httpRequest.status == 200) {
	        	// Executes javascript
	        	for(i = 0; i < callbackList.length; i++) {
				    eval(callbackList[i]);
				}
            } else {
                alert('There was a problem with the request.' +
                	'(Code: ' + httpRequest.status + ')');
                	httpRequest = false;
                	return httpRequest;
            }
	    }
	}
	//
	if(isGet) {
		httpRequest.open("GET", url, true);
	}
	else {
		httpRequest.open("PUT", url, true);
	}
    httpRequest.send(paramList);
}



// retrieve XML document as document object
function refreshSelectOptionList(callbackList, url) {

    if(url == "") {
    	alert('no input data');
        return false;
    }

    createXMLHttpRequest();
    httpRequest.onreadystatechange = function() {
	    if(httpRequest.readyState == 4) {
	        if(httpRequest.status == 200) {
	        	for(i = 0; i < callbackList.length; i++) {
				    eval(callbackList[i]);
				}
				    
            } else {
                alert('There was a problem with the request.' +
                	'(Code: ' + httpRequest.status + ')');
                	httpRequest = false;
                	return httpRequest;
            }
	    }
	}
	httpRequest.open("GET", url, true);
    httpRequest.send(null);
}

function updateSelectOptionList(elementID, tagName) {

    clearSelectOptionList(elementID);
    
    var models = document.getElementById(elementID);
    var results = httpRequest.responseXML.getElementsByTagName(tagName);
    var option = null;
    if(results != null) {
    	option = new Option(results[0].firstChild.nodeValue, 
    		results[0].attributes[0].nodeValue, true, true);
		models.options[0] = option;
	    for(var i = 1; i < results.length; i++) {
	    	option = new Option(results[i].firstChild.nodeValue, results[i].attributes[0].nodeValue);
			models.options[i] = option;
	    }
    }
}

function clearSelectOptionList(id) {
    var models = document.getElementById(id);
    while(models.childNodes.length > 0) {
        models.removeChild(models.childNodes[0]);
    }
}

function setInnerHTML(elementID) {
    document.getElementById(elementID).innerHTML = httpRequest.responseText;
    if(document.body.style.cursor != 'default')
    	document.body.style.cursor = 'default'; 
    	
	var msgObj = document.getElementById("waitMsg");
	msgObj.innerHTML = "";
}

function download() {
}
