//Simple AJAX Engine 
// DN
AJAX = {
    getJSON : function(url, cb){
        d = loadJSONDoc(url);
        if (cb) d.addCallback(cb);
    },
    
    submitJSON : function(id, url, cb, eb){
        var f = document.getElementById(id);
        var q = {'AJAX':'true'};
        for (i=0;i<f.elements.length;i++){
            var ele = f.elements[i];
		if (!(ele.type == "checkbox" && !ele.checked )) 
			q[ele.name] = ele.value;
        }
        d = loadJSONDoc(url, q);
        d.addCallback(this.standardSecurityFilter, q, cb);
        if (cb) d.addCallbacks(cb, eb?eb:this.standardError);
    },
    
    getRequest : function(url){							// basic synchronous call
    	var httpRequest;
		if (window.ActiveXObject) // for IE
			httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
		else if (window.XMLHttpRequest) // for other browsers
		    httpRequest = new XMLHttpRequest();
		httpRequest.open("GET", url, false);
		httpRequest.send(null);
		return httpRequest.responseText;
    },
    
    standardError : function(r){
    	alert('STANDARD ERROR'+ r);
    },
    
    standardSecurityFilter : function(q, cb, r){
    	if (r.message == 'LOGIN'){
	    	showSignIn();
	    	popUpScrollHandler();
	    	lf = el('loginForm');
	    	for (i in q){
	    		var input = document.createElement('input');
	    		input.name = i;
	    		input.value = q[i];
	    		input.type = 'hidden';
	    		lf.appendChild(input);
	    	}
	    	this.deferedCallback = cb;
    	}
    	else
    		return r;
    },
    login : function(id,url){
    	 var f = document.getElementById(id);
        var q = {'AJAX':'true'};
        for (i=0;i<f.elements.length;i++){
            q[f.elements[i].name] = f.elements[i].value;
        }
        d = loadJSONDoc(url, q);
        d.addCallbacks(this.loginResponse);
    },
    loginResponse : function(data){
    	if(data.message == 'LOGIN'){
    		alert("Incorrect Login");
    	}else{
			hidePopUp();
			this.deferedCallback(data);
    	}
	}   
}

