(function($){$.widget("cms.ajaxlist",{options:{popupedit:false,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');}if(this.options.autosuggest){this.options.nohistory=true;this.options.local=true;}else{this._initOption('_nohistory');this._initOption('_local');}this._initGrid();if(this.options.comet){$.comet(this.options.comet,$.proxy(this._render,this));}},_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)).bindkey('ENTER',$.proxy(this._handleEnter,this));if(this.options.search){this._initSearch();}if(this.options.edit||this.options.edit2){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.reload(true);}if(this.options.autosuggest){this.autosuggest=$('<div class="auto-suggest" style="position:absolute;display:none;"></div>').appendTo(document.body).bind('mouseover mouseleave',$.proxy(this._autoHover,this));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();}$(document).bind('mousedown',$.proxy(this._autoMouse,this));}},_setDividerRows:function(show){if(this.options.partition){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,_initAdd:function(){var fn,add=this.element.find("a[href^='javascript:void'][href*='Add']");if(this.options.delayadd){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.local){grid.element.loading('done');}else{$(document.body).loading('done');}}if(results&&results.HTML){grid._addTemplate=results.HTML;delete results.HTML;grid._editMeta2=results;if(btn.length){btn.css({visibility:'visible'});}if(grid._pendingAdd){grid.add(grid._pendingAdd);grid._pendingAdd=false;}}grid=null;btn=null;};}(this,add.filter(":not([href*='Add2'])"));this._post('Edit','0',null,fn,true);}if(this.options.edit2){fn=function(grid,btn){return function(results){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;};}(this,add.filter("[href*='Add2']"));this._post('Edit2','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;}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(!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:this._autoNavigate(1);break;case $.ui.keyCode.UP:this._autoNavigate(-1);break;case $.ui.keyCode.PAGE_DOWN:this._autoNavigate(10);break;case $.ui.keyCode.PAGE_UP:this._autoNavigate(-10);break;case $.ui.keyCode.ENTER:this._autoSelect(e);break;}}},_autoMouse:function(e){if(this._autoOver||(e&&e.target===this.autotext[0])){return;}else{this.autosuggest.hide();}},_autoNavigate:function(dir){if(dir===0){return;}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;}if(next!=index){active.removeClass('active');items.eq(next).addClass('active');}},_autoSelect:function(e){var items=this.autosuggest.find("[data-item='i'],[data-item='a']"),active=items.filter('.active'),index=items.index(active);if($.isFunction(this.options.onauto)&&this.options.onauto(items,index,this)){return false;}else if(active.is('a')){if(!e||e.type!=='click'){active[0].click();return false;}}else if(e.type==='click'&&$.getLinkTarget(e)){return;}else{var link=active.find('a:first');if(link.length){link[0].click();}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();var page=$.toInt(target.split('_')[1]);if(page>0){this._post('Paging',page);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]")){return;}data=$.cms.ajaxlist.serialize(this.element.find(":input,table").filter("[_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){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);},_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.target||!$(e.target).is("[_search]")){return;}break;}if(this._keytimeout){clearTimeout(this._keytimeout);}var fn=function(_grid){return function(){_grid._search();_grid=null;};}(this);this._keytimeout=setTimeout(fn,700);},_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'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'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._pageid=(this._pageid||1)+1;this._post('ShowMore',this._pageid);return false;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}).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+"']"),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]:not([data-item='d'][data-partition='"+partition+"'],[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<items.length;i++){var item=items.eq(i),di=item.attr('data-item'),key=null;if(item.attr('data-item')==='d'&&action!=='Drag2'){if(i===beginning){beginning++;continue;}}else{key=action==='Drag2'?item.attr('data-partition'):item.attr('data-key');}var dim=item.dimensions();if(!float){dim.left=0;dim.width=2000;}if(last&&last.key===key){if(dim.height>0){last.pos.height=dim.height+dim.top-last.pos.top;}last.end=item;}else{last={el:item,end:item,pos:dim,key:key};if(item[0]===current[0]){start=positions.length;last.after=i===beginning?-2:start-1;}else if(start>=0){last.after=positions.length;}else{last.after=positions.length-1;}positions.push(last);}}ui.helper._action=action;ui.helper._positions=positions;ui.helper._start=start;ui.helper._location=start;ui.helper._current=current;ui.helper._id1=id;ui.helper._partition=this.options.partition;ui.helper._partition1=partition;},_draggingRow:function(e,ui){var pos=ui.helper._positions,i=$.cms.ajaxlist.getPosition(pos,ui.position.left,ui.position.top),el=ui.helper._current,p=null,key=null,partition=ui.helper._partition&&ui.helper._partition1;if(i>=0&&i!==ui.helper._location){p=pos[i].after;if(p===-2){el.insertBefore(pos[1].el);key=null;if(partition){partition=pos[1].el.attr('data-partition');}}else if(p===-1){el.insertBefore(pos[0].el);if(partition){partition=pos[0].el.attr('data-partition');}key=null;}else{el.insertAfter(pos[p].end);key=pos[p].key;if(partition){partition=pos[p].end.attr('data-partition');}}ui.helper._location=i;ui.helper._id2=key;ui.helper._partition2=partition;}},_dropRow:function(e,ui){$.cms.flyout.disabled=false;ui.helper._current.removeClass('dragging');if(ui.helper._location!==ui.helper._start){if(this.class2){var rows=ui.helper._current.parent().children("[data-item='a'],[data-item='i']"),row=null,count=-1,item=null,_item=null,cls=null,key=null,_key=null;for(var i=0;i<rows.length;i++){row=rows.eq(i);_key=row.attr('data-key');_item=row.attr('data-item');if(!key||key!==_key){count++;key=_key;}if(count%2===0){item='i';cls=this.class1;}else{item='a';cls=this.class2||this.class1;}switch(_item){case'i':case'a':row.attr('data-item',item);break;}if(!cls){continue;}else{row.attr('class',cls);}}}var id=ui.helper._id1+','+ui.helper._id2;if(ui.helper._partition2&&ui.helper._partition1!=ui.helper._partition2){id+=(','+ui.helper._partition2);}this._post(ui.helper._action||'Drag',id);this._showHideRows(null,null,ui.helper._partition2,false);}delete ui.helper._action;delete ui.helper._positions;delete ui.helper._start;delete ui.helper._location;delete ui.helper._id1;delete ui.helper._id2;delete ui.helper._partition1;delete ui.helper._partition2;delete ui.helper._jumppartition;},add:function(e,link){if(this._addTemplate){var html=this._addTemplate,el=link||$.getLinkTarget(e);if(this.options.popupedit){this.options.popuptitle=el&&el.closest('a').attr('_title');}if(this.options.partition){var partition=el&&el.closest("[data-partition]").attr('data-partition');if(partition){html=html.replace(/( data\-item="\w+")/g,'$1 data-partition="'+partition+'"');this._showHideRows(null,null,partition,false);}}this._editItem(html,null,this._editMeta);}else{if(this.options.delayadd&&!this._pendingAdd){this._pendingAdd=e;this._initAdd();}else{this._pendingAdd=true;}}},add2:function(e,link){if(this._addTemplate2){if(this.options.popupedit){var el=link||(e&&e.target&&$(e.target));this.options.popuptitle=el&&el.closest('a').attr('_title');}this._editItem(this._addTemplate2,null,this._editMeta2,'Update2');}else{if(this.options.delayadd&&!this._pendingAdd2){this._pendingAdd2=e;this._initAdd();}else{this._pendingAdd2=true;}}},_edit:function(e,link){var el=link||$(e.target),action=el.is("[href*='Edit2'],[href*='More2']")?'Edit2':'Edit',title=el.closest('a').attr('_title'),item=el.closest("[data-item]"),id=item.attr('data-key'),fn=function(grid,_item,_action){return function(results){if(grid.options.local){grid.element.loading('done');}else{$(document.body).loading('done');}if(results&&results.HTML){grid._editItem(results.HTML,_item,results,_action==='Edit2'?'Update2':'Update');}grid=null;_item=null;_action=null;};}(this,item,action);this.options.popuptitle=title;this._post(action,id,null,fn);},_delete:function(e){var el=$(e.target);var action;var message;if(el.is("[href*='Delete2']")){action='Delete2';message=el.closest("[_message2]").attr('_message2');}else{action='Delete';message=el.closest("[_message]").attr('_message');}var item=el.closest("[data-item]");var id=item.attr('data-key');var fn=function(grid,_id){return function(){grid._post(action,_id);grid=null;_id=null;};}(this,id);$.confirm('CONFIRM',message||'Are you sure you want to delete this item?',{onconfirm:fn});},_editAll:function(e){if(this.options.popupedit){var link=$.getLinkTarget(e);this.options.popuptitle=link&&link.attr('_title');}this._item=$.cleanHtml(this.element.html());this._post('EditAll');},_editItem:function(html,item,meta,action){if(!html){return;}if(this._edititem){this._cancel();}var before=true;if(item&&!this.options.popupedit){this._item=item.hide();}else{this._item=null;item=this.element.find("[data-item='i'],[data-item='a']").eq(0);if(!item.length){item=this.element.find("[data-item='f']");}if(!item.length){item=this.element.find("[data-item='h'],[data-item='d']").filter(':last');before=false;}if(!item.length){item=this.element.find("[data-item='n']").eq(0);before=false;}}var m;if(this.options.popupedit&&(m=/^<tr\b([^>]*>)\s*<td\b[^>]*>([\s\S]*?)<\/td>\s*<\/tr>$/i.exec(html))){html="<div"+m[1]+m[2]+"</div>";}this._edititem=$(html);if(action){this._edititem.data('action',action);}if($.cms.page&&$.cms.page.CleanUrl(window.location.href).startsWith('/Admin/')){this._edititem.find('.ui-input-style,.ui-check-style,.ui-radio-style').inputStyle();}if(typeof CKEDITOR!=='undefined'&&CKEDITOR.replace){var ck=this._edititem.find('div.ck-editor>textarea');if(ck.length){ck.css({visibility:'hidden'});setTimeout(function(_ck){return function(){var div=_ck.parent();div.css({width:div.width(),height:div.height()});div=null;CKEDITOR.replace(_ck.attr('id'),{width:_ck.width(),height:_ck.height()-30,toolbar:'Basic',toolbarCanCollapse:false,ignoreEmptyParagraph:false,removePlugins:'elementspath,wordcount'});if(CKEDITOR.source){new CKEDITOR.source(_ck.attr('id'));}_ck=null;};}(ck),1);}}if(typeof Recaptcha!=='undefined'&&Recaptcha.create){var captcha=this._edititem.find("div[_recaptcha]");if(captcha.length){var id=captcha.attr('id'),key=captcha.attr('_recaptcha');setTimeout(function(_id,_key){return function(){Recaptcha.create(_key,_id,{});};}(id,key),1);}}if($.cms.ajaxupload){setTimeout(function(_edit){return function(){_edit.find("div[icobalt='Cobalt.Controls.FileUpload']").ajaxupload();_edit=null;}}(this._edititem),1);}if(this.options.popupedit){this._edititem.dialog({modal:true,title:this.options.popuptitle||null,width:'auto',selectOnEnter:true,buttons:{"Save":$.proxy(this._save,this),"Cancel":$.proxy(this._cancel,this)}}).captureScroll();if($.cms.page&&$.cms.page.CleanUrl(window.location.href).startsWith('/Admin/')){this._edititem.find('input.ui-input-style,input.ui-check-style,input.ui-radio-style').inputStyle();}}else{if(!item.length){this._edititem.prependTo(this.element);}else if(before){this._edititem.insertBefore(item);}else{this._edititem.insertAfter(item);}}this._focusFirst(this._edititem);if(meta&&meta.AutoNumber){for(var i=0;i<meta.AutoNumber.length;i++){this._edititem.find("[id='"+meta.AutoNumber[i]+"']").autoNumber();}}$(document).bindkey('ESC',$.proxy(this._cancel,this));if($.isFunction(this.options.onedit)){this.options.onedit(this);}},_focusFirst:function(item){item.find('input:text,textarea').filter('[_origvalue]').toggleValue().end().filter(':visible').filter(function(){return $.curCSS(this,'visibility')!=='hidden';}).eq(0).selecttext(-1);},saveChanges:function(){if(this._edititem){this._save.apply(this,[null,true]);}},_save:function(e,sync){if(e){e.preventDefault();e.stopPropagation();e.stopImmediatePropagation();}var action=(this._edititem&&this._edititem.data('action'))||(this._edititem?'Update':'UpdateAll'),all=action==='UpdateAll',id=all?null:this._edititem.attr('data-key')||'0',items=all?(this._edititem||this.element).find("[data-item='e']"):this._edititem,data=this._serialize(items,all);if(data){this._post(action,id,data,null,null,sync===true);}return false;},_serialize:function(items,all){var data={},error=false;for(var i=0;i<items.length;i++){var item=items.eq(i);if(!this._validate(item)){error=true;}if(error&&!all){return false;}var row=$.cms.ajaxlist.serialize(item.find("[name]"));if(this.options.partition){var partition=item.attr('data-partition');if(partition){row['_Partition_']=partition;}}for(var p in row){if(all){if(!data[p]){data[p]=[];}data[p][i]=row[p];}else{data[p]=row[p];}}}if(error){return false;}else{return data;}},_validate:function(item){var isvalid=true;var first=null;if($.isFunction(this.options.onvalidate)){if(this.options.onvalidate.apply(this,[item,this])===false){return false;}}var validators=item.find("[_validator]");for(var i=0;i<validators.length;i++){var validator=validators.eq(i),ctrl=item.find("[id$='_"+validator.attr('_controltovalidate')+"']"),val=null,check=false;if(!ctrl.length){continue;}else{val=ctrl.formVal();}var valid=true;switch(validator.attr('_validator')){case"RequiredFieldValidator":valid=val?true:false;break;case"CheckBoxValidator":valid=val===true;break;case"RegularExpressionValidator":var expr=validator.attr('_expression');if(!expr){valid=false;}else if(!val){valid=true;}else{switch(expr){case'EmailAddress':expr=new RegExp("^\\S+@\\S+\\.\\S{2,3}$");break;case'PhoneNumber':expr=new RegExp("^ *\\(?\\d{3}\\)?[ -/]?\\d{3}[ -/]?\\d{4}( .)*$");break;case'WebsiteUrl':expr=new RegExp("^(((ht|f)tp(s?))\\://)?(www.|[a-zA-Z0-9].)[a-zA-Z0-9\\-\\.]+\\.[a-zA-Z]{2,6}(\\:[0-9]+)*(/($|[a-zA-Z0-9\\.\\,\\?\\'\\\\\\+&amp;%\\$#\\=~_\\-]+))*$");break;case'StrongPassword':expr=new RegExp("^\\*+$|(?=[\\S ]{8})[\\S ]*\\d[\\S ]*");break;case'UrlSafe':expr=new RegExp("^\\w+$");break;case'ImagesOnly':expr=new RegExp("[\\s\\S]+?\\.(?:jpg|jpe|jpeg|gif|bmp|png)$");break;default:try{expr=new RegExp(expr);}catch(ex){expr=null;}break;}var m=expr.exec(val);valid=m&&m[0]===val;}break;case"PhoneControlValidator":valid=!val||/^[2-9]\d{2}[2-9]\d{6,14}$/.test(val);break;case"CompareValidator":case"CreditCardValidator":case"CardExpValidator":break;case"RequiredIfValidator":var ctrl2=item.find("[id$='_"+validator.attr('_controltocheck')+"']"),val2=ctrl2.is(':checkbox')?(ctrl2.is(':checked')?'on':null):ctrl2.formVal(),checkval=validator.attr('_checkvalue');if(checkval){if(checkval.toLowerCase()==='*empty*'){check=val2?false:true;}else{var data=checkval.split('.');for(var j=0;j<data.length;j++){if(data[j]==val2){check=true;break;}}}}else if(val2){check=true;}valid=(!check||val)?true:false;break;}if(valid){switch(validator.attr('_display')){case'Dynamic':validator.css({display:'none'});break;default:validator.css({visibility:'hidden'});break;}}else{isvalid=false;if(!first&&ctrl.is('input:text,textarea')){first=ctrl;}switch(validator.attr('_display')){case'Dynamic':validator.css({display:'inline'});break;default:validator.css({visibility:'visible'});break;}}}if(typeof Recaptcha!=='undefined'&&Recaptcha.get_challenge&&Recaptcha.get_response){var challenge=Recaptcha.get_challenge(),response=Recaptcha.get_response(),div=item.find("div[_recaptcha]");if(challenge&&!response){isvalid=false;div.removeClass('recaptcha_nothad_incorrect_sol').addClass('recaptcha_had_incorrect_sol');if(!first){Recaptcha.focus_response_field()}}else if(challenge){div.removeClass('recaptcha_had_incorrect_sol').addClass('recaptcha_nothad_incorrect_sol');}}if(!isvalid&&first){first.focus();}return isvalid;},_cancel:function(e){if($.isFunction(this.options.oncancel)){this.options.oncancel(this);}var editor=(this._edititem||this.element).find('div.ck-editor').data('editor');if(editor){editor.destroy();}if(this._edititem){this._edititem.remove();this._edititem=null;}if(this._item){if(typeof this._item==='string'){this.element.html(this._item);}else{this._item.show();}this._item=null;}$(document).unbindkey('ESC',this._cancel);},_updateHistory:function(){var state=$.cms.ajaxlist.history.getState(),results=state&&state.data;if(!results){return;}else if($.isEmptyObject(results)){results.Action='Reload';results.HTML=this._initialHistory;}this._render(results);},_post:function(action,id,data,callback,noloading,sync){if(!noloading){if(this.options.autosuggest){}else if(this.options.local){this.element.loading({zIndex:action&&action.startsWith('Update')&&this.options.popupedit?null:99,color:'#FFFFFF',opacity:0.4,timeout:this.options.loadingTimeout});}else{$(document.body).loading({zIndex:action&&action.startsWith('Update')&&this.options.popupedit?null:99,color:'#FFFFFF',opacity:0.4,timeout:this.options.loadingTimeout});}}if(action==='Paging'){this._pagingid=$.toInt(id);id=undefined;}var url=$.getAjaxUrl(this.url,{Action:action,ID:id,PagingID:this._pagingid});if(!callback&&!this.options.comet&&this._history&&$.cms.ajaxlist.history){switch(action){case'Paging':case'ShowMore':case'Sort':case'Search':callback=function(results){$.cms.ajaxlist.history.pushState(results,null,url);};break;}}$.ajax({url:url,type:'POST',data:data,dataType:'json',async:sync?false:true,success:callback||$.proxy(this._render,this),error:$.proxy(this._error,this)});},reload:function(noloading,callback){if(this.options.search){data=$.cms.ajaxlist.serialize(this.element.find(":input,table").filter("[_search]"));this._post('Search',null,data,callback,noloading);}else{this._post('Reload',null,null,callback,noloading);}},_render:function(results){if(this.options.local){this.element.loading('done');}else{$(document.body).loading('done');}if(!results){return;}else if(results.Error){if(results.Field){var fields=results.Field.split(','),message=results.Error,focus=null;for(var i=0;i<fields.length;i++){var input=this._edititem.find("[name$='$"+fields[i]+"']"),val=input&&input.val();if(input.length){message=(val?"<strong>"+val+"</strong>":"That value")+" has already been created.";focus=input;}}$.alert('Alert!',message,{onclose:function(_focus){return function(){_focus&&_focus.is(':text:visible')&&_focus.selecttext();_focus=null;};}(focus)});}else{$.alert(results.Error);}}else if(results.HTML){if(this._edititem){this._cancel();}var m=$.cms.ajaxlist._r_contents.exec(results.HTML);if(m){var html;switch(results.Action){case'Update':case'Update2':case'Delete':case'Delete2':if($.isFunction(this.options.onsave)){html=this.options.onsave(this,m[1],results);}break;case'EditAll':if(this.options.popupeditall){this._editItem(m[1],null,results,'UpdateAll');return;}break;}if(html===false){return;}if(results.PagingID){this._pagingid=results.PagingID;}if(this.options.comet&&results.Comet&&this.options.comet!==results.Comet){$.comet(this.options.comet,false);this.options.comet=results.Comet;$.comet(this.options.comet,$.proxy(this._render,this));}var sfocus;if(this.options.autosuggest){}else if(this.options.searchtext&&(sfocus=this._searchfocus)){var items=this.element.find("[data-item]"),search=items.filter(":has(input:text[_search])"),start=items.index(search.eq(0)),end=search.length===1?start:items.index(search.eq(search.length-1));if(start<0||end<start){this.element.html(html||m[1]);var fn=function(el){return function(){try{$(el).selecttext(-1);el=null;}catch(ex){;}}}(document.getElementById(sfocus));setTimeout(fn,1);}else{var div=document.createElement('div');div.innerHTML=results.HTML;var sb1=[],sb2=[],newitems=$(div).find("[data-item]"),newsearch=newitems.filter(":has(input:text[_search])"),newstart=newitems.index(newsearch.eq(0)),newend=newsearch.length===1?newstart:newitems.index(newsearch.eq(newsearch.length-1));for(var i=0;i<newstart;i++){sb1.push(newitems.eq(i).outerHtml());}for(var i=newend+1;i<newitems.length;i++){sb2.push(newitems.eq(i).outerHtml());}if(start===0&&sb1.length>0){items.eq(0).before(sb1.join(""));}else if(start>0){items.slice(0,start).remove();if(sb1.length>0){items.eq(start).before(sb1.join(""));}}items.slice(end+1).remove();if(sb2.length>0){items.eq(end).after(sb2.join(""));}}}else{this.element.html(html||m[1]);}if(results.Action==='EditAll'){$(document).bindkey('ESC',$.proxy(this._cancel,this));if($.isFunction(this.options.onedit)){this.options.onedit(this);}this._focusFirst(this.element);}else if(this.options.drag){this._initDrag();}results.Render=html||m[1];if($.isFunction(this.options.onrender)){if(this.options.onrender(this,results)===false){return;}}if(this.options.autosuggest){if(!results.Render){this.autosuggest.empty().hide();}else{this.autosuggest.html(results.Render).css({display:'block'}).place({my:'left top',at:'left bottom',of:this.autotext,collision:'none none'});}}if($.cms.page&&$.cms.page.CleanUrl(window.location.href).startsWith('/Admin/')){this.element.find('.ui-input-style,.ui-check-style,.ui-radio-style').inputStyle();}var show;if(results.Action==='Search'){show=this._lastsearch;}else{show=undefined;}this._setDividerRows(show);if(this.options.viewstate){this._updateViewState();}}}},_updateViewState:function(){$.ajax({url:$.getAjaxUrl(window.location.href,{RND:Math.random()}),success:function(html){var m=/<input [^>]*?"__VIEWSTATE"[^>]*? value="([^">]+)"[^>]*>/.exec(html);if(m){document.getElementById('__VIEWSTATE').value=m[1];}}});},_error:function(xhr){if(this.options.local){this.element.loading('done');}else{$(document.body).loading('done');}$.cms.page&&$.cms.page.AlertError(xhr);},destroy:function(){$.Widget.prototype.destroy.apply(this,arguments);}});$.extend($.cms.ajaxlist,{_r_contents:/^<\w+[^>]*>([\s\S]*)<\/\w+>$/,getPosition:function(positions,x,y){var len=positions.length;for(var i=0;i<len;i++){var p=positions[i];var pos=p.pos;if(x>pos.left&&x<(pos.left+pos.width)&&y>pos.top&&y<(pos.top+pos.height)){return i;}}return-1;},serialize:function(elements){var data={};elements.each(function(i){var input=$(this);var name=input.attr('name').split('$').pop();if(!name){return;}else if(name/1==name&&input.is("input:checkbox")){var split=input.attr('name').split('$');name=split[split.length-2]+"$"+name;if(input.is(":checked")){data[name]="true";}}else{var val=input.formVal();if(val===undefined){return;}data[name]=val;}});return data;}});})(jQuery);
