var ajax_popup_http_request = false;

function msieversion() {
	var ua = window.navigator.userAgent
	var msie = ua.indexOf ( "MSIE " )
	if ( msie > 0 )      // If Internet Explorer, return version number
		return parseInt (ua.substring (msie+5, ua.indexOf (".", msie )))
	else                 // If another browser, return 0
		return 0
}

function eraseAjaxPopup() {
	//stop loading
	ajax_popup_http_request = false;
	//erase div contents
	var PopupDiv = document.getElementById('AjaxPopup');
	if (PopupDiv) {
		while (PopupDiv.firstChild) {
			PopupDiv.removeChild(PopupDiv.firstChild);
		}
	}
	//hide div
	PopupDiv.style.display = 'none';
	// hide darkdiv
	var DarkDiv = document.getElementById('DarkDiv');
	if (DarkDiv) {
		DarkDiv.style.display = 'none';
	}
}
var msie = msieversion();

function startAjaxPopup() {
	// find or create div with black background
	var DarkDiv = document.getElementById('DarkDiv');
	if (!DarkDiv) {
		DarkDiv = document.createElement('div');
		DarkDiv.id = 'DarkDiv';
		DarkDiv.style.display = '';
		var body = document.getElementsByTagName("body").item(0);
		body.insertBefore(DarkDiv, body.firstChild);
		//body.appendChild(DarkDiv);
	}
	// find or create div
	var PopupDiv = document.getElementById('AjaxPopup');
	if (!PopupDiv) {
		PopupDiv = document.createElement('div');
		PopupDiv.id = 'AjaxPopup';
		var body = document.getElementsByTagName("body").item(0);
		body.appendChild(PopupDiv);
	}
	//erase div contents
	eraseAjaxPopup();
	DarkDiv.style.display = '';
	// add 'Close' button
	if (msie == 0 || msie > 6) {
		/// Not IE6
		ahref = document.createElement("a");
		ahref.id = 'AjaxPopupClose';
		ahref.style.cursor = 'pointer';
		ahref.setAttribute('title', 'Zamknij');
		if (window.addEventListener) {
			ahref.addEventListener('click', eraseAjaxPopup, false);
		} else {
			ahref.attachEvent('onclick', eraseAjaxPopup );
		}
		img = document.createElement('img');
		img.setAttribute('src', 'img/close.gif');
		img.setAttribute('alt', 'Zamknij');
		ahref.appendChild(img);
	} else {
		///// IE6 cannot show close button made from image. Using <button> instead
		ahref = document.createElement("button");
		ahref.id = 'AjaxPopupClose';
		if (window.addEventListener) {
			ahref.addEventListener('click', eraseAjaxPopup, false);
		} else {
			ahref.attachEvent('onclick', eraseAjaxPopup );
		}
		txt = document.createTextNode('X');
		ahref.appendChild(txt);
	}
	div = document.createElement("div");
	div.id = 'PopupTitle';
	div.appendChild(ahref);
	PopupDiv.appendChild(div);
	// add inner div
	innerDiv = document.createElement('div');
	innerDiv.id = 'AjaxPopupInner';
	PopupDiv.appendChild(innerDiv);
	// add progress
	progressDiv = document.createElement('div');
	progressDiv.id = 'ProgressDiv';
	innerDiv.appendChild(progressDiv);
   	progressDiv.appendChild(document.createElement('br'));
   	progressDiv.appendChild(document.createElement('br'));
   	progressDiv.appendChild(document.createElement('br'));
   	progressDiv.appendChild(document.createElement('br'));
   	progressDiv.appendChild(document.createTextNode("Proszę czekać..."));
   	progressDiv.appendChild(document.createElement('br'));
   	img = document.createElement('img');
   	img.setAttribute('src', 'img/progress_c.gif');
   	img.style.verticalAlign = 'middle';
   	progressDiv.appendChild(img);
	// show
	PopupDiv.style.display = '';
}

function ajaxPopupMakeRequest(page, params) {  
   ajax_popup_http_request = false;
   
   startAjaxPopup();

   if (window.XMLHttpRequest) { // Mozilla, Safari,...
      ajax_popup_http_request = new XMLHttpRequest();
      if (ajax_popup_http_request.overrideMimeType) {
         ajax_popup_http_request.overrideMimeType('text/xml');
      }
   } else if (window.ActiveXObject) { // IE
      try {
         ajax_popup_http_request = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
         try {
           ajax_popup_http_request = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (e) {}
      }
   }

   if (!ajax_popup_http_request) {
      alert('Giving up: Cannot create an XMLHTTP instance');
      return false;
   }

   url = 'index.php';
   urlparams = 'page=' + page;
   if (params != '') {
		urlparams += '&' + params;
   }
   urlparams += '&mode=ajax';

   ajax_popup_http_request.onreadystatechange = ajaxPopupProcessResponse;
   ajax_popup_http_request.open('GET', url + '?' + urlparams, true);
   ajax_popup_http_request.send(null);
   return true;
}


function ajaxPopupProcessResponse() {
   if (ajax_popup_http_request.readyState == 4) {
      if (ajax_popup_http_request.status == 200) {
         //alert(ajax_popup_http_request.responseText);
         var pageHtml = ajax_popup_http_request.responseText;
         loadPageHtml(pageHtml);
      } else {
         alert('There was a problem with the request.');
      }
//      endUpdate();
   }
}

function loadPageHtml(pageHtml) {
	var PopupInner = document.getElementById('AjaxPopupInner');
	if (PopupInner) {
		PopupInner.innerHTML = pageHtml;
		ajax_parseJs(PopupInner);
	}	
}

function ajax_parseJs(obj)
{
   var scriptTags = obj.getElementsByTagName('script');
   var string = '';
   var jsCode = '';
   for(var no=0;no<scriptTags.length;no++){
      if(scriptTags[no].src){
           var head = document.getElementsByTagName("head")[0];
           var scriptObj = document.createElement("script");

           scriptObj.setAttribute("type", "text/javascript");
           scriptObj.setAttribute("src", scriptTags[no].src);
      }else{
         if(navigator.userAgent.toLowerCase().indexOf('opera')>=0){
            jsCode = jsCode + scriptTags[no].text + '\n';
         }
         else
            jsCode = jsCode + scriptTags[no].innerHTML;
      }
   }

   if(jsCode)ajax_installScript(jsCode);
}


function ajax_installScript(script)
{
    if (!script)
        return;
    if (window.execScript){
      window.execScript(script)
    }else if(window.jQuery && jQuery.browser.safari){ // safari detection in jQuery
        window.setTimeout(script,0);
    }else{
        window.setTimeout( script, 0 );
    }
}