(function($){$.widget("cms.ajaxlist",{options:{popupedit:false,popupclass:null,local:false,loadingTimeout:20000},_create:function(){this.id=this.element.attr('id');this.url=$.getAjaxUrl(window.location.href,{AjaxList:this.id});this._initOption('_popupeditall');if(this.options.popupeditall){this.options.popupedit=true;}else{this._initOption('_popupedit');switch(this.element.attr('_popupedit2')){case'true':this.options.popupedit2=true;break;case'false':this.options.popupedit2=false;break;default:switch(this.options.popupedit2){case true:case false:break;default:this.options.popupedit2=this.options.popupedit;break;}break;}this._initOption('_popupedit3');}this._initOption('_nomodal');this._initOption('_fullscreen');var btn=this.element.attr('_savebutton');if(btn){this.options.savebutton=btn;}btn=this.element.attr('_cancelbutton');if(btn){this.options.cancelbutton=btn;}if(this.options.popupeditall||this.options.popupedit||this.options.popupedit2){var cls=this.element.attr('_popupclass');if(cls){this.options.popupclass=cls;}cls=this.element.attr('_popupclass2');if(cls){this.options.popupclass2=cls;}cls=this.element.attr('_popupclass3');if(cls){this.options.popupclass3=cls;}}if(this.options.autosuggest){this.options.local=true;}else{this._initOption('_nohistory');this._initOption('_local');var cls=this.element.attr('_loadingclass');if(cls){this.options.loadingclass=cls;}}this._initOption('_waitload');var t=$.toInt(this.element.attr('_loadingtimeout'));if(t>0){this.options.loadingTimeout=t;}this._initGrid();if(this.options.comet){this.options.nohistory=true;$.comet(this.options.comet,$.proxy(this._render,this));}if(this.options.socket){this.options.nohistory=true;this._initWebsocket();}this.options.nohistory=true;},_initOption:function(attr){var val=attr&&this.element.attr(attr);if(val){var prop=attr.replace(/^_/,'');this.options[prop]=$.toBool(val);}},_initGrid:function(){if(!this._history&&!this.options.nohistory&&(this.options.paging||this.options.sort||this.options.search)&&!$.cms.ajaxlist.history&&window.History&&window.History.enabled){this._history=true;this._initialHistory=this.element.cleanHtml();$.cms.ajaxlist.history=window.History;$.cms.ajaxlist.history.Adapter.bind(window,'statechange',$.proxy(this._updateHistory,this));var state=$.cms.ajaxlist.history.getState();if(state&&state.data&&state.data.HTML){this._render(state.data);}}this.element.bind('click.ajaxlist',$.proxy(this._handleClick,this));this._initOption('_noenter');if(!this.options.noenter){this.element.bindkey('ENTER',$.proxy(this._handleEnter,this));}if(this.options.search){this._initSearch();}if(this.options.edit||this.options.edit2||this.options.edit3){this._initOption('_delayadd');if(!this.options.delayadd){this._initAdd();}this._initOption('_viewstate');}if(this.options.drag){this._initDrag();this._initOption('_jumppartition');}if($.isFunction(this.options.oninit)){if(this.options.oninit(this)===false){return;}}this._setDividerRows();if(!this.options.delayed){this._initialized=true;}else if(this.options.waitload){this._initialized=false;this.options.local=true;}else{this._initialized=true;this.reload(!this.options.loadingclass);}if(this.options.autosuggest){var parent;if(this.element.data('appendpanel')){parent=this.element;}else{parent=this.element.positionParent();}var html=typeof this.options.autosuggest==='string'?this.options.autosuggest:'
';this.autosuggest=$(html).css({display:'none'}).appendTo(parent).bind('mouseover mouseleave click',$.proxy(this._autoHover,this)).captureScroll().unselectable();this.autotext=this.element.find("input:text").filter("[search_],[_search]").eq(0).bind('focus keydown',$.proxy(this._autoFocus,this));if(this.autotext.val()){this.autotext.toggleValue();}if(this.element.attr('_path')&&this.element.attr('_queryfield')){this.autosubmit=this.element.find("button,input:button,input:submit,input:image,a[href*='__doPostBack']:not([onclick]),a[href*='WebForm_DoPostBackWithOptions']").bind('click',$.proxy(this._autoSelect,this));}$(document).bind('mousedown',$.proxy(this._autoMouse,this));}},init:function(){if(this._initialized){return;}else{this._initialized=true;var fn=function(grid){return function(){grid.reload(!grid.options.loadingclass);grid=null;};}(this);setTimeout(fn,1);}},restart:function(){this._initialized=false;},_setDividerRows:function(show){if(this.options.partition&&this.element.find('.expand,.collapse').length>0){var drows={};if(show===undefined&&this._dividerRows){show=[];for(var p in this._dividerRows){if(this._dividerRows[p].visible){show.push(p);}}if(show.length===0){show=null;}}this.element.find("[data-item='d']").filter('.expand,.collapse').each(function(i){var tr=$(this);var partition=tr.attr('data-partition');if(partition){var rows=tr.nextUntil("[data-item='d'],[data-item='f']");var visible=show===true?true:(show?show.indexOf(partition)>=0:i===0);drows[partition]={tr:tr,rows:rows,visible:visible};if(visible){tr.removeClass('collapse').addClass('expand');rows.show();}else{tr.removeClass('expand').addClass('collapse');rows.hide();}}});this._dividerRows=drows;this._showAll=this.element.find("a[href^='javascript:void('][href*='ShowAll']");}},_initSearch:function(){this.element.bind('change.ajaxlist',$.proxy(this._search,this));if(this.element.find("input:text[_search]").length){this.options.searchtext=true;this._searchfocus=null;this.element.bind('focusin.ajaxlist focusout.ajaxlist',$.proxy(this._handleFocus,this));this.element.bind('keydown.ajaxlist',$.proxy(this._handleKey,this));}},_pendingAdd:false,_pendingAdd2:false,_pendingAdd3:false,_initAdd:function(){var fn,add=this.element.find("a[href^='javascript:void'][href*='Add']");if(this.options.delayadd){if(this.options.loadingclass){this.element.addClass(this.options.loadingclass);}else if(this.options.local){this.element.loading({timeout:this.options.loadingTimeout});}else{$(document.body).loading({timeout:this.options.loadingTimeout});}}else{add.css({visibility:'hidden'});}if(this.options.edit){fn=function(grid,btn){return function(results){if(grid.options.delayadd){if(grid.options.loadingclass){grid.element.removeClass(grid.options.loadingclass);}else if(grid.options.local){grid.element.loading('done');}else{$(document.body).loading('done');}}if(results&&results.HTML){grid._addTemplate=results.HTML;delete results.HTML;grid._editMeta=results;if(btn.length){btn.css({visibility:'visible'});}if(grid._pendingAdd){grid.add(grid._pendingAdd);grid._pendingAdd=false;}}grid=null;btn=null;return false;};}(this,add.filter(":not([href*='Add2'],[href*='Add3'])"));this._post('Edit','0',null,fn,true);}if(this.options.edit2){fn=function(grid,btn){return function(results){if(grid.options.delayadd){if(grid.options.loadingclass){grid.element.removeClass(grid.options.loadingclass);}else if(grid.options.local){grid.element.loading('done');}else{$(document.body).loading('done');}}if(results&&results.HTML){grid._addTemplate2=results.HTML;delete results.HTML;grid._editMeta2=results;if(btn.length){btn.css({visibility:'visible'});}if(grid._pendingAdd2){grid.add2(grid._pendingAdd2);grid._pendingAdd2=false;}}grid=null;btn=null;return false;};}(this,add.filter("[href*='Add2']"));this._post('Edit2','0',null,fn,true);}if(this.options.edit3){fn=function(grid,btn){return function(results){if(grid.options.delayadd){if(grid.options.loadingclass){grid.element.removeClass(grid.options.loadingclass);}else if(grid.options.local){grid.element.loading('done');}else{$(document.body).loading('done');}}if(results&&results.HTML){grid._addTemplate3=results.HTML;delete results.HTML;grid._editMeta3=results;if(btn.length){btn.css({visibility:'visible'});}if(grid._pendingAdd3){grid.add3(grid._pendingAdd3);grid._pendingAdd3=false;}}grid=null;btn=null;return false;};}(this,add.filter("[href*='Add3']"));this._post('Edit3','0',null,fn,true);}},_initDrag:function(){if(this._dragInitialized){return;}var item=this.element.find("[data-item='a']:first");this.class2=item.attr('class');if(this.class2){this.class1=this.element.find("[data-item='i']:first").attr('class');if(this.class2===this.class1){this.class1=null;this.class2=null;}}else if(!item.length){item=this.element.find("[data-item='i']:first");}if(!item.length){return;}else{this._dragInitialized=true;}var options;if(item.length&&item.css('float')!=='none'){var dim=item.dimensions();if(dim.width===0||dim.height===0){var clone=item.clone().css({visibility:'hidden',position:'absolute'}).appendTo(item.closest(':visible'));dim=clone.dimensions();clone.remove();clone=null;}options={cursorAt:{top:Math.round(dim.height/ 2 ), left: Math.round( dim.width /2)},distance:5,handle:this._dragHandle,helper:this._dragHelper2,start:$.proxy(this._dragRow,this),drag:this._draggingRow,stop:$.proxy(this._dropRow,this)};}else{options={cursorAt:{top:11,left:0},distance:5,axis:'y',handle:this._dragHandle,helper:this._dragHelper,start:$.proxy(this._dragRow,this),drag:this._draggingRow,stop:$.proxy(this._dropRow,this)};}this.element.draggable(options);},_autoHover:function(e){if(e.type==='mouseleave'){this._autoOver=false;return;}this._autoOver=true;var p=e.target;while(p.parentNode&&p!==this.element[0]){var item=p.getAttribute('data-item');switch(item){case'i':case'a':var el=$(p);if(this.element.attr('_noautofocus')=='true'){if(!el.is('.over')){var items=this.autosuggest.find("[data-item='i'],[data-item='a']");this._autoRemoveFocus(e);el.addClass('over');}}else{if(!el.is('.active')){var items=this.autosuggest.find("[data-item='i'],[data-item='a']"),active=items.filter('.active');active.removeClass('active');el.addClass('active');}}if(e.type==='click'){this._autoSelect(e);}return;}p=p.parentNode;}},_autoFocus:function(e){if(e.type==='focus'){if(this.autosuggest.children().length&&!this.autosuggest.is(':visible')){this.autosuggest.show();}}else if(e.type==='keydown'&&!e.shiftKey&&!e.ctrlKey&&!e.altKey){switch(e.which){case $.ui.keyCode.DOWN:return this._autoNavigate(1,e);case $.ui.keyCode.UP:return this._autoNavigate(-1,e);case $.ui.keyCode.PAGE_DOWN:return this._autoNavigate(10,e);case $.ui.keyCode.PAGE_UP:return this._autoNavigate(-10,e);case $.ui.keyCode.ENTER:this._autoSelect(e);break;}}},_autoMouse:function(e){if(this._autoOver||(e&&e.target===this.autotext[0])){return;}else{if(this.element.attr('_noautofocus')=='true')this._autoRemoveFocus(e);this.autosuggest.hide();}},_autoNavigate:function(dir,e){if(dir===0){return;}else if(e&&e.preventDefault){e.preventDefault();e.stopPropagation();e.stopImmediatePropagation();}var items=this.autosuggest.find("[data-item='i'],[data-item='a']"),active=items.filter('.active'),index=items.index(active),next=index+dir;if(next<0){next=0;}else if(next>=items.length){next=items.length-1;}if(next!=index){if(this.element.attr('_noautofocus')=='true')this._autoRemoveFocus(e);active.removeClass('active');items.eq(next).addClass('active').scrollIntoView();}return false;},_autoRemoveFocus:function(e){var items=this.autosuggest.find("[data-item='i'],[data-item='a']"),over=items.filter('.over'),active=items.filter('.active');over.removeClass('over');active.removeClass('active');},_autoSelect:function(e){var items=this.autosuggest.find("[data-item='i'],[data-item='a']"),active=items.filter('.active'),index=items.index(active),link=$.getLinkTarget(e);if($.isFunction(this.options.onauto)&&this.options.onauto(items,index,this,e)===false){return false;}else if(active.is('a')){if(!e||e.type!=='click'){active[0].click();return false;}}else if(e.type==='click'&&link&&(!this.autosubmit||link[0]!==this.autosubmit[0])){return;}else{var link=active.find('a:first');if(link.length){var fn=function(_href){return function(){if(_href){$(document.body).loading({message:null});window.location.href=_href;}_link=null;return;};}(link.attr('href'));setTimeout(fn,1);return false;}else{var query,url,path=this.element.attr('_path'),query=this.element.attr('_queryfield'),data=active.attr('data-field'),field=data||this.autotext.val();if(field&&field===this.autotext[0].origValue){field=null;}if(path&&query){if(field){params={};params[query]=field;url=$.getAjaxUrl(path,params);$(document.body).loading({message:null});window.location.href=url;}else{var fn=function(input){return function(){try{input.focus();}catch(ex){;}input=null;};}(this.autotext[0]);setTimeout(fn,1);}return false;}else if(data){if(this._lastData){var name=this.autotext.attr('name').split('$').pop();this._lastData[name]=data;}this.autotext.val(data).blur();this.autosuggest.empty().hide();return false;}}}},_navigate:function(e,link){if(!link){link=$.getLinkTarget(e);if(!link||!link.length){return;}}var href=link.attr('href').split("'");href.shift();var target=href.shift().split('$').pop();this._pagingid=$.toInt(target.split('_')[1]);if(this._pagingid>0){this._post('Paging');return false;}},_sort:function(e,link){if(!link){link=$.getLinkTarget(e);if(!link||!link.length){return;}}var href=link.attr('href').split("'");href.shift();var target=href.shift().split('$').pop();var sort=target.split('_')[1];if(sort){this._post('Sort',sort);return false;}},_search:function(e){var data,input=e&&e.target&&$(e.target);if(input&&!input.is("[_search]")&&!(input.is(':radio')&&input.closest('table').is("[_search]"))){return;}this.search();},reset:function(){this._lastData=undefined;},search:function(){var data=$.cms.ajaxlist.serialize(this.element.find(":input,table").filter("[_search]"),'Search:');if(data&&this._lastData){var changed=false;for(var p in data){if(data[p]===this._lastData[p]){continue;}else{changed=true;break;}}if(!changed){this.element.removeClass('searching');return;}}this._lastData=data;if(this._keytimeout){clearTimeout(this._keytimeout);this._keytimeout=null;}this._lastsearch=false;for(var p in data){if(data[p]){this._lastsearch=true;break;}}this._post('Search',null,data);},_setPeriod:function(date){var data;if(!date||date.constructor!==Date){return;}data=$.cms.ajaxlist.serialize(this.element.find(":input,table").filter("[_search]"),'Search:');data["Current"]=$.datetime.format(date);this._post('Search',null,data);},_handleFocus:function(e){var target=$(e.target);if(target.is("input:text[_search]")){this._searchfocus=e.type==='focusin'?target.attr('id'):null;}},_handleKey:function(e){switch(e&&e.which){case $.ui.keyCode.ESCAPE:case $.ui.keyCode.ENTER:case $.ui.keyCode.TAB:return;default:if((e.ctrlKey&&e.which!=86)||!e.target||!$(e.target).is("[_search]")){return;}break;}if(this._keytimeout){clearTimeout(this._keytimeout);}var fn=function(_grid){return function(){_grid._search();_grid=null;};}(this);var num=this.options.autosuggest?400:700;if(this.options.autosuggest){this.element.addClass('searching');}this._keytimeout=setTimeout(fn,num);},_handleClick:function(e){var data=$.getLinkAction(e),link=data.link,href=data.href,fn=data.fn,action=data.action;if($.isFunction(this.options.onclick)){if(this.options.onclick(e,link,action,this)===false){return false;}}if(!action){return;}switch(action){case'Edit':case'More':if(this.options.edit){this._edit(e,link);return false;}break;case'Edit2':case'More2':if(this.options.edit2){this._edit(e,link);return false;}break;case'Edit3':case'More3':if(this.options.edit3){this._edit(e,link);return false;}break;case'Add':if(this.options.edit){this.add(e,link);return false;}break;case'Add2':if(this.options.edit2){this.add2(e,link);return false;}break;case'Add3':if(this.options.edit3){this.add3(e,link);return false;}break;case'Delete':if(this.options.del){this._delete(e,link);return false;}break;case'Delete2':if(this.options.del2){this._delete(e,link);return false;}break;case'Save':this._save(e);break;case'Cancel':this._cancel(e);break;case'ShowAll':this._showHideAll(e,link);break;case'Expand':this._showHideRows(e,link);break;case'Clear':link.prev(':input').val("");this._search();break;case'EditAll':this._editAll(e);break;case'ShowMore':this._pagingid=this._pageid=(this._pageid||1)+1;this._post('ShowMore');return false;case'Next':case'Prev':if(this.options.calendar){this._setPeriod($.datetime.parse(link.attr('data-date')));}else if(this.options.paging){this._pagingid=(this._pagingid||1)+(action==='Next'?1:-1);this._post('Paging');}break;default:if(this.options.paging&&action.contains('$Nav_')){return this._navigate(e,link);}else if(this.options.sort&&action.contains('$Sort_')){return this._sort(e,link);}else if(fn==='__doPostBack'&&this.options.search){switch((link.attr('_commandname')||"").toLowerCase()){case'update':case'delete':case'search':case'go':case'':return false;default:return;}}break;}},_handleEnter:function(e){var link=$.getLinkTarget(e);if(link){return;}else{var el=$(e.target);if(el.is('input:text,textarea.noenter')&&el.closest("[data-item='e']").length){this._save();}else if(el.is('textarea')){e.stopPropagation();e.stopImmediatePropagation();return false;}}e.target.blur();e.preventDefault();e.stopPropagation();e.stopImmediatePropagation();return false;},_showHideAll:function(e,link,hide){if(!this._dividerRows){return;}if(hide===undefined){hide=true;for(var p in this._dividerRows){var data=this._dividerRows[p];if(!data.visible){hide=false;break;}}}for(var p in this._dividerRows){var data=this._dividerRows[p];if(data.visible&&hide){data.tr.removeClass('expand').addClass('collapse');data.rows.hide();data.visible=false;}else if(!data.visible&&!hide){data.tr.removeClass('collapse').addClass('expand');data.rows.show();data.visible=true;}}this._setHideAll(hide);},_setHideAll:function(hide){if(hide===undefined){hide=true;for(var p in this._dividerRows){var data=this._dividerRows[p];if(data.visible){hide=false;break;}}}var span=this._showAll.children();if(!span.length){span=link;}else if(!span.is('span')){span=null;}if(span){span.html(hide?'Show All':'Hide All');}},_showHideRows:function(e,link,partition,hide){if(!this._dividerRows){return;}var item=link&&link.closest("[data-partition]"),partition=partition||(item&&item.attr('data-partition')),data=partition&&this._dividerRows[partition];if(data){if(hide===undefined){hide=data.visible;}if(hide&&data.visible){data.tr.removeClass('expand').addClass('collapse');data.rows.hide();data.visible=false;}else if(!data.visible){data.tr.removeClass('collapse').addClass('expand');data.rows.show();data.visible=true;}}this._setHideAll();},_dragHandle:function(e){var link=$.getLinkTarget(e),href=link&&link.attr('href');return href&&/^javascript:void\('Drag/i.test(href);},_dragHelper:function(e){var el=$(e.target).closest('a');var left=el.offset().left;return $(el.cleanHtml()).css({margin:0,left:left,zIndex:9999}).appendTo(document.body);},_dragHelper2:function(e){var el=$(e.target).closest('a');return $(el.cleanHtml()).css({margin:0}).addClass('handle').appendTo(document.body);},_dragRow:function(e,ui){$.cms.flyout.disabled=true;var link=$((e.originalEvent&&e.originalEvent.target)||e.target).closest('a'),action=link.is("[href*='Drag2']")?'Drag2':'Drag',el=link.closest("[data-item]"),id=el.attr('data-key'),partition=el.attr('data-partition'),current=this.element.find("[data-item][data-key='"+id+"']:not([data-item='d'],[data-item='de'],[data-item='h'],[data-item='f'])"),float=current.css('float'),positions=[],start=-1,beginning=0,last=null,items=null;if(float==='none'){float=null;}if(action==='Drag2'){current=current.parent().children("[data-partition='"+id+"']");items=current.parent().children("[data-item][data-partition]");partition=null;this._showHideAll(null,null,true);}else if(partition&&!this.options.jumppartition){items=current.parent().children("[data-item][data-partition='"+partition+"']:not([data-item='d'],[data-item='de'],[data-item='h'],[data-item='f'])")}else if(!partition){items=current.parent().children("[data-item]:not([data-item='d'],[data-item='de'],[data-item='h'],[data-item='f'])")}else{items=current.parent().children("[data-item]:not([data-item='de'],[data-item='h'],[data-item='f'])")}current.addClass('dragging');for(var i=0;i