jQuery.fn.firescope_grid=function(d){var h={url:"",rows:25,selectorHeader:"tr th",total:0,height:"auto",page:1,data:{},dataType:"html",ajaxTimeout:600000,ajaxRefresh:null,sortCols:["auto"],sortCol:0,sortOrder:"asc",sortType:"server",filterCols:["auto"],filterCol:-1,filterText:"",filterType:"auto",returnSortColName:false,returnFilterColName:false,navBarShow:"auto",navBarAlign:"right",navBarLocation:"top",navCustomLocation:"left",cssRowEven:null,cssRowOdd:null,cssRowMouseOver:null,msgFilterHelp:["<enter text to filter>"],msgPagesExceedMax:"There are only {nbr_pages} pages.",msgPageExceedMax:"There is only {nbr_pages} page.",msgEnterAValidPageNbr:"Enter a valid page number.",msgURLInvalid:"Invalid url for data. Trying current url..",msgLoading:'<img src="firescope_grid/load.gif"> Loading..',msgNetworkError:"Retrieve data.",msgReloadPage:"Reload page.",msgStatusDispFromToTotal:"Displaying {from} to {to} of {total}",msgStatusDispFromTo:"Displaying {from} to {to}",msgStatusDispNone:"No results",msgRows:"",msgRefresh:" Refresh",msgCustom:["none"],selectorFooter:null,selectorResult:null,selectorIgnoreRows:null,ignore:""};$.extend(h,d);h.nbrPages=-1;h.navBarAdded="init";h.sortColName="";h.filterColName="";h.filterTextPrior="";h.filterColPrior="";h.cssRowType=h.cssRowEven==null||h.cssRowOdd==null?null:(typeof(h.cssRowEven)=="string"&&typeof(h.cssRowOdd)=="string")?"class":"hash";h.cssRowOverType=h.cssRowMouseOver==null?null:(typeof(h.cssRowMouseOver)=="string")?"class":"hash";h.timeout=null;var l=this;l.addClass("firescope_grid");h.id=l.attr("id");var b=$("<div />");var i=$("<div />");var f=$('<input type="text" size="20" col="0" class="filter-inactive filter-multi" value="'+h.msgFilterHelp[0]+'" />').click(function(){$(this).val("")}).bind("keypress blur",function(g){q.m_filter_action(g,this)});var s=$('<div class="nav-toolbar" />');s.append('<div id="grid_loader" /><div class="grid_spacer" />');var p=$('<span class="grid-split">&nbsp;</span>');if(h.filterCols.length==1){f.removeClass("filter-multi");f.addClass("filter-single");s.append(f).append(p)}var j=$('<select size="1" class="nav-rows"><option value="5">5</option><option value="10">10</option><option value="25">25</option><option value="50">50</option><option value="100">100</option><option value="250">250</option></select>').change(function(){h.rows=$(this).val();q.gotoPage(1)});var r=$('<a href="#" class="nav-first">&laquo;</a>').click(function(){q.startPage();return false});var a=$('<a href="#" class="nav-prev">&lsaquo;</a>').click(function(){q.prevPage();return false});var m=$('<a href="#" class="nav-next">&rsaquo;</a>').click(function(){q.nextPage();return false});var o=$('<a href="#" class="nav-last">&raquo;</a>').click(function(){q.lastPage();return false});var e=$('<span class="nav-page">Strona <em class="nav-page-input">'+h.page+"</em></span>");var c=$('<a href="#" class="nav-reload">Odśwież</a>').click(function(){q.gotoPage(h.page);return false});var n=$('<select size="1" class="nav-refresh"><option value="0">stop</option><option value="30000">30 secs</option><option value="60000">1 min</option><option value="120000">2 min</option><option value="300000">5 min</option><option value="600000">10 min</option></select>').change(function(){h.ajaxRefresh=$(this).val();if(h.timeout!=null){clearTimeout(h.timeout);h.timeout=null}q.refreshPage()});var k=$('<span class="nav-status">status</span>');var q={init:function(){if(h.height=="auto"){b.css({})}else{b.css({height:h.height,overflow:"auto"})}l.html(b);if(h.url.length>0&&h.url.length<4){h.url=window.location.href;b.html(h.msgLoading+"<br/>"+h.msgURLInvalid)}else{b.html(h.msgLoading)}q.gotoPage(h.page)},gotoPage:function(t){if(t>0){h.page=t}e.find("em").html(h.page);var g={firescope_grid_page:h.page,firescope_grid_rows:h.rows,firescope_grid_offset:(h.page-1)*h.rows,firescope_grid_sortCol:h.sortCol,firescope_grid_sortOrder:h.sortOrder,firescope_grid_filterCol:h.filterCol,firescope_grid_filterText:h.filterText};var u=b.find(h.selectorHeader);if(u.length==0){u=b.find("table tr:first")}if(h.returnSortColName&&h.sortCol>=0&&u.length>0){h.sortColName=$(u[h.sortCol]).find("span").html();g.firescope_grid_sortColName=h.sortColName}if(h.returnFilterColName&&h.filterCol>=0&&u.length>0){h.filterColName=$(u[h.filterCol]).find("span").html();g.firescope_grid_filterColName=h.filterColName}$.extend(g,h.data);jQuery.ajax({url:h.url,data:g,dataType:h.dataType,type:"POST",cache:false,timeout:h.ajaxTimeout,beforeSend:function(v){$("#grid_loader").stop(true,true).show(0);s.addClass("nav-loading");c.unbind().click(function(){return false});m.unbind().click(function(){return false});m.addClass("nav-disabled");o.unbind().click(function(){return false});o.addClass("nav-disabled");a.unbind().click(function(){return false});a.addClass("nav-disabled");r.unbind().click(function(){return false});r.addClass("nav-disabled");if(!($.browser.mozilla&&$.browser.version.substr(0,3)<"1.9")){j.attr("disabled","disabled");j.addClass("nav-disabled")}},success:function(v,w){if(h.dataType=="html"){if(v==""||v==null){v="<p>Brak wyników</p>"}else{if(h.selectorResult!=null){v=$(v).find(h.selectorResult)}}b.html(v)}else{if(h.dataType=="json"){}}q.updateGrid();if(h.timeout!=null){clearTimeout(h.timeout)}h.timeout=null;if(h.ajaxRefresh>999){q.refreshPage()}$("#grid_loader").fadeOut(1000)},error:function(x,v,w){var y=h.msgNetworkError;if(v!=undefined&&v!="error"){y+=" "+v+"."}if(w!=undefined&&w!="error"){y+=" "+w+"."}y+="<br/>";y+='<a href="javascript:window.location.reload();" class="action">'+h.msgReloadPage+"</a>";b.html(y)},complete:function(w,v){s.removeClass("nav-loading");c.unbind().click(function(){q.gotoPage(h.page);return false});j.removeAttr("disabled");j.removeClass("nav-disabled")}})},refreshPage:function(){if(h.timeout!=null){clearTimeout(h.timeout)}h.timeout=setTimeout(function(){q.gotoPage(0)},h.ajaxRefresh)},reloadPage:function(){q.gotoPage(h.page)},nextPage:function(){if(h.navBarShow=="always"||h.nbrPages==-1||h.page+1<=h.nbrPages){h.page=h.page+1;q.gotoPage(h.page)}},prevPage:function(){if(h.page-1>0){h.page=h.page-1;q.gotoPage(h.page)}},startPage:function(){if(h.navBarShow=="always"||h.nbrPages==-1||h.nbrPages>1){h.page=1;q.gotoPage(h.page)}},lastPage:function(){if(h.navBarShow=="always"||h.nbrPages>1){h.page=h.nbrPages;q.gotoPage(h.page)}},updateGrid:function(){q.updateTotal();q.updateHeader();q.updateNavBar();q.updateStatusDisplaying();q.updateCSS()},updateTotal:function(){if($("#"+h.id+"_total").length==0){h.total=-1;h.nbrPages=-1;return}var g=$("#"+h.id+"_total").text();if(g==""){h.total=-1;h.nbrPages=-1;return}h.total=parseInt(g);if(h.total>0){h.nbrPages=Math.ceil(h.total/h.rows)}else{if(h.total==0){h.nbrPages=1}else{h.total=-1;h.nbrPages=-1}}},updateCSS:function(){if(h.cssRowEven==null||h.cssRowOdd==null){return}b.find("table tr").each(function(g){var t=(g%2==0)?h.cssRowEven:h.cssRowOdd;if(h.cssRowType=="class"){$(this).addClass(t)}else{if(h.cssRowType=="hash"){$(this).css(t)}}$(this).unbind("mouseover mouseout");$(this).bind("mouseover",function(u){if(h.cssRowOverType=="class"){$(this).addClass(h.cssRowMouseOver)}else{if(h.cssRowOverType=="hash"){$(this).css(h.cssRowMouseOver)}}}).bind("mouseout",function(u){if(h.cssRowOverType=="class"){$(this).removeClass(h.cssRowMouseOver)}else{if(h.cssRowOverType=="hash"){$(this).css(t)}}})})},findNbrRows:function(){var v=h.selectorHeader!=null&&b.find(h.selectorHeader).length>0?1:0;var u=h.selectorFooter!=null&&b.find(h.selectorFooter).length>0?1:0;var t=h.selectorIgnoreRows!=null&&b.find(h.selectorIgnoreRows).length>0?b.find(h.selectorIgnoreRows).length:0;if(h.selectorHeader!=null){var g=b.find(h.selectorHeader).parent("tr").siblings().length+1-v-u-t}else{var g=b.find("tr").length-v-u-t}return(g)},updateStatus:function(g){k.html(g)},updateStatusDisplaying:function(){if(h.total>0){var t=h.msgStatusDispFromToTotal}else{var t=h.msgStatusDispFromTo}var g=q.findNbrRows();var w=h.rows*(h.page-1)+1;var v=h.rows*h.page;var u="";if(h.total==0){w=0;v=0}else{if(g<h.rows){v=(h.rows*(h.page-1)+g)}}if(v<=0){t=h.msgStatusDispNone}else{t=t.replace(/{from}/,w);t=t.replace(/{to}/,v);if(h.total>0){t=t.replace(/{total}/,h.total)}t=t+u}q.updateStatus(t)},buildNavBar:function(){if(h.navBarShow=="always"||h.navBarShow=="auto"&&(h.total>h.rows||h.total==-1)){j.val(h.rows);if(j.val()!=h.rows){j.find("option").each(function(g){if(h.rows<$(this).attr("value")){$(this).before('<option value="'+h.rows+'">'+h.rows+"</option>");return(false)}});j.val(h.rows)}if(h.ajaxRefresh!=null){n.val(h.ajaxRefresh);if(n.val()!=h.ajaxRefresh){n.find("option").each(function(g){if(h.ajaxRefresh<$(this).attr("value")){if(h.ajaxRefresh>60000){var t=(Math.floor(h.ajaxRefresh/60000))+" mins"}else{var t=(Math.floor(h.ajaxRefresh/1000))+" secs"}$(this).before('<option value="'+h.ajaxRefresh+'">'+t+"</option>");return(false)}});n.val(h.ajaxRefresh)}}s.css("text-align",h.navBarAlign);s.append(j).append(h.msgRows).append(p.clone());s.append(r).append(a).append(p.clone());if(h.total>0){e.find("em").after(" z <span>"+h.nbrPages+"</span>")}s.append(e).append(p.clone());s.append(m).append(o).append(p.clone());if(h.ajaxRefresh!=null){s.append(n).append(h.msgRefresh).append(c).append(p.clone())}else{}s.append(k).append('<div class="nav_line" />');if(h.msgCustom[0]!="none"){if(h.navCustomLocation=="left"){s.prepend('<span style="float:left;">'+h.msgCustom.join(" ")+"</span>")}else{if(h.navCustomLocation=="right"){s.append('<span style="float:right;">'+h.msgCustom.join(" ")+"</span>")}}}if(h.navBarLocation=="top"){l.prepend(s)}else{l.append(s)}h.navBarAdded=true}else{h.navBarAdded=false}},updateNavBar:function(){if(h.navBarAdded=="init"){q.buildNavBar()}if(!h.navBarAdded){return false}e.find("span").html(h.nbrPages);var g=q.findNbrRows();if(g<h.rows){m.unbind().click(function(){return false});m.addClass("nav-disabled");o.unbind().click(function(){return false});o.addClass("nav-disabled")}else{if(h.navBarShow=="always"&&h.nbrPages==-1){m.unbind().click(function(){q.nextPage();return false});m.removeClass("nav-disabled");o.unbind().click(function(){return false});o.addClass("nav-disabled")}else{if(h.page+1>h.nbrPages){if(h.nbrPages!=-1){m.unbind().click(function(){return false});m.addClass("nav-disabled")}else{m.unbind().click(function(){q.nextPage();return false});m.removeClass("nav-disabled")}o.unbind().click(function(){return false});o.addClass("nav-disabled")}else{m.unbind().click(function(){q.nextPage();return false});m.removeClass("nav-disabled");o.unbind().click(function(){q.lastPage();return false});o.removeClass("nav-disabled")}}}if(h.page-1<=0){a.unbind().click(function(){return false});a.addClass("nav-disabled");r.unbind().click(function(){return false});r.addClass("nav-disabled")}else{a.unbind().click(function(){q.prevPage();return false});a.removeClass("nav-disabled");r.unbind().click(function(){q.startPage();return false});r.removeClass("nav-disabled")}},updateHeader:function(){b.find(h.selectorHeader).each(function(t){if($(this).find("span").length>0){return false}$(this).html("<span>"+$(this).html()+"</span>");var g=true;if((h.sortCols[0]=="auto"||$.inArray(t,h.sortCols)!=-1)&&t==h.sortCol){(h.sortOrder=="asc")?$(this).addClass("sort-asc"):$(this).addClass("sort-desc")}else{if(h.sortCols[0]=="auto"||$.inArray(t,h.sortCols)!=-1){$(this).addClass("sort-none")}else{g=false}}if(g){$(this).click(function(v){if($(v.target).is("input")||$(v.target).is("select")){return(true)}if($(this).hasClass("sort-desc")||$(this).hasClass("sort-none")){h.sortOrder="asc";h.sortCol=t}else{if($(this).hasClass("sort-asc")){h.sortOrder="desc";h.sortCol=t}}if(1||h.sortType=="server"){$(this).addClass("sort-sorting");q.gotoPage(h.page);h.filterType="server"}})}if(h.filterCols.length>1){if(h.filterCols[0]=="auto"||$.inArray(t,h.filterCols)!=-1){var u=f.clone(true);u.attr("col",t);u.attr("value",h.msgFilterHelp[t]);if(h.filterCol==t){u.val(h.filterText);u.addClass("filter-active");u.removeClass("filter-inactive")}else{u.addClass("filter-inactive");u.removeClass("filter-active")}$(this).append('<input type="checkbox" class="hidden_input" disabled="disabled" />').append(u)}else{if(h.filterCols.length>0){}}}})},showBrowserInfo:function(){$.each($.browser,function(g,t){$("<div>"+g+" : <span>"+t+"</span>").appendTo(document.body)})},m_filter_action:function(u,t){t=$(t);if(u.type=="keypress"&&u.which==13||u.type=="blur"){h.filterText=t.val();if(h.filterText==""){t.addClass("filter-inactive");t.removeClass("filter-active");t.val(h.msgFilterHelp[t.attr("col")])}else{h.filterCol=t.attr("col");t.addClass("filter-active");t.removeClass("filter-inactive")}if(h.filterTextPrior==h.filterText&&h.filterColPrior==h.filterCol){return true}h.filterTextPrior=h.filterText;h.filterColPrior=h.filterCol;if(h.filterType=="server"||h.filterType=="auto"&&h.navBarAdded){if(h.filterCol!=-1){t.addClass("filter-filtering");q.gotoPage(1);t.removeClass("filter-filtering")}if(h.filterText==""){h.filterCol=-1}}else{t.addClass("filter-filtering");if(h.dataType=="html"){var g=0;l.find("tr").each(function(v){if(v==0){return true}if($(this).hasClass("header")||$(this).hasClass("footer")){return true}var w=$(this).find("td");w.parent().show();w.each(function(x){var y=$(this).parent();if(h.filterCol==x){if($(this).text().toUpperCase().indexOf(h.filterText.toUpperCase())==-1){y.hide();g++}else{y.show()}}else{if(h.filterCol==-1){y.show();return false}}})});if(g==h.rows||g==h.total){q.gotoPage(1);h.filterType="server"}}else{if(h.dataType=="json"){}}t.removeClass("filter-filtering")}}},m_page_action:function(v,t){t=$(t);if(v.which>=65&&v.which<=90||v.which>=186){v.preventDefault();return false}if(v.type=="keypress"&&v.which==13||v.type=="blur"){if(t.val().length==0){t.val(1)}var u=parseInt(t.val());if(u==h.page){}else{if(u>h.nbrPages&&h.nbrPages>0){if(h.nbrPages==1){var g=h.msgPageExceedMax}else{var g=h.msgPagesExceedMax}g=g.replace(/{nbr_pages}/,h.nbrPages);q.updateStatus(g);t.val(h.page)}else{if(u<=0){q.updateStatus(msgEnterAValidPageNbr);t.val(h.page)}else{$('input[@name="grid_page"]').val(u);q.gotoPage(u)}}}}},ignore:function(){}};q.init();return(q)};
