/*********************************************************************
/                           Knihovna Ajax 2.1 
/                             Martin Korbel
                               2007-02-13
                               2007-05-24  - uprava, nevala se funkce onreadystatechange kdyz neni nastaven callback
                               
**********************************************************************/

var ajax = new Object();
    ajax.objXMLHttp = null;
    ajax.header = 'application/x-www-form-urlencoded';

// Inicializuje objekt
ajax.GetXmlHttpObject = function(handler) {
  try {
    ajax.objXMLHttp = new XMLHttpRequest();
  }catch(e) {
    // Zjistime ktera verze Http funguje, pouziva jen IE6 a starsi
    var XmlHttpVersions = new Array('MSXML2.XMLHTTP.6.0',
                                    'MSXML2.XMLHTTP.5.0',
                                    'MSXML2.XMLHTTP.4.0',
                                    'MSXML2.XMLHTTP.3.0',
                                    'MSXML2.XMLHTTP',
                                    'Microsoft.XMLHTTP');
    for(var iLoop = 0; iLoop < XmlHttpVersions.length; iLoop++) {
     try {
      ajax.objXMLHttp = new ActiveXObject(XmlHttpVersions[iLoop]);
      if(ajax.objXMLHttp) {
       break;
      }
     }catch(e){}      // Chybu ignurejeme
    }
  }
  
  if(!ajax.objXMLHttp) {
   alert('Nepodarilo se inicializovat AJAX!');
  }
}

// odesila data pomoci POST, vraci true;
// ajax.sendPOST('index.php','page=1&add=0','XML',myfunction);

ajax.sendPOST = function(url,param,typeReturn,callback) {
 return ajax.send(url,param,typeReturn,callback,'POST');
}

// odesila data pomoci GET (POST), vraci true;
// ajax.send('index.php','page=1&add=0','HTML',myfunction);
ajax.send = function(url,param,typeReturn,callback,typeSender) {
  if(!typeReturn) typeReturn = new String();
  if(typeSender!='POST') typeSender='GET';
  
  ajax.GetXmlHttpObject();
  if (ajax.objXMLHttp==null) {
    alert ("Prohlizec nepodporuje HTTP Request");
    return false;
  }
  if(callback != null)  {
	  ajax.objXMLHttp.onreadystatechange = function () {
	    if(ajax == null) return false;
	    if(ajax.objXMLHttp.readyState == 4) {
			 	if(ajax.objXMLHttp.status == 200) {
      if(typeReturn.toUpperCase() == 'XML') {
       // predame jako XML
       callback(ajax.objXMLHttp.responseXML);
      }else{
       // predame jako HTML
						 callback(ajax.objXMLHttp.responseText);
						}					
				}
			}
	 }
	} 
 
 if(ajax.objXMLHttp.readyState == 4 || ajax.objXMLHttp.readyState == 0) {
  try{
   if(typeSender=='GET') {
    ajax.objXMLHttp.open(typeSender,url+'?'+param,true);
    ajax.objXMLHttp.send(null);
   }else{
    ajax.objXMLHttp.open(typeSender,url,true);
    ajax.objXMLHttp.setRequestHeader('Content-Type',ajax.header);
    ajax.objXMLHttp.send(param);
   }
  }catch(e){
    alert(e);
  }
 }
  return true;
}
