// loading animation image object
loading_animation = new Image();
loading_animation.src="graphics/ajax-loader.gif";
thumb_back=new Image();
thumb_back.src="graphics/thumb.jpg";
text_wide=document.getElementById('text_wide');

function askConfirm(message, url){
	if(confirm(message)) location.href = url;
}
function showPhotoChooser(main_photo_id,main_photo_img){
	//alert('photo chooser');
	window.open('photoChooser.php?mode=mainphoto','wybierz zdjęcie','height=600, width=600,scrollbars=1');
}

function showAttachPhoto(dest_gallery){
	window.open('photoChooser.php?mode=attachPhoto&gal='+dest_gallery,'wybierz zdjęcie(2)','height=600, width=600,scrollbars=1');
}

function loadHome(){
	text_wide=document.getElementById('text_wide');
	text_wide.innerHTML='';
	text_wide.style.textAlign='center';
	text_wide.appendChild(loading_animation);
	makeRequest("GET", alterTextWide, 'gettext.php?text=home&setplace=home', '', true, new Array());
}

function loadGalleryPicker(){
	text_wide=document.getElementById('text_wide');
	text_wide.innerHTML='';
	text_wide.style.textAlign='center';
	text_wide.appendChild(loading_animation);
	makeRequest("GET", alterTextWide, 'photo_gallery.php?gaction=show_galleries&gallery=', '', true, new Array());
}

function loadAuthor(){
	text_wide=document.getElementById('text_wide');
	text_wide.innerHTML='';
	text_wide.style.textAlign='center';
	text_wide.appendChild(loading_animation);
	makeRequest("GET", alterTextWide, 'gettext.php?text=author&setplace=author', '', true, new Array());
}

function loadWebmaster(){
	text_wide=document.getElementById('text_wide');
	text_wide.innerHTML='';
	text_wide.style.textAlign='left';
	text_wide.appendChild(loading_animation);
	makeRequest("GET", alterTextWide, 'gettext.php?text=webmaster&setplace=webmaster', '', true, new Array());
}

function loadGallery(gal_id){
	text_wide=document.getElementById('text_wide');
	text_wide.innerHTML='';
	text_wide.style.textAlign='center';
	text_wide.appendChild(loading_animation);
	makeRequest("GET", alterTextWide, 'photo_gallery.php?gaction=show_gallery&gallery='+gal_id, '', true, new Array());
}

function alterTextWide(xmlHttpRequest22){
	d=document.getElementById("text_wide");
	d.innerHTML=xmlHttpRequest22.responseText;
}
//below are functions to process ajax queries

var ajaxError_en = 'Your browser dose not support AJAX!';
var ajaxError_pl = 'Twoja przegl1darka nie obs3uguje AJAX`a!';
var responseError_pl = 'Uzyskanie odpowiedzi z serverwa nie byłu możliwe';

function xmlHttpFactory()
{
  var xmlHttp;
  try{
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    
   	if (http_request.overrideMimeType) {
    	http_request.overrideMimeType('text/xml');
        // Firefoks 1.5 bug!
    }
  }catch (e) {
    // Internet Explorer
    var xmlHttpVersion = new Array(
	"Msxml2.XMLHTTP.7.0", 
	"Msxml2.XMLHTTP.6.0", 
	"Msxml2.XMLHTTP.5.0", 
	"Msxml2.XMLHTTP.4.0", 
	"MSXML2.XMLHTTP.3.0", 
	"MSXML2.XMLHTTP",
	"Microsoft.XMLHTTP"
    );

    for( var i=0; (i< xmlHttpVersion.length) && !xmlHttp; i++)
	try{
	  xmlHttp = new ActiveXObject(xmlHttpVersion[i]);
	} catch (e){
	//ignorujemy b3edy
	}
  }
   if (!xmlHttp) {
	alert(ajaxError_pl);
	return null;
   }
   return xmlHttp;
}
/**
*@param1 String :POST or GET
wywalone!//*@param2 String :function name:: on ready state change handler
*@param3 String :functionExecuted:: run when if(xmlHttp.readyState==4)
*@param4 String :url:: of the service; for POST request is base url: something.php
*@param5 String :args:: on POST type request, if use GET leave it empty
*@param6 boolean: asynch::true->asynch.(no wait), false -> synch. request(wait for a answer)
*@param7 Array: header_array:: array of sent header: header_array[index][0]=header_name, header_array[index][0]=header_value
*	leave it empty if no header sent
*/
function makeRequest(type, /*functionHandler,*/ functionExecute, url, args, asynch, header_array)
{
	var xmlHttp = xmlHttpFactory();
	if(!xmlHttp)
		return;
	xmlHttp.onreadystatechange = function(){stateHandler(functionExecute, xmlHttp);};
	// let multiple request!
	if (type == 'GET' || type == 'get'){
		xmlHttp.open("GET", url, asynch);
		for (var i=0; i < header_array.length; i++){
			xmlHttp.setRequestHeader(header_array[i][0], header_array[i][1]);
			//alert(header_array[i][0]);
			//alert(header_array[i][1]);
		}
		xmlHttp.send(null);
	} else if (type == 'POST' || type == 'POST'){
		xmlHttp.open("POST", url, asynch)
		for (var i=0; i < header_array.length; i++){
			xmlHttp.setRequestHeader(header_array[i][0], header_array[i][1]);
			//alert(header_array[i][0]);
			//alert(header_array[i][1]);
		}
		xmlHttp.send(args);
	} else{
		alert("Bad param1; expected 'POST' or 'GET'");
		return;
	}
}
/**
*@param1 String function_name
*@param2 Object xmlHttp
*/
function stateHandler(function_name, xmlHttpObj)
{
	try{
		if (xmlHttpObj.readyState == 4){// request is finished
			if (xmlHttpObj.status == 200){// response successful whit no errors
				function_name(xmlHttpObj);
			}
		} else {
			// loading_on_progres
			// moze jakas funkcja symulujaca wgrywanie???
		}
	}catch (e){
		alert(responseError_pl);
		alert(e.name + " \n " + e.message);
	}
}

