
// Detail fotografie ze souboru	
//------------------------------------------------------------------------------------------------------

function DetailFromFile(file) {
	source = "/Knihovny/PHP/PhotoDetailFF.php?Photo="+file;
	window.open(source,'Detail','toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=no,copyhistory=no');
}


// Detail fotografie z Registru fotografií
//------------------------------------------------------------------------------------------------------

function DetailFromRF(IdRF) {
	source = "/Knihovny/PHP/PhotoDetailFRF.php?IdF="+IdRF;
	PopUp = window.open(source,'Detail','toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=no,copyhistory=no');
}



// Detail fotografie z BLOBu
//------------------------------------------------------------------------------------------------------

function Okno(IdRF) {
	source = "./Knihovny/PHP/PhotoFFPopUp.php?IdF="+IdRF;
	PopUp = window.open(source,'Detail','toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=no,copyhistory=no');
}


// Detail fotografie z BLOBu (AJ)
//------------------------------------------------------------------------------------------------------

function OknoAJ(zdroj) {
	zdroj = "./Knihovny/PHP/PopUpWindow_AJ.php?IdF="+zdroj;
	PopUp = window.open(zdroj,'Detail','toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=no,copyhistory=no');
}

// Dotaz																								
//------------------------------------------------------------------------------------------------------

function Dotaz(text) {
	if (window.confirm(text))
		return true; 
	else 
		return false;
}


// Verifikace formatu vkladane datumove polozky
//------------------------------------------------------------------------------------------------------

function TestujDatum(datum, polozka) {
   
   var re1 = /^\d{1,2}\.\d{1,2}\.\d{4}$/;                     
   if (!re1.test(datum)) { alert("Vkládané datum \"" + polozka + "\" nemá správný tvar."); return false; }
 
   var rad = datum.split(/\./);       
   var hlaska = "Vkládané datum \"" + polozka + "\" je mimo rozsah.";  

   if (rad[1] > 12) { alert(hlaska); return false; }

      
   if ((rad[1]==1) || (rad[1]==3) || (rad[1]==5) || (rad[1]==7) || (rad[1]==8) || (rad[1]==10) || (rad[1]==12)) {
      if (rad[0] > 31) {  alert(hlaska); return false; }
   }
   
   if ((rad[1]==4) || (rad[1]==6) || (rad[1]==9) || (rad[1]==11)) {
      if (rad[0] > 30) {  alert(hlaska); return false; }
   }

   if (rad[1]==2) {
      if (((rad[2]/4 == Math.round(rad[2]/4)) && (rad[2]/100 != Math.round(rad[2]/100))) || (rad[2]/400 == Math.round(rad[2]/400)))  {
         if (rad[0] > 29) { alert(hlaska); return false; }
      } else {
        if (rad[0] > 28) { alert(hlaska); return false; }
      }
   }
       
   return true;
}


// Verifikace formatu vkladanho čísla
//------------------------------------------------------------------------------------------------------

function _checkInt(value) {
	if(parseInt(value) != value)
		return false;
	else
		return true;
}


// Verifikace typu uploadovaného obrázku
// 	- fileType: 1 - obrázek, 2 - dokument
//------------------------------------------------------------------------------------------------------

function _uploadedFileTypCheck(sourceFile, fileType) {
	
	if(fileType == 1)
		var extensionArray = allowedTypeUploadedPict;
	
	else if(fileType == 2)
		var extensionArray = allowedTypeUploadedFiles;
	
	for(var i = 0; i < extensionArray.length; i++)
      if(sourceFile.substring(sourceFile.length - 3).toUpperCase() == extensionArray[i].toUpperCase())
	  	return true;

	return false;
}


// Validace formatu vkladane datumove polozky
//------------------------------------------------------------------------------------------------------
function TestujDatum(datum) {
   
   var re1=/^\d{1,2}\.\d{1,2}\.\d{4}$/;                     
   if (!re1.test(datum)) { alert("Vkládané datum nemá správný tvar."); return false; }
 
   var rad=datum.split(/\./);       
   var hlaska= "Vkládané datum je mimo rozsah.";  

   if (rad[1] > 12) { alert(hlaska); return false; }

      
   if ((rad[1]==1) || (rad[1]==3) || (rad[1]==5) || (rad[1]==7) || (rad[1]==8) || (rad[1]==10) || (rad[1]==12)) {
      if (rad[0] > 31) {  alert(hlaska); return false; }
   }
   
   if ((rad[1]==4) || (rad[1]==6) || (rad[1]==9) || (rad[1]==11)) {
      if (rad[0] > 30) {  alert(hlaska); return false; }
   }

   if (rad[1]==2) {
      if (((rad[2]/4 == Math.round(rad[2]/4)) && (rad[2]/100 != Math.round(rad[2]/100))) || (rad[2]/400 == Math.round(rad[2]/400)))  {
         if (rad[0] > 29) { alert(hlaska); return false; }
      } else {
        if (rad[0] > 28) { alert(hlaska); return false; }
      }
   }
       
   return true;
}


// Nastavení elementů podle class (např. kontrola MaxLength, apod.)
//------------------------------------------------------------------------------------------------------
function InicializeElements() {
	
}


// Nastavení labelu povinné  k elementům
//------------------------------------------------------------------------------------------------------
function SetLabelPovinne() {
	
	// Odsatrnění případných labelů
	$(".label_povinne").remove();
	
	// Najdu první formulář na stránce
	var form = document.getElementsByTagName( "form" )[0];
	
    // Projdi všechny pole ve formuláři.
    for ( var i = 0; i < form.elements.length; i++ ) {
		
		// maxLenght - input (typicky texarea) má omezenou délku textu
		if ( form.elements[i].className.indexOf("maxLength") != -1 )
			setMaxLengthControl(form.elements[i]);
		
    }
	
	// Najdeme všechny elementy označené jako povinné,
	$(".povinne")
		// potom najdeme předcházející popisek,
		.prev("label")
		
		// Nakonec přidáme na konec popisku symbol hvězdičky,
		// kterým dáme najevo, že je pole povinné.
		.append("<span class='label_povinne' title='Povinný údaj!'>*</span>");

}



// přiřazení funkce k elementům, u kterých se bude testovat maxLenght
//------------------------------------------------------------------------------------------------------
function setMaxLengthControl(elem) {
	
	var MaxLength;
	var i;
	
	var LengthLabel = elem.nextSibling;
	
	// Parsování hodnoty maximální povolené délky řetězce
	var regE1 = /[ ]+/;
	var regE2 = /[_]+/;
	
	// Splitnutí tříd elementu
	var result = elem.className.split(regE1);
	
	// Hledání třídy maxLength
	for ( i = 0; result[i]; i++ ) {
		if ( result[i].indexOf("maxLength") != -1 ) {
			var MaxLengthResult = result[i].split(regE2);
			MaxLength = parseInt(MaxLengthResult[1]);
		}
	}
	
	// Pokud neexistuje label k elementu ... 
	if ( ! document.getElementById(elem.id + "_LengthLabel") ) {
		// ... potřebujeme ho vytvořit.
		LengthLabel = document.createElement( "div" );
		elem.parentNode.insertBefore( LengthLabel, elem.nextSibling );
		
		// Nastavení paramtrů vloženého elementu
		$(LengthLabel).attr("id", elem.id + "_LengthLabel");
		$(LengthLabel).addClass("LengthLabel");
	}
	
	// Při incializaci je provedena kontrola ...
	MaxLengthCount(elem, MaxLength);
	

	// Odpojení událostí ... pro dynamickou změnu délky kontrolovaného textu
	$(elem).unbind('change');	
	$(elem).unbind('click');
	$(elem).unbind('keyup');
	$(elem).unbind('focus');
	
	// Připojení potřebných událostí ke kontrolovanému elementu
	$(elem).change(function(){
		MaxLengthCount(this, MaxLength);
	});

	$(elem).click(function(){
		MaxLengthCount(this, MaxLength);
	});
	
	$(elem).keyup(function(){
		MaxLengthCount(this, MaxLength);
	});
	
	$(elem).focus(function(){
		MaxLengthCount(this, MaxLength);
	});
}
	
// Testování délky řetezcevkládaného řetežce do inputu
//------------------------------------------------------------------------------------------------------
function MaxLengthCount(fieldObj, fieldMaxLength) {

		if ( fieldObj.value.length > fieldMaxLength ) {
			alert("Pole " + fieldObj.name + " - text je delší než povolených " + fieldMaxLength + " znaků. Bude oříznut!"); 
			fieldObj.value = fieldObj.value.substring( 0, fieldMaxLength );
			editovano = 1;
		}
		
		$("#" + fieldObj.id + "_LengthLabel").html("Zbývá <strong>" + (fieldMaxLength - fieldObj.value.length) + "</strong> znaků z <strong>" + fieldMaxLength + "</strong> povolených ...");
}



// Testování intervalu počtu dní 
//------------------------------------------------------------------------------------------------------
function DateIntervalCheck(DateFrom, DateTo, Interval) {
	
	var dtm01 = DateFrom.split(/\./);
	var dtm02 = DateTo.split(/\./);
	
	var startDate = new Date(dtm01[2], dtm01[1] - 1, dtm01[0]);
	var finishDate = new Date(dtm02[2], dtm02[1] - 1, dtm02[0]);
	
	dateRange = Math.floor( ( finishDate.getTime() - startDate.getTime() ) / 86400000 );
	
	if ( dateRange > Interval )
		return false;
	
	return true;
}
