var CNavigator=Class.create();
CNavigator.prototype={initialize:function(a){this.options={ContainerID:a.id,paginationSelector:a.paginationSelector,loadingEffectID:"loadingEffect",loadingEffectCSS:"navigatorLoadingEffect",callback:a.callback};this.navigatorEl=null},getElement:function(){return this.navigatorEl},init:function(){if(this.navigatorEl=$(this.options.ContainerID)){var a=this.navigatorEl.getElementsBySelector(this.options.paginationSelector);if(a){a.each(function(c){c.onclick=function(){return false}});a.invoke("observe",
"click",this.paginationNavigator.bindAsEventListener(this))}if(a=this.navigatorEl.getElementsBySelector('form input[class="button-go"]')){a.each(function(c){c.onclick=function(){return false}});a.invoke("observe","click",this.submitGotoForm.bindAsEventListener(this))}if(a=this.navigatorEl.getElementsBySelector("th a")){a.each(function(c){c.onclick=function(){return false}});a.invoke("observe","click",this.paginationNavigator.bindAsEventListener(this))}var b=this.navigatorEl.getElementsBySelector('table[class="data-table"] tbody tr');
if(b){b.invoke("observe","mouseout",function(c){c=Event.findElement(c,"tr");$(c).removeClassName("hover")});b.invoke("observe","mouseover",function(c){c=Event.findElement(c,"tr");$(c).addClassName("hover")});if((a=this.navigatorEl.getElementsBySelector('a[rel="expand"]'))&&a.length){b.each(function(c){var d=c.getElementsByTagName("td");new Insertion.After(c,'<tr style="display:none"><td colspan="'+d.length+'" class="rowLoadingEffect">&nbsp;</td></tr>')});for(b=0;b<a.length;b++){a[b].onclick=function(){return false};
Event.observe(a[b],"click",this.getExpandedRowContent.bindAsEventListener(this))}if(Prototype.Browser.IE)(a=this.navigatorEl.getElementsBySelector('table[class="data-table"]'))&&a[0]&&a[0].addClassName("bottomBorder")}}this.options.callback&&this.options.callback()}return false},reload:function(a){if(a){this.setLoadingEffect();new Ajax.Request(a,{onSuccess:this.successLoading.bind(this)})}},getExpandedRowContent:function(a){this.request=null;var b=Event.findElement(a,"a"),c=Event.findElement(a,"td");
a=$(Event.findElement(a,"tr")).next(0);if(b&&c)if(b.className=="closed"){b.className="opened";$(c).addClassName("selected");this.openExpandedRow($(a));var d=a.getElementsBySelector('td[class="rowLoadingEffect"]');if(d&&d[0]){interfaceObj.resetHeight();new Ajax.Request(b.href,{onSuccess:function(e){d[0].update(e.responseText);d[0].className="expandedRow";interfaceObj.resizeLayout()}.bind(this)})}}else{b.className="closed";c.removeClassName("selected");this.closeExpandedRow(a)}},openExpandedRow:function(a){interfaceObj.resetHeight();
if(a){a.setStyle({display:""});interfaceObj.resizeLayout()}},closeExpandedRow:function(a){interfaceObj.resetHeight();if(a){a.setStyle({display:"none"});interfaceObj.resizeLayout()}},gotoDialog:function(a){var b=a.up("div").down('div[class="go-page-open"]');if(b)if(b.getStyle("display")=="block"){a.removeClassName("change-page-open");b.setStyle({display:"none",visibility:"hidden"});(a=b.getElementsBySelector('input[class="page-number"]'))&&a.invoke("disable")}else{a.addClassName("change-page-open");
b.setStyle({display:"block"});if(a=b.getElementsBySelector('input[class="page-number"]')){b.setStyle({top:Prototype.Browser.IE?20:"17px","z-index":100});a.invoke("enable");a=Utils.getLeftPos(b)+b.getWidth();var c=Utils.getViewportWidth();a=a-c;a>0?b.setStyle({left:"-"+a+"px",visibility:"visible"}):b.setStyle({visibility:"visible"})}}return false},submitGotoForm:function(a){a=Event.findElement(a,"form");var b=a.serialize();this.setLoadingEffect();if(a.method=="post")new Ajax.Request(a.action,{onSuccess:this.successLoading.bind(this),
postBody:b});else new Ajax.Request(a.action+"?"+b,{onSuccess:this.successLoading.bind(this)});return false},paginationNavigator:function(a){a=Event.findElement(a,"a");switch(a.rel){case "go-to-page":this.gotoDialog(a);break;default:this.setLoadingEffect();new Ajax.Request(a.href,{onSuccess:this.successLoading.bind(this)})}return false},setLoadingEffect:function(){if(this.navigatorEl){var a=document.getElementsByTagName("body")[0],b=document.createElement("div");b.id=this.options.loadingEffectID;if(b){$(b).addClassName(this.options.loadingEffectCSS);
$(b).setStyle({width:this.navigatorEl.getWidth()+"px",height:this.navigatorEl.getHeight()+"px",left:Utils.getLeftPos(this.navigatorEl)+"px",top:Utils.getTopPos(this.navigatorEl)+"px"});a.appendChild(b)}}},removeLoadingEffect:function(){var a=$(this.options.loadingEffectID);a&&a.remove()},successLoading:function(a){this.removeLoadingEffect();this.navigatorEl.update(a.responseText.stripScripts());this.init();interfaceObj.initLayout();return false}};
