/*
JavaScript Ajax
Copyright (C) 2009 Aptus s.c.
All rights reserved
*/

function dlg_url(u)
{
	if(typeof(u)=='object'){
		var s=u[0];
		if(typeof(u[1])=='object'){
			var k;
			var sp='?';
			for(k in u[1]){
				s+=sp+encodeURIComponent(k)+'='+encodeURIComponent(u[1][k]);
				sp='&';
			}
		}
		if(typeof(u[2])!='undefined')
		s+='#'+u[2];
		return s;
	}
	return u;
}

function onLoading(output)
{
	var o = document.getElementById(output);
	if(o)
		o.innerHTML="<img src='/i/common/ajax_loader.gif' alt='Wczytywanie...'/>";
}

function onSuccess(responseText,output)
{
	var o = document.getElementById(output);
	if(o)
		o.innerHTML=responseText;
}

function onError(nr,output)
{
	var o = document.getElementById(output);
	if(o)
		o.innerHTML=("Wystąpił błąd podczas przetwarzania pliku o numerze " + nr + '.');
}

function dlg_get(url,val,output)
{
	var ajax;
	
	try{
		ajax=new XMLHttpRequest();
	}
	catch(e){
		// IE
		try{
			ajax=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e){
			try{
				ajax=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e){
				//return false;
			}
		}
	}
	url = dlg_url(url);
	ajax.onreadystatechange = function(){
		if (ajax.readyState == 1){
			onLoading(output);
		}
		if (ajax.readyState == 4){
			if (ajax.status == 200){
				onSuccess(ajax.responseText,output);
			}
			else{
				onError(ajax.status,output);
			}
		}
	}
	ajax.open("GET",url,true);
	ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	ajax.send(val);    
}


function dlg_get2(u,cb,cbp)
{
	return dlg_xmlhttprequest(u,'GET','','',cb,cbp);
}

function dlg_xmlhttprequest(u,m,d,c,cb,cbp)
{
	u=dlg_url(u);
	var r=false;
    if(window.XMLHttpRequest) {
    	try {
			r=new XMLHttpRequest();
        }
		catch(e) {
			r=false;
        }
    }
	else if(window.ActiveXObject) {
       	try {
        	r=new ActiveXObject("Msxml2.XMLHTTP");
      	}
		catch(e) {
        	try {
          		r=new ActiveXObject("Microsoft.XMLHTTP");
        	}
			catch(e) {
          		r=false;
        	}
		}
    }

	if(r) {
		r.onreadystatechange=function() {
			if(r.readyState==4) {
				if(r.status==200)
					cb(r.responseText,cbp);
			}
		};
		r.open(m,u);
		if(c!='')
			r.setRequestHeader('Content-Type',c);
		r.send(d);
		return true;
	}
	return false;
}
