﻿/******************************************************************************/
/**********                   AJAX  SCRIPT                      ***************/
/**********         coded by Hubert Frey, programmer            ***************/
/**********                    04-04-2007                       ***************/
/**********            e-mail: freyhubert@gmail.com             ***************/
/**********              website: www.semodata.cz               ***************/
/******************************************************************************/

//local
var WEB_ROOT = '';
//test
//var WEB_ROOT = '/relaxace';
	        
function gid(id)
{
	return document.getElementById(id);
}

function getHTTPObject()
{
	if (window.XMLHttpRequest) 
	{
   		http_request = new XMLHttpRequest();
 	} 
 	else if (window.ActiveXObject) 
 	{
    	try
    	{
		    http_request = new ActiveXObject("Msxml2.XMLHTTP");
    	} 
    	catch (e) 
    	{
      		http_request = new ActiveXObject("Microsoft.XMLHTTP");
    	}
 	}				
	return http_request;
}
			
var ajax = new Array(20);
var i = 0;
var cil;			
/****** funkce na zmenu Stavu('a','n') v databazi *****/
function changeStav(stranka, kam)
{
  cil = kam;
  i++; ajax[i] = getHTTPObject();		
  ajax[i].open("GET", stranka, true);
	ajax[i].onreadystatechange = changeHttpResponse;
	ajax[i].send(null);    
}			

function changeHttpResponse()
{
	switch (ajax[i].readyState)
	{
		case 4 : 	gid(cil).innerHTML= ajax[i].responseText;
					break;
	}
}
/****** funkce na zmenu Stavu('a','n') v databazi - KONEC *****/

/***** NACITANI OBSAHU STRANKY ******/			
function Loading()
{
	gid("ajaxloading").style.display= "block";
	gid("content").innerHTML="<div id=\"ajaxloading\"><img src=\"./graphics/spinner.gif\" width=\"16\" height=\"16\" alt=\"spinner\" />&nbsp; Načítám obsah...</div>"
}

function LoadStuff(script, targetID)
{
	i++; ajax[i] = getHTTPObject();		
  ajax[i].open("GET", script, true);
	ajax[i].onreadystatechange = function (){
    switch (ajax[i].readyState)
    {
      case 4 : gid(targetID).innerHTML = ajax[i].responseText;
        break;
    }
  }
	ajax[i].send(null);			        

}

function LoadContent(contentName,vars)
{
	//Loading();
	load_content_script = contentName + vars;
	//setTimeout(function () { 
	LoadPage (load_content_script);
	// },500);
}	        
function LoadPage(load_script)
{
	i++; ajax[i] = getHTTPObject();		
  ajax[i].open("GET", load_script, true);
	ajax[i].onreadystatechange = handleHttpResponse;
	ajax[i].send(null);			        
}

function handleHttpResponse()
{
	switch (ajax[i].readyState)
	{
		case 4 : 	gid("content").innerHTML=ajax[i].responseText;
					Sortable.create('photolist',
					{tag:'div',overlap:'horizontal',constraint:false,
								onUpdate:function(){
									serialized = Sortable.serialize('photolist').replace(/&/g,'*');
									/*LoadContent('./moduly/sluzby/fotogalerie.php?action=save_image_order','&ed_id='+gid('EdId').value+'&image_order='+serialized);*/}});
					break;
	}
}
/***** NACITANI OBSAHU STRANKY - KONEC ******/

var toReload;
var FormID;
var promenne;
function SendForm(get_script, vars, id_form, reloadBool)
{
  toReload = reloadBool;
  FormID = id_form;
  promenne = vars;
  gid('SendButton').innerHTML = 'Odesílám...'; 
  gid('SendButton').disabled = true;
  setTimeout(function () { 
		i++; ajax[i] = getHTTPObject();		
   	ajax[i].open("GET", get_script + vars, true);
	  ajax[i].onreadystatechange = sendFormHttpResponse;
	  ajax[i].send(null);
	 },1000);
}
function sendFormHttpResponse()
{
	switch (ajax[i].readyState)
	{
		case 4 :
      if (ajax[i].responseText.search(/successful/m) >= 0)
      {
        gid('SendButton').innerHTML = 'Odeslat dotaz'; 
        gid('SendButton').disabled = false;
        gid('SendFormResult').innerHTML = ajax[i].responseText.replace('successful;', '');
        gid(FormID).DotazField.value = '';
        gid(FormID).DotazField.style.borderColor = 'rgb(156, 211, 8)';
        gid(FormID).FullnameField.value = '';
        gid(FormID).FullnameField.style.borderColor = 'rgb(156, 211, 8)';
        gid(FormID).EmailField.value = '';
        gid(FormID).EmailField.style.borderColor = 'rgb(156, 211, 8)';
      }  
      else if(ajax[i].responseText.search(/failed/m) >= 0){
        gid('SendButton').innerHTML = 'Odeslat dotaz'; 
        gid('SendButton').disabled = false;
        gid('SendFormResult').innerHTML = ajax[i].responseText.replace('failed;', '');
        //oznaceni chybnych poli
        /*if (ajax[i].responseText.search(/DotazField/m) >= 0)
        {
          gid(FormID).DotazField.style.borderColor = 'red';
          gid(FormID).DotazField.value += ajax[i].responseText;
        }
        if (ajax[i].responseText.search(/EmailField/m) >= 0)
        {
          gid(FormID).EmailField.style.borderColor = 'red';
        }
        if (ajax[i].responseText.search(/FullnameField/m) >= 0)
        {
          gid(FormID).FullnameField.style.borderColor = 'red';
        }*/
      }
      else{
        gid('SendFormResult').innerHTML = 'Omlouváme se, došlo k chybě na straně serveru.'+ajax[i].responseText ;
        gid('SendButton').innerHTML = 'Odeslat dotaz'; 
        gid('SendButton').disabled = false;
      }
			break;
	}
}

function sendPassword(script, formID)
{
  gid('sendPsswdBtn').innerHTML = 'Kontroluji...'; 
  gid('sendPsswdBtn').disabled = true;
  setTimeout(function () { 
		i++; ajax[i] = getHTTPObject();		
   	ajax[i].open("GET", script, true);
	  ajax[i].onreadystatechange = function() {
	   switch (ajax[i].readyState) {
		   case 4 :
        if (ajax[i].responseText.search(/successful/m) >= 0) {
          gid('sendPsswdBtn').innerHTML = 'Zaslat heslo'; 
          gid('sendPsswdBtn').disabled = false;
          gid('sendPsswdResult').innerHTML = ajax[i].responseText.replace('successful;', '');
        } else if(ajax[i].responseText.search(/failed/m) >= 0){
          gid('sendPsswdBtn').innerHTML = 'Zaslat heslo'; 
          gid('sendPsswdBtn').disabled = false;
          gid('sendPsswdResult').innerHTML = ajax[i].responseText.replace('failed;', '');
        }
        else{
          gid('sendPsswdResult').innerHTML = 'Omlouváme se, došlo k chybě na straně serveru.'+ajax[i].responseText ;
          gid('sendPsswdBtn').innerHTML = 'Zaslat heslo';
          gid('sendPsswdBtn').disabled = false;
        }
			 break;
	     }      
    };
	  ajax[i].send(null);
	 },1000);
}


//funkce pro zjisteni jedinecnosti hodnoty v databazi
function CheckUnique(get_script, vars, return_id)
{
  cil = return_id;
	i++; ajax[i] = getHTTPObject();		
  ajax[i].open("GET", get_script + vars, true);
	ajax[i].onreadystatechange = changeHttpResponse;
	ajax[i].send(null);
}

//funkce pro zobrazeni in-place formulare
function InPlaceEditor(get_script, vars, return_id)
{
  cil = return_id;
	i++; ajax[i] = getHTTPObject();		
  ajax[i].open("GET", get_script + vars, true);
	ajax[i].onreadystatechange = changeHttpResponse;
	ajax[i].send(null);
}

//funkce pro nacteni fotky u detailu clanku
var imagePath;
function changePhoto(targetID, targetTitle, path, width, title)
{
  cil = targetID;
  i++; ajax[i] = getHTTPObject();		
  imagePath = path.replace("../","");
  ajax[i].open("GET", WEB_ROOT + "/" + imagePath, true);
	ajax[i].onreadystatechange = function (){
    switch (ajax[i].readyState)
    {
      case 4 : gid(cil).innerHTML = '<img src="'+ imagePath +'" width="'+ width +'" alt="'+ title +'" />';
        break;
    }
  }
	ajax[i].send(null);
}

//funkce pro reakci v diskuzich
function Quote(id,topic)
{
	gid('topic').value = topic;
	gid('quote_to').value = id;
}

//funkce smaze polozku v databazi a skryje prvek na strance
var hideID;
//AJAX funkce na smazani polozky
function DelItem(vars, hide_id)
{
  hideID = hide_id;
	load_script = WEB_ROOT + "/includes/del-item.php?";

	i++; ajax[i] = getHTTPObject();		
	ajax[i].open("GET", load_script + vars , true);
	ajax[i].onreadystatechange = DeleteHttpResponse;
	ajax[i].send(null);	
 
}
function DeleteHttpResponse()
{
	switch (ajax[i].readyState)
	{
		case 4 :
      if (ajax[i].responseText == 'delete_successful')
      {
        //Effect.Shrink(hideID);
        //Effect.Puff(hideID);
        Effect.Fade(hideID);
        //Effect.BlindUp(hideID,{duration:1.5});
      }  
			break;
	}
}


//funkce vrati hodnoty maxWidth a maxHeight pri vyberu reklamni pozice
function GetMaxDimension(id, table, column_w, column_h)
{
  i++; ajax[i] = getHTTPObject();		
  ajax[i].open("GET", './functions/get-max-dimensions.php?table='+table+'&id='+gid(id).value+'&column_w='+column_w+'&column_h='+column_h, true);
	ajax[i].onreadystatechange = DimensionHttpResponse;
	ajax[i].send(null);
}

function DimensionHttpResponse()
{
	switch (ajax[i].readyState)
	{
		case 4 : 	gid('ajaxbin').innerHTML=ajax[i].responseText;
					break;
	}
}

//upload file function
var uploader = '';
var frameID = '';
function uploadFile(obj,frame) {
	var uploadDir = obj.value;
	frameID = frame;
	uploaderId = 'uploader'+obj.name;
	uploader = obj.name;
	
	document.getElementById('uploadForm'+obj.name).submit();
	traceUpload(uploadDir, obj.name);	
}

function traceUpload(uploadDir) 
{
	i++; ajax[i] = getHTTPObject();
	
	ajax[i].onreadystatechange = UploadResponse;
	ajax[i].open("GET", '../functions/imageupload.php?uploadDir='+uploadDir+'&uploader='+uploader); 
	ajax[i].send(null);   
}

function UploadResponse() 
{
	if(ajax[i].readyState != 4)
    {
    	gid(uploaderId).innerHTML = "Nahrávám soubor...";
    }
}

//funkce pro zobrazeni oken pro mazani a napovedu
function showwindow(e,num)
{
   	kam=-100;

    if(document.getElementById) 
    {
        elm = gid(num);
        // Netscape 6.0+ and Internet Explorer 5.0+
        if (document.all && !window.opera) {
            x = event.clientX + document.documentElement.scrollLeft+kam;
            y = event.clientY + document.documentElement.scrollTop;
         }
         else {
            x = e.pageX+kam;
            y = e.pageY;
         }
         if (document.all && !window.opera) {
            elm.style.pixelLeft = x;
            elm.style.pixelTop = y;
         }
         else {
            elm.style.left = x + "px";
            elm.style.top = y + "px";
         }
         elm.style.display = "block"
    }
}

//funkce pro uzavreni oken pro mazani a napovedu
function closewindow(num){
  if(document.getElementById){
     elm=document.getElementById(num)
     elm.style.display = "none"
  }
} 

function toogleDisplay(targetID) {
  if(gid(targetID).style.display == 'none') {
    gid(targetID).style.display = 'block';
  } else {
    gid(targetID).style.display = 'none';
  }
  
}
