function getID(id,doc)
{
    if (!doc) doc = document;
    if (document.all) return doc.all[id];
    else return doc.getElementById(id);
}

function byClass(nazev,typ)
{
	if(document.getElementsByClassName)
		return document.getElementsByClassName(nazev,typ);
	
	var r = [];
	var re = new RegExp("(^|\\s)"+nazev+"(\\s|$)");
	var e = document.getElementsByTagName(typ || "*");
	for(var j = 0; j < e.length; j++)
		if(re.test(e[j].className)) r.push(e[j]);
	return r;
}

/************************/
function isIE()
{
   /* window.opera identifikuje prohlizec Opera ikdyz je
      nastaven tak, aby se identifikoval jako Explorer */
  if(window.opera) return false;
  return (navigator.appName == 'Microsoft Internet Explorer');
}

function isOpera()
{
  /* window.opera identifikuje prohlizec Opera ikdyz je
     nastaven tak, aby se identifikoval jako Explorer  */
   return window.opera;
}


function openWin(url,width,height,pkey)
{
        if (!pkey) pkey = 'openWin';
        if (!width) width=620;
        if (!height) height=480;
        var w = window.open(url,pkey,"width="+width+",height="+height+",toolbar=0,directories=0,menubar=0,status=0,scrollbars=yes,resizable=yes");
	if (!w) return w;
	w.focus();
	return w;
}

function otevri (odkaz) {
       	return window.open(odkaz,"odkaz","toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no");
}

function target_blank (odkaz) {
       	var w = window.open(odkaz,"t_blank","copyhistory=yes");
	if (!w) return w;
	w.focus();
	return w;
}

function knackerEvent(eventObject)
{ 
	if (eventObject && eventObject.stopPropagation) { 
		eventObject.stopPropagation(); 
	} 
	else
	if (eventObject && eventObject.cancelBubble) {
		eventObject.cancelBubble = true;
	}
	else
	if (window.event && !window.event.cancelBubble ) { 
		window.event.cancelBubble = true; 
	} 
	/*if (eventObject && eventObject.preventDefault) { 
		eventObject.preventDefault(); 
	} 
	if (window.event) { 
		window.event.returnValue = false; 
	} */
}
	
function show_note(evnt,podminka)
{
	var div = getID('what_note');
	if (!podminka) {div.style.display='none'; return true;}
	x = evnt.x ? evnt.x : evnt.pageX;
	y = evnt.y ? evnt.y : evnt.pageY;
	x = x+20;
	div.innerHTML = podminka;
	div.style.display='block';
	if (isOpera() || isIE()) {
		 x = x +(window.pageXOffset ? window.pageXOffset :
			(document.documentElement.scrollLeft ?
			document.documentElement.scrollLeft : 0));
		 y = y +(window.pageYOffset ? window.pageYOffset :
			(document.documentElement.scrollTop ?
			document.documentElement.scrollTop : 0));
	}
	div.style.left = x +'px';
	div.style.top = y - div.offsetHeight + 'px';
	return true;
}


function insertAtCursor(myField, myValue)
{
	//MOZILLA/NETSCAPE support
	if (myField.selectionStart || myField.selectionStart == '0') {
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		myField.value = myField.value.substring(0, startPos)
		+ myValue
		+ myField.value.substring(endPos, myField.value.length);
		if (myField.focus) myField.focus();
		endPos = startPos+myValue.length;
		setCursorPos (myField, endPos, endPos);
	}
	//IE support
	else if (document.selection) {
		myField.focus();
		var selrange = document.selection.createRange();
		selrange.text = myValue;
		myField.focus();
	}
	else {
		myField.value += myValue;
		if (myField.focus) myField.focus();
	}
}

function insertAroundCursor(myField, myValue1, myValue2)
{
	//MOZILLA/NETSCAPE support
	if (myField.selectionStart || myField.selectionStart == '0') {
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		myField.value = myField.value.substring(0, startPos)
		+ myValue1 + myField.value.substring(startPos,endPos)
		+ myValue2 
		+ myField.value.substring(endPos, myField.value.length);
		endPos = endPos+myValue1.length+myValue2.length;
		setCursorPos (myField, startPos, endPos);
	}
	//IE support
	else if (document.selection) {
		myField.focus();
		var selrange = document.selection.createRange();
		selrange.text = myValue1+selrange.text+myValue2;
		myField.focus();
        	selrange.select();
	}
	else {
		myField.value += myValue1+myValue2;
		if (myField.focus) myField.focus();
	}
}


function getCursorPos (elm)
{
    if (typeof elm.selectionStart != "undefined" && typeof elm.selectionEnd != "undefined")
        return {begin: elm.selectionStart, end: elm.selectionEnd};

    if (document.selection && document.selection.createRange)
    {
        elm.focus ();

        var selRange = document.selection.createRange ().duplicate ();

        // check if element contains selected text
        if (selRange.parentElement () != elm)
            return {begin: "n/a", end: "n/a"};

	 var range = selRange.duplicate ();
        range.moveToElementText (elm);
/* pro input type=text
 var range = elm.createTextRange ().duplicate (); */

 	 range.setEndPoint ("EndToStart", selRange);

        return {
		begin: range.text.length,
		end: range.text.length + selRange.text.length
	};
    }
}

function setCursorPos (elm, begin, end)
{
    if (typeof elm.selectionStart != "undefined" && typeof elm.selectionEnd != "undefined")
    {
        elm.setSelectionRange (begin, end);
        elm.focus ();
    }

    else if (document.selection && document.selection.createRange)
    {
	var s = el.value;
	s.substr(begin, end - begin).replace(/\r/g, function() {--end;});
	s.substr(0, begin).replace(/\r/g, function() {--begin; --end});
        var range = elm.createTextRange ();
        range.move ("character", begin);
        range.moveEnd ("character", end - begin);
        range.select ();
    }
}

function openClose(id)
{
	var obj = getID(id);
	if (!obj) {
		alert('Chyba JS: '+id+' not found.');
		return false;
	}
	if (obj.style.display=='block')
		obj.style.display ='none';
	else
		obj.style.display = 'block';
	return true;
}

function send_xmlhttprequest(obsluha, data, method, url, content, headers)
{
        var xmlhttp;
	var enc;
 	try {
 	   // Firefox, Opera 8.0+, Safari
	    xmlhttp=new XMLHttpRequest();
	    enc = 'utf8';
	}
	catch (e) {
	    // Internet Explorer
	    enc = 'iso';
	    try {
 		xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
	    }
	    catch (e) {
 		     try {
 		       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		     }
		      catch (e) {
 		//	       alert("Your browser does not support AJAX!");
			        return false;
		     }
	    }
        } 

       if (!xmlhttp)
         return false; 

       if(!(typeof window['encodeURI'] == 'function')) { url= url + '&enc='+enc };
       xmlhttp.open(method, url); 
       xmlhttp.onreadystatechange = function() 
       { 
         obsluha(xmlhttp,data); 
       }; 
       if (headers) { 
         for (var key in headers) 
         { 
           xmlhttp.setRequestHeader(key, headers[key]); 
         } 
       } 
       xmlhttp.send(content);
       return true;
} 

function skrt_hlasuj(tlacitko,id)
{
	/* TODO: strlen >= 3; CACHE */
	tlacitko.onclick = function () { return false; }
	tlacitko.style.background = 'black';
	var hlasuji = getID('hlasuji');
	hlasuji.style.display='block';
	send_xmlhttprequest(skrt_zahlasovano,[id,tlacitko], 'GET', 'skrt_hlasuj.php?foto_soutez_id=' + id);
	return false;
}

function skrt_zahlasovano(xmlhttp,data)
{
    	if(xmlhttp.readyState != 4) return;

	var hlasu = xmlhttp.responseXML.getElementsByTagName('hlasu');
	var text = xmlhttp.responseXML.getElementsByTagName('text');

	if(parseInt(hlasu[0].firstChild.data)) {
		var hlasu_show = getID('hlasu'+data[0]);
		hlasu_show.innerHTML = hlasu[0].firstChild.data;
	}
	data[1].onclick = function () { alert(text[0].firstChild.data); return false; }
	var hlasuji = getID('hlasuji');
	hlasuji.style.display='none';
	alert(text[0].firstChild.data);
}


function skrt_change_image(rid,li,i,dir)
{
	var img = getID('thumbs'+rid);
	img.src='img/'+dir+'/'+rid+'/thumbs/'+dir+'-'+li+'.jpg';

	var orig = getID('orig'+rid);
	orig.href='img/'+dir+'/'+rid+'/'+dir+'-'+li+'.jpg';

	var max = getID('maxi'+rid);
	max.href='img/'+dir+'/'+rid+'/thumbs/'+dir+'-'+li+'-maxi.jpg';
	var max = getID('maxi_'+rid);
	max.href='img/'+dir+'/'+rid+'/thumbs/'+dir+'-'+li+'-maxi.jpg';

	for(var j = 1; j <= 3; j++)
	{
		var m = getID('m_'+rid+'_'+j);
		if(!m) continue;
		if(j == i) {
			m.style.filter = 'gray()';
		}
		else {
			m.style.filter = 'none';
		}
	}
}

function skrt_zvetsit(a)
{
	var maxi = getID('maxi');
	maxi.innerHTML = '<img src="'+a.href+'" alt="'+a.href+'" />';
	maxi.style.display='block';
	return false;
}

function ShowTruckHelp()
{
	var div = getID('truckhelp');
	div.style.display = 'block';

	return false;
}

