var AjaxR = Class.create();
AjaxR.prototype = {
  	initialize: function(){    		
		this.url  = "";
		this.functionAfterRequest = "";
  	},

  	startR: function(url, functionExecute){
  		this.functionAfterRequest = functionExecute;
  		this.url  = url;
    	var httpRequest;
        if (window.XMLHttpRequest) { // Mozilla, Safari, ...
            this.httpRequest = new XMLHttpRequest();
            if (this.httpRequest.overrideMimeType) {
                this.httpRequest.overrideMimeType('text/xml');
            }
        } 

        else if (window.ActiveXObject) { // IE
			try{
				this.httpRequest= new ActiveXObject("Msxml2.XMLHTTP");
			} 
            catch(e){
                try {
					this.httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
				} 
				catch(e){}
            }
		}

		if(!this.httpRequest){
            alert('Giving up :( Cannot create an XMLHTTP instance');
			return false;
		}
				
		this.httpRequest.open('GET', this.url, true);
		this.httpRequest.send('');
		this.httpRequest.onreadystatechange = this.checkRequest(this);
  	},
  			
  	checkRequest: function(ajax){
  		if(ajax.httpRequest.readyState == 4){
  			if (ajax.httpRequest.status == 200){
				eval(this.functionAfterRequest(ajax.httpRequest.responseText));	 
			}
			else{
				setTimeout(checkRequest, 10);
			}				
		}
		else{
			setTimeout(checkRequest, 10);
		}
	}
};




// ---------------------------- //
var AjaxS = Class.create();
AjaxS.prototype = {
  	initialize: function(){    		
		this.url  = "";
		this.id = "";
  	},

  	startR: function(url, id){
  		this.id = id;
  		this.url  = url;
    	var httpRequest;
        if (window.XMLHttpRequest) { // Mozilla, Safari, ...
            this.httpRequest = new XMLHttpRequest();
            if (this.httpRequest.overrideMimeType) {
                this.httpRequest.overrideMimeType('text/xml');
            }
        } 

        else if (window.ActiveXObject) { // IE
			try{
				this.httpRequest= new ActiveXObject("Msxml2.XMLHTTP");
			} 
            catch(e){
                try {
					this.httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
				} 
				catch(e){}
            }
		}

		if(!this.httpRequest){
            alert('Giving up :( Cannot create an XMLHTTP instance');
			return false;
		}
				
		this.httpRequest.open('GET', this.url, true);
		this.httpRequest.send('');
		this.httpRequest.onreadystatechange = this.checkRequest(this);
  	},
  			
  	checkRequest: function(ajax){
  		if(ajax.httpRequest.readyState == 4){
  			if (ajax.httpRequest.status == 200){
  				
				var str = ajax.httpRequest.responseText;   
        		var start_p = str.indexOf("<script2>") + 9;
        		var end_p = str.indexOf("</script2>");    
				
				alert(this.id);
				$(this.id).innerHTML = ajax.httpRequest.responseText;
				      
          		if(end_p != -1){
             		var the_eval = str.substring(start_p, end_p);                    
              		eval(the_eval);
              	}					 
			}
		}						
	}
};

function AjaxInit(error_txt){
    //Mozilla-based browsers
    if(window.XMLHttpRequest){
        request = new XMLHttpRequest();
    } else if (window.ActiveXObject){
        request=new ActiveXObject("Microsoft.XMLHTTP");
        if (! request){
            request=new ActiveXObject("Msxml2.XMLHTTP");
        }
    }    
    if(request){
        return request;
    }
    else{
        alert(error_txt);
    }
}


function makeRequest(url, div) {
	var httpRequest;

    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		httpRequest = new XMLHttpRequest();
        if (httpRequest.overrideMimeType) {
            httpRequest.overrideMimeType('text/plain');
        }
    } 
    else if (window.ActiveXObject) { // IE
        try {
            httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
            } 
            catch (e) {
                        try {
                            httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                            } 
                            catch (e) {}
                        }
                                    }


    if (!httpRequest) {
        alert('Giving up :( Cannot create an XMLHTTP instance');
        return false;
    }
    //alert(url);
	//httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");;
    httpRequest.onreadystatechange = function() { $(div).innerHTML = httpRequest.responseText };
    httpRequest.open('GET', url, true);
    httpRequest.send(null);
}


function AjaxSend(url, id){      
	request = AjaxInit('Unable to comunicate with server !!! Ajax request is invalid');
	
  	request.onreadystatechange=function(){
    	if(request.readyState == 4){
      		if(request.status == 200){
    
        		var str = request.responseText;   
        		var start_p = str.indexOf("<script2>") + 9;
        		var end_p = str.indexOf("</script2>");     
           		$(id).innerHTML = str;     
          		if(end_p != -1){
             		var the_eval = str.substring(start_p, end_p);                    
              		eval(the_eval);    
        		} 
      		} 
			else {
        		alert('Unable to send request !!! Ajax failed !!! Stauts : '+ request.status);
        	}
      	}
    }; 
    
	request.open('GET', url, true);
	request.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" );
	request.send(null);
}
