var strProblemXMLHTTP = 'Požadavek nebylo možné z technických důvodů zpracovat. (1)';
var strProblemRequest = 'Požadavek nebylo možné z technických důvodů zpracovat. (2)';

function makeRequest(gptype, url, elemid, fetching_html, parameters) {
        var http_request = false;
        if (window.XMLHttpRequest) { // Mozilla, Safari,...
                http_request = new XMLHttpRequest();
                if (http_request.overrideMimeType) {
                        http_request.overrideMimeType('text/xml');
                }
        } else if (window.ActiveXObject) { // IE
                try {
                        http_request = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                        try {
                                http_request = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e) {}
                }
        }
        if (!http_request) {
                alert(strProblemXMLHTTP);
                return false;
        }

        http_request.onreadystatechange = function() { feedbackContents(elemid, fetching_html, http_request); };
        
	if (gptype == 'POST') {
                http_request.open('POST', url, true);
                http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                http_request.setRequestHeader("Content-length", parameters.length);
                http_request.setRequestHeader("Connection", "close");
        } else if (gptype == 'GET') {
                http_request.open('GET', url, true);
        }
        http_request.send(parameters);
}


function feedbackContents(global_elemid, fetching_html, http_request) {
	// FETCHING INFO

	// 05-08-2009 jakubik - doplinil test na typ parametru (umoznuje misto ID predavat primo ten element)	
	if (typeof global_elemid == 'string') { 
	// jedna se o string (tj. povazuji za id elementu)
		// 06-05-09 jakubik - doplnil if
		if (document.getElementById(global_elemid)) {
			document.getElementById(global_elemid).innerHTML = fetching_html;
		}
	} else {
		// jinak to bude objekt
		if (global_elemid != null) {
			global_elemid.innerHTML = fetching_html;
		}
	}
        
	if (http_request.readyState == 4) {
                if (http_request.status == 200) {
			var response = http_request.responseXML.documentElement;
			
			// HTML
			var resultHTML = '';
			for (i=0;i<response.getElementsByTagName('html')[0].childNodes.length;i++) {
				resultHTML += response.getElementsByTagName('html')[0].childNodes[i].nodeValue;
			}

			if (typeof global_elemid == 'string') {
				document.getElementById(global_elemid).innerHTML = resultHTML;
			} else {
				global_elemid.innerHTML = resultHTML;
			}
			
			// JS
			//var resultJS = response.getElementsByTagName('js')[0].firstChild.nodeValue;
			var resultJS = '';	//xbayer
			for (i = 0; i < response.getElementsByTagName('js')[0].childNodes.length; i++) {
				resultJS += response.getElementsByTagName('js')[0].childNodes[i].nodeValue;
			}
			eval(resultJS);
                } else {
                        alert(strProblemRequest);
                }
        }
}

function getURLParams(obj) {
  var getstr = '';
//  var obj = document.getElementById(obj_id);
  for (i=0; i<obj.getElementsByTagName("input").length; i++) {
        if (obj.getElementsByTagName("input")[i].type == "text") {
           getstr += obj.getElementsByTagName("input")[i].name + "=" +
                   encodeURIComponent(obj.getElementsByTagName("input")[i].value) + ";";
        }

        if (obj.getElementsByTagName("input")[i].type == "hidden") {
           getstr += obj.getElementsByTagName("input")[i].name + "=" +
                   obj.getElementsByTagName("input")[i].value + ";";
        }
        if (obj.getElementsByTagName("input")[i].type == "checkbox") {
           if (obj.getElementsByTagName("input")[i].checked) {
              getstr += obj.getElementsByTagName("input")[i].name + "=" +
                   obj.getElementsByTagName("input")[i].value + ";";
           } else {
              //getstr += obj.getElementsByTagName("input")[i].name + "=;";
           }
        }
        if (obj.getElementsByTagName("input")[i].type == "radio") {
           if (obj.getElementsByTagName("input")[i].checked) {
              getstr += obj.getElementsByTagName("input")[i].name + "=" +
                   obj.getElementsByTagName("input")[i].value + ";";
           }
        }
  }

        for (i=0; i<obj.getElementsByTagName("select").length; i++) {
		var sel = obj.getElementsByTagName("select")[i];
		for (j = 0; j < sel.length; j++) {
			if (sel.options[j].selected) {
//				alert(sel.name + ': '  + sel.options[j].value);
				getstr += sel.name + "=" +
				  sel.options[j].value + ";";
			}
		}
        }


  for (i=0; i<obj.getElementsByTagName("textarea").length; i++) {
	try {
		getstr += obj.getElementsByTagName("textarea")[i].name + "=" +
		  encodeURIComponent(FCKeditorAPI.GetInstance(obj.getElementsByTagName("textarea")[i].id).GetXHTML(true)) + ";";
	} catch (e) {
	        getstr += obj.getElementsByTagName("textarea")[i].name + "=" +
                  encodeURIComponent(obj.getElementsByTagName("textarea")[i].value) + ";";
  	}
  }

        return getstr;

}

function addslashes(str) {
        str=str.replace(/\'/g,'\\\'');
        str=str.replace(/\"/g,'\\"');
        str=str.replace(/\\/g,'\\\\');
        str=str.replace(/\0/g,'\\0');
        str=str.replace(/&/g, '[UMPERSAND]');
        str=str.replace(/#/g, '[BRACKET]');
        str=str.replace(/;/g, '[SEMICOLON]');
        str=str.replace(/\n/g,'[LINEBREAK]');
        return str;
}

