$.pnotify.defaults.pnotify_delay = 2000;

$.expr[':'].focus = function( elem ) {
	  return elem === document.activeElement && ( elem.type || elem.href );
};
_drawGraph = new Array();_countGraph = 0;_drawGraphParams = new Array();
$.fn.drawgraph = function(url,params){
	if($(this).parent().css('display') == 'table-cell'){
		$(this).parent().css('width',$(this).width());
		$(this).css({'width':$(this).width(),"margin-right":20});
	}
	$place = $(this);
	
	
	$place.attr('data-title','');
	
	_countGraph++;
	_drawGraph[_countGraph] = this;
	var idrequest = _countGraph;
	if($(this).attr('id') != ''){
		idrequest = $(this).attr('id');
		if(typeof ajaxTargets[idrequest] != 'undefined'){
			ajaxTargets[idrequest].abort();
			delete ajaxTargets[idrequest];
		}
		
		_drawGraphParams[idrequest] = params;
		$place.attr('data-idgraphrequest',idrequest);
		$place.attr('data-urlgraphrequest',url);
		$place.dblclick(function(){
			jQmodalShowHtml($(this).attr('data-title'),'810px','jQmodalFull');
			var height = $(window).height()-120;
			$('#jQmodalMid .wrapper').html('<div id="modalGraph" style="height:' + height + 'px"></div>');
			$('#modalGraph').drawgraph($(this).attr('data-urlgraphrequest'),_drawGraphParams[$(this).attr('data-idgraphrequest')]);
			
		});		
	}
	if(typeof params == 'string'){
		params = "__graphCount=" + _countGraph + "&" + params;
	}else if(typeof params == 'object'){
		params.__graphCount = _countGraph;
	}
	
	$place.css('background',"url('../images/loader-circle.gif') center center no-repeat");
	
	ajaxTargets[idrequest] = $.ajax({
        url: url,
        method: 'GET',
        data: params,
        dataType: 'json',
        success: function(jsondata){		
			$place = $(_drawGraph[jsondata.__graphCount]);
			$place.css('background','none');
			delete(_drawGraph[jsondata.__graphCount]);
			if($place.width() == 0) return;
			
			if(typeof jsondata.__title != 'undefined'){
				$place.attr('data-title',jsondata.__title);
			}			
			$.plot($place, jsondata.data, jsondata.settings);	
			$place.attr('data-suffix',''); $place.attr('data-prefix',''); 
			if(typeof jsondata.settings != 'undefined' && typeof jsondata.settings.grid != 'undefined'){
				if(typeof jsondata.settings.grid.suffix != 'undefined')
					$place.attr('data-suffix',jsondata.settings.grid.suffix);
				if(typeof jsondata.settings.grid.prefix != 'undefined')
					$place.attr('data-prefix',jsondata.settings.grid.prefix);				
			}
			if(typeof jsondata.settings != 'undefined' && typeof jsondata.settings.series != 'undefined' && typeof jsondata.settings.series.pie != 'undefined'){
				$place.unbind("plothover").bind("plothover", pieHover);
				$place.mouseleave(function(){$("#titleGraph").remove();});
			}else if(typeof jsondata.settings != 'undefined' && typeof jsondata.settings.grid != 'undefined' && typeof jsondata.settings.grid.hoverable != 'undefined' && jsondata.settings.grid.hoverable == true){
				$place.unbind("plothover").bind("plothover", plotHover);
			}
			
			if(typeof jsondata.__legendWidth != 'undefined'){
				$place.find('table').css({width: (jsondata.__legendWidth*1) - 25}); 
				
			}
			if(typeof jsondata.__leftLegend != 'undefined' || typeof jsondata.__rightLegend != 'undefined'){
				$legend = $place.find('table');
				$width = $legend.width()+25;
						
				$place.children('div').children('div').css({overflow:'hidden', height:'0px'});
				$legend.find('td').css({'padding':'2px'});
				if(typeof jsondata.__legendWidth != 'undefined'){
					var ov = 'hidden';
				}else{
					var ov = 'auto';
				}
				$legend.css({overflow: ov ,top:0, display:'block',cursor:'default','border-collapse':'collapse',width:$width,height:$place.height()});				
				if(typeof jsondata.__leftLegend != 'undefined'){
					$place.css({'margin-left':$width+30});
					$legend.css({left:($width+20)*(-1)});
				}else{
					$place.css({'margin-right':$width+30});
					$legend.css({right:($width+20)*(-1)});
				}				
			}
		}
    });
} 

$.fn.nicetitle = function(){
	$(this).attr('data-nicetitle',$(this).attr('title'));
	$(this).attr('title','');
	
	$(this).mousemove(function(){
		if($("#titleGraph").length == 0){
			var color = 'black';
			if($(this).css('background-color') == 'rgb(19, 19, 19)' || $(this).css('background-color') == 'rgb(0, 0, 0)')
				color = 'white';
			$('<span id="titleGraph">' + $(this).attr('data-nicetitle') + '</span>').css({				
            	position:'absolute',
                'background-image': $(this).css('background-image'),
                'background-position': $(this).css('background-position'),
            	'background-color': $(this).css('background-color'), 
            	'color': color,	            	
            	opacity: 0.8
            }).appendTo("body").fadeIn(200);
		}		
		$("#titleGraph").css({		
        	left: _mousePosition['x'],
        	top: _mousePosition['y']			
		});
	}).mouseleave(function(){
		$("#titleGraph").remove();
	}).click(function(){
		var color = 'black';
		if($(this).css('background-color') == 'rgb(19, 19, 19)' || $(this).css('background-color') == 'rgb(0, 0, 0)')
			color = 'white';		
		$("#titleGraph").css({		
            'background-image': $(this).css('background-image'),
            'background-position': $(this).css('background-position'),
        	'background-color': $(this).css('background-color'),
        	'color': color
		});		
	});
	
}

function plotHover(event, pos, item){
	if(typeof previousPoint == 'undefined') previousPoint = null;
	if(item){
        if (previousPoint != item.pageX + "x" + item.pageY) {
            previousPoint = item.pageX + "x" + item.pageY;
            $("#titleGraph").remove();
            var x = item.datapoint[0].toFixed(2),
                y = item.datapoint[1].toFixed(2);
            
            if(typeof item.series != 'undefined' && typeof item.series.bars != 'undefined' && typeof item.series.lines != 'undefined' && typeof item.series.stack != 'undefined'){
            	y -= item.datapoint[2].toFixed(2);
            }
            y = $(this).attr('data-prefix') + (Math.round(y * 100)/100) + $(this).attr('data-suffix');
            $('<span id="titleGraph">' + item.series.label + " <br /> " + y + '</span>').css({
            	position:'absolute',
            	background: item.series.color, 
            	left: _mousePosition['x'],
            	top: _mousePosition['y'],
            	opacity: 0.8
            }).appendTo("body").fadeIn(200);
           
        }else{
        	$('#titleGraph').css({"left":_mousePosition['x'],"top":_mousePosition['y']});
        }		
	}else{
		$("#titleGraph").remove();
        previousPoint = null;  		
	}
}
function pieHover(event, pos, obj){
	if (!obj) return;
	var percent = parseFloat(obj.series.percent).toFixed(2);
	if($("#titleGraph").length == 0){
		$("#body").append('<span id="titleGraph"></span>');
	}
	percent = $(this).attr('data-prefix') + percent + $(this).attr('data-suffix');
	$("#titleGraph").css(
			{position:'absolute', left: _mousePosition['x']+'px', top: _mousePosition['y']+'px', background: obj.series.color, opacity: 0.8}
	).html('<span class="label">'+obj.series.label+'</span> - '+percent+'</span>').fadeIn(200);	
}

$.ajaxnotify = function(url,datafn,successfn,notify,typerequest,notifyerror,validateFormSelector){
	
	if(typeof validateFormSelector != 'undefined'){
		$(validateFormSelector).submit(function(event){
			event.preventDefault();// stop post form
		}).trigger('submit');
		if($(validateFormSelector).find('input.error, select.error, textarea.error').length != 0) return;
	}
	
	if(typeof notify == 'undefined'){
		notify = false;
	}else if(typeof notify != 'string'){
		if(typeof notify.attr != 'undefined' && typeof notify.attr('notify') != 'undefined'){
			notify = notify.attr('notify');
		}else{
			notify = false;
		}
	}
	if(typeof notifyerror == 'undefined'){ 
		if(typeof notify.attr == 'undefined' || typeof notify.attr('notifyerror') != 'undefined'){
			notifyerror = 'Error!';
		}else{
			notifyerror = notify.attr('notifyerror');	
		}
	}
	
	if(typeof typerequest == 'undefined') typerequest = 'GET';
	$.ajax({
	   type: typerequest,
	   url: url,
	   data: datafn,
	   success: function(ret){
	     	if(typeof successfn == 'function') successfn();
	     	if(notify !== false) $.pnotify(notify);
	   },
	   error: function(request,error) {
	   		$.pnotify({
	   		notify_title: __langData['Error!'], 						
	   		pnotify_text: notifyerror,
	   		pnotify_type: 'error'});
	   }
	 });	
}

var __smallSilverOpenBeforeJQmodal;
$.jQmodal = function(el){	
	  __smallSilverOpenBeforeJQmodal = false;
      if(__smallSilverOpen){
    	  __smallSilverOpenBeforeJQmodal = true;
    	  __smallSilverOpen = false;
    	  $('#silverLightDiv').height(1).css({'top': 1,'z-index': -1});
    	  $('#silverlightfulltable').addClass('silverLightBg');
      }
            
      var setWidth = '';
      if(typeof $(el).attr('jqmodalwidth') != 'undefined')  var setWidth = $(el).attr('jqmodalwidth')+"px";  
      
      if(!$(el).hasClass('jQmodalBig') && setWidth == ''){setWidth = '810px';}
      var hrefreq = $(el).attr('href');
      var title = $(el).attr('title');
      if(typeof title == 'undefined') title = '';
      
      jQmodalShowHtml(title, setWidth);
      if($(el).hasClass('jQmodalBig')){
      		$('#jQmodalContent').attr('class','jQmodalCssBig');
      }
      if($(el).hasClass('jQnodata')){
    	  var hash = '';
      }else{
    	  var hash = document.location.hash;
      }
      ajaxRequest(hrefreq, '#jQmodalMid .wrapper',false,100,hash);
      
      // $('#jQmodalLayout').click(function(){jQcloseModal();});
      return false;	
}

function jQmodalShowHtml(title,setWidth,className){
	  if(typeof setWidth == 'undefined') setWidth = '810px';
	
	  $('#jQmodalLayout, #JQmodalCentered').remove();
      if($('#jQmodalLayout').length == 0){
          $('body').append(    
          '<div id="jQmodalLayout"></div>\n\
            <div id="JQmodalCentered"><div id="jQmodalContent">\n\
                <div id="jQmodalTop"><div id="jQmodalTitle"></div><a onclick="jQcloseModal();return false;" href="./" class="butt buttdelete"></a></div>\n\
                <div id="jQmodalMid"><div class="wrapper"></div></div>\n\
                <div id="jQmodalBottom">\n\
                    <div class="left"></div>\n\
                    <div class="mid"></div>\n\
                    <div class="right"></div>\n\
                </div>\n\
            </div></div>');
            $('#jQmodalTop').css('opacity',0.8);
      }
      if(typeof className == 'undefined'){
    	  className = 'jQmodalCssAuto';
      }
      
      if(className == 'jQmodalFull'){
    	  $('#jQmodalContent').css('top' , 30 + $(window).scrollTop());
    	  setWidth = $(window).width()-60;
      }else{
    	  $('#jQmodalContent').css('top' , 100 + $(window).scrollTop());
      }
      
      $('#jQmodalTitle').html(title);
	  $('#jQmodalContent').attr('class',className).css('width',setWidth);

      $('#jQmodalLayout')
        .css({opacity: 0})
        .show()
        .animate({opacity: 0.6});
        
      $('#jQmodalContent')
        .css({opacity: 0})
        .show()
        .animate({opacity: 1}); 
      
      $(document).keyup(function(e) {if (e.keyCode == 27) {jQcloseModal();}});  	
}

$.toogleClassHtml = function(selector,tooglecls,html,selectortext){
	disableHideJQTab = new Array();
    if(typeof $(selectortext).attr('htmlbeforetoogleclass') != 'undefined'){
        html = $(selectortext).attr('htmlbeforetoogleclass');
    }
    $(selectortext).attr('htmlbeforetoogleclass',$(selectortext).html()).html(html);
    $(selector).toggleClass( tooglecls, 500 );
}



$.fn.jQgroupCollapseSave = function(){
	var url = '/admin/ajax-modal/report-group-collapse-save';
	var ret = setSelectUrl.getActionAndController();
	var s_name = $(this).attr('id');
	data = "s_controller="+ret['controller']+"&s_action="+ret['action']+"&s_name="+s_name;
	$.ajaxnotify(url,data);
}

$.fn.jQaddParamModal = function(paramadd,value){
	
	noPostAjax = __beforenopostajax;
	
	var href = $(this).attr('href');
	if(href.indexOf('?') != -1){var a = "&";}else{var a = "?";}
	$(this).attr('href',href + a +paramadd + "=" +value);
	$.jQmodal(this);
}



// funkce pro post location
var __hashnoreload = false;
document.location.post = function(path, parameters) {
	
	
	
	// var re = new RegExp("[\\#&]__url=([^&]*)");
	if(typeof path !='undefined' && path != ''){
		path = path.split('#');
		var url = path[0];
	}else{
		var url = setSelectUrl.getParamByName('__url');
	}
	var re = new RegExp("__url=([^&]*)", "g");
	if(parameters.indexOf('__url') == -1) parameters = "__url=&"+parameters;
	parameters = parameters.replace(re,"__url="+url).replace("#","");
	
		
		__hashnoreload = true;
		document.location.hash = parameters;
		__hashnoreload = false;
		
		ajaxRequest(setSelectUrl.getParamByName('__url'),"#body",true);
	/*
	 * var form = $('<form></form>');
	 * 
	 * form.attr("method", "post"); form.attr("action", path); if(typeof
	 * parameters == 'undefined' && path.indexOf('#') != -1){ var s =
	 * path.split('#'); parameters = s[1]; } if(typeof parameters == 'string'){
	 * if(parameters[0] == '?'){parameters = parameters.substring(1);} var p =
	 * parameters.split('&');parameters = new Array(); $.each(p, function(key,
	 * value) { value = value.split('='); parameters[value[0]] = value[1]; }); }
	 * 
	 * for(var i in parameters){ var field = $('<input></input>');
	 * field.attr("type", "hidden"); field.attr("name", i); field.attr("value",
	 * parameters[i]); form.append(field); }; if(document.body == null)
	 * document.write("<body></body>"); $(document.body).append(form);
	 * form.submit();
	 */
};

document.location.postself = function(){
    document.location.post(setSelectUrl.getParamByName('__url'),document.location.hash);
}

  
var onLoadAndResizeWindow = function(){
	if(__silverOpen) showFullSilverLight();
	if(__smallSilverOpen){silverLightSmallSize();}
	if(typeof onresizegrid == 'function') onresizegrid();
}
var timeOutResize;
var __inputPicker;
var __globalTarget = '';

function timePickerSetPosition(){
	if(typeof __inputPicker != 'undefined'){
		var setPosition = function(){
			var of = $(__inputPicker).offset();
			if($(__inputPicker).hasClass('showRightPicker')){
				$('#ui-datepicker-div').css({'left': of['left']+$(__inputPicker).width()+5, top : of['top']});
			}else{
				$('#ui-datepicker-div').css({'left': of['left'], top : of['top']+31});
			}
		}
		clearTimeout(timeOutResize);timeOutResize = setTimeout(setPosition,10);
		setPosition();
	}	
}

$(window).resize(function() {
	timePickerSetPosition();
	onLoadAndResizeWindow();
}).keydown(function(e){ 
    var k = e.charCode || e.keyCode || 0;
    if(e.altKey && ((e.keyCode > 95 && e.keyCode < 106) || (e.keyCode > 47 && e.keyCode < 91))) {
    	var keyPressed = String.fromCharCode(k);
    	$(__globalTarget +" a[accesskey="+keyPressed+"]").triggerHandler('click');
    	$(__globalTarget+" input, "+__globalTarget+" textarea").each(function(){
    		if($(this).attr('accesskey') == keyPressed) $(this).focus();
    	});
    	return false;
    };
});  

var __fullurl = '';
$(window).bind('hashchange', function() {
	//if(__fullurl != unescape(location.href)){
		__fullurl = unescape(location.href);
		if(__hashnoreload == false){
			graphRegenerate = function(){}; //zruseni funkce pro generovani grafu
			ajaxRequest(setSelectUrl.getParamByName('__url'),"#body",true);
		}
	//}
	__hashnoreload = false;
});

var _mousePosition = new Array;

$(document).ready(function() {
	$(document).bind("contextmenu",function(e){
       return false;
	}); 	
  $(document).mousemove(function(e){
	  _mousePosition['x'] = e.pageX;
	  _mousePosition['y'] = e.pageY;
  });
  
  setInterval(function(){$.get("/get-enviroment/",function(){});}, 1000*20*60);
  onLoadAndResizeWindow();
  
  setSelectUrl.unsetItem('__setDoubleBackUrl');
  setSelectUrl.unsetItem('__unsetDoubleBackUrl');
  __hashnoreload = false;
  
  afterloadgrid();
  // presmerovani pro vyhledavani:
  if(location.href.indexOf('#') != -1){
  	  $(window).trigger('hashchange');
  }	  
});

var __focus = ''; // global focus afterajaxfunction
function afterloadgrid(selector){	
	if(typeof selector == 'undefined'){selector = "";}else{selector = selector+" ";}
  
   var $$ = function(s){
	   s = s.replace(/,/gi,","+selector);
	   return $(selector+s);
   }
   
   $$('.aslink, .datetools').mouseenter(function(){$(this).addClass('hover');}).mouseleave(function(){$(this).removeClass('hover');});
   
   $$(".jQtabs").tabs();
   $$(".accordion").accordion();
   
   
   $$('.hoveropacity').css('opacity', 0.7).mouseenter(function(){
	   $(this).css('opacity', 1);
   }).mouseleave(function(){
	   $(this).css('opacity', 0.7);
   }).each(function(){
	  if(typeof $(this).attr('title') != 'undefined' && $(this).attr('title') != '')
		  $(this).nicetitle();
   });
   $$('.nicetitle').each(function(){
	   if(typeof $(this).attr('title') != 'undefined' && $(this).attr('title') != '')
		   $(this).nicetitle();
   });
   
   //group checkboxes
	$$('.checkGroupMain').change(function(){
		if($(this).attr('checked')){
			var check = true;
		}else{
			var check = false;
		}
		var groupname = $(this).attr('data-groupname');
		$('.checkGroupItem').each(function(){
			var groupitemnames = $(this).attr('data-groupnames').split("|");
			if($.inArray(groupname,groupitemnames) != -1){
				$(this).attr('checked',check);	
				$(this).trigger('setstate');
			}
		});		
	});
 
	   $$(".checkGroupItem").change(function(){
			var groupnames = $(this).attr('data-groupnames').split('|');
			for(var i in groupnames){
				var check = true;
				$('.checkGroupItem').each(function(){
					var groupitemnames = $(this).attr('data-groupnames').split("|");
					if($.inArray(groupnames[i],groupitemnames) != -1 && !$(this).attr('checked') ){
						check = false;
					}
				});
				$('.checkGroupMain').each(function(){
					if($(this).attr('data-groupname') == groupnames[i]){
						$(this).attr('checked',check);
						$(this).trigger('setstate');
					}
				});
			}
		});	
   
   //translate kdyz je zapnut (v translate.js)
   
   if(typeof dynamicTranslate == 'function') dynamicTranslate($$);
  //validace formularovych prvku

  $$('form').each(function(){
	 var valEl = new Array();var sets = false;
	 $(this).find("input, textarea, select").each(function(){
		 $elform = $(this);
		 var name = $elform.attr('name');
		 if(typeof valEl[name] == 'undefined') valEl[name] = new Array();
		 var $elform = $(this);
		 if($elform.attr('isrequired') == 'true'){
			$elform.addClass('isrequired');
			valEl[name]['required'] = true;sets = true;
		 }
		 //vyjimka pro datetimeboxy kvuli maskedinput je i ve jquery.validate.js
		 if(typeof $elform.attr('regex') != 'undefined' && $elform.attr('regex') != '' && !$elform.hasClass('datebox') && !$elform.hasClass('datetimebox')){
			 valEl[name]['regex'] = $elform.attr('regex');sets = true;
		 }
		 if($elform.attr('equalTo') != 'undefined'){
				valEl[name]['equalTo'] = $elform.attr('equalTo');sets = true;
		 }		 
	 });	
	 if(sets){
		 var sets = new Array();
		 sets['rules'] = valEl;
		 $(this).validate(sets);
	 }	 
  });   
  $$('input').mouseenter(function(){$(this).addClass('hover');}).mouseleave(function(){$(this).removeClass('hover');});
  
  // tabs
   $$('.tabcontent form').each(function(){
	    var input = $("<input type='hidden' name='nl_tabactive' value='' />");
		$(this).append(input);
   });   
   
  var r = 0;
  $$('.tabs span').each(function(){
	  $(this).attr('tabcount',r);
	  if($(this).hasClass('active')) $('input[name=nl_tabactive]').val(r);
	  r++;	  
	  $(this).click(function(){
		  $$('.tabs span').removeClass('active');
		  $(this).addClass('active');
		  
		  $$('.tabcontent').removeClass('active');
		  $($$('.tabcontent')[$(this).attr('tabcount')]).addClass('active');
		  $('input[name=nl_tabactive]').val($(this).attr('tabcount'));
	  });

  });
  
  var r = 0;
  // radiobutton
  $$('input.special[type=radio]').each(function(){
  	$(this).addClass('none');
  	var c = 'button';
  	if($(this).attr('checked')){c+= ' activebutton';}
  	$(this).addClass('RadioJquerySel'+r);
  	$(this).after('<a class="' + c + ' radioName' + $(this).attr('name') + '" onclick="radioButtonJquery(\'input.RadioJquerySel' + r + '\',\'.radioName' + $(this).attr('name') + '\',this);return false" href="./"><span>' + $(this).attr('title') + '</span></a>')
  	r++;
  });
  
  // checkboxbutton special
  r = 0;
  var countCheckBoxes = new Array();
  var params = setSelectUrl.getParamArrayByName('__groupby');
  
  $$('input.special[type=checkbox]').each(function(){
  	$(this).addClass('none');
  	var c = 'checkbox';
  	if(typeof $(this).attr('data-setclass')  != 'undefined' && $(this).attr('data-setclass') != ''){
  		c += " " + $(this).attr('data-setclass');
  	}
  	if($(this).attr('checked')){c+= ' activecheckbox';}
  	$(this).addClass('CheckboxJquerySel'+r);
  	var name = $(this).attr('checkgroup');
  	// if(countCheckBoxes[name] == undefined){countCheckBoxes[name] = 0;}
  	// countCheckBoxes[name]++;//zakomentovano - automaticky cislovalo checkboxy
	// patrici do jedne skupiny
  	if(typeof params[$(this).attr('valuegroup')] !== 'undefined') countCheckBoxes[name] = params[$(this).attr('valuegroup')] + "."; else countCheckBoxes[name] = '';
  		
  	var valuegroup = '';var colname = '';var checkgroup = '';

  	if(typeof $(this).attr('valuegroup') != 'undefined' && $(this).attr('valuegroup') != '') valuegroup = "valuegroup='" + $(this).attr('valuegroup') + "'";
  	if(typeof $(this).attr('checkgroup') != 'undefined' && $(this).attr('checkgroup') != '') checkgroup = "checkgroup='" + $(this).attr('checkgroup') + "'";
  	if(typeof $(this).attr('colname') != 'undefined' && $(this).attr('colname') != '') colname = "colname='" + $(this).attr('colname') + "'";
  	
  	$(this).after('<a name="' + $(this).attr('name') + '"class="' + c + '" onclick="checkboxButtonJquery(\'.CheckboxJquerySel' + r + '\',this);return false" href="./" ' + valuegroup + colname + checkgroup +'><span class="ncheck">' + countCheckBoxes[name] + '</span><span>' + $(this).attr('title') + '</span></a>')
  	r++;
  });
  
  


  /*
	 * jQsubmit
	 */
  $$('.jQsubmit').click(function(){
      $($(this).attr('href')).submit();
  });   
   
   
   // validateform
   
   
   // textarea autoresize
	$$('textarea.jQautoResize').each(function(){
		$(this).autoResize({
	    	animateDuration : 80,
	    	extraSpace : 10
		}).trigger('keyup');
	});  	
	
  /*
	 * jQmodal
	 */  
  $$('.jQmodal').click(function(){$.jQmodal(this); return false;});	
  // $$('a.openJQmodal').click(function(){$.jQmodal(this);return false;});
  
  // classicbutton hover
  $$('input.button')
  .mousedown(function(){$(this).addClass('activebutton');})
  .mouseover(function(){$(this).addClass('hoverbutton');})
  .mouseup(function(){$(this).removeClass('activebutton');})
  .mouseout(function(){$(this).removeClass('activebutton').removeClass('hoverbutton');})
  ; 
  
  $$('input[type=submit], input.submitbutt')
  .mousedown(function(){$(this).addClass('activesubmit');})
  .mouseover(function(){$(this).addClass('hoversubmit');})
  .mouseup(function(){$(this).removeClass('activesubmit');})
  .mouseout(function(){$(this).removeClass('activesubmit').removeClass('hoversubmit');})
  ;   
  // generate classic radiobutton, checboxbutton
  
	var r = 0;
	$$("input.checkboxnormal, input[type='checkbox']:not(.none)").each(function(){
	  	var c = 'checkboxbutton';
	  	if($(this).attr('checked')){c+= ' activebutton';}
	  	var className = 'checkboxNormalName' + $(this).attr('name') + r;
	  	var className2 = className + "parent";
	  	
	  	$(this).addClass(className).addClass('none');
	  	$(this).attr('data-parentimg',className2);
	  	
	  	$(this).after('<a style="cursor:pointer;display:inline-block; margin: 0 !important;padding: 0 !important;" class="' + c + ' ' + className2  + '" onclick="$(\'input.' + className + '\').attr(\'checked\',!$(\'input.' + className + '\').attr(\'checked\')).change();return false" href="./">&nbsp;</a>')
	  	$(this).bind('setstate',function(){	  		
	  		if($(this).attr('checked')){
	  			$('.'+ $(this).attr('data-parentimg')).addClass('activebutton').addClass('activecheckbox');
	  		}else{
	  			$('.'+ $(this).attr('data-parentimg')).removeClass('activebutton').removeClass('activecheckbox');
	  		}
	  	}).change(function(){$(this).trigger('setstate');});
	  	r++;
	});
	
	
	var r = 0;
	$$("input.radioboxnormal").each(function(){
	        $(this).addClass('none');
	  	var c = 'checkboxbutton';
	  	if($(this).attr('checked')){c+= ' activebutton';}
	  	$(this).addClass('RadioboxJquerySelNormal'+r);
	  	$(this).after('<a class="' + c + ' radioboxNormalName' + $(this).attr('name') + '" onclick="radioButtonJquery(\'input.RadioboxJquerySelNormal' + r + '\',\'.radioboxNormalName' + $(this).attr('name') + '\',this);return false" href="./">&nbsp;</a>')
	  	r++;
	});  
  //daytimebox
  $$('.daytimebox').attr('readonly',true).timepicker({
		showSecond: true,
		timeFormat: 'hh:mm:ss',
		beforeShow: function(input){
	  	  globalInputDayPicker = input;
	  	  setTimeout(function(){
			  $('#ui-datepicker-div').removeClass('datetimepicker-ui');
			  $('.ui-datepicker-buttonpane .clearbutt').remove();
			  $('.ui-priority-secondary').remove();
			  $('.ui_tpicker_time').addClass('daypicker');
			  $('#ui_tpicker_days_label, #ddddaypicker, #ui_tpicker_days_label_slider').remove();
			  
			  $('.ui-datepicker-buttonpane').append('<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="$(globalInputDayPicker).val(\'\');$(\'.ui-datepicker-close\').trigger(\'click\');">Delete</button>');
			  
			  var valDays = $(globalInputDayPicker).val().split('d')[0];
			  if(valDays == '') valDays = '00';
			  
			  $('.ui_tpicker_hour_label').before("<span  id='ddddaypicker'><span>" + valDays + "</span>d </span>");
			  $('#ddddaypicker').css({left:63,top:30,position:'absolute'});
			  
			  $('.ui_tpicker_hour_label').before('<dt id="ui_tpicker_days_label">Days</dt><dd id="ui_tpicker_days_label_slider"></dd>');
			  $("#ui_tpicker_days_label_slider").slider({
				  min: 0,
				  max: 99,
				  value: valDays,
				  slide: function( event, ui ) {
				  	 var value = ui.value;
				  	 if(value < 10){value = "0"+value}
				  	 //else if(value < 100){value = "0"+value};
					 $( "#ddddaypicker span").html( value );
					 $(globalInputDayPicker).trigger('change');
				  }  
			  });
	  	  },100);
  		}
  }).change(function(){
	  $(this).val($('#ddddaypicker span').html()+"d "+$('.ui_tpicker_time').html());
  }).each(function(){
	  var val = $(this).val();
	  if(val == '') return;
	  var days = Math.floor(val/(60*60*24));
	  val -= days*60*60*24;
	  var hours = Math.floor(val/(60*60));
	  val -= hours*60*60;
	  var minutes = Math.floor(val/(60));
	  val -= minutes*60;
	  var seconds = Math.floor(val);
	  
	  if(days < 10) days = "0"+days;
	  if(hours < 10) hours = "0"+hours;
	  if(minutes < 10) minutes = "0"+minutes;
	  if(seconds < 10) seconds = "0"+seconds;
	  $(this).val(days + 'd ' + hours + ":" + minutes + ":" + seconds);
  });
  
  // date inputbox
  $$('.datebox')
  .mask(maskinput['datebox']) 
  .click(function(){
	  $('#ui-datepicker-div').removeClass('datetimepicker-ui'); // odstrani tridu pro timepicker kdyz existuje
	  $('.ui-datepicker-buttonpane .clearbutt').remove();
	  $('.ui-datepicker-buttonpane').prepend('<button onclick="globalInputTimePicker.val(\'\');globalInputTimePicker.trigger(\'change\');" class="clearbutt fleft ui-state-default ui-priority-secondary ui-corner-all" type="button">' + __langData['Clear'] + '</button>');
	  monthButtonsPicker();
	  startDatePicker();
  }).datepicker({
	  beforeShow: beforeShowPicker, 
	  changeYear: true, 
	  changeMonth: true, 
	  dateFormat: inputformat['dateformat'],
	  onChangeMonthYear: function(year, month, inst) {
	  	var setDate = new Date(year,month-1,inst.selectedDay);
		if(typeof $(this).attr('maxdateid') !== 'undefined'){
			var to = $("#" + $(this).attr('maxdateid')).datepicker("getDate");
			if(to < setDate) setDate = to;
  		}
		if(typeof $(this).attr('mindateid') !== 'undefined'){
			var min =  $("#" + $(this).attr('mindateid')).datepicker("getDate"); 
			if(min > setDate) setDate = min;
		}		  	
	  	$(this).val(calendarFunctions.formatDate(setDate)).trigger('change');
	  		setTimeout(function(){
	  			monthButtonsPicker();
	  			startDatePicker();
	  			$('.ui-datepicker-buttonpane').prepend('<button onclick="globalInputTimePicker.val(\'\');globalInputTimePicker.trigger(\'change\');" class="clearbutt fleft ui-state-default ui-priority-secondary ui-corner-all" type="button">Clear</button>');
	  		},1);
  	  },
	  showButtonPanel: true
  });

  
  // datetime inputbox
  
  $$('.datetimebox').each(function(){
	  $(this).attr('readonly',true).mask(maskinput['datetimebox'])
	  .datetimepicker({
		    beforeShow: beforeShowPicker,
			showSecond: true,
			timeFormat: inputformat['timeformat'],
			dateFormat: inputformat['dateformat'],
			changeYear: true,
			changeMonth: true
		})
		.change(function(){
			$$('input[name='+ $(this).attr('activeinput') +']').each(function(){			
				var where = $(this).attr('inputdate').split(","); 
				var testval = '';var t = '';
				var setactive = true; 
				for(var i in where){
					switch($(this).val()){					
						case __langData['Today']:
							t = calendarFunctions.today();
						break;
						case __langData['Yesterday']:
							t = calendarFunctions.yesterday();
						break;
						case __langData['This Week']:
							if(i == 0) t = calendarFunctions.firstdayofthisweek(); else t = calendarFunctions.lastdayofthisweek();
						break;
						case __langData['Last Week']:
							if(i == 0) t = calendarFunctions.firstdayoflastweek(); else t = calendarFunctions.lastdayoflastweek();
						break;
						case __langData['This Month']:
							if(i == 0) t = calendarFunctions.firstdayofthismonth(); else t = calendarFunctions.lastdayofthismonth();
						break;
						case __langData['Last Month']:
							if(i == 0) t = calendarFunctions.firstdayoflastmonth(); else t = calendarFunctions.lastdayoflastmonth();
						break;
					}
					testVal = $$('input[name=' + where[i] + ']').val().split(' ');
					testVal = testVal[0];
					if(t != testVal){
						setactive = false;
						break;
					}								
				}
				if(setactive)  $(this).addClass('activedbutton'); else $(this).removeClass('activedbutton');
			});
		});
 	});

  	// setDateTime buttons
  	$$('input.setDateTime').each(function(){
  		$(this).click(function(){
  			calendarFunctions.setinputdate($(this).attr('value'),$(this).attr('inputdate'),true);	
  			$$('input[name='+ $(this).attr('name') +']').removeClass('activedbutton');
  			$(this).addClass('activedbutton');
  		});
  		
  		
  	});
  	
  /*
	 * thactionpopups
	 */
  
  	
  $$('a.jQtap').click(function(){JQtap(this);return false;}); 
  
  $$('a.jQtapRight').mousedown(function(event){ 
	  if(event.which == 3){
		  JQtap(this);
		  return false;
	  }
  });
  
  $$('a.jQtapOver').mouseenter(function(){   
	 var target = $(this).attr('href');
     if(target.indexOf('#') != -1){ //kompatible mod v ie zobrazuje href jako 'http://neco.cz/#target' misto '#target'
    	 target = target.split('#');
    	 target = '#'+target[1];
     }	 
	 $(target).removeClass('open');
     JQtap(this);
  }).each(function(){
	  	var target = $(this).attr('href');
	     if(target.indexOf('#') != -1){ //kompatible mod v ie zobrazuje href jako 'http://neco.cz/#target' misto '#target'
	    	 target = target.split('#');
	    	 target = '#'+target[1];
	     }	  	
	  	
	    $(this).mouseleave(function(){
		   	timerJQtap = setTimeout(function(){	$(target).hide('fast').removeClass('open');	},2000);
	    }); 
	    $(target).mouseleave(function(){
	    	timerJQtap = setTimeout(function(){	$(target).hide('fast').removeClass('open');	},200);
	    }).mouseenter(function(){clearTimeout(timerJQtap);});    
  });   
  // automaticke zavreni pri toogleclass
  $('.butttoogle').click(function(){
	 $('.thactionpopup').hide('fast').removeClass('open');
  });
  
  // return false na disable linky
  $$('.disabledlink').click(function(){return false;}).css('opacity', 0.5);
  // hover na radky flitred table
   $$('.filtredtable tr').addClass('ajaxApply').mouseenter(function(){$(this).addClass('hover');}).mouseleave(function(){$(this).removeClass('hover');}).click(function(){
	   $(this).find('a.filteredTableTrClick').each(function(){
		   eval($(this).attr('onclick'));
	   });
   });
  
  // filtred
  $$('.autogenerate .jQsubmit').click(function(){
  	 var setPage = false;
  	 $(this).parent().parent().find('input[type=text],select').each(function(){
  	 	if($(this).val() != ''){ 
  	 		if($(this).hasClass('daytimebox')){
  	 			var valsplit = $(this).val().split('d');
  	 			var val = valsplit[0]*24*60*60;
  	 			valsplit = valsplit[1].split(":");
  	 			val += valsplit[0]*60*60;
  	 			val += valsplit[1]*60;
  	 			val += valsplit[2]*1;
  	 		}else{
  	 			var val = $(this).val();
  	 		}
  	 		setSelectUrl.setItem($(this).attr('name'),val,'',false);
  	 		setPage = true;
  	 	}else{
  	 		setSelectUrl.unsetItem($(this).attr('name'));
  	 	}
  	 });
  	 var parsedUrl = setSelectUrl.getUrlParsed();
  	 if(setPage){
  	 	setSelectUrl.setPage(1,parsedUrl);
  	 }
  	 setSelectUrl.postUrlByAjax(parsedUrl);
  	 return false;
  });
  $$('.autogenerate input[type=text]').keydown(function(event){
  	if(event.keyCode == 13) $(this).parent().parent().find('.jQsubmit').trigger('click');
  });
  $$('input[type=text]').each(function(){
  	if(typeof $(this).attr('maxvalue') != 'undefined'){
  		$(this).keyup(function(){
  			if(parseFloat($(this).val()) > parseFloat($(this).attr('maxvalue'))){$(this).val($(this).attr('maxvalue'));}
  		});
  	}
  	if(typeof $(this).attr('minvalue') != 'undefined'){
  		$(this).keyup(function(){
  			if(parseFloat($(this).val()) < parseFloat($(this).attr('minvalue'))){$(this).val($(this).attr('minvalue'));}
  		});  		
  	}
  	if(typeof $(this).attr('clicktextselect') != 'undefined' && $(this).attr('clicktextselect') == 'true'){
  		$(this).mouseup(function(){$(this).select();});
  	}
  	
  	if(typeof $(this).attr('typevalue') != 'undefined'){
  		if($(this).attr('typevalue') == 'numeric'){
  			$(this).keypress(function(event){
  				// if (String.fromCharCode(e.keyCode).match(/[^0-9]/g)) return
				// false;
  			});
  		}
  	}  	
  	
  });
  // Set Init button
  $$('.jQsetInit').click(function(){
	 if($(this).hasClass('disabled')) return false;
	 var ret = setSelectUrl.getActionAndController();
  	 var seturl = '';
  	 var url = document.location.href.split("#")
  	 if(typeof url[1] != 'undefined') seturl = url[1];
  	 
  	 var data = {"s_action": ret['action'], "s_controller": ret['controller'], "s_type": "I", "s_url": seturl, 's_name': $(this).attr('name')};
  	 $.ajaxnotify($(this).attr('href'),data,function(){
  		 document.location.postself();
  		 },$(this));
  	 return false;
  });
  // Restore button
  $$('.jQrestore').click(function(){
  	 if($(this).hasClass('disabled')) return false;
	 var ret = setSelectUrl.getActionAndController();
  	 var data = {"s_action": ret['action'], "s_controller": ret['controller'], "s_type": "I"};
  	 $.get($(this).attr('href'),data,
		function(dat){
 	  		parameters = dat.split('#');
	  		document.location.post(dat,parameters[1]); 
	  	 }
	 );
  	 return false;
  });  
  // nastaveni disabled checkbox
	$$('a.activecheckbox').each(function(){
		if(typeof $(this).attr('colname') != 'undefined'){
			checkboxSetStateByColname($(this).attr('colname'),true);
		}  
	});
	
	// nastaveni automatickeho odesilani onchange input
	$$("form.onChangePost").each(function(){
		var $form = $(this);
		$form.submit(function(event){
			event.preventDefault();// stop post form
			$.post($form.attr('action'),$form.serialize(),function(){$.pnotify(__langData['Item saved.']);});
		}).find('input, textarea').change(function(){
			$form.submit();
		});
	});
  // ajax formulare
  $$('form.ajaxform').submit(function(){
	if($(this).find('input.error, select.error, textarea.error').length != 0) return;
  	var url = $(this).attr('action');
  	if(url == '') url = setSelectUrl.getParamByName('__url');
  	if(typeof $(this).attr('target') == 'undefined'){
  		document.location.post(url,$(this).serialize());
  	}else{
  		var target = $(this).attr('target');
  		
  		if(target == 'jQmodal'){
  			target = '#jQmodalMid .wrapper';
  			jQcloseRefresh = true;// refresh parent okna
  		}
  		if(typeof $(this).attr('notify') == 'undefined' || $(this).attr('notify') != 'false'){
	  		if(typeof $(this).attr('notify') == 'undefined')
	  			var notifytext = __langData['Item saved.'];
	  		else
	  			var notifytext = $(this).attr('notify');
	  		$.pnotify(notifytext);
  		}
  		
  		if(url.indexOf('?') == -1) url += "?"; else url += "&";
  		ajaxRequest(url + $(this).serialize(),target,true,100,$(this).serialize());
  	}
  	return false;
  });
  $$('form.normalajaxform').submit(function(){
	  	var url = $(this).attr('action');
	  	if(typeof url == 'undefined' || url == '') url = setSelectUrl.getParamByName('__url');
	  	if(typeof url == 'undefined' || url == '') url = document.location.href;
	  	var parametrs = $(this).serialize();
	  	if($(this).hasClass('addhashparams')) parametrs += "&"+document.location.hash;
	  	if($(this).find('input.error, select.error, textarea.error').length == 0){
	  		ajaxRequest(url,'#body',true,100,parametrs);
	  	}
	  	return false;
	  });  
  
  // tlacitko na zavreni modal okna
  $$('a.jQmodalClose').click(function(){jQcloseModal();return false;});
  
  // ajax linky
  $$('a:not(.notlink)').each(function(){
  	var clickevent = ($.data( $(this).get(0), 'events' ));  
  	var href = $(this).attr('href');
  	if(typeof href == 'undefined') href = '';
  	var shref = href.split('#');
  	if(href.indexOf('/admin/index/logout') != -1 || typeof this.onclick == 'function' || (typeof clickevent != 'undefined' && clickevent.click != 'undefined')) return;
  	
  	$(this).click(function(){
  		__hashnoreload = false;
  	});
  	
  	if(href.indexOf("#__url") !== -1 && shref[0] == '') return;
  	// $(this).css('outline',"1px solid red");
  	$(this).click(function(){
  		
  	  	var href = $(this).attr('href');
  	  	var shref = href.split('#');
  		if(typeof href == 'undefined') href = '';
  		
  		
  		if(shref[0] != '' && href.indexOf("#__url") !== -1){
  			var re = new RegExp("__url=([^&]*)", "g");
  			document.location.hash = shref[1].replace(re,"__url="+shref[0]);
  			
  		}else{
  			document.location.hash = '__url=' + href.replace('?','&');
  		}
	  	return false;
	  });
  });
  if(selector == "#body " || selector == '') __focus = false;
  /*
  if(selector != '#jQmodalMid .wrapper '){
	  $('a.backbutton, a.doublebackbutton').removeClass('disable');
	  if(history.current < 2){
		  $('a.backbutton, a.doublebackbutton').addClass('disable');
	  }else if(history.current == 2){
		  $('a.doublebackbutton').addClass('disable');
	  }
  }
  */
  if(__focus !== false){
	  if(__focus !== ''){
		  $(__focus).trigger('focus');
	  }else{
		  var inputs = $$('input[type=text], textarea');
		  if(typeof inputs[0] !== 'undefined') $(inputs[0]).trigger('focus');    
	  }
  }
  __focus = '';
  if(typeof __afterloadgrid == 'function'){
	  __afterloadgrid();
	  delete __afterloadgrid;
  }
}
function monthButtonsPicker(){
	/*
	$('.monthbuttons').remove();
	$('.ui-datepicker-title').prepend('<span class="monthbuttons"></span>');
	$('.ui-datepicker-month option').each(function(){
	    var $butt = $("<a value='" + $(this).val() + "' href='./' class='monthbutton'>" + ($(this).val()*1+1) + "</a>");
	    if($(this).attr('selected')) $butt.addClass('selected');
	    
	    $butt.click(function(){
	    	$b = $(this);
	    	$('.ui-datepicker-month option').each(function(){
	    		if($(this).val() == $b.attr('value')){
	    			$(this).attr('selected','selected');
	    		}
	    	});
	        $('.ui-datepicker-month').trigger('change');
	        return false;
	    })
	   $('.monthbuttons').append($butt);
	});	
	*/
}
function startDatePicker(input){
	var d = globalInputTimePicker.val().split(' ');
	if(d[0] == calendarFunctions.formatDate(new Date())){
		$(".ui-datepicker-current").addClass("ui-state-active");
	}	
}
function beforeShowPicker(input){
	var valbefore = $(input).val();
	if(typeof $(input).attr('maxdateid') !== 'undefined'){
		var to = $("#" + $(input).attr('maxdateid')).datepicker("getDate");
		$(input).datepicker( "option", "maxDate", to); 
	}
	if(typeof $(input).attr('mindateid') !== 'undefined'){
		$(input).datepicker( "option", "minDate", $("#" + $(input).attr('mindateid')).datepicker("getDate")); 
    }	
	$(input).val(valbefore);
	
	if($(input).hasClass('datetimebox')){
		  if($(input).attr('maxdateinput') == 'true'){
		   	 if($(input).val().indexOf(":") == -1 || $(input).val() == '__.__.____ __:__:__') $(input).val(calendarFunctions.formatDate(new Date()) + " 23:59:59").trigger('change');
		  }else{
		   	 if($(input).val().indexOf(":") == -1 || $(input).val() == '__.__.____ __:__:__') $(input).val(calendarFunctions.formatDate(new Date()) + " 00:00:00").trigger('change');
		  }
	 }else{
		 globalInputTimePicker = $(input);
		 if($(input).val() == '__.__.____' || $(input).val().indexOf(".") == -1) $(input).val(calendarFunctions.formatDate(new Date())).trigger('change');
	 }	
	
	__inputPicker = input;
	
	if($(__inputPicker).hasClass('showRightPicker')) timePickerSetPosition();
	// $(input).select();
}



var timerJQtap = '';
var disableHideJQTab = new Array(); // pro otvitrani filtru ze shora


function JQtap(el){
	 clearTimeout(timerJQtap);
	
     var position = $(el).parent().offset();
     position.top -= 138;
     var target = $(el).attr('href');
     if(target.indexOf('#') != -1){ //kompatible mod v ie zobrazuje href jako 'http://neco.cz/#target' misto '#target'
    	 target = target.split('#');
    	 target = '#'+target[1];
     }
     

     	if($(target).hasClass('showLeft')){
     		position.right = $('#allLayout').width() - 82 - position.left;
         	delete position.left;
         	if(ie7()) position.right -= 2;
     	}else{
         	position.left = position.left - 39;   
         	delete position.right;
         	if(ie7()) position.left -= 2;
     	}
     	if($(target).hasClass('sortpopup')){
     		position.top -= $(target).height() + 4;
     		
     	}
     $(target).css(position);
     var title = $(el).parents('.filtredtable th').attr('title');
     
     if($(target).hasClass('open')){
    	 JQTapInputSelect = false;
     	 if(typeof disableHideJQTab[title] !== 'undefined') delete disableHideJQTab[title];
	         if(typeof mouseleaveclose == 'undefined' || mouseleaveclose != true){
	        	 $('#ui-datepicker-div').css('visibility','hidden');
	        	 $(target).hide('fast',function(){
	        	 $('#ui-datepicker-div').css({'display':'none','visibility':'visible'});	 
	         }).removeClass('open');
         }
     }else{
    	 
    	 $(target).find('.sortbuttactive').remove();
    	 $(el).clone().addClass('sortbuttactive').click(function(){$(el).trigger('click');return false;}).appendTo($(target));
    	 
     	 if(typeof title !== 'undefined' && typeof disableHideJQTab[title] == 'undefined'){ 
     	 	disableHideJQTab = new Array();
     	 	disableHideJQTab[title] = '';
     	 }
     	 $('.open').hide('fast').removeClass('open');
 
     	$('#ui-datepicker-div').css({'display':'none'});
         $(target).addClass('open').show('fast',function(){
             //if(typeof inputs[0] !== 'undefined' && !$(inputs[0]).hasClass('datebox') && !$(inputs[0]).hasClass('datetimebox')) 
             if(JQSelectThisInput !== false){
            	 var input = JQSelectThisInput;
            	 JQSelectThisInput = false; 
             }else{
            	 var inputs = $(target).find("input[type=text], textarea");
            	 var input = inputs[0];
             }
             $(input).trigger('focus');   
             JQTapInputSelect = $(input).attr('name');
         });
     }	
     
}
function radioButtonJquery(r,n,o){
	// if($(r).attr('disabled') == 'disabled') return;
	$(n).removeClass('activebutton');
	$(o).addClass('activebutton');
	$(r).attr('checked',true);
	$(r).change();	
}
function checkboxButtonJquery(r,o){
	// if($(r).attr('disabled') == 'disabled') return;
	var set = !$(r).attr('checked');
	if(set){
		$(o).addClass('activecheckbox').addClass('activebutton');
		$(o).attr('clickactived','true');
		$(r).attr('disabled',false);
	}else{ 
		$(o).removeClass('activecheckbox').removeClass('activebutton');
	
	}
	if(typeof $(r).attr('colname') != 'undefined'){
		checkboxSetStateByColnameClick($(r).attr('colname'),set);
	}
	$(r).change();	
	$(r).attr('checked',set);
	
	// ocislovani checkboxbuttonu
	if(typeof $(r).attr('checkgroup') != 'undefined'){
		var params = setSelectUrl.getParamArrayByName('__groupby');
		$('a.checkbox').each(function(){
			if($(this).attr('checkgroup') == $(r).attr('checkgroup')){
				if(typeof params[$(this).attr('valuegroup')] != 'undefined') var w = params[$(this).attr('valuegroup')] + '.';else w = '';
				$(this).find('.ncheck').html(w);
			}
		});
	}
}
function checkboxSetStateByColnameClick(colname,checked){
	// pridani,odebrani tridy odkazu na checkbox
	var delUrl = new Array();
	$('a.checkbox').each(function(){
		if($(this).attr('colname') == colname){
			if(checked && $(this).attr('clickactived') != 'true'){
				$(this).addClass('disablecheckbox').removeClass('activecheckbox');	
				delUrl[$(this).attr('name')] = true;
			}else{
				$(this).removeClass('disablecheckbox');
			}
			$(this).attr('clickactived','false');
		}
	});
	
	$('input.special[type=checkbox]').each(function(){
		if($(this).attr('colname') == colname){
			if(checked){
				if(typeof delUrl[$(this).attr('name')] != 'undefined'){
					$(this).attr('disabled',true);
					$(this).attr('checked', false);
					setSelectUrl.removeItem('__groupby',$(this).attr('valuegroup'),false);
				}
			}else{
				$(this).attr('disabled',false);
			}
		}		
	});
	
}


function checkboxSetStateByColname(colname,checked){
	// pridani,odebrani tridy odkazu na checkbox
	$('a.checkbox').each(function(){
		if($(this).attr('colname') == colname){
			if(checked){
				if($(this).hasClass('activecheckbox') == false) $(this).addClass('disablecheckbox');	
			}else{
				$(this).removeClass('disablecheckbox');
			}
		}
	});
	// disable,enable checkboxu
	$('input.special[type=checkbox]').each(function(){
		if($(this).attr('colname') == colname){
			if(checked){
				if($(this).attr('checked') != 'checked') $(this).attr('disabled',true);	
			}else{
				$(this).attr('disabled',false);	
			}
		}		
	});
}

var setSelectUrl = {
  addItem: function(what,value,how,postUrl){
	var parsedUrl = this.getUrlParsed();
	

	if(how != ''){var write = value + ',' + how;}else{var write = value;}

	if(typeof parsedUrl[what] == "undefined"){parsedUrl[what] = new Array();}
	if(typeof parsedUrl[what][value] == "undefined" || parsedUrl[what][value] != write){
		parsedUrl[what][value] = write;
	}else{return ;}
	
	if(what == '__groupby') parsedUrl = this.onlySetPage(parsedUrl,1);
	
	this.setUrl(parsedUrl);
	this.postUrlByAjax(postUrl);
  },
  removeItem: function(what,value,postUrl){
  	var parsedUrl = this.getUrlParsed();
  	
  	if(typeof parsedUrl[what] == 'undefined')return;
  	if(typeof parsedUrl[what][value] != 'undefined'){ delete parsedUrl[what][value];}else{return ;}

  	if(what == '__groupby') parsedUrl = this.onlySetPage(parsedUrl,1);
  	
  	this.setUrl(parsedUrl);
  	this.postUrlByAjax(postUrl);
  },
  setItem: function(what,value,how,posturl){
  	var parsedUrl = this.getUrlParsed();
  	parsedUrl[what] = new Array();
  	
  	if(typeof how != 'undefined' && how != ''){var write = value + ',' + how;}else{var write = value;}
  	parsedUrl[what][value] = write;
	this.setUrl(parsedUrl);
	this.postUrlByAjax(posturl);
  },
  setItems: function(paramsArray, posturl){
	  	var parsedUrl = this.getUrlParsed();
	  	parsedUrl[what] = new Array();
	  	for(var what in paramsArray){
	  		if(paramsArray[what] != ''){
	  			parsedUrl[what] = new Array();
	  			parsedUrl[what][paramsArray[what]] = paramsArray[what];
	  		}else if(typeof parsedUrl[what] != 'undefined'){
	  			delete parsedUrl[what];
	  		}
	  	}
		this.setUrl(parsedUrl);
		this.postUrlByAjax(posturl);
  },
  unsetItem: function(what){
  	var parsedUrl = this.getUrlParsed();
  	parsedUrl[what] = new Array();
	this.setUrl(parsedUrl);
		
  },  
  setByCheckbox: function(self){
	  if($(self).attr('checked')){
		  this.setItem($(self).attr('name'),1,'',false);
	  }else{
		  this.unsetItem($(self).attr('name'));
	  }
  },
  unsetItemByPart: function(what){
  	var parsedUrl = this.getUrlParsed();
  	for(var i in parsedUrl){
  		if(i.indexOf(what) != -1) parsedUrl[i] = new Array();
  	}
  	this.setUrl(parsedUrl);	
  }, 
  changeItem: function(what,value,checked,postUrl){
  	if(checked == false){
  		this.addItem(what,value,'',postUrl);
  	}else{
  		this.removeItem(what,value,postUrl);	
  	}
  },
  setPage: function(value,postUrl){
  	
  	var parsedUrl = this.getUrlParsed();
  	
	parsedUrl = this.onlySetPage(parsedUrl,value);
  	
   	this.setUrl(parsedUrl);
  	this.postUrlByAjax(postUrl); 	
  },  
  onlySetPage: function(parsedUrl,value){
  	var what = '__page';
  	
   	parsedUrl[what] = new Array();
  	parsedUrl[what][value] = value;
 	
  	return parsedUrl;
  },
  getUrlParsed: function(){
  	var mainurl = unescape(document.location.href).split('#');
  	var returnArray = new Array();
  	if(typeof mainurl[1] == "undefined") return returnArray;
  	
  	var data = mainurl[1].split('&');
  	for(var i in data){
  		var d = data[i].split('=');
  		if(typeof d[1] == "undefined" || d[0] == 'showreport') continue;
  		returnArray[d[0]] = new Array();// type - group, order
  		var values = d[1].split('|');
  		for(var a in values){
  			var index = values[a].split(',');

  			returnArray[d[0]][index[0]] = values[a];
  		}
  	}
	return returnArray;
  },
  getUrlparsetSimple: function(){
	  var data = document.location.hash.replace("#",'').split('&');
	  var ret = new Array();
	  for(var i in data){
		  if(typeof data[i].split != 'function') continue;
		  var par = data[i].split('=');
		  if(typeof par[1] == 'undefined') par[1] = '';
		  ret[par[0]] = par[1];
	  }
	  return ret;
  }
  ,
  setUrl: function(arrUrl,returnhash){
	 var urlset = "";
  	 var p = 0;
  	 for(var type in arrUrl){
  	 	var p2 = 0;
  	 	for(var a in arrUrl[type]){p2++;
  	 		if(p2 == 1){
  	 			if(p > 0) urlset += "&";
  	 			urlset += type+'=';
  	 			p++;  	 			
  	 		}else{
  	 			urlset += "|";
  	 		}
  	 		urlset += arrUrl[type][a];
  	 	}
  	 }
  	if(typeof returnhash == 'undefined' && returnhash != false){
  	  	__hashnoreload = true;
  		document.location.hash = urlset;
  	}else{
  		return urlset;
  	}
  },  
  setUrlParams: function(object){
	  var url = this.getParamByName('__url');
	  var urlArray = new Array();
	  urlArray['__url'] = new Array();
	  urlArray['__url']['url'] = url;
	  
	  for(var i in object){
		  for(var a in object[i]){
			  var paramArray = new Array();
			  if(i == '__filterby'){
				  paramArray['param'] = object[i][a].colControl;
				  paramArray['paramval'] = object[i][a].colValue;
				  paramArray['value'] = paramArray['paramval'];
			  }else if(i == '__groupby' ||  i == '__orderby'){
				  paramArray['param'] = i;
				  paramArray['paramval'] = object[i][a].colName;
				  paramArray['value'] = paramArray['paramval'];				  
				  this.addItem(i,object[i][a].colName,'',false);
			  }else if( i == '__sortby'){
				  this.addItem(i,object[i][a].colName,object[i][a].colSort,false);
				  paramArray['param'] = i;
				  paramArray['paramval'] = object[i][a].colName;
				  paramArray['value'] = object[i][a].colName + ',' + object[i][a].colSort;						  
			  }
			  if(typeof urlArray[paramArray['param']] == 'undefined') urlArray[paramArray['param']] = new Array();
			  urlArray[paramArray['param']][paramArray['paramval']] = paramArray['value'] ;
		  }
		  if( i == '__setDoubleBackUrl'){
			  urlArray[i] = new Array();
			  urlArray[i][i] = true;
		  }
	  }
	  document.location.hash = this.setUrl(urlArray,true);
  },
  postUrlByAjax: function(url){
  	if(noPostAjax == true) return;
  	if(typeof url != 'undefined' && url === false) return;
  	
  	var mainurl = document.location.href.split('#')
  	
  	if(typeof url == "undefined" || url == '' || url == true){ 
  		url = this.getParamByName('__url');
  	}
  	if(typeof mainurl[1] != "undefined"){ 
  		url+="?"+mainurl[1]+"&__onlyGrid=true";
  	}else{
  		url+="?__onlyGrid=true";
  	}
  	__focus = false;
  	ajaxRequest(url,"#jQgridAjaxArea",true);

  },
  urlToInputsForm: function(selector){
  	var mainurl = unescape(document.location.href).split('#');
  	var returnArray = new Array();
  	if(typeof mainurl[1] == "undefined") return;
  	
  	var inputs = '';
  	var data = mainurl[1].split('&');
  	for(var i in data){
  		var w = data[i].split('=');
  		inputs += "<input type='hidden' name='" + w[0] + "' value='" + w[1] + "' />";
  	}
  	$(selector).append(inputs);
  },
  getActionAndController: function (){
  	 var v = this.getParamByName('__url').split('/');
  	   	
  	 var returns = new Array();returns['controller'] = '';returns['action'] = '';
  	 for(var i in v){
  	 	i = parseInt(i);
  	 	if(v[i] == 'admin'){
  	 		if(typeof v[i+1] != "undefined") returns['controller'] = v[i+1];
  	 		if(typeof v[i+2] != "undefined"){ 
  	 			var action = v[i+2].split('?');
  	 			returns['action'] = action[0];
  	 		}
  	 		break;
  	 	}
  	 }
  	 return returns;
  },
  setUrlToSaveForm: function(urlSelector,controllerSelector,actionSelector){
  	 var mainurl = unescape(document.location.href).split('#');
  	 if(typeof mainurl[1] == "undefined") mainurl[1] = '';
  	 var ret = this.getActionAndController();
  	 
  	 $(urlSelector).val(mainurl[1]);
  	 $(controllerSelector).val(ret['controller']);
  	 $(actionSelector).val(ret['action']);
  },
  getParamArrayByName: function(name){
	  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	  var regexS = "[\\#&]"+name+"=([^&]*)";
	  var regex = new RegExp( regexS );
	  var results = regex.exec( window.location.href );
	  if( results == null ){
	    return new Array();
	  }else{
	  	var ex = results[1].split('|');var ret = new Array();
	  	for(var i in ex) ret[ex[i]] = parseInt(i)+1;
	    return ret;
	  }
  },
   getParamByName: function(name){
  		var url = this.getParamArrayByName(name);
		var seturl = '';
		for(var i in url) seturl+= i;
		return seturl;
   }
}

var calendarFunctions = {
   formatDate: function(date){
    return ($.datepicker.formatDate(inputformat['dateformat'],date));
  },
  today: function(){
  	var d= new Date();
    return (this.formatDate(d));
  },
  yesterday: function(){
  	var d= new Date();
    d.setDate(d.getDate()-1);
    return (this.formatDate(d));
  },  
  firstdayofthisweek: function(){
  	var d =this.getdayofweek(inputformat['firstdayofweek']);
    return (this.formatDate(d));
  }, 
  lastdayofthisweek: function(){
  	var d =this.getdayofweek(inputformat['firstdayofweek']+6);
    return (this.formatDate(d));
  },   
  firstdayoflastweek: function(t){
  	var d =this.getdayofweek(inputformat['firstdayofweek']-7);
    return (this.formatDate(d));
  }, 
  lastdayoflastweek: function(t){
  	var d =this.getdayofweek(inputformat['firstdayofweek']-1);
    return (this.formatDate(d));
  }, 
  getdayofweek:function(move) {
  	var d= new Date();
    return new Date(d.getTime() - ( (d.getDay())*24*60*60*1000 ) + (move*24*60*60*1000));
  },
  firstdayofthismonth: function(){
    var d = new Date();
    d.setDate(1);
    return (this.formatDate(d));	
  },
  lastdayofthismonth: function(){
  	  var d = new Date();
      d = new Date((new Date(d.getFullYear(), d.getMonth()+1,1))-1);
      return (this.formatDate(d));
  },
  firstdayoflastmonth: function(t){
    var d = new Date();
    d.setDate(1);
    d.setMonth(d.getMonth() - 1);
    return (this.formatDate(d));	
  },  
  lastdayoflastmonth: function(){
  	  var d = new Date();
      d = new Date((new Date(d.getFullYear(), d.getMonth(),1))-1);
      return (this.formatDate(d));
  },  
  setinputdate: function(what,where,time){
  	 var where = where.split(","); var t = '';var inupt = '';var set = '';
  	 for(i in where){
  	 	if(time == true){
  	 		if(i == 0){t = ' 00:00:00';}else{t = ' 23:59:59';}
  	 	}
  	 	input = $("input[name=" + where[i] + "]");
		switch(what){
			case __langData['Today']:
				input.val(this.today()+t);
			break;
			case __langData['Yesterday']:
				input.val(this.yesterday()+t);
			break;
			case __langData['This Week']:
				if(i == 0) set = this.firstdayofthisweek(); else set = this.lastdayofthisweek();
				input.val(set+t);
			break;
			case __langData['Last Week']:
				if(i == 0) set = this.firstdayoflastweek(); else set = this.lastdayoflastweek();
				input.val(set+t);
			break;
			case __langData['This Month']:
				if(i == 0) set = this.firstdayofthismonth(); else set = this.lastdayofthismonth();
				input.val(set+t);
			break;
			case __langData['Last Month']:
				if(i == 0) set = this.firstdayoflastmonth(); else set = this.lastdayoflastmonth();
				input.val(set+t);
			break;
		} 
		input.change();	    
  	 }
  },
  _isInteger: function(val) {
  		var digits="1234567890";
  		for (var i=0; i < val.length; i++) {
  			if (digits.indexOf(val.charAt(i))==-1) { return false; }
  			}
  		return true;
  },
  _getInt: function(str,i,minlength,maxlength) {
  		for (var x=maxlength; x>=minlength; x--) {
  			var token=str.substring(i,i+x);
  			if (token.length < minlength) { return null; }
  			if (this._isInteger(token)) { return token; }
  			}
  		return null;
  },
  getDateFromFormat: function (val,format) {
  		val=val+"";
  		format=format+"";
  		var i_val=0;
  		var i_format=0;
  		var c="";
  		var token="";
  		var token2="";
  		var x,y;
  		var now=new Date();
  		var year=now.getYear();
  		var month=now.getMonth()+1;
  		var date=1;
  		var hh=now.getHours();
  		var mm=now.getMinutes();
  		var ss=now.getSeconds();
  		var ampm="";
  		
  		while (i_format < format.length) {
  			// Get next token from format string
  			c=format.charAt(i_format);
  			token="";
  			while ((format.charAt(i_format)==c) && (i_format < format.length)) {
  				token += format.charAt(i_format++);
  				}
  			// Extract contents of value based on format token
  			if (token=="yyyy" || token=="yy" || token=="y") {
  				if (token=="yy") { x=4;y=4; }
  				if (token=="y")    { x=2;y=4; }
  				year=this._getInt(val,i_val,x,y);
  				if (year==null) { return 0; }
  				i_val += year.length;
  				if (year.length==2) {
  					if (year > 70) { year=1900+(year-0); }
  					else { year=2000+(year-0); }
  					}
  				}
  			else if (token=="MMM"||token=="NNN"){
  				month=0;
  				for (var i=0; i<MONTH_NAMES.length; i++) {
  					var month_name=MONTH_NAMES[i];
  					if (val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()) {
  						if (token=="MMM"||(token=="NNN"&&i>11)) {
  							month=i+1;
  							if (month>12) { month -= 12; }
  							i_val += month_name.length;
  							break;
  							}
  						}
  					}
  				if ((month < 1)||(month>12)){return 0;}
  				}
  			else if (token=="EE"||token=="E"){
  				for (var i=0; i<DAY_NAMES.length; i++) {
  					var day_name=DAY_NAMES[i];
  					if (val.substring(i_val,i_val+day_name.length).toLowerCase()==day_name.toLowerCase()) {
  						i_val += day_name.length;
  						break;
  						}
  					}
  				}
  			else if (token=="mm"||token=="m") {
  				month=this._getInt(val,i_val,token.length,2);
  				if(month==null||(month<1)||(month>12)){return 0;}
  				i_val+=month.length;}
  			else if (token=="dd"||token=="d") {
  				date=this._getInt(val,i_val,token.length,2);
  				if(date==null||(date<1)||(date>31)){return 0;}
  				i_val+=date.length;}
  			else if (token=="hh"||token=="h") {
  				hh=this._getInt(val,i_val,token.length,2);
  				if(hh==null||(hh<1)||(hh>12)){return 0;}
  				i_val+=hh.length;}
  			else if (token=="HH"||token=="H") {
  				hh=this._getInt(val,i_val,token.length,2);
  				if(hh==null||(hh<0)||(hh>23)){return 0;}
  				i_val+=hh.length;}
  			else if (token=="KK"||token=="K") {
  				hh=this._getInt(val,i_val,token.length,2);
  				if(hh==null||(hh<0)||(hh>11)){return 0;}
  				i_val+=hh.length;}
  			else if (token=="kk"||token=="k") {
  				hh=this._getInt(val,i_val,token.length,2);
  				if(hh==null||(hh<1)||(hh>24)){return 0;}
  				i_val+=hh.length;hh--;}
  			else if (token=="mm"||token=="m") {
  				mm=this._getInt(val,i_val,token.length,2);
  				if(mm==null||(mm<0)||(mm>59)){return 0;}
  				i_val+=mm.length;}
  			else if (token=="ss"||token=="s") {
  				ss=this._getInt(val,i_val,token.length,2);
  				if(ss==null||(ss<0)||(ss>59)){return 0;}
  				i_val+=ss.length;}
  			else if (token=="a") {
  				if (val.substring(i_val,i_val+2).toLowerCase()=="am") {ampm="AM";}
  				else if (val.substring(i_val,i_val+2).toLowerCase()=="pm") {ampm="PM";}
  				else {return 0;}
  				i_val+=2;}
  			else {
  				if (val.substring(i_val,i_val+token.length)!=token) {return 0;}
  				else {i_val+=token.length;}
  				}
  			}
  		// If there are any trailing characters left in the value, it doesn't
		// match
  		if (i_val != val.length) { return 0; }
  		// Is date valid for month?
  		if (month==2) {
  			// Check for leap year
  			if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) { // leap
																		// year
  				if (date > 29){ return 0; }
  				}
  			else { if (date > 28) { return 0; } }
  			}
  		if ((month==4)||(month==6)||(month==9)||(month==11)) {
  			if (date > 30) { return 0; }
  			}
  		// Correct hours value
  		if (hh<12 && ampm=="PM") { hh=hh-0+12; }
  		else if (hh>11 && ampm=="AM") { hh-=12; }
  		var newdate=new Date(year,month-1,date,hh,mm,ss);
  	    return newdate;  	 
  },
  daysBetween: function (fromdate, todate) {  	
	  	if(fromdate == null || todate == null || typeof fromdate.getTime == 'undefined' || typeof todate.getTime == 'undefined') return 0;
	    var day = 1000 * 60 * 60 * 24;
	    var date1_ms = fromdate.getTime();
	    var date2_ms = todate.getTime();
	    var difference_ms = date2_ms - date1_ms;
	    return Math.round(difference_ms/day);

	}
}


function ie7(){
    if ($.browser.msie  && parseInt($.browser.version) == 7) {
      return true;
    }
    return false;
}

var __onscrollbefore = function(){};
var ajaxTargets = new Array();
var __beforenopostajax = false;
var noPostAjax = false;
function ajaxRequest(url, target, over, zIndex, hash, addData, successfn){
	
	
	
	if(typeof hash == 'undefined') hash = document.location.hash;
    if(typeof over == 'undefined'){over = false; }
    if(typeof zIndex == 'undefined'){zIndex = 100;}
    if(typeof addData == 'undefined'){addData = false;}
    if(typeof target == 'undefined'){target = '#body';}
    
    hash = hash.replace('#','');
    
    $('.ajaxshadow .ajaxShadowGen, .marginAjaxLoader').remove();
    
    
    var $target = $(target);
    // pridani __onlyBody
	var url = url.split("?");
	if(typeof url[1] == 'undefined'){url[1] = '';}else{url[1] = "&" + url[1];}
	url = url[0] + "?__onlyBody=true" + url[1]; 
	if(target == "#body" || target == ''){
		for(var i in ajaxTargets){
			ajaxTargets[i].abort()
			delete ajaxTargets[i];
		}		
	}else{
		if(typeof  ajaxTargets[target] !== 'undefined') ajaxTargets[target].abort();
	}
    if(over == true){	
    	if(target == "#body" || target == ''){
    		hideSilverLight();
    		var margin = 10;var loaderClass = ' bodyLoader';
    		if(typeof onresizegrid != 'undefined') delete onresizegrid;
    		__globalTarget = '';
    	}else{
    		var margin = 0;var loaderClass = '';
    	}
    	
    	if(target == '#jQmodalMid .wrapper')
    		__globalTarget = "#jQmodalMid .wrapper";
    	
    	if(target == "#body" || target == '' ||  target == '#jQmodalMid .wrapper'){
    		__onscrollbefore = window.onscroll;
    		__beforenopostajax = noPostAjax;
    		window.onscroll = function(){};
    	}
    	
    	if(typeof noPostAjax != 'undefined') delete noPostAjax;
    	
    	var setheight = $target.height();
    	$target.prepend('<div class="marginAjaxLoader" style="margin:0 ' + margin + '"><div class="ajaxLoader' + loaderClass + '"></div></div>');
        $('.ajaxLoader', $target)
            .height(setheight)
            .width($target.width()-(margin*2))
            .css({opacity: .8, position: 'absolute', 'z-index': zIndex, 'background-color': '#fff'});
        $('.ajaxshadow').prepend('<div class="ajaxShadowGen"></div>');
        $('.ajaxshadow').each(function(){
         $(this).find('.ajaxShadowGen')
            .height($(this).height())
            .width($(this).width())
            .css({opacity: .8, position: 'absolute', 'z-index': zIndex, 'background-color': '#fff'});         	
        	
        });

            
    }else if(over != 'none'){
        $target.empty().html('<div class="ajaxLoader"></div>');
    }
    
    // zapnuti loaderu
    var ajaxnotice = $.pnotify({pnotify_text: __langData["Loading... Please Wait"], pnotify_notice_icon: "ico-loader", pnotify_hide: false, pnotify_opacity: 0.75, pnotify_width: "170px"});
    // vypnuti loaderu
    var shutdownloader = function(){ajaxnotice.pnotify({pnotify_delay: 0,pnotify_text: __langData["Loading complete"], pnotify_hide:true, pnotify_notice_icon: "ui-icon ui-icon-circle-check"});} ; 
    ajaxTargets[target] = $.post(
        url,
        hash,
        function(data){
        	noPostAjax = false;
        	shutdownloader();
        	$('.removeAfterLoad').remove();
            if(over == true || over == 'none'){
            	if(addData == true){
            		$target.find('.removeScroll').remove();
            		$target.append(data);
            	}else{
            		$target.empty().html(data).fadeIn('slow',function(){afterloadgrid(target);});  
            	}
            }else{
            	if(addData == true){
	                $('.ajaxLoader', $target).fadeOut('slow', function(){
	                		$target.find('.removeScroll').remove();
	               		 	$target.append(data);
	                }); 
            	}else{
                    $target.html(data);
                    afterloadgrid(target);  
               	}
            }
        	$('.ajaxshadow .ajaxShadowGen, .ajaxLoader').remove();
        	onLoadAndResizeWindow();
        	if(typeof successfn == 'function') successfn();
        }
    ).error(function() {
		shutdownloader();
    });
}
var jQcloseRefresh = false;
function jQcloseModal(){
	__globalTarget = '';
	window.onscroll = __onscrollbefore;
	noPostAjax = __beforenopostajax;
    $('#jQmodalLayout, #jQmodalContent').animate({opacity: 0}).hide();
    if(jQcloseRefresh){
    	document.location.postself();
    	jQcloseRefresh = false;
    }
    if(__smallSilverOpenBeforeJQmodal){
    	silverLightSmallSize();
    	__smallSilverOpen = true;
    }
}
function dataAddToJQTableBySelect(setup){
	if(typeof setup.params == 'undefined') return;
	var data = getSelectedData(setup.selector);
	if(typeof data != 'object') return;
	
	if(typeof setup.params != 'undefined'){
		for(var i in setup.params){
			data[i] = setup.params[i];
		}
	}
	var postdata = '';
	for(var i in data)
		postdata += i+'='+data[i]+"&";
	$.post(setup.url, postdata, function(){
		JQaddRow({'selector': setup.selectorTable ,'del' : true, 'cols': [data['value']], 'id' : data['iditem']});
	});
}

function getSelectedData(selector){
	var paramname = $(selector).attr('name');
	var data = false;
	$(selector+" option").each(function(){
		if(this.selected == true){
			data = new Array();
			data[paramname] = $(this).val();
			data['iditem'] = $(this).val();
			data['value'] = $(this).attr('label'); 
		}
	});
	return data;
}
var oTableCounter = 0;oTableEditCounter = 0;var oTable = new Array();
function JQaddRow(setup){
	//{selectorttable,rows,id,edit,delete}
	var cols = new Array();var a = 0;
	for(var i in setup.cols){
		if(i == 0 && typeof setup.id != 'undefined'){
			cols[i] = setup.cols[i]+"<input type='hidden' name='iditem' value='" + setup.id + "' />";
		}else{
			cols[i] = setup.cols[i];
		}
		a++;
	}
	if((typeof setup.edit != 'undefined' && setup.edit !== '') || (typeof setup.del != 'undefined' && setup.del !== '')){	
		cols[a] = '';		
		if(typeof setup.edit != 'undefined' && setup.edit !== '') cols[a] += '<a class="butt buttedit2" onclick="return false;" href="./"></a>';
		if(typeof setup.del != 'undefined' && setup.del !== '') cols[a] += '<a class="butt buttdelete2" href="./" onclick="return false;" ></a>';
	}	
	$(setup.selector).dataTable().fnAddData( cols );	
	if((typeof setup.edit != 'undefined' && setup.edit !== '') || (typeof setup.del != 'undefined' && setup.del !== '')){	
		$(setup.selector).find('tr').each(function(){
			
			var last = false;
			$(this).find('td').each(function(){
				last = $(this);
			});
			if(last !== false) last.addClass('modalgridaction');
		});
	}
}
function jQmodalOpen(href,title){
	if(typeof title == 'undefined') title = '';
	var el = $("<a href='" + href + "' title='" + title + "'>&nbsp;</a>");
	$.jQmodal(el);	
}
function JQaddEditToolsTable(selectorttable,editurl,delurl,sortby,how,jQmodalSet,params){
		if(typeof sortby == 'undefined' || sortby == false){sortby = 0;}
		if(typeof how == 'undefined' || how == false){how = 'asc';}
		if(editurl != '' || delurl != ''){
			$(selectorttable+' thead tr').each(function(){
			    $(this).html($(this).html()+"<th class='noleftborder modalgridaction'>&nbsp;</th>");
			});			
			$(selectorttable+' tbody tr').each(function(){
				var trHtml = $(this).html()+'<td class="modalgridaction">';
				if(editurl != '') trHtml += '<a class="butt buttedit2" onclick="return false;" href="./"></a>';
				if(delurl != '') trHtml += '<a class="butt buttdelete2" href="./" onclick="return false;" ></a>';
				trHtml += '</td>';
			    $(this).html(trHtml);
			});
		}
		oTableCounter++;
		if(typeof params == 'undefined') params = {};
		params.aaSorting = [[ sortby, how ]];
		if(__langShort == 'cs'){
			params.oLanguage = {
			    "sProcessing":   "Provádím...",
			    "sLengthMenu":   "Zobraz záznamů _MENU_",
			    "sZeroRecords":  "Žádné záznamy nebyly nalezeny",
			    "sInfo":         "Zobrazuji _START_ až _END_ z celkem _TOTAL_ záznamů",
			    "sInfoEmpty":    "Zobrazuji 0 až 0 z 0 záznamů",
			    "sInfoFiltered": "(filtrováno z celkem _MAX_ záznamů)",
			    "sInfoPostFix":  "",
			    "sSearch":       "Hledat:",
			    "sUrl":          "",
			    "oPaginate": {
			       "sFirst":    "První",
			       "sPrevious": "Předchozí",
			       "sNext":     "Další",
			       "sLast":     "Poslední"
			    }
			};
		}
		oTable[oTableCounter] = $(selectorttable).dataTable(params); 
		if($(selectorttable+' thead tr').length > 1){
			var a = 0;
			$(selectorttable+' tr').each(function(){
			    a++;
			    if(a == 2) $(selectorttable+' thead').prepend($(this));
			});
		}
		$(selectorttable+' tbody tr .modalgridaction .buttedit2').die("click").live('click',function(){
			var nTr = this.parentNode.parentNode;
			$(nTr).find('td:first').trigger('click');
			
			var itemrel = $(this).parent().parent().find('input[name=iditem]');
			var iditem = itemrel.val();
			
			if(typeof jQmodalSet != 'undefined' && jQmodalSet != false){
				var title = '';var setWidth = '';
				if(typeof jQmodalSet == 'string') title = jQmodalSet;
				if(typeof jQmodalSet['title'] != 'undefined') title = jQmodalSet['title'];
				if(typeof jQmodalSet['width'] != 'undefined') setWidth = " setWidth='" + jQmodalSet['width'] + "' ";
					
				var el = $("<a href='" + editurl + "?" + 'id='+ iditem + '&nl_id='+ iditem + "' title='" + title + "' " + setWidth + ">&nbsp;</a>");
				$.jQmodal(el);
			}else if ($(this).hasClass('activated-butt-table-edit')){
				oTable[oTableCounter].fnClose( nTr );
				$(this).removeClass('activated-butt-table-edit');
			}else{
				var $el = $(this);
				var oTableCloseFunction = function(){
					oTable[oTableCounter].fnClose(nTr);
					$el.removeClass('activated-butt-table-edit');
				}
				$(this).addClass('activated-butt-table-edit');
				oTableEditCounter++;
				oTable[oTableCounter].fnOpen( nTr, "<div class='JQEditFormDataTable" + oTableCounter + oTableEditCounter +"'>&nbsp;</div>", 'editTableRow' );
				var target = selectorttable+' tbody .JQEditFormDataTable' + oTableCounter + oTableEditCounter;
				
				$target = $(target);
				$target.prepend('<div class="ajaxLoader"></div>');
        		$('.ajaxLoader', $target).height($target.height()).width($target.width()).css({opacity: .8, 'background-color': '#fff'});
			    $.get(
			        editurl,
			        {'id': iditem},
			        function(data){
			            $target.empty().html(data).fadeIn('slow');                
			 			// nastaveni odesilani formulare
						 $(target+" form").submit(function(event) {
						    event.preventDefault();			    /*
																 * stop form
																 * from
																 * submitting
																 * normally
																 */ 
						    var $form = $( this ), action = $form.attr( 'action' ), dataString = $form.serialize();
						    var buttSave = this;
							$.ajax({type: "POST", url: action, data: dataString,  
							  success: function(data) {
							  	$.pnotify(__langData['Item saved.']);
							  	itemrel.val(data);
							  	$form.find('input, textarea').each(function(){
							  		var col = $(this).attr('col');
							  		if(col != undefined){
							  			var val = $(this).val();
								  		var set = $(this).attr('setTitle');
								  		if(set != undefined){
								  			$($(nTr).find('td')[col]).attr('title',nl2br(val));
								  		}		
								  		
								  		var cut = $(this).attr('cut');
								  		if(cut != undefined && val.length > cut) val = val.substring(0, cut) + '...';		
								  		
								  		var addbefore = $(this).attr('addbefore');
								  		if(addbefore != undefined) val = addbefore+val;
								  					  			
							  			oTable[oTableCounter].fnUpdate(val, nTr, col); /*
																						 * Single
																						 * cell
																						 */
							  			oTableCloseFunction();
							  		}
							  	});
							  }  
							});  		
						}); 
						// nastaveni tlacitka cancel
						$('input[name=cancel]').click(function(){
							oTableCloseFunction();
						});
						afterloadgrid(target);           
			        }
			    );
			}			
		});
		$(selectorttable+' tbody tr .modalgridaction .buttdelete2').die("click").live('click',function(){
			if(confirm(__langData['Realy delete?'])){
				var iditem = $(this).parent().parent().find('input[name=iditem]').val();
				$.ajaxnotify(delurl,{ 'id': iditem, 'nl_id': iditem },'',$(this));				
				var row = $(this).closest("tr").get(0);
				oTable[oTableCounter].fnDeleteRow(oTable[oTableCounter].fnGetPosition(row));
			}
		});		
}
$.fn.dataTableExt.oPagination.none = {
	"fnInit": function ( oSettings, nPaging, fnCallbackDraw ){
		$(oSettings.nTableWrapper).css('padding','0').find('.dataTables_length, .dataTables_filter, .dataTables_info, .dataTables_paginate').css('display','none');
	},
	"fnUpdate": function ( oSettings, fnCallbackDraw ){
		$(oSettings.nTableWrapper).css('padding','0').find('.dataTables_length, .dataTables_filter, .dataTables_info, .dataTables_paginate').css('display','none');
	}
}
$.fn.dataTableExt.oPagination.sfleet_paginator = {
		"fnInit": function ( oSettings, nPaging, fnCallbackDraw )
		{
	$(oSettings.nTable).addClass('borderedTable');
	var visibleRows = '';
	for (var i in oSettings.aLengthMenu){
		 visibleRows += '<option value="' + oSettings.aLengthMenu[i] +'">' + oSettings.aLengthMenu[i] +'</option>';
	}
	var pagingData = '\
	<div class="tcenter whitebg">\
	<div class="navigation">\
		<div class="navigationbgright">\
			<a class="first paginate_button" onclick="return false;" href="./">' + __langData['First'] + '</a>\
			<a class="previous paginate_button" onclick="return false;" href="./">' + __langData['Previous'] + '</a>\
		    <span><strong>' + __langData['Page'] + ' </strong><input type="text" name="page" value="1" class="setpage"> ' + __langData['of'] + ' <strong class="numberOfPage">1</strong></span>\
		    |<span><strong>' + __langData['Visible Rows'] + ': \
			<select class="offset" name="__offset"> ' + visibleRows + ' </select></strong></span>\
			<span class="showAll"><strong>' + __langData['Show All'] + ': </strong><input type="checkbox" name="allRows" class="checkboxnormal" /> </span>|\
		    <span><strong>' + __langData['Number Of Rows'] + ': <strong class="numberOfRows">0</strong></strong></span>\
			<a class="next paginate_button" onclick="return false;" href="./">' + __langData['Next'] + '</a>\
		    <a class="last paginate_button" onclick="return false;" href="./">' + __langData['Last'] + '</a>\
		</div>\
	</div>\
	</div>\
	';
	
			$(nPaging).append(pagingData).addClass('navigationPaginate');
	
			$(nPaging).find('.first').click( function () {
				oSettings.oApi._fnPageChange( oSettings, "first" );
				fnCallbackDraw( oSettings );
			} );
			$(nPaging).find('.previous').click( function() {
				oSettings.oApi._fnPageChange( oSettings, "previous" );
				fnCallbackDraw( oSettings );
			} );
			
			$(nPaging).find('.next').click( function() {
				oSettings.oApi._fnPageChange( oSettings, "next" );
				fnCallbackDraw( oSettings );
			} );			
			$(nPaging).find('.last').click( function () {
				oSettings.oApi._fnPageChange( oSettings, "last" );
				fnCallbackDraw( oSettings );
			} );	

			$(nPaging).find('.setpage').keyup( function (e) {
				if ( e.which == 38 || e.which == 39 ){
					this.value++;
				}else if ( (e.which == 37 || e.which == 40) && this.value > 1 ){
					this.value--;
				}
				if ( this.value == "" || this.value.match(/[^0-9]/) ){

					return;
				}
			}).change(function(){
				if(this.value < 1) this.value = 1;
				var iNewStart = oSettings._iDisplayLength * (this.value - 1);
				if ( iNewStart > oSettings.fnRecordsDisplay() ){
					oSettings._iDisplayStart = (Math.ceil((oSettings.fnRecordsDisplay()-1) / 
						oSettings._iDisplayLength)-1) * oSettings._iDisplayLength;
					fnCallbackDraw( oSettings );
					return;
				}
				oSettings._iDisplayStart = iNewStart;
				fnCallbackDraw( oSettings );				
			});
			$(nPaging).find('.checkboxnormal').change(function(){
				var last;var first = null;
				$(oSettings.nTableWrapper).find('.dataTables_length select option').each(function(){
					if(first == null) first = $(this);
					last = $(this);
				});
				
				if(!$(this).attr('checked')){
					var set = {'opacity':0.5,'cursor':'default','text-decoration':'none'};
					$(nPaging).find('.navigationbgright input[type=text], .navigationbgright select').attr('disabled','disabled');
					last.attr('selected','selected');
				}else{
					var set = {'opacity':1,'cursor':'','text-decoration':''};
					$(nPaging).find('.navigationbgright input[type=text], .navigationbgright select').removeAttr('disabled');
					first.attr('selected','selected');
				}
				
				$(nPaging).find('.navigationbgright span, .navigationbgright span a').css(set);
				$(nPaging).find('.navigationbgright .showAll, .navigationbgright .showAll *').css({'opacity':1,'cursor':'','text-decoration':''});

				$(oSettings.nTableWrapper).find('.dataTables_length select').trigger('change');				
			});
			
			$(nPaging).find('.offset').change(function(){
				var offset = $(this);
				$(oSettings.nTableWrapper).find('.dataTables_length select option').each(function(){
					if($(this).val() == offset.val()) $(this).attr('selected','selected');
				});
				$(oSettings.nTableWrapper).find('.dataTables_length select').trigger('change');
			});
			$(oSettings.nTableWrapper).find('.dataTables_info, .dataTables_length, .dataTables_filter').css('display',"none");
			$(oSettings.nTableWrapper).css('padding-top','0');
			
		},
		"fnUpdate": function ( oSettings, fnCallbackDraw ){
			var an = oSettings.aanFeatures.p;
			$(an).find('.numberOfRows').html(oSettings.iNextId);
            
			var maxPage = Math.ceil(oSettings.iNextId/oSettings._iDisplayLength);
			var actPage = Math.ceil(oSettings.fnDisplayEnd()/oSettings._iDisplayLength);
			
			$(an).find('.numberOfPage').html(maxPage);
			$(an).find('.setpage').val(actPage);
			
			//console.log(oSettings);
			var clsName = 'white';
			$(oSettings.nTable).find('tr').each(function(){
				$(this).removeClass('white').removeClass('grey').addClass(clsName);
				if(clsName == 'white') clsName = 'grey'; else clsName = 'white';
			});
				if ( oSettings._iDisplayStart === 0 ){
					$(an).find('a.previous, a.first').css({'opacity':0.5,'cursor':'default','text-decoration':'none'});
				}else{
					$(an).find('a.previous, a.first').css({'opacity':1,'cursor':'','text-decoration':''});
				}
				
				if ( oSettings.fnDisplayEnd() == oSettings.fnRecordsDisplay() ){
					$(an).find('a.next, a.last').css({'opacity':0.5,'cursor':'default','text-decoration':'none'});
				}else{
					$(an).find('a.next, a.last').css({'opacity':1,'cursor':'','text-decoration':''});
				}
				this.duplicatePaginator(oSettings,fnCallbackDraw,actPage,an);
		},
		"duplicatePaginator": function(oSettings,fnCallbackDraw,actPage,an){
			var t = 0;
			$('.paginatorCopy').each(function(){t++;})
			if(t == 0) $(oSettings.nTable).before('<div class="paginatorCopy"></div>');
			
			$('.paginatorCopy').html("<div class='space' style='background:#fff'>&nbsp;</div>"+$('.navigationPaginate').html()+"<div class='space' style='background:#fff'>&nbsp;</div>");
			
			nPaging = '.paginatorCopy';
			
			var setVisible = 100;
			$(oSettings.nTableWrapper).find('.dataTables_length select option').each(function(){
				if($(this).attr('selected') == 'selected') setVisible = $(this).val();
			});
			$(nPaging).find('select option').each(function(){
				if($(this).val() == setVisible) $(this).attr('selected','selected');
			});		
			$(an).find('select option').each(function(){
				if($(this).val() == setVisible) $(this).attr('selected','selected');
			});	
			
			
			
			$(nPaging).find('.setpage').val(actPage);
			$(nPaging).find('.first').click( function () {
				oSettings.oApi._fnPageChange( oSettings, "first" );
				fnCallbackDraw( oSettings );
			} );
			$(nPaging).find('.previous').click( function() {
				oSettings.oApi._fnPageChange( oSettings, "previous" );
				fnCallbackDraw( oSettings );
			} );
			
			$(nPaging).find('.next').click( function() {
				oSettings.oApi._fnPageChange( oSettings, "next" );
				fnCallbackDraw( oSettings );
			} );			
			$(nPaging).find('.last').click( function () {
				oSettings.oApi._fnPageChange( oSettings, "last" );
				fnCallbackDraw( oSettings );
			} );	

			$(nPaging).find('.setpage').keyup( function (e) {
				if ( e.which == 38 || e.which == 39 ){
					this.value++;
				}else if ( (e.which == 37 || e.which == 40) && this.value > 1 ){
					this.value--;
				}
				if ( this.value == "" || this.value.match(/[^0-9]/) ){

					return;
				}
			}).change(function(){
				if(this.value < 1) this.value = 1;
				var iNewStart = oSettings._iDisplayLength * (this.value - 1);
				if ( iNewStart > oSettings.fnRecordsDisplay() ){
					oSettings._iDisplayStart = (Math.ceil((oSettings.fnRecordsDisplay()-1) / 
						oSettings._iDisplayLength)-1) * oSettings._iDisplayLength;
					fnCallbackDraw( oSettings );
					return;
				}
				oSettings._iDisplayStart = iNewStart;
				fnCallbackDraw( oSettings );				
			});
			$(nPaging).find('.checkboxnormal').change(function(){
				var last;var first = null;
				$(oSettings.nTableWrapper).find('.dataTables_length select option').each(function(){
					if(first == null) first = $(this);
					last = $(this);
				});
				
				if(!$(this).attr('checked')){
					var set = {'opacity':0.5,'cursor':'default','text-decoration':'none'};
					$(nPaging).find('.navigationbgright input[type=text], .navigationbgright select').attr('disabled','disabled');
					last.attr('selected','selected');
				}else{
					var set = {'opacity':1,'cursor':'','text-decoration':''};
					$(nPaging).find('.navigationbgright input[type=text], .navigationbgright select').removeAttr('disabled');
					first.attr('selected','selected');
				}
				
				$(nPaging).find('.navigationbgright span, .navigationbgright span a').css(set);
				$(nPaging).find('.navigationbgright .showAll, .navigationbgright .showAll *').css({'opacity':1,'cursor':'','text-decoration':''});

				$(oSettings.nTableWrapper).find('.dataTables_length select').trigger('change');				
			});
			
			$(nPaging).find('.offset').change(function(){
				var offset = $(this);
				$(oSettings.nTableWrapper).find('.dataTables_length select option').each(function(){
					if($(this).val() == offset.val()) $(this).attr('selected','selected');
				});
				$(oSettings.nTableWrapper).find('.dataTables_length select').trigger('change');
			});		
		
		}
	};

/*
 * funguje, ale neni zatim treba function
 * JQtableCloseTrByIdItem(iditem,oTableCounter){
 * $(oTable[oTableCounter]).find('input[name=iditem]').each(function(){
 * if($(this).val() == iditem){ var nTr = this.parentNode.parentNode;
 * oTable[oTableCounter].fnClose(nTr); } }); }
 */
function JQSetTdClickSetDataInput(selectorttable,data){
	$(selectorttable+' tr td').click(function(){
		if($(this).hasClass('modalgridaction')) return;
		$(selectorttable+' tr').removeClass('orange');
		$(this).parent().addClass('orange');		
		var tds = $(this).parent().find('td');
		for(var i in data){
			$(data[i]).val($(tds[i]).html()).trigger('change');
		}
	});	
}
function JQSetScriptTdClick(selectorttable,url){
	$(selectorttable+' tr td').click(function(){
		if($(this).hasClass('modalgridaction')) return;
		var row = $(this).parent();
		$(selectorttable+' tr').removeClass('orange');
		$(this).parent().addClass('orange');
		var id = row.find('input[name=iditem]').val();
		$.post(url,"id=" + id + "nl_id" + id,function(data){
			eval(data);
		});
	});	
}

function JQsetSearchElement(selectorsearch,selectordatatable,buttonSelector){
	$(selectorsearch).keyup(function(event){
		if(event.keyCode == 13){
			$(selectordatatable+"_wrapper .dataTables_filter input").trigger('keyup');return;
		}
		$(selectordatatable+"_wrapper .dataTables_filter input").val($(this).val()).trigger('keyup');
	});
	$(buttonSelector).click(function(){
		$(selectordatatable+"_wrapper .dataTables_filter input").trigger('keyup');
		return false;
	});
	
	$(selectordatatable+"_wrapper .dataTables_filter").css('display',"none");
	
}

var __activeFilters = new Array();
function clearActiveItem(el,what){
	if($(el).hasClass('disabled'))
		return;
	
	setSelectUrl.unsetItem(what);
	setSelectUrl.postUrlByAjax();
}
function clearActiveFilters(el){
	if($(el).hasClass('disabled'))
		return;
	
	for(var i in __activeFilters){
		setSelectUrl.unsetItem(__activeFilters[i]);
	}
	setSelectUrl.postUrlByAjax();
}
function showActiveFilter(){ 
    var t = '';
    __activeFilters = new Array();var a = 0;
    for(var i=0; i<arguments.length; i=i+4){
        if(t != '') t+= ' ';
        t += "<span class='borderedactived " + arguments[i+3] + "'><span onclick='JQTapActiveFilterShow(\"" + arguments[i] + "\",\"" + arguments[i+1] + "\",\"" + arguments[i+2] + "\");'>" + arguments[i] + '</span> <a class="butt buttdelete" href="./" onclick="setSelectUrl.unsetItem(' + "'" + arguments[i+2] + "'" + ');setSelectUrl.postUrlByAjax();return false;"></a></span>';
        __activeFilters[a++] = arguments[i+2];
    }
    if(arguments.length == 0){
    	$('#activeFiltersButt').addClass('disabled');
    	//t += '<span class="borderedactived">None</span>';
    }else{
    	$('#activeFiltersButt').removeClass('disabled');
    }
	$('#activeFilter').html(t);	
}

var JQTapInputSelect = false;var JQSelectThisInput = false;
function JQTapActiveFilterShow(linkname,name,id){
	var $elSel = $('.thactionpopups input[name=' + id + '], .thactionpopups select[name=' + id + ']');
	if(JQTapInputSelect != id && typeof disableHideJQTab[name] != 'undefined'){
		$elSel.select();
		JQTapInputSelect = $elSel.attr('name');
	}else{
		JQSelectThisInput = $elSel;
		$('.filtredtable th').each(function(){
		    if($(this).attr('title') == name) $(this).find('.buttthpopup').trigger('click');
		});	
	}	
}
function showActiveGrouping(){
    var t = '';
    for(var i=0; i<arguments.length; i=i+2){
        if(t != '') t+= ' ';
        t += '<span class="borderedactived"><span>' + arguments[i] + '</span><a class="butt buttdelete" href="./" onclick="clickCheckboxButton(' + "'" +arguments[i+1] + "'"+ ');return false;"></a></span>';
    }
    if(arguments.length == 0){
    	$('#activeGroupingButt').addClass('disabled');
    	//t += '<span class="borderedactived">None</span>';
    }else{
    	$('#activeGroupingButt').removeClass('disabled');
    }
	$('#activeGrouping').html(t);
}

function clickCheckboxButton(valuegroup){
	$('a.checkbox').each(function(){
		if($(this).attr('valuegroup') == valuegroup) $(this).trigger('click');
	});
}
function showActiveOrder(){
	showFilterToGrid(arguments,'__sortby','#activeSorting');
}
function showFilterToGrid(arg,type,selector){
    var t = '';
    for(var i=0; i<arg.length; i=i+2){
        if(t != '') t+= ' ';
        t += '<span class="borderedactived"><span>' + arg[i] + '</span><a class="butt buttdelete" href="./" onclick="setSelectUrl.removeItem('+"'"+type+"'"+","+"'"+arg[i+1]+"'"+');return false;"></a></span>';
    }
    if(arg.length == 0){
    	$(selector+"Butt").addClass('disabled');
    	//t += '<span class="borderedactived">None</span>';
    }else{
    	$(selector+"Butt").removeClass('disabled');
    }
	$(selector).html(t);
}

function postFormToReport(url){
	var mainurl = document.location.href.split('#');
	if(typeof mainurl[1] == 'undefined') mainurl[1] = '';
	document.location.post(url+"#"+mainurl[1],mainurl[1]);
}


function nl2br(str) {
    return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + '<br />' + '$2');
}

var __silverOpen = false;
var __smallSilverOpen = false;
function hideSilverLight(){
	__smallSilverOpen = __silverOpen = false;
	$('#silverLightDiv').css('top',0).height(1);
}
function showFullSilverLight(){
	
	__silverOpen = true;
	var headheight = $('#header').height();
	var bodyheight = $('#body').height();
	$('#silverLightDiv').unbind('mousemove').css({'width': '100%','top':headheight,'left': 0,'display':'block'}).height(bodyheight-headheight);
	
}
function silverLightSmallSize(){
	$('#firstfulltable,#firstfulltable .relative').height($('#body').height()-170);
	var offset = $('#silverlightfulltable').offset();
	var width = $('#silverlightfulltable').width();
	var height = $('#silverlightfulltable').height();
	$('#silverlightfulltable').removeClass('silverLightBg');
	$('#silverLightDiv').css({'z-index': 'auto','width': (width),'top':offset.top,'left':(offset.left+20),'display':'block'}).height(height);
};
function startSilverResizer(){
	$('#silverLightDiv').height(1).css({'top': 1,'z-index': -1});
	var offset = $('#body').offset();
	var width = $('#body').width();
	var height = $('#body').height();
	$('#body').append($("<div id='silverShadow' class='loader'></div>"));
	$('#silverlightfulltable').addClass('silverLightBg');
	
	$('#silverShadow')
	.css({'cursor':'e-resize','height':height,'width':width, 'left': offset.left, 'top': offset.top, 'z-index': 100})
	.bind('mouseup mouseleave',function(){
		//$('#silverLightDiv').css('z-index', 'auto');
		silverLightSmallSize();
		$('#silverShadow').remove();
	}).mousemove(function(e){
	      var width  = e.pageX - $(this).offset().left-60;
	      $('#firstfulltable,#firstfulltable .relative').width(width);
	      if(typeof onresizegrid == 'function') onresizegrid();
	      //silverLightSmallSize();
	});	
	if(typeof onresizegrid == 'function') onresizegrid();
}
function openSilver(self){
	if(__smallSilverOpen == true){
		closeSilver();hideSilverLight(); 
		$(self).removeClass('active');
		return ;
	}
	$(self).addClass('active');
	
	__smallSilverOpen = true;
	var ap = $("<td class='resizer' style='padding:2px;'></td><td id='silverlightfulltable'></td>");
	
	$('#firstfulltable .relative').css('overflow','auto');
	$('#firstfulltable').after(ap).css('padding-right','20px');
	$('#silverlightfulltable').css('padding-left','20px');

	$('#firstfulltable').width('50%');
	$('#fulltablelayout td.resizer').mousedown(function(){startSilverResizer();});
	silverLightSmallSize();
}

function closeSilver(){
	$('#firstfulltable').css('padding-right','0');
	$('#silverlightfulltable, #fulltablelayout .resizer').remove();
	$('#firstfulltable .relative').css('overflow','visible');
	$('#firstfulltable,#firstfulltable .relative').height('').width('');	
}


function confirmDatesRange(fromselector, toselector, days, text){
	var from = $(fromselector).val().split(' ')[0];
	var to = $(toselector).val().split(' ')[0];
	from = calendarFunctions.getDateFromFormat(from,inputformat['dateformat']);
	
	if(to == '')
		to = new Date();
	else
		to = calendarFunctions.getDateFromFormat(to,inputformat['dateformat']);
    if(calendarFunctions.daysBetween(from,to) > days || from == ''){
        return confirm(text);
    }else{
        return true;
    }
}
function closeElement(selector,self){
	if($(self).hasClass('active'))
		$(self).removeClass('active');
	else
		$(self).addClass('active');
	$(selector).toggleClass('collapseClose',500);
	$('#'+$(self).attr('id')).jQgroupCollapseSave();
}

function defaultSettingsForm(self){
	if($(self).hasClass('disabled')) return;
	$('.activecheckbox').trigger('click');
	$('input[type=text]').val('').trigger('change');
	$('#groupCollapseActiveParametrsClose, #groupCollapseActiveParametrs').fadeOut();
			
	document.location.hash = '__url=' + setSelectUrl.getParamByName('__url');

}
function checkDefaultForm(selector){
	if(paramEqual(__defaultSettings)){
		$(selector).addClass('disabled');
	}else{
		$(selector).removeClass('disabled');
	}
	return;
	
	
	var parsedUrl = setSelectUrl.getUrlParsed();
	var def = true;
	for(var i in parsedUrl){
		if(i == '__url') continue;
        for(var a in parsedUrl[i]){
            if(parsedUrl[i][a] == '' || (i == '__page' && parsedUrl[i][a] == '1')) continue;
            
            $(selector).removeClass('disabled');
            return;
         }
	}
    $(selector).addClass('disabled');
}

function getScrollMaxY(){
    if ('scrollMaxX' in window)
    	return window.scrollMaxY;
    else
        return document.documentElement.scrollHeight - document.documentElement.clientHeight;
}
var __scrollLoader = false;
function loadNextDataTable(maxPage){
	if(__scrollLoader == false && __nextSetPage <= maxPage){
		__scrollLoader = true;
		var hash = document.location.hash+"&__onlyGrid=true";
		var re = new RegExp("__page=([^&]*)", "g");
		if(hash.indexOf('__page') == -1) hash = hash+"&__page=";
		hash = hash.replace(re,"__page="+__nextSetPage).replace("#","");
		__nextSetPage++;
		var afterLoadData = function(){
			__scrollLoader = false;
			$('.filtredtable tr:not(.ajaxApply)').addClass('ajaxApply').mouseenter(function(){$(this).addClass('hover');}).mouseleave(function(){$(this).removeClass('hover');}).click(function(){
				   $(this).find('a.filteredTableTrClick').each(function(){
					   eval($(this).attr('onclick'));
				   });
			});			
		}
		$('#jQgridAjaxArea .filtredtable').after("<div class='ajaxLoaderFull removeAfterLoad'></div>");
		ajaxRequest(setSelectUrl.getParamByName('__url'), "#jQgridAjaxArea .filtredtable", 'none', 100, hash, true, afterLoadData);
	}
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function paramEqual(params){
	var urlparams = setSelectUrl.getUrlparsetSimple();
	for(var i in params){
		if(i == '__url') continue;
		if(typeof urlparams[i] == 'undefined') return false;
		params[i] = params[i].replace(' ','+');
		urlparams[i] = urlparams[i].replace(' ','+');	
		if(params[i] != urlparams[i]) return false;
	}
	for(var i in urlparams){
		if(i == '__url') continue;
		if(typeof params[i] == 'undefined') return false;
		params[i] = params[i].replace(' ','+');
		urlparams[i] = urlparams[i].replace(' ','+');
		if(params[i] != urlparams[i]) return false;
	}
	return true;
}

function removeGrouping(){
	var before = noPostAjax;
	noPostAjax = true;
	$('.activecheckbox').each(function(){
		if($(this).attr('name').indexOf('GROUPBY') != -1){
			$(this).trigger('click');
		}
	});
	noPostAjax = before;
	$(window).trigger('hashchange');
}


