﻿var net = new Object();
net.READY_STATE_UNINITIALIZED=0;
net.READY_STATE_LOADING=1;
net.READY_STATE_LOADED=2;
net.READY_STATE_INTERACTIVE=3;
net.READY_STATE_COMPLETE=4;

net.ContentLoader=function(url,onload,onerror) {
	this.url = url;
	this.req = null;
	this.onload = onload;
	this.onerror = (onerror) ? onerror : this.defaultError;
	this.loadXMLDoc(url);
}

net.ContentLoader.prototype = {
    loadXMLDoc:function(url) {
        if (window.XMLHttpRequest) {
           	this.req = new XMLHttpRequest();
        } else if  (window.ActiveXObject) {
            this.req = new ActiveXObject("Microsoft.XMLHTTP");
        }
        if (this.req) {
            try {
                var loader = this;                
                this.req.onreadystatechange = function() {
                    loader.onReadyState.call(loader);
                }                
                this.req.open('GET',url,false);                
                this.req.send(null);
                if (this.req.readyState==4) {                    
                    this.onload.call(this);
                }
            } catch (err) {
                this.onerror.call(this);
            }
        }
    },
    
    onReadyState:function() {
        var req = this.req;
        var ready = req.readyState;
        if (ready == net.READY_STATE_COMPLETE) {
            var httpStatus = req.status;
            if (httpStatus == 200 || httpStatus == 0) {
                this.onload.call(this);
            } else {
                this.onerror.call(this);
            }
        }
    },
    
    defaultError:function() {
        alert ("בעיית תקשורת. אנא נסה שנית מאוחר יותר");
    }
}
