
function sJSLoader(SRC, doc){
  var parentElement
  if (!doc)
    parentElement = document.body;
  else parentElement = document.getElementsByTagName("HEAD")[0];
  
  var scriptObj = document.createElement("SCRIPT");
  scriptObj.setAttribute("type", "text/javascript");
  scriptObj.src = SRC;
  parentElement.appendChild(scriptObj);
}

function sHttpRequest(){

  var XMLHttpRequestObject = false;
  var _method = "POST";
  var _uri;
  var _postData = "";
  var _e = false;
  var _async = true;
  var doFunction = false;
  
  if (window.XMLHttpRequest) {
    XMLHttpRequestObject = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
      try {
        XMLHttpRequestObject = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
          try {
            XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (e) {
              XMLHttpRequestObject = false;
            }
      }
    }
  
  this.setUri = function(u){ _uri = u; }
  this.setPostData = function(v){ _postData = v }
  this.setElement = function(c){ _e = c; }
  this.setAsyncron = function(v){ _async = v; }
  
  this.getUri = function(u){ return _uri; }
  this.getPostData = function(v){ return _postData; }
  this.getElement = function(c){ return _e; }
  this.getAsyncron = function(v){ return _async; }
  this.setFunction = function(f){ doFunction = f; }
  
  this.load = function(uri, postData, async){
    if (uri) this.setUri(uri);
    if (postData) this.setPostData(postData);
    if (async) this.setAsyncron(async);
    
    if(XMLHttpRequestObject) {
      
      sloading(_e);
      
      XMLHttpRequestObject.open(_method, _uri, _async);
      XMLHttpRequestObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      XMLHttpRequestObject.setRequestHeader("Content-length", _postData.length);
      
      XMLHttpRequestObject.onreadystatechange = function(){
        if ((XMLHttpRequestObject.readyState == 4) && (XMLHttpRequestObject.status == 200)){
          if (XMLHttpRequestObject.responseText != "ERROR")
            if (_e) _e.innerHTML = XMLHttpRequestObject.responseText;
            if (doFunction) new doFunction;
        }
      }
      XMLHttpRequestObject.send(_postData);
    }
  }

}

function sJSExecOnAJAX(parentElement){
  var scripts = parentElement.getElementsByTagName("script");
  for (var i=0; i<scripts.length; i++){
    if (scripts[i].src != ""){
      include(scripts[i].src);
      parentElement.removeChild(scripts[i]);
    }
    else
      eval(scripts[i].innerHTML);
  }
}

function simpleLoader(dataSource, postData, method, DIV, async){

  var XMLHttpRequestObject = false;
  
  if (window.XMLHttpRequest) {
    XMLHttpRequestObject = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
      try {
        XMLHttpRequestObject = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
          try {
            XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (e) {
              XMLHttpRequestObject = false;
            }
      }
    }
  if(XMLHttpRequestObject) {
    
    XMLHttpRequestObject.open(method, dataSource, async);
    XMLHttpRequestObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    XMLHttpRequestObject.setRequestHeader("Content-length", postData.length);
    
    XMLHttpRequestObject.onreadystatechange = function(){
      if ((XMLHttpRequestObject.readyState == 4) && (XMLHttpRequestObject.status == 200)){
          var _e = document.getElementById(DIV);
          _e.innerHTML = XMLHttpRequestObject.responseText;
          sJSExecOnAJAX(_e);
      }
    }
    XMLHttpRequestObject.send(postData);
  }

}

function styleLoader(SRC, doc){
  var parentElement
  if (!doc)
    parentElement = document.body;
  else parentElement = document.getElementsByTagName("HEAD")[0];
  //<link href="style/selement.css" rel="stylesheet" type="text/css">
  var scriptObj = document.createElement("link"); 
  scriptObj.setAttribute("type", "text/css");
  scriptObj.setAttribute("rel", "stylesheet");
  scriptObj.setAttribute("href", SRC);
  
  scriptObj.src = SRC;
  parentElement.appendChild(scriptObj);
  
}
