var datumChache= new Array();
var IE = checkIE();

var window_fullscreen;

// -----------------------------------------------------------------------------

// -----------------------------------------------------------------------------
// --------------------------- FORMULAROVE FUNKCIE -----------------------------
// -----------------------------------------------------------------------------

// -----------------------------------------------------------------------------
// --------------------------- GEOMETRICKE FUNKCIE -----------------------------
// -----------------------------------------------------------------------------

//funkcia zisti ci maju dva obdlzniky prienik
function prienik(A,B){
	var prienik = false;
	for (var i=0;i<B.length;i++){
			if (
				B[i][0] >= A[0][0] &&
				B[i][0] <= A[1][0] &&
				B[i][1] >= A[0][1] &&
				B[i][1] <= A[3][1]
			) {prienik = true}
	}
	return prienik;
}

function getY( oElement ){
	//var oElement = $(id);
	iReturnValue = 0;
	while( oElement != null ) {
		iReturnValue += oElement.offsetTop;
		oElement = oElement.offsetParent;
	}
	return parseInt(iReturnValue,10);
}

function getX( oElement ){
	//var oElement = $(id);
	var iReturnValue = 0;
	while( oElement != null ) {
		iReturnValue += oElement.offsetLeft;
		oElement = oElement.offsetParent;
	}
	return parseInt(iReturnValue,10);
}

function getComputedWidth(el){
		if(!document.defaultView){
				var tmphght = el.offsetWidth - 8; //ie shit fix
		}
		else{
			var tmphght = 0;
			if (document.defaultView.getComputedStyle(el,"")){
				if (document.defaultView.getComputedStyle(el,"").getPropertyValue('width')){
					var tmphght1 = document.defaultView.getComputedStyle(el, "").getPropertyValue("width");
					var tmphght = tmphght1.split('px');
					tmphght = tmphght[0];
				} else {
					//alert('error2');
				}
			} else {
				//alert('error1');
			}
		}
        return parseInt(tmphght,10);
		/*alert(el.innerHTML+' : '+tmphght+' : '+el.offsetWidth);
		return el.offsetWidth;*/
}

function getComputedHeight(el){
		if(IE){
				var tmphght = el.offsetHeight;
		}
		else{
			var tmphght = 0;
			if (document.defaultView.getComputedStyle(el,"")){
				if (document.defaultView.getComputedStyle(el,"").getPropertyValue('height')){

					var tmphght1 = document.defaultView.getComputedStyle(el, "").getPropertyValue("height");
					var tmphght = tmphght1.split('px');
					tmphght = tmphght[0];
				} else {
					//alert('error2H');
				}
			} else {
				//alert('error1H');
			}
		}
		return parseInt(tmphght,10);
}

// -----------------------------------------------------------------------------

Array.prototype.inArray = function (value)
// Returns true if the passed value is found in the
// array. Returns false if it is not.
{
	var i;
	for (i=0; i < this.length; i++) {
		// Matches identical (===), not just similar (==).
		if (this[i] === value) {
			return true;
		}
	}
	return false;
};

Array.prototype.search = function (value)
// Returns true if the passed value is found in the
// array. Returns -1 if it is not.
{
	var i;
	for (i=0; i < this.length; i++) {
		// Matches identical (===), not just similar (==).
		if (this[i] === value) {
			return i;
		}
	}
	return -1;
};

function trueDate(){
	this.d = new Date();
	this.offset = this.d.getTimezoneOffset()*60 + TIMEZONE_OFFSET;
	this.d.setTime(this.d.getTime()+this.offset*1000);

	this.convert=function(time){
		return time+this.offset*1000;
	}

	this.getDate=function(){
		return this.d.getDate();
	}

	this.getDay=function(){
		return this.d.getDay();
	}

	this.getFullYear=function(){
		return this.d.getFullYear();
	}

	this.getHours=function(){
		return this.d.getHours();
	}

	this.getMilliseconds=function(){
		return this.d.getMilliseconds();
	}

	this.getMinutes=function(){
		return this.d.getMinutes();
	}

	this.getMonth=function(){
		return this.d.getMonth();
	}

	this.getSeconds=function(){
		return this.d.getSeconds();
	}

	this.getTime=function(){
		return this.d.getTime()-this.offset*1000;
	}

	this.getYear=function(){
		return this.d.getYear();
	}

	this.parse=function(){
		return this.d.parse();
	}

	this.setDate=function(day){
		this.d.setDate(day);
	}

	this.setFullYear=function(year,month,day){
		month = typeof(month) != 'undefined' ? month : this.d.getMonth();
		day = typeof(day) != 'undefined' ? day : this.d.getDate();
		this.d.setFullYear(year,month,day);
	}

	this.setHours=function(hour,min,sec,millisec){
		min = typeof(min) != 'undefined' ? min : this.d.getMinutes();
		sec = typeof(sec) != 'undefined' ? sec : this.d.getSeconds();
		millisec = typeof(millisec) != 'undefined' ? millisec : this.d.getMilliseconds();
		this.d.setHours(hour,min,sec,millisec);
	}

	this.setMilliseconds=function(millisec){
		this.d.setMilliseconds(millisec);
	}

	this.setMinutes=function(min,sec,millisec){
		sec = typeof(sec) != 'undefined' ? sec : this.d.getSeconds();
		millisec = typeof(millisec) != 'undefined' ? millisec : this.d.getMilliseconds();
		this.d.setMinutes(min,sec,millisec);
	}

	this.setMonth=function(month,day){
		day = typeof(day) != 'undefined' ? day : this.d.getDate();
		this.d.setMonth(month,day);
	}

	this.setSeconds=function(sec,millisec){
		millisec = typeof(millisec) != 'undefined' ? millisec : this.d.getMilliseconds();
		this.d.setSeconds(sec,millisec);
	}

	this.setYear=function(year){
		this.d.setYear(year);
	}

	this.setTime=function(time){
		this.d.setTime(time+this.offset*1000);
	}

	this.toSource=function(){
		return this.d.toSource();
	}

	this.toString=function(){
		return this.d.toString();
	}

	this.toTimeString=function(){
		return this.d.toTimeString();
	}

	this.valueOf=function(){
		return this.d.valueOf();
	}

};

// -----------------------------------------------------------------------------

function linky_delete(id){
	document.ajax('main.php?modul=ext&task=fleet_ajax','link_delete='+id,'linky_delete_return');
	return false;
}

function linky_delete_return(args){
	if (args[0]){
		if (args[0]['status'] > 0){
			var el = $('li_'+args[0]['id']);
			var bla = el.parentNode.childNodes;

			var kids = 0;
			for (var i =0;i<bla.length;i++)
			{
				if(bla[i].id){
					if(bla[i].id.indexOf('li_') >= 0){
						kids++;
					}
				}
			}
			if (kids == 1){
				$('moje_linky_box').style.display = 'none';
			}
			el.parentNode.removeChild(el);
			return true;
		} else alert('SYSTEM ERROR CODE '+args[0]['status']);
	}
	return false;
}

// -----------------------------------------------------------------------------

function linky_editovat(){
	var linky = $('moje_linky');

	if (linky.className.indexOf('disabled') == -1) { 
		linky.className = linky.className+' disabled';
		var mojform = $('moj_form');
		if (mojform.className.indexOf('disabled') == -1) {mojform.className = mojform.className+' disabled';}
	} else { 
		linky.className = linky.className.replace(/\bdisabled\b/,''); 
	}
	

}

function linky_pridat(){
	var mojform = $('moj_form');
	var frm = mojform.parentNode;

	var clr = (frm.elements['id'].value != 'NEW');


	if (clr){
		frm.elements['id'].value = 'NEW';
		frm.elements['url'].value = '';
		frm.elements['nazov'].value = '';
	} else {
		if (mojform.className.indexOf('disabled') == -1) { 
			 mojform.className = mojform.className+' disabled';
		} else {
			mojform.className = mojform.className.replace(/\bdisabled\b/,''); 
		}
	}

}

function undisable(id){
	var el = $(id);
	if (el){
		if (el.className.indexOf('disabled') == -1) {el.className = el.className+' disabled';}
		else {el.className = el.className.replace(/\bdisabled\b/,'');}
	}
}

function edituj_linku(el,id){
	var a = el.parentNode.parentNode.getElementsByTagName('a');
	var mojform = $('moj_form');
	var frm = $('formular');

	if (a[0] && frm && mojform){
		if (mojform.className.indexOf('disabled') != -1)
			{mojform.className = mojform.className.replace(/\bdisabled\b/,'');}
		frm.elements['nazov'].value = a[0].innerHTML;
		frm.elements['url'].value = a[0].href;
		frm.elements['id'].value = id;
	} else {
		alert('Chyba v JavaScripte. Stlacte F5 pre obnovu stranky');
	}


}

function hodiny_top(){
	var str = $('hodiny_top').innerHTML;

	dnes=new trueDate();

	hodin=dnes.getHours();
	minut=dnes.getMinutes();
	sekund=dnes.getSeconds();

	cas=((hodin<10) ? "0" : "")+hodin;
	cas+=((minut<10) ? ":0" : ":")+minut;
	//cas+=((sekund<10) ? ":0" : ":")+sekund; 

	$('hodiny_top').innerHTML=cas;
	setTimeout("hodiny_top()",1000);
}

MD=({
    ajax:function(u,p,f)
    {
        //if(this.htr!=null){document.htr.abort();document.htr=null;}
		//if(this.htr!=null) {document.ajaxexec(f,'[]');}
        this.htr=new Ajax(u,{
            method:'post',
            postBody:p,
			onFailure: function(res){
				document.ajaxexec(f,'[]');
			},
            onComplete:function(res)
            {
				//kontrola obsahu, aby sme tam nedali daku ftakovinu ale vazne format [...]
				var pattern = /^\[.*?\]$/
				if (res.match(pattern) === null){
					res = '[]'; 
				}
                //document.htr=null;
                document.ajaxexec(f,res);
            }}).request();
    },
    ajaxexec:function(fun,param)
    {
        eval(fun+'('+param+');');
    }
});

window.addEvent('domready', function()
{
    $extend(document,MD);
});


// -----------------------------------------------------------------------------

//otestuje ci je hodnota elementu el cislo
function test_number(el){
	el.value=el.value.replace(',','.');
	if (isNaN(el.value) || el.value < 0){
		if (el.className.indexOf('errorinput') == -1) {el.className = el.className+' errorinput';}
	} else {
		el.value=el.value.replace('-','');
		if (el.className) {el.className = el.className.replace(/\berrorinput\b/,'');}
	}
}

function valid_email(totok){
	if (!valid_empty(totok)){
		return false;
	}
	if (totok.value){
		var email = totok.value;
		var pattern=/^(?:[\s]*(?:(?:(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\.?)+@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9]))|(?:[\sA-Za-z0-9!#$%&'*+/=?^_`{|}~-]*<(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\.?)+@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9]))>)[\s]*(?:,|$))+$/
		var matchArray = email.match(pattern);
		if (matchArray == null){
			set_error(totok);
		} else {
		  unset_error(totok);
		  return true;
		}

	}
	return false;
}

// -----------------------------------------------------------------------------

function valid_phone(totok){
	if (!valid_empty(totok)){
		return false;
	}
	if (totok.value){
		var phone = totok.value;
		var pattern=/^(?:[\s]*(?:(?:[+]*[0-9]{10,})|ALARM)[\s]*(?:,|$))+$/
		var matchArray = phone.match(pattern);
		if (matchArray == null){
			set_error(totok);
		} else {
		  unset_error(totok);
		  return true;
		}

	}
	return false;
}

// -----------------------------------------------------------------------------

function valid_empty(totok){
	if (totok.value != ''){
		unset_error(totok);
		return true;
	} else {
		set_error(totok);
	}
	return false;
}

// -----------------------------------------------------------------------------

function check_time(totok){
  if (totok.value){
  	  //totok.value = totok.value.replace(/\s/,'');
	  dateStr = totok.value;
	  //var datePattern = /^(\d{1-2}):(\d{1-2})$/;
	  var datePattern = /^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9])$/;
	  var matchArray = dateStr.match(datePattern);

	  //Checkuje format casu
	  if (matchArray === null) {
	  //alert('Zly format casu!');
		return set_error(totok);
	  }
	  else {
		  var hod = matchArray[1];
		  var min  = matchArray[2];


		  if(hod < 0 || hod > 23) {
		//  	alert('Neexistujuca hodina!');
			return set_error(totok);
		  }
		  if(min < 0 || min > 59) {
		 // 	alert('Neexistujuca minuta!');
			return set_error(totok);
		  }

		  unset_error(totok);
		  return true;
	  }

  }else {return false;}
}

// -----------------------------------------------------------------------------

//ocheckuje datum
function check_date(totok){
  if (totok.value){
	  dateStr = totok.value;
	  //var datePattern = /^(\d{2})\.(\d{2})\.(\d{2})$/;
	  var datePattern = /^([0-9]|[0-2][0-9]|[3][0-1])\.(\d{2})\.(\d{2})$/;
	  var matchArray = dateStr.match(datePattern);

	  //Check valid format
	  if (matchArray === null) { 
	  //alert('Zly format datumu!');
		return set_error(totok)
	  }
	  else {
		  day   = matchArray[1];
		  month = matchArray[2];
		  year  = matchArray[3];
		 
		  if (
		  	(month < 1 || month > 12) ||
			(day < 1 || day > 31) ||
			((month==4 || month==6 || month==9 || month==11) && day>30) 
		  )  {return set_error(totok);}
		  
		  unset_error(totok);
		  return true;
	  }
  } else {return false;}
}


// -----------------------------------------------------------------------------

function isFormChange(el){
	var change = false;
	for(var i=0;i<el.elements.length;i++){
		if (el.elements[i].type == 'text' || el.elements[i].type == 'textarea' || el.elements[i].type == 'password'){
			if (el.elements[i].value != el.elements[i].defaultValue){change = true;}
		} else if (el.elements[i].type == 'checkbox' || el.elements[i].type == 'radio'){
			if (el.elements[i].checked != el.elements[i].defaultChecked){change = true;}
		} else if (el.elements[i].type == 'select-one' || el.elements[i].type == 'select-multiple'){
			var sel = el.elements[i];
			for (var ii=0; ii < sel.length; ii++){
				if (sel.options[ii].selected != sel.options[ii].defaultSelected){change = true;}
			}
		}
	}
	return change;
}

// -----------------------------------------------------------------------------

function fleet_exit(el){
	if (isFormChange(el)){
		return (window.confirm(_FLEET_52));
	} else return true;
}

// -----------------------------------------------------------------------------

function fleet_delete(el){
	if (window.confirm('Prajete si vazne vymazat zaznam?')){
		el.form.onsubmit = null;
		el.form.action = 'main.php?modul=ext&task=fleet_delete';

		return true;
	} else {
		return false;
	}
}

// -----------------------------------------------------------------------------

function fleet_validForm(el){
	var alrt = false;
	var istermin = false;
	var istacho = false;
	var termin = false;
	var tacho = false;
	var isnote = false;

	for(var i=0;i<el.elements.length;i++){
		if (el.elements[i].name == 'datum'){
			var datum = el.elements[i].value;
		}
		if (el.elements[i].name == 'cas'){
			var cas = el.elements[i].value;
		}
		if (el.elements[i].name == 'nazov' && el.elements[i].value==''){
			set_error(el.elements[i]);
			alert(_FLEET_49);
			alrt = true;
		}
		if (el.elements[i].name == 'termin_check'){
			istermin = true;
			termin = el.elements[i].checked;
		}
		if (el.elements[i].name == 'tacho_check'){
			istacho = true;
			tacho = el.elements[i].checked;
		}
		if (el.elements[i].name.indexOf('nt[') == 0){
			if (el.elements[i].checked == true){
				isnote = true;
			}
		}
		if (el.elements[i].name.indexOf('memo[') == 0 && el.elements[i].value == '' && el.elements[i].disabled==false ){
			var okk= false;
			if (el.elements[i].className){
				if (el.elements[i].className.indexOf('nocheck') >=0){
					okk = true;
				}
			}
			if (!okk){
				set_error(el.elements[i]);
				alert(_FLEET_49);
				alrt = true;
			}
			
		}
		if (el.elements[i].className){
			if (el.elements[i].className.indexOf('error') >= 0){
				el.elements[i].focus();
				if (!alrt){
					alert(_FLEET_50);
				}
				return false;
			}
		}
	}
	//kontrola zaskrtnutia tacha || terminu
	if ((istermin || istacho) && isnote){
		if (!termin && !tacho){
			alert(_FLEET_51);
			return false;
		}
	} else if ((istermin || istacho) && !isnote){
		if (datum && cas){
			var now = new trueDate();

			var datePattern = /^(\d{2}).(\d{2}).(\d{4})$/;
			var matchArray = datum.match(datePattern);

			if (matchArray != null){
				var datum = new trueDate();
				datum.setMonth(matchArray[2]-1,matchArray[1]);
				datum.setYear(matchArray[3]);
				
				datePattern = /^(\d{2}):(\d{2})$/;
				matchArray = cas.match(datePattern);
				if (matchArray != null){
					datum.setHours(matchArray[1],matchArray[2],0,0);
					if (datum > now ){
						return window.confirm(_FLEET_58);
					}
				}
			} else {
				alert(_FLEET_50);
				return false;
			}
		}
	}
	return true;
}

// -----------------------------------------------------------------------------

function fleet_deleteFile(id,name){
	var quest = _FLEET_30.replace('%s','`'+name+'`');
	if (window.confirm(quest))
		document.ajax('main.php?modul=ext&task=fleet_ajax','delete='+id,'fleet_deleteFile_return');
	return false;
}

function fleet_deleteFile_return(args){
	if (args[0]){
		if (args[0]['status'] > 0){
			var el = $('files_'+args[0]['id']);
			var bla = el.parentNode.childNodes;

			var kids = 0;
			for (var i =0;i<bla.length;i++)
			{
				if(bla[i].id){
					if(bla[i].id.indexOf('files_') >= 0){
						kids++;
					}
				}
			}
			if (kids == 1){
				$('prilohy').style.display = 'none';
			}
			el.parentNode.removeChild(el);
			return true;
		} else alert('SYSTEM ERROR CODE '+args[0]['status']);
	}
	return false;
}

// -----------------------------------------------------------------------------

function fleet_cancelNote(id){
	document.ajax('main.php?modul=ext&task=fleet_ajax','note='+id+'&value=0','fleet_cancelNote_return');
	return false;
}

function fleet_setNote(el,id){
	for (var i=0;i<el.length;i++){
		if (el.options[i].selected == true){
			var value = el.options[i].value;
		}
	}
	if (value){
		document.ajax('main.php?modul=ext&task=fleet_ajax','note='+id+'&value='+value,'fleet_cancelNote_return');
	}
	return false;
}

function fleet_cancelNote_return(args){
	if (args[0]){
		if (args[0]['status'] > 0){
			var el = $('note_'+args[0]['id']);
			el.style.display='none';
			el.innerHTML = '<td></td>';

			var bla = el.parentNode.childNodes;

			var kids = 0;
			for (var i =0;i<bla.length;i++)
			{
				if(bla[i].id){
					if(bla[i].style.display !='none'){
						kids++;
					}
				}
			}
			if (kids == 0){
				window.opener.location.reload()
				window.close();
			}
		} else {alert(args[0]['status']);}
	}
	return false;
}

function fleet_cancelAllNotes(el){
			var bla = el.childNodes;
			var keyword = 'note_';
			for (var i =0;i<bla.length;i++)
			{
				if(bla[i].id){
					var pos = bla[i].id.indexOf('note_');
					if (pos >= 0){
						var id = bla[i].id.substr(keyword.length);
						if (!isNaN(id)){
							fleet_cancelNote(id);
						}
					}
				}
			}
}

// -----------------------------------------------------------------------------

function fleet_note(sec_left){

	if (sec_left<=0){
		var leftVal = (screen.width - 640) / 2;
		var topVal = (screen.height - 530) / 2;
		window.open(
			'main.php?modul=ext&task=fleet_note',
			'notifikacia',
			'width=640,height=530,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes,top='+topVal+',left='+leftVal,
			true
		);
		return true;
	} else {
		sec_left = sec_left-1;
		setTimeout('fleet_note('+sec_left+')', 1000); //presnost na sekundu
	}

}

// -----------------------------------------------------------------------------

function schovajZobraz(totok,id){
	el = $(id);
	if (el){
		el.style.display = 'block';
	}
	totok.style.display = 'none';
}

function showHide(id,totok,text_on,text_off){
	el = $(id);
	if (el){
		if (el.style.display == 'block'){
			el.style.display = 'none';
			totok.innerHTML = text_on;
		} else {
			el.style.display = 'block';
			totok.innerHTML = text_off;
		}
	}
}

function on_off(totok,name){
	var el = totok.form.elements[name];

	if (el){
		if (el.disabled){
			el.disabled = false;
			el.className = el.className.replace(/\bdisabled\b/,'');
		}
		else {
			el.disabled = true;
			el.className = el.className+ ' disabled';
			el.className = el.className.replace(/\berrorinput\b/,'');
			el.className = el.className.replace(/\berrorformat\b/,'');
		}
	}
}

// -----------------------------------------------------------------------------

function checkIE(){
    var rv = 0; // Return value assumes failure.
	if (navigator.appName == 'Microsoft Internet Explorer') {
		var ua = navigator.userAgent;

		//detekujeme, ci je IE 8 (klucove slovo Trident - ale je mozne, ze to mrkwosoft zmeni)
		var re = new RegExp("Trident\/([0-9]{1,}[\.0-9]{0,})");
		if (re.exec(ua) != null) {
			//rv = parseFloat(RegExp.$1);
			rv =  8;
		} else {
			var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
			if (re.exec(ua) != null)
				rv = parseFloat(RegExp.$1);
		}
	}
	return rv;
}


function iebug(text){
	if (IE){
		if (IE <= 7) alert(text);
	}
}

// -----------------------------------------------------------------------------

function fixElement() {
	if ( /\.png(.*)$/.test( element.currentStyle.backgroundImage.toLowerCase() ) ) {
		imgSrc = element.currentStyle.backgroundImage;
		element.style.backgroundImage = "none";
		element.style.backgroundColor = "transparent";
		imgSrc = imgSrc.replace(/^url\(\"/, "");imgSrc = imgSrc.replace(/\"\)$/, "");
		element.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=’" +
		imgSrc + "‘,sizingMethod=’scale’)";
	}
} 

// -----------------------------------------------------------------------------

function formatFloat(pFloat, pDp){
    var m = Math.pow(10, pDp);
    return parseInt(pFloat * m, 10) / m;
}


function getUnixtime(dateStr) {
  
  if (dateStr){
	  //var datePattern = /^(\d{2}).(\d{2}).(\d{4})$/;
	  var datePattern = /^([0-9]|[0-2][0-9]|[3][0-1])\.(\d{2})\.(\d{4})$/;
	  var matchArray = dateStr.match(datePattern);

	  //Check valid format
	  if (matchArray == null) {return -1;}
	  day   = matchArray[1];
	  month = matchArray[2];
	  year  = matchArray[3];
	 
	  var datum = new trueDate();

	  // check month range
	  if (month < 1 || month > 12) {return -2;}

	  //Check day range
	  if (day < 1 || day > 31) {return -3;}
	  
	  //Check months with 30 days
	  if ((month==4 || month==6 || month==9 || month==11) && day>30) {return -4;}
	  
	  //Check Feb days
	  if (month == 2) {
		  var leapYr = (year%4 == 0 && (year%100 != 0 || year%400 == 0));
		  if (day > 29 || (day>28 && !leapYr)) {return -5;}
	  }
	  datum.setMonth(month-1,day);
	  datum.setYear(year);
	  datum.setHours(0,0,0,0);
	  return (parseInt(datum.getTime() / 1000 ));
  } else return false;
}


function toUnixtime(datum,cas){
	  var datePattern = /^(\d{2}).(\d{2}).(\d{2})$/;
	  var matchArray = datum.match(datePattern);

	  if (matchArray != null){
		  var unixtime = new trueDate();
		  unixtime.setMonth(matchArray[2]-1,matchArray[1]);
		  unixtime.setYear('20' + matchArray[3]);

		  datePattern = /^(\d{2}):(\d{2})$/;
		  matchArray = cas.match(datePattern);
		  if (matchArray != null){
			unixtime.setHours(matchArray[1],matchArray[2],0,0);
			return (parseInt(unixtime.getTime() / 1000 ));
		  }
	}
	return false;

	
}

// -----------------------------------------------------------------------------

function zmen_datum(form){
	if (form){
		var el = new Array('from','to');
		var change = false;
		for (var i=0;i<2;i++){
			if (form[el[i]]){
				var time = getUnixtime(form[el[i]].value);
				if (time > 0){
					form[el[i]].className = form[el[i]].className.replace(/\berrorinput\b/,'');
					if (datumChache[i] != time){
						change = true;
						datumChache[i] = time; //zalohuje do kese
					}
				} else {
					alert ('Datum nie je v spravnom formate!');
					return set_error(form[el[i]]);
				}
			} //endif
		} //endfor
	}
	if ($('btn_odosli_datum')) {if (change) $('btn_odosli_datum').className='button change'};
	return true;
}

// -----------------------------------------------------------------------------

function odosli_mesiac(form,target){
	if (form){
		var link = location.protocol+'//'+location.host+location.pathname;
		if (target){
			link += target;
		} else {
			link += '?modul=kniha';
		}

		if(form['mesiac'] && form['rok']){
			for(var i =0; i< form['mesiac'].options.length;i++){
				if(form['mesiac'].options[i].selected == true)
					var mesiac = form['mesiac'].options[i].value;
			}
			var rok = form['rok'].value;
			var datum = new trueDate();

			datum.setMonth(parseInt(mesiac,10)-1,1);
			datum.setYear(rok);
			link += '&mesiac='+(parseInt(datum.getTime() / 1000 ));
		}
		window.location.replace(link);
		return true;
	}
}

// -----------------------------------------------------------------------------

function odosli_filter(){
	var frm = $('form_edit');
	if (frm.elements['pattern'].value != ''){
		return window.confirm(_EXP_EDIT);
	} else {
		return true;
	}
}

function odosli_datum(form,target,limit,mesiac){
	limit = typeof(limit) != 'undefined' ? limit : 31; //31 dni
	mesiac = typeof(mesiac) != 'undefined' ? mesiac : false; //ci ma odoslat datum fo formate mesiaca
	if (form){
		var link = location.protocol+'//'+location.host+location.pathname;
		if (target){
			link += target;
		} else {
			link += '?modul=kniha&task=edit';
		}
		var el = new Array('from','to');
		var change = false;
		for (var i=0;i<2;i++){
			if (form[el[i]]){
				var time = getUnixtime(form[el[i]].value);
				if (i == 1){
					
					if (time < getUnixtime(form[el[i-1]].value)){
						alert(_CAL_ERROR);
						return set_error(form[el[i-1]]);
					} else if ((time - getUnixtime(form[el[i-1]].value)) > 86400*limit){ //rozsah ma viac ako LIMIT
						if (window.confirm(_CAL_ROZSAH.replace('%x',limit))){
							form[el[i]].className = form[el[i]].className.replace(/\berrorinput\b/,'');
						} else {
							return false;
							//return set_error(form[el[i]]);
						}
					} else {
						form[el[i]].className = form[el[i]].className.replace(/\berrorinput\b/,'');
					}
				}
				if (mesiac){
					if (el[i] == 'from'){
						link = link + '&mesiac='+time;
					}
				} else {
					link = link + '&'+el[i]+'='+time;
				}
			} //endif
		} //endfor
		var ms = $('multiselect');
		var skri = '';
		if (ms && !mesiac){ //multiselect
			if (ms.options){
				for(var i=0;i<ms.options.length;i++){
					if(ms.options[i].selected == true){
						if(skri == ''){
							skri = ms.options[i].value;
						} else {
							skri = skri +','+ ms.options[i].value;
						}
					}
				}
			}
		}
		link += '&skri='+skri;

		//filter
		if (form['pattern']){
			if (form['pattern'].value){
				link += '&pattern='+form['pattern'].value;
			}
		}
		if (form['where']){
			for (var i=0;i<form['where'].options.length;i++){
				if (form['where'].options[i].selected){
					link += '&where='+form['where'].options[i].value;
					break;
				}
			}
		}
	}
	window.location.replace(link);
	return true;
}


// -----------------------------------------------------------------------------
// ----------------------------- GOOGLE FUNKCIE --------------------------------
// -----------------------------------------------------------------------------
var xmlHttp;

function GetXmlHttpObject() {
var xmlHttp=null;
try {
  xmlHttp=new XMLHttpRequest();
}
catch (e) {
  try {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
  catch (e) {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
}
return xmlHttp;
}

function add_gps(data, nazov) { 
xmlHttp=GetXmlHttpObject();
if (xmlHttp===null) {
  return;
} 
var url='main.php?modul=ext&task=add_gps';
url=url+'&data='+data;
nazov = encodeURI(nazov); 
url=url+'&nazov='+nazov;
url=url+'&end=1';
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

function geo_parse_addresses(addresses){

        var country  = '';
        var city     = '';
        var address  = '';

        var res;

        for (var i=0;i<addresses.Placemark.length;i++){
                res = addresses.Placemark[i];
                if (res){
                        if (res.AddressDetails){
                                res = res.AddressDetails.Country;

                                if (res){
                                        //krajina
                                        if (!country){
                                                country = res.CountryNameCode;
                                        }

                                        if (res.AdministrativeArea){
                                                if (res.AdministrativeArea.SubAdministrativeArea){
                                                        res = res.AdministrativeArea.SubAdministrativeArea;
                                                }
                                        }

                                        //mesto
                                        if (!city){
                                                city = res.SubAdministrativeAreaName;
                                                if (city){
                                                        city = city+', ';
                                                } else {
                                                        if (res.Locality){
                                                                city = res.Locality.LocalityName;
                                                                if (city){
                                                                        city = city+', ';
                                                                }
                                                        }
                                                }
                                                if (!city){
                                                        //alert(i+ ' '+JSON.stringify(addresses));
                                                }
                                        }

                                        //adresa
                                        if (!address){
                                                if (res.Locality){
                                                        if (res.Locality.Thoroughfare){
                                                                address = res.Locality.Thoroughfare.ThoroughfareName;
                                                        }
                                                } else {
                                                        if (res.Thoroughfare){
                                                                address = res.Thoroughfare.ThoroughfareName;
                                                        }
                                                }

                                                if (address){
                                                        var num_pos = address.lastIndexOf(' ');
                                                        if (num_pos >= 0){
                                                                var num = address.substr(num_pos+1);
                                                                var street = address.substr(0,num_pos);

                                                                var div_pos = num.lastIndexOf('/');
                                                                if (div_pos >= 0){
                                                                        num = num.substr(div_pos+1);
                                                                }

                                                                address = street+' '+num;
                                                        }

                                                        address = address+', ';
                                                }
                                        }
                                        if (address && city){
                                                break;
                                        }
                    else
                    {
                        var mesto = addresses.Placemark[0].address;

                        return mesto;
                    }
                                }
                        }
                }
        }
        /*
        if (!address){
                alert(JSON.stringify(addresses));
        }
        */
        return address+city+country;
        //return 'ADR:'+address+' CITY:'+city+' COUNT:'+country;
}

/*function geo_parse_addresses(addresses){

	var country  = '';
	var city     = '';
	var address  = '';
	
	var res;

	for (var i=0;i<addresses.Placemark.length;i++){
		res = addresses.Placemark[i];
		if (res){
			if (res.AddressDetails){
				res = res.AddressDetails.Country;

				if (res){
					//krajina
					if (!country){
						country = res.CountryNameCode;
					}

					if (res.AdministrativeArea){
						if (res.AdministrativeArea.SubAdministrativeArea){
							res = res.AdministrativeArea.SubAdministrativeArea;
						}
					}

					//mesto
					if (!city){
						city = res.SubAdministrativeAreaName;
						if (city){
							city = city+', ';
						} else {
							if (res.Locality){
								city = res.Locality.LocalityName;
								if (city){
									city = city+', ';
								}
							}
						}
						if (!city){
							//alert(i+ ' '+JSON.stringify(addresses));
						}
					}

					//adresa
					if (!address){
						if (res.Locality){
							if (res.Locality.Thoroughfare){
								address = res.Locality.Thoroughfare.ThoroughfareName;
							}
						} else {
							if (res.Thoroughfare){
								address = res.Thoroughfare.ThoroughfareName;
							}
						}

						if (address){
							var num_pos = address.lastIndexOf(' ');
							if (num_pos >= 0){
								var num = address.substr(num_pos+1);
								var street = address.substr(0,num_pos);

								var div_pos = num.lastIndexOf('/');
								if (div_pos >= 0){
									num = num.substr(div_pos+1);
								}

								address = street+' '+num;
							}

							address = address+', ';
						}
					}
					if (address && city){
						break;
					}
				}
			}
		}
	}
	
	//if (!address){
	//	alert(JSON.stringify(addresses));
	//}
	
	return address+city+country;
	//return 'ADR:'+address+' CITY:'+city+' COUNT:'+country;
}*/

function reversegeo2(lat, lng, byid, byid2) {
  if(isNumber(lat) && isNumber(lng))
  {
      var latlng = new GLatLng(lat, lng);
      geocoder = new GClientGeocoder();
      geocoder.getLocations(latlng, function(addresses) {
        if(addresses.Status.code != 200) {
          if (addresses.Status.code == 620) {
            reversegeo2(lat, lng, byid, byid2);
          }
        } else {
            /*
          var miesto = addresses.Placemark[0].address;
          var stat = addresses.Placemark[0].AddressDetails.Country.CountryNameCode;
          if (stat.length) {
            if (miesto.lastIndexOf(",") !== false) {
              miesto = miesto.substring(0,miesto.lastIndexOf(","))+", "+stat;
            } else {
              miesto = miesto+", "+stat;
            }
            document.getElementById(byid).innerHTML = osetriData(miesto);
            document.getElementById(byid2).innerHTML = osetriData(miesto);
            add_gps(lat+','+lng, miesto);
          }*/
          var miesto = geo_parse_addresses(addresses);
          if (miesto){
            document.getElementById(byid).innerHTML = osetriData(miesto);
            document.getElementById(byid2).innerHTML = osetriData(miesto);
            add_gps(lat+','+lng, miesto);
          }
        }
      });
  }
}

function isNumber(n)
{
      return !isNaN(n);
}

function reversegeo(lat, lng, byid) {
      

  if(isNumber(lat) && isNumber(lng))
  {
      var latlng = new GLatLng(lat, lng);
      geocoder = new GClientGeocoder();
      geocoder.getLocations(latlng, function(addresses) {
        if(addresses.Status.code != 200) {
          if (addresses.Status.code == 620) {
            reversegeo(lat, lng, byid);
          }
        } else {
        /*
          var miesto = addresses.Placemark[0].address;
          var stat = addresses.Placemark[0].AddressDetails.Country.CountryNameCode;
          if (stat.length) {
            if (miesto.lastIndexOf(",") !== false) {
              miesto = miesto.substring(0,miesto.lastIndexOf(","))+", "+stat;
            } else {
              miesto = miesto+", "+stat;
            }
            document.getElementById(byid).innerHTML = osetriData(miesto);
            add_gps(lat+','+lng, miesto);
          }*/
          var miesto = geo_parse_addresses(addresses);
          if (miesto){
            document.getElementById(byid).innerHTML = osetriData(miesto);
            add_gps(lat+','+lng, miesto);
          }

        }
      });
  }
}

//pridal Rasto, uklada priamo vysledok, nepracuje s dom html
function reversegeo3(lat, lng) {
  var latlng = new GLatLng(lat, lng);
  geocoder = new GClientGeocoder();
  geocoder.getLocations(latlng, function(addresses) {
    if(addresses.Status.code != 200) {
      if (addresses.Status.code == 620) {
        reversegeo3(lat, lng);
      }
    } else {
	  var miesto = geo_parse_addresses(addresses);
	  if (miesto){
        add_gps(lat+','+lng, miesto);
      }
    }
  });
}

//ako argument funkcie je pole nekonecnych gps, viz stiahniPoints v funkcie.php
function SaveLocations(){
	for( var i = 0; i < arguments.length; i++ ) {
		var pozicia = arguments[i];
		if (pozicia.indexOf(" ") !== 0 && pozicia.length) {
			var poz2 = pozicia.split(",");
			reversegeo3(poz2[0], poz2[1]);
		}
	}

}

function geocod() {
	var i = 0; //musime zacat od 0 i ked sa to nezda ;)
	var poz2 = new Array(); 

	var el_od;
	var el_do;
	var el_od_gps;
	var el_do_gps;

	while(1){
		
		//ak i==0 ignoruje sa koniec jazdy a ziska sa zaciatok prvej jazdy.
		id_do = 'pozicia_do_'+i; //koniec tejto jazdy
		id_od = 'pozicia_od_'+(i+1); //zaciatok dalsej jazdy

		el_do = $(id_do);
		el_od = $(id_od);


		if (el_od && el_do){
			
			//dekodujeme gps do pola
			if (el_od.innerHTML.indexOf(" ") !== 0 && el_od.innerHTML.length) {
				el_od_gps = el_od.innerHTML.split(',');
			}
			if (el_do.innerHTML.indexOf(" ") !== 0 && el_do.innerHTML.length) {
				el_do_gps = el_do.innerHTML.split(',');
			}

			//rovnaky start i koniec - setrime dotazy na google
			if (el_od.innerHTML == el_do.innerHTML){
				reversegeo2(el_od_gps[0], el_od_gps[1],id_od,id_do);
			} else {
				reversegeo(el_od_gps[0], el_od_gps[1],id_od);
				reversegeo(el_do_gps[0], el_do_gps[1],id_do);
			}
		} else if (el_od){
			//dekodujeme gps do pola
			if (el_od.innerHTML.indexOf(" ") !== 0 && el_od.innerHTML.length) {
				el_od_gps = el_od.innerHTML.split(',');
				reversegeo(el_od_gps[0], el_od_gps[1],id_od);
			}
		} else if (el_do){
			//dekodujeme gps do pola
			if (el_do.innerHTML.indexOf(" ") !== 0 && el_do.innerHTML.length) {
				el_do_gps = el_do.innerHTML.split(',');
				reversegeo(el_do_gps[0], el_do_gps[1],id_do);
			}

		//nenasleduje dalsie cislo, ukoncime cyklus
		} else {
			break;
		}
		i++;
	}
/*
  var pozicia = document.getElementById("pozicia_od_"+i);
  if (pozicia) {
    pozicia = pozicia.innerHTML;
    if (pozicia.indexOf(" ") !== 0 && pozicia.length) {
      poz2 = pozicia.split(",");   
      reversegeo(poz2[0], poz2[1],"pozicia_od_"+i);
    } 
  }    
  while(1) {
    var pozicia2 = document.getElementById("pozicia_do_"+i);
    if (pozicia2) {      
      pozicia2 = pozicia2.innerHTML;
      pozicia = document.getElementById("pozicia_od_"+(i+1));
      if (pozicia) {
        pozicia = pozicia.innerHTML;
        if (pozicia == pozicia2) {
          if (pozicia2.indexOf(" ") !== 0 && pozicia2.length) {
            poz2 = pozicia2.split(",");
            reversegeo2(poz2[0], poz2[1],"pozicia_do_"+i,"pozicia_od_"+(i+1));
          }
        } else {
          if (pozicia2.indexOf(" ") !== 0 && pozicia2.length) {
            poz2 = pozicia2.split(",");
            reversegeo(poz2[0], poz2[1],"pozicia_do_"+i);
          }
          if (pozicia.indexOf(" ") !== 0 && pozicia.length) {
            poz2 = pozicia.split(","); 
            reversegeo(poz2[0], poz2[1],"pozicia_od_"+(i+1));
          }
        }
      } else {
        if (pozicia2.indexOf(" ") !== 0 && pozicia2.length) {
          poz2 = pozicia2.split(",");
          reversegeo(poz2[0], poz2[1],"pozicia_do_"+i);
        }
      }
    } else {
      break;
    }
    i = i + 1;
  }*/
}

function geocod2() {
  var i = 1;
  var poz2 = new Array(); 
  while(1) {
    var pozicia = document.getElementById("pozicia_"+i);
    if (pozicia) {
      pozicia = pozicia.innerHTML;
      if (pozicia.indexOf(" ") !== 0 && pozicia.length) {
        poz2 = pozicia.split(",");
        reversegeo(poz2[0], poz2[1],"pozicia_"+i);
      } 
    } else {
      break;
    }
    i = i + 1;
  }
}

function osetriData(str){
	var ciarka = str.indexOf(',');
	if (ciarka){
		miesto = str.substr(0,ciarka);
		cislo = ''+parseInt(miesto,10);
		if (miesto.length == cislo.length && cislo != 'NaN'){ //je to ciste ciselne oznacenie (aby nenaslo 11. augusta)
			str = _CESTA+' '+str;
		}
	}
	return str;
}

function vsetko(totok,nazov) {
	var el = totok.form.elements;

	if (totok.checked){
		var chck = true;
	} else {
		var chck = false;
	}

	for (var i=0;i<el.length;i++){
		if (el[i].name.indexOf(nazov) >= 0){
			el[i].checked = chck;

			var id = el[i].name.replace(nazov+'_','');
			view_sel_tr(el[i],id);
			
		}
	}

}

function hlavny(nazov,id) {
  document.getElementById('form_0').disabled=false;
  var aaa=document.getElementById(nazov+'_'+id).checked;
    if (aaa===false) {
      document.getElementById(nazov+'_all').checked=false;
    }
}

function povol() {
  document.getElementById('form_0').disabled=false;
}

function zrus(aa) {
  document.getElementById(aa).checked = false;
  if (aa.indexOf("del") != -1) {
    document.getElementById('del_all').checked = false;
  } else {
    document.getElementById('akt_all').checked = false;
  }

} 

function zmen() {
  var own_new = $('own_new');
  var sel_add = $('sel_add');
  if (own_new){
   own_new.value = $('own_new_x').value;
  }
  if (sel_add){
   sel_add.value = $('sel_add_x').value;
  }
}

function premen() {
  document.getElementById('xxx_new').value = '';
}

function view_check_form(frm){
	var checked = false;
	var checked_del = false;
	var chb  = 0;
	var del  = 0;
	var pozn = 0;
	var ch_pozn = false;
	var new_div = $('new_div');
	var new_div_x = $('new_div_x');
	var view_new   = false;
	var view_new_x = false;
	for(var i=0;i<frm.elements.length;i++){
		if (frm.elements[i].name.indexOf('akt_') == 0 && frm.elements[i].type == 'checkbox'){
			chb++;
			if (frm.elements[i].checked == true){
				checked = true;
			}
		} else if (frm.elements[i].name.indexOf('del_') == 0 && frm.elements[i].type == 'checkbox'){
			del++;
			if (frm.elements[i].checked == true){
				checked_del = true;
			}
		} else if (frm.elements[i].name.indexOf('pozn_') == 0 && frm.elements[i].name != 'pozn_new' && frm.elements[i].type == 'text'){
			pozn++;
			if (frm.elements[i].value != frm.elements[i].defaultValue){
				ch_pozn = true;
			}
		}
	}
	if (ch_pozn && pozn){
		return true;
	}
	else if (!checked_del && !checked && del && new_div.style.display=='none'){
		alert(_VIEW_NODEL);
		return false;
	}
	else if ((!checked && !checked_del && chb)){ //ak existuje aspon jeden checkbox vo formulari ale nie je checknuti
		alert(_VIEW_NODEV);
		return false;
	} else {
		if (!checked_del){
			if (new_div_x){
				if (new_div_x.style.display != 'none'){
					view_new_x = true;
					if (frm.elements['own_new_x'].value == ''){
						alert(_VIEW_NOSEL);
						frm.elements['own_new_x'].focus();
						return false;
					}
				}
			}
			if (new_div.style.display != 'none'){
                view_new = true;
				if (frm.elements['own_new'].value == ''){
					alert(_VIEW_NOOWN);
					frm.elements['own_new'].focus();
					return false;
				}
			}
			if (!view_new_x && !view_new){
				view_switch('new_div_x','new_div',$('view_button2'),'view_button1')
				alert(''+_VIEW_NOSEL);
				return false;
			}
		}
		return true; 
	}
}

function view_sel_tr(totok,rowId){
	var row = $('tr_'+rowId);
	if (row){
		if (totok.checked){
			if (row.className){
				row.className = row.className+ 'sel';
			} else {
				row.className = 'sel';
			}
		} else {
			if (row.className){
				row.className = row.className.replace(/sel/,'');
			} else {
				row.className = '';
			}
		}
	}
}

function switch_div(totok,id1,id2,ih1,ih2){
	var div1 = $(id1);
	var div2 = $(id2);

	if (div1 && div2){
		if (div1.style.display == 'none'){
			div1.style.display = 'block';
			div2.style.display = 'none';
			totok.innerHTML=ih1;
		} else {
			div1.style.display = 'none';
			div2.style.display = 'block';
			totok.innerHTML=ih2;
		}
	}
	return false;
}

function view_showhide(id,totok) {
  var el = $(id);
  if (el.style.display == 'none'){
    el.style.display = 'block';
	if (totok){
		totok.className = totok.className+' act';
	}
  } else {
  	el.style.display = 'none';
	if (totok){
		totok.className = totok.className.replace(/\b act\b/,'');
	}
  }

  return false;
}

function view_switch(id,id2,totok,button2Id,submitId){
	
  var el = $(id);
  var el2 = $(id2);
  var button2 = $(button2Id);

  if (el.style.display == 'none'){
    if (el2 && button2){
        if (el2.style.display != 'none'){
            el2.style.display = 'none';
        }
        if (button2.className.indexOf('act') >= 0){
            button2.className = button2.className.replace(/\b act\b/,'');

        }
    }
    el.style.display = 'block';
	totok.className = totok.className+' act';
  } else {
  	el.style.display = 'none';
	totok.className = totok.className.replace(/\b act\b/,'');
  }
  if (submitId){
  	var submit = $(submitId);
	  if (submit.style.display == 'none'){
		if (el.style.display != 'none' || el2.style.display != 'none'){
			submit.style.display = 'block';
		}
	  } else {
		if(el.style.display == 'none' && el2.style.display == 'none') {
			submit.style.display = 'none';
		}
	  }
	}
	return false;
}

function hide_div() {
  document.getElementById('new_div_x').style.display = 'none';
  return false;
}

function zakaz(totok) {
  /*document.getElementById('form_0').disabled=true;*/
  document.getElementById('pop_add').innerHTML = NAH_POPIS;

	var els = totok.form.getElementsByTagName('td');
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)pop(\\s|$)");
	for (var i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			var num = els[i].id.substr(4);
			//els[i].innerHTML = num;
			var sel = $('sel_'+num);
			if (sel){
				for (var k=0;k<sel.options.length;k++){
					sel.options[k].selected = sel.options[k].defaultSelected;
				}
			}
			if (num < 99 && num>=0) popis(num);
			j++;
		}
	}

  var pop_add_x = $('pop_add_x');
  if (pop_add_x){
  	pop_add_x.innerHTML = NAH_POPIS;
  }
}

function mapa_full(url){
	window_fullscreen = window.open('?modul=ext&task=mapa_all_popup&url='+url,'fullscreen','top=0,left=0,width='+screen.availWidth+',height='+screen.availHeight+'fullscreen=1,channelmode=yes');
	resizeTo(screen.availWidth,screen.availHeight);
	//var mapa_tutok = window.frames['gmap'].document.getElementById('map');
	return false;
}

function mapa_full_close(){
	if (window_fullscreen.frames){
		window_fullscreen.close();
	} else {
		var frame = $('map_frame');
		if (frame){
			frame.className = 'map_frame';
		}
	}

	return false;
}

//----------------------------- DEVICE SELECTION --------------------------
var wrapper_fx;
var load_fx;
var load_div;
var LOADING = false;


function fx_start(){
	if (LOADING){
		/*
		load_div.style.display='block';
		load_div.style.width='100%';
		load_div.style.height='100%';
		load_div.style.background='url(/templates/zadako/images/ajax-loader.gif) 50% center no-repeat';
		*/
		load_div.style.zIndex=4000;
		wrapper_fx.start({'opacity' : 0.4});
		load_fx.start({'opacity' : 1});
	}
}

function load_on(){
	
	if (wrapper_fx == null){
		wrapper_fx = new Fx.Styles('wrapper', {duration: 500}); //for MooTools 1.1
	}
	if (load_fx == null){
		load_fx = new Fx.Styles('load', {duration: 500}); //for MooTools 1.1
	}
	if (load_div == null){
		load_div = $('load');
	}
	setTimeout(fx_start,500);
	//wrapper_fx.start.delay(500, wrapper_fx, { 'opacity' : 0.4 });
	//load_fx.start.delay(500, load_fx, { 'opacity' : 1 });
	LOADING = true;
	
}

function load_off(){
	LOADING = false;
	wrapper_fx.stop();
	wrapper_fx.start.delay(1, wrapper_fx, {'opacity' : 1});
	load_fx.stop();
	load_fx.start.delay(1, load_fx, {'opacity' : 0});
	load_div.style.zIndex=-1;
}

function device_selection(id,el){

if (el.className == 'square'){
	device_selection_add(id);
	
} else {
	device_selection_remove(id);
}
return false;
}

function device_selection_dss(id){
var dss = $('dss_'+id);
if (dss){
	if (dss.className == 'square'){
		dss.className = 'square_sel';
		} else {
			dss.className = 'square';
		}
	}
}

function device_selection_delete(){
	return window.confirm(_SEARCH_DS_DELETE);
}

function show_filter(){
	var val = ($('filter_wrapper').style.display=='none')?'1':'0';
	load_on();
	document.ajax('main.php?modul=ext&task=device_selection','show_filter='+val,'show_filter_return');
	return false;
}

function show_filter_return(args){
	load_off();
	if(args[0]['show_filter'] !== null){
		var display = (args[0]['show_filter'] == 1)?'block':'none';
		$('filter_wrapper').style.display=display;
	}

}

function device_selection_add(id){
	load_on();
	document.ajax('main.php?modul=ext&task=device_selection','add='+id,'device_selection_add_return');
	return false;
}

function device_selection_remove(id){
	load_on();
	document.ajax('main.php?modul=ext&task=device_selection','remove='+id,'device_selection_remove_return');
	return false;
}

//najdeme poslednu polozku pageru...
function pager_last_id(pg,limit){
	var last=0;
	var pgs=0;
	for (var i=0;i<pg.childNodes.length;i++){
		if (pg.childNodes[i].id){
			last = i;
			pgs++;
			if (limit > 0){
				if (pgs-1 == limit) break;
			}
		}
	}
	return last;
}


function device_selection_add_return(args){
	if (args[0]){
		load_off();
		if(args[0]['id']){
			var ds = $('ds_all');
			var OK = false;
			for (var i=0; i<ds.childNodes.length; i++){
				if(ds.childNodes[i].id){
					if (ds.childNodes[i].id.indexOf('ds_') >= 0){
						OK = true;
					}
				}
			}
			if (!OK){
				$('device_selection').style.display='block';
			}
			var newdiv = document.createElement('div');
			newdiv.setAttribute('id','ds_'+args[0]['id']);
			if (args[0]['selected']){
				newdiv.setAttribute('class','selected');
			}
			var title = (args[0]['spz'])?args[0]['spz']:args[0]['nazov'];
			newdiv.innerHTML = '<a href="?device='+args[0]['id']+'" title="'+args[0]['nazov']+'">'+title+' ['+args[0]['id']+']</a>'+
			'<a class="rem" href="#" onclick="return device_selection_remove('+args[0]['id']+')">x</a>';
			ds.appendChild(newdiv);
			device_selection_dss(args[0]['id']);

			var selection_size = $('selection_size');
			if (selection_size){
				var selection_size_int = parseInt(selection_size.innerHTML);
				selection_size.innerHTML = (selection_size_int+1);
			}

			//odobere polozku pageru
			if (typeof COUNT_SELECTED != 'undefined' && typeof NA_STRANU != 'undefined'){
				var pages_before = (COUNT_SELECTED % NA_STRANU == 0)?(COUNT_SELECTED / NA_STRANU) : Math.ceil(COUNT_SELECTED / NA_STRANU);
				COUNT_SELECTED++;
				var pages_after  = (COUNT_SELECTED % NA_STRANU == 0)?(COUNT_SELECTED / NA_STRANU) : Math.ceil(COUNT_SELECTED / NA_STRANU);

				//alert("bfr: "+pages_before+" | aft: "+pages_after);

				//dynamicka zmena pageru
				if (pages_before != pages_after){

					var pg_1 = $('pg_1');
					if (pg_1){
						last = pager_last_id(pg_1,pages_after);

						//zviditenime poslednu polozku pageru
						if (last > 0 && last <= pg_1.childNodes.length){
							pg_1.childNodes[last].style.display='block';
							var pg_2 = $('pg_2');
							if (pg_2){
								if (pg_2.childNodes[last]){
									pg_2.childNodes[last].style.display='block';
								}
							}

							//previous && next
								//previous && next
								if (pg_1.childNodes[last].id == 'pg_1_1'){
									if (pg_wrp_1 = $('pg_wrp_1')){
										pg_wrp_1.style.display='block';
									}
									if (pg_wrp_2 = $('pg_wrp_2')){
										pg_wrp_2.style.display='block';
									}
								}
								//
						}
						//
					}
				}
				//koniec dynamickej zmeny pageru
			}
		}
	}
}

function device_selection_remove_return(args){
	var OK = false;
	if (args[0]){
		load_off();
		if(args[0]['id']){
			var ds = $('ds_all');
			var tmp_cnodes = 0;
			for (var i=0;i<ds.childNodes.length;i++){
				if (ds.childNodes[i].id){
					if (ds.childNodes[i].id.indexOf('ds_') >= 0){
						tmp_cnodes++;
					}
				}
				if (!OK){
					if (ds.childNodes[i].id == 'ds_'+args[0]['id']){
						ds.removeChild(ds.childNodes[i]);
						OK = true;
						tmp_cnodes--;
						if (tmp_cnodes > 0){
							break;
						}
					}
				}
			}
			if (OK){
				if (tmp_cnodes < 1){
					$('device_selection').style.display='none';
				}
				device_selection_dss(args[0]['id']);

				var selection_size = $('selection_size');
				if (selection_size){
					var selection_size_int = parseInt(selection_size.innerHTML);
					selection_size.innerHTML = (selection_size_int-1);
				}

				//odobere polozku pageru
				if (typeof COUNT_SELECTED != 'undefined' && typeof NA_STRANU != 'undefined'){
					var pages_before = (COUNT_SELECTED % NA_STRANU == 0)?(COUNT_SELECTED / NA_STRANU) : Math.ceil(COUNT_SELECTED / NA_STRANU);
					COUNT_SELECTED--;
					var pages_after  = (COUNT_SELECTED % NA_STRANU == 0)?(COUNT_SELECTED / NA_STRANU) : Math.ceil(COUNT_SELECTED / NA_STRANU);


					//dynamicka zmena pageru
					if (pages_before != pages_after){

						var pg_1 = $('pg_1');
						if (pg_1){
							last = pager_last_id(pg_1,pages_after);

							//zneviditenime poslednu polozku pageru
							if (last != 0){
								pg_1.childNodes[last].style.display='none';

								var pg_2 = $('pg_2');
								if (pg_2){
									if (pg_2.childNodes[last]){
										pg_2.childNodes[last].style.display='none';
									}
								}

								//previous && next
								if (pg_1.childNodes[last].id == 'pg_1_1'){
									if (pg_wrp_1 = $('pg_wrp_1')){
										pg_wrp_1.style.display='none';
									}
									if (pg_wrp_2 = $('pg_wrp_2')){
										pg_wrp_2.style.display='none';
									}
									/*
									if (pg_1.childNodes[last].className == 'listing-active'){
										if (pg_1_prev = $('pg_1_prev')){
											pg_1_prev.style.display='none';
										}
										if (pg_2_prev = $('pg_2_prev')){
											pg_2_prev.style.display='none';
										}
									} else {
										if (pg_1_next = $('pg_1_next')){
											pg_1_next.style.display='none';
										}
										if (pg_1_next = $('pg_1_next')){
											pg_1_next.style.display='none';
										}
									}
									*/
								}
								//
							}
							//
						}
					}
					//koniec dynamickej zmeny pageru
				}
			}
		}
	}


}



