function processRequest(script,id,pom,loged)
				
						{
						
						//if(loged=='false')alert('gh');	
						  if (httpRequest.readyState == 4)
						  {
							if(httpRequest.status == 200)
							{
							  var mistoZobrazeni = document.getElementById(script);
							  mistoZobrazeni.innerHTML = httpRequest.responseText;
							}
							
							if(loged=='false'){ //pokud nejsem prihlasen
							//	alert('f');
								insertFlash(id,'true');
								
								}else{
									if(document.getElementById('show').value=='0'){
										insertFlash(id,'');
								
										}
									if(pom=='xx9')insertFlash(id,'true');
									document.getElementById('show').value='1';
									}
						  }
						}
function generateXml(id,query,loged){
				var state;
				
				if (window.ActiveXObject)
					{
					httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
					}
					else
					{
					httpRequest = new XMLHttpRequest();
					}
					httpRequest.open("GET", "php/AJAX_generate_flash_xml.php?id="+id+"&query="+query, true);
					httpRequest.onreadystatechange= function () {processRequest('makeXml',id,'',loged)} ;
					
					httpRequest.send(null);
					state=httpRequest.readyState;
					}
function insertFlash(id,head){
				var state;
				
				if (window.ActiveXObject)
					{
					httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
					}
					else
					{
					httpRequest = new XMLHttpRequest();
					}
					
					if(head=='true'){
						
						httpRequest.open("GET", "php/AJAX_insert_flash.php?ID="+id+"&head="+head, true);
						httpRequest.onreadystatechange= function () {processRequest('flash_head_water',id,'')} ;
						}
					else{ 
						httpRequest.open("GET", "php/AJAX_insert_flash.php?ID="+id, true);
						httpRequest.onreadystatechange= function () {processRequest('flashOptions',id,'xx9')} ;
						}
					
					httpRequest.send(null);
					state=httpRequest.readyState;
					}

function confirmDelete(msg,shref,root) { 
	if (root) {
		if (confirm(msg)) {	document.location.href = shref; }
	} else
		if (confirm(msg)) {	document.location.href = "index.php?page="+shref; }
	return true;
}

function href(shref){ 
	document.location.href = "index.php?page="+shref; 
}

function checkForum(obj) {
	if (obj.text.value == "") {
		alert('Nevložil jste text příspěvku.');
		return false;
	}
	if (obj.autor.value == "") {
		alert('Nevložili jste své jméno');
		return false;
	}
	return true;
}

function showElement(idh)
{
	var element;
	element = document.getElementById(idh);
	element.style.display="block";
}

function hideElement(idh){
	document.getElementById(idh).style.display='none';
}

function checkForumHier(obj) {
	if (obj.text.value == "") {
		alert('Nevložil jste text příspěvku.');
		return false;
	}
	if (obj.subject.value == "") {
		alert('Nevložil jste téma příspěvku.');
		return false;
	}
	if (obj.autor.value == "") {
		alert('Nevložili jste své jméno');
		return false;
	}
	return true;
}

function change_style(styl){
	document.location.href = "index.php?page=change_style&style="+styl;
}

function viewImage(idc,root)
{
//h+=60;
//w+=30;
//if (w>screen.availWidth ){w=screen.availWidth}
//if (h>screen.availHeight ){h=screen.availHeight}

//	window.open(root+'php/galerie_item.php?ID='+idc,'W'+idc, 'alwaysRaised=yes,resizable=yes;directories=no,toolbar=no,screenX=0,screenY=0,scrollbars=yes,width='+800+',height='+800);
	window.open(root+'php/galerie_item.php?ID='+idc, '', 'height=800,width=800', false);
	return true;
}



function ajaxInstance()
{
	var ajax = false;
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
		try {
			ajax = new ActiveXObject('Msxml2.XMLHTTP');
		} catch (e) {
			try {
				ajax = new ActiveXObject('Microsoft.XMLHTTP');
			} catch (E) {
				ajax = false;
			}
		}
	@end @*/
	if (!ajax && typeof XMLHttpRequest != 'undefined') {
		ajax = new XMLHttpRequest();
	}
	return ajax;
}

function ajaxReplace(element, url) {
	var ajax = ajaxInstance();
	if (!ajax) {
		return false;
	}
	ajax.open('GET', url, true);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			element.innerHTML = ajax.responseText;
		}
	}
	ajax.send(null);
	return true;
}

function ajaxDR(element, url, msg){
if (confirm(msg)) {	 	
	var ajax = ajaxInstance();
	if (!ajax) {
		return false;
	}
	ajax.open('GET', url, true);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			element.innerHTML = ajax.responseText;
		}
	}
	ajax.send(null);
	return true;
	}
}


/**
 * Označí/odoznačí všechny checkboxy v elementu
 *
 * @param    container_id    DOM element
 * @param    container_parent    DOM element
 * @param    oznacit     boolean
 */
function markAll( container_id, oznacit ) {
	var rows = document.getElementById(container_id).getElementsByTagName( 'input' );
    var checkbox;
	
	for ( var i = 0; i < rows.length; i++ ) {

        checkbox = rows[i];
        if ( checkbox && checkbox.type == 'checkbox' ) {
			if ( checkbox.disabled == false ) {
				checkbox.checked = oznacit;
            }
	    }
	}

	return true;
}

function checkMaxItemSel(container_id, container_parent , maxcount){
	var rows = document.getElementById(container_id).getElementsByTagName(container_parent);
    var checkbox;
	var prekroceno;
	var counter;
	
	counter=0;
	for ( var i = 0; i < rows.length; i++ ) {
        checkbox = rows[i].getElementsByTagName( 'input' )[0];
        if ( checkbox && checkbox.type == 'checkbox' && checkbox.checked == true ) {
			counter++; 
	    }		
	}
	if (counter>=maxcount ){
		prekroceno=true;				
	}

	for ( var i = 0; i < rows.length; i++ ) {
        checkbox = rows[i].getElementsByTagName( 'input' )[0];
        if ( checkbox && checkbox.type == 'checkbox'  ) {
			if ( prekroceno ){				
				if ( checkbox.checked != true ) {
					checkbox.disabled = true;
            	}
			} else {
				checkbox.disabled = false;
			}
	    }		
	}
	if (prekroceno){ alert('Můžete mít ve výběru maximálně '+maxcount+' fotek');}
	return true;
}


function rateThis(ID,rate){
	document.location.href='php/rate.php?IDparent='+ID+'&rating='+rate;
}

function chooseDatePopup(element) {
	window.open('php/choose_date.php?IDelement='+element,'', 'alwaysRaised=yes,resizable=yes;directories=no,toolbar=no,screenX=250,screenY=200,scrollbars=yes,width='+300+',height='+300);
	return true;
}
function chooseTimestampPopup(element) {
	window.open('php/choose_timestamp.php?IDelement='+element,'', 'alwaysRaised=yes,resizable=yes;directories=no,toolbar=no,screenX=250,screenY=200,scrollbars=yes,width='+300+',height='+300);
	return true;
}

function chooseTimestampPopupWTime(element,hours,minutes) {
	window.open('php/choose_timestamp.php?IDelement='+element+'&hours='+hours+'&minutes='+minutes,'', 'alwaysRaised=yes,resizable=yes;directories=no,toolbar=no,screenX=250,screenY=200,scrollbars=yes,width='+300+',height='+300);
	return true;
}



function sha1Hash(msg)
{
    // constants [4.2.1]
    var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];

    // PREPROCESSING 
 
    msg += String.fromCharCode(0x80); // add trailing '1' bit to string [5.1.1]

    // convert string msg into 512-bit/16-integer blocks arrays of ints [5.2.1]
    var l = Math.ceil(msg.length/4) + 2;  // long enough to contain msg plus 2-word length
    var N = Math.ceil(l/16);              // in N 16-int blocks
    var M = new Array(N);
    for (var i=0; i<N; i++) {
        M[i] = new Array(16);
        for (var j=0; j<16; j++) {  // encode 4 chars per integer, big-endian encoding
            M[i][j] = (msg.charCodeAt(i*64+j*4)<<24) | (msg.charCodeAt(i*64+j*4+1)<<16) | 
                      (msg.charCodeAt(i*64+j*4+2)<<8) | (msg.charCodeAt(i*64+j*4+3));
        }
    }
    // add length (in bits) into final pair of 32-bit integers (big-endian) [5.1.1]
    M[N-1][14] = ((msg.length-1) >>> 30) * 8;
    M[N-1][15] = ((msg.length-1)*8) & 0xffffffff;

    // set initial hash value [5.3.1]
    var H0 = 0x67452301;
    var H1 = 0xefcdab89;
    var H2 = 0x98badcfe;
    var H3 = 0x10325476;
    var H4 = 0xc3d2e1f0;

    // HASH COMPUTATION [6.1.2]

    var W = new Array(80); var a, b, c, d, e;
    for (var i=0; i<N; i++) {

        // 1 - prepare message schedule 'W'
        for (var t=0;  t<16; t++) W[t] = M[i][t];
        for (var t=16; t<80; t++) W[t] = ROTL(W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16], 1);

        // 2 - initialise five working variables a, b, c, d, e with previous hash value
        a = H0; b = H1; c = H2; d = H3; e = H4;

        // 3 - main loop
        for (var t=0; t<80; t++) {
            var s = Math.floor(t/20); // seq for blocks of 'f' functions and 'K' constants
            var T = (ROTL(a,5) + f(s,b,c,d) + e + K[s] + W[t]) & 0xffffffff;
            e = d;
            d = c;
            c = ROTL(b, 30);
            b = a;
            a = T;
        }

        // 4 - compute the new intermediate hash value
        H0 = (H0+a) & 0xffffffff;  // note 'addition modulo 2^32'
        H1 = (H1+b) & 0xffffffff; 
        H2 = (H2+c) & 0xffffffff; 
        H3 = (H3+d) & 0xffffffff; 
        H4 = (H4+e) & 0xffffffff;
    }

    return H0.toHexStr() + H1.toHexStr() + H2.toHexStr() + H3.toHexStr() + H4.toHexStr();
}

//
// function 'f' [4.1.1]
//
function f(s, x, y, z) 
{
    switch (s) {
    case 0: return (x & y) ^ (~x & z);
    case 1: return x ^ y ^ z;
    case 2: return (x & y) ^ (x & z) ^ (y & z);
    case 3: return x ^ y ^ z;
    }
}

//
// rotate left (circular left shift) value x by n positions [3.2.5]
//
function ROTL(x, n)
{
    return (x<<n) | (x>>>(32-n));
}

//
// extend Number class with a tailored hex-string method 
//   (note toString(16) is implementation-dependant, and 
//   in IE returns signed numbers when used on full words)
//
Number.prototype.toHexStr = function()
{
    var s="", v;
    for (var i=7; i>=0; i--) { v = (this>>>(i*4)) & 0xf; s += v.toString(16); }
    return s;
}

