
Type.registerNamespace("Visma.Dbc");Visma.Dbc.Assert=function(){};Visma.Dbc.Assert.isObject=function(o){return typeof o==="object"&&o!==null;};Visma.Dbc.Assert.isNamedElement=function(e,name){Visma.Dbc.Assert.string(name,'Visma.Dbc.Assert.isNamedElement: "name" parameter not specified.');return isElement(e)&&e.nodeName.toLowerCase()===name.toLowerCase();};Visma.Dbc.Assert.isString=function(s){return typeof s==="string";};Visma.Dbc.Assert.namedElement=function(e,name){if(!Visma.Dbc.Assert.isNamedElement(e,name)){throw new Error('Visma.Dbc.Assert.namedElement: Not an "'+name+'" element.');}};Visma.Dbc.Assert.object=function(o){if(!Visma.Dbc.Assert.isObject(o)){throw new Visma.Dbc.DbcError("Visma.Dbc.Assert.object: Not an object.");}};Visma.Dbc.Assert.string=function(s,message){if(!Visma.Dbc.Assert.isString(s)){var msg=message||"Visma.Dbc.Assert.string: argument not of type string.";throw new Visma.Dbc.DbcError(msg);}};function isElement(e){return Visma.Dbc.Assert.isObject(e)&&typeof e.nodeName==="string";};function isElementWithSpecifiedName(e,name){return isElement(e)&&e.nodeName.toLowerCase()===name;};
Type.registerNamespace("Visma.Dbc");Visma.Dbc.DbcError=function(message){this.message=message;};
Type.registerNamespace("Visma");Visma.ResourceManager=function(){this._resources=Visma.__localResources;};Visma.ResourceManager.prototype={getString:function(name){var parts=name.split(".");var value=this._resources;var key=null;while(typeof(key=parts.shift())==="string"){if(typeof value[key]==="undefined"){return null;}
value=value[key];}
return value;}};Visma.ResourceManager.registerClass("Visma.ResourceManager");
var InitializeButtons=function(selector){var browser=Sys.Browser;if(selector===undefined||typeof(selector)=="function"){selector=".ncbutton";}
if(browser.name!='Safari'){$(selector).each(function(){if($(this).parents(".ncbutton_outer").size()>0)
return;var floating=$(this).css("float");var disabled;if($(this).attr("disabled")||$(this).hasClass("disabled")){disabled="disabled";}
var buttonMarginLeft=$(this).css("margin-left");var buttonMarginRight=$(this).css("margin-right");var buttonMarginTop=$(this).css("margin-top");var buttonMarginBottom=$(this).css("margin-bottom");var margin=buttonMarginTop+" "+buttonMarginRight+" "+buttonMarginBottom+" "+buttonMarginLeft;$(this).css({"cursor":"pointer","position":"absolute","left":"0px","top":"0px","filter":"alpha(opacity=0)","opacity":"0","font-family":"Arial","font-size":"13px","padding":"0px 0px 0px 6px","border":"0","height":"22px"});$(this).wrap("<span class='ncbutton_outer "+disabled+"' style='margin:"+margin+"; float: "+floating+"'></span>");$(this).css("margin","0");$(this).css("float","none");var value=$(this).val();if(value===""){value=$(this).text();}
$(this).before("<span><span>"+value+"</span></span>");var outerwidth=$(this).parent().outerWidth();var buttonwidth=$(this).outerWidth();if(buttonwidth==0&&outerwidth==0){if($(this).css("width")!="0px"){$(this).parent().children('span').css("width",$(this).css("width"));}}
else if(buttonwidth>outerwidth){var diff=buttonwidth-outerwidth;$(this).parent().children('span').css("width",($(this).parent().children('span').width()+diff));}
else{$(this).css("width",outerwidth+"px");}
var outerspan=$(this).parent().children('span');$(this).hover(function(){outerspan.addClass("ncbuttonhover");outerspan.children("span").addClass("ncbuttonhover");},function(){outerspan.removeClass("ncbuttonhover");outerspan.removeClass("ncbuttonpressed");outerspan.children("span").removeClass("ncbuttonhover");});$(this).mousedown(function(){outerspan.addClass("ncbuttonpressed");outerspan.children("span").addClass("ncbuttonpressed");});$(this).mouseup(function(){outerspan.removeClass("ncbuttonpressed");outerspan.children("span").removeClass("ncbuttonpressed");});});}
else{$(selector).each(function(){var disabled;$(this).removeClass();$(this).addClass("ncbutton");if($(this).hasClass("disabled")){disabled="disabled";};$(this).hover(function(){$(this).removeClass();$(this).addClass("ncbutton");$(this).addClass("ncbuttonhover");},function(){$(this).removeClass("ncbuttonhover");$(this).removeClass("ncbuttonpressed");});$(this).mousedown(function(){$(this).removeClass();$(this).addClass("ncbutton");$(this).addClass("ncbuttonpressed");});$(this).mouseup(function(){$(this).removeClass("ncbuttonpressed");});if($(this).parent(".chromehack").length==0){$(this).wrap("<div style=\"display:inline-block\" class=\"chromehack\"/>");}});}}
$(document).ready(InitializeButtons);
Type.registerNamespace("Visma.UI");Visma.UI.Container=function(element){Visma.UI.Container.initializeBase(this,[element]);};Visma.UI.Container.prototype={dispose:function(){Visma.UI.Container.callBaseMethod(this,"dispose");},initialize:function(){Visma.UI.Container.callBaseMethod(this,"initialize");if(!this._supportsBorderRadius()){this._simulateBorderRadius();}},_simulateBorderRadius:function(){var html="<div><div><div></div></div></div>",css="height:0px;line-height:0px;clear:both;font-size:0px;",fix=String.format('<div style="{0}">&nbsp;</div>',css);$(this.get_element()).addClass("DynamicContainer").append(fix).prepend(fix).wrapInner("<div></div>").prepend(html).append(html);},_supportsBorderRadius:function(){var isIE=Sys.Browser.agent===Sys.Browser.InternetExplorer,isOpera=Sys.Browser.agent===Sys.Browser.Opera;return!isIE&&!isOpera;}};Visma.UI.Container._setIdIfMissing=function(element){if(!element.id){if(typeof Visma.UI.Container._nextId!=="number"){Visma.UI.Container._nextId=0;}
element.id=String.format("visma:container:{0}",Visma.UI.Container._nextId++);}};Visma.UI.Container._init=function(){$("div.Container:not(div.Static)").each(function(){Visma.UI.Container._setIdIfMissing(this);$create(Visma.UI.Container,null,null,null,this);});};Visma.UI.Container.registerClass("Visma.UI.Container",Sys.UI.Control);
Type.registerNamespace("Visma.UI");Visma.UI.ControlHelper=function(){throw Error.invalidOperation("Static class.");}
Visma.UI.ControlHelper.getNextId=function(className){if(typeof Visma.UI.ControlHelper._ids==="undefined"){Visma.UI.ControlHelper._ids={};}
if(typeof Visma.UI.ControlHelper._ids[className]==="undefined"){Visma.UI.ControlHelper._ids[className]=0;}
if(typeof Visma.UI.ControlHelper._idFriendlyNameRegex==="undefined"){Visma.UI.ControlHelper._idFriendlyNameRegex=/[A-Z]+[a-z]+/g;}
var regex=Visma.UI.ControlHelper._idFriendlyNameRegex,match=className.match(regex),idFriendlyName=match.join("-").toLowerCase();return String.format("visma:{0}:{1}",idFriendlyName,Visma.UI.ControlHelper._ids[className]++);};Visma.UI.ControlHelper.createControls=function(className,selector){$(selector).each(function(){if(!this.id){this.id=Visma.UI.ControlHelper.getNextId(className);}
$create(Visma.UI[className],null,null,null,this);});};
var InitializeDropdowns=function(selector){var browser=Sys.Browser;if(selector===undefined||typeof(selector)=="function"){selector=".ncdropdown";}
$(selector).each(function(){$(this).prev().children("div").text($(this).children(':selected').text());if($(this).hasClass('showValue')){$(this).prev().children("div").text($(this).children(':selected').val());}
if($(this).parents(".ncdropdown_outer").size()>0)
return;var floating=$(this).css("float");var disabled="";if($(this).is(":disabled")){disabled="disabled ";}
var whiteEdit="";if($(this).hasClass("whiteEdit")){whiteEdit="whiteEdit ";}
var fixedWidth=$(this).css('width').replace("px","");var buttonMarginLeft=$(this).css("margin-left");var buttonMarginRight=$(this).css("margin-right");var buttonMarginTop=$(this).css("margin-top");var buttonMarginBottom=$(this).css("margin-bottom");var margin=buttonMarginTop+" "+buttonMarginRight+" "+buttonMarginBottom+" "+buttonMarginLeft;$(this).css({"cursor":"pointer","position":"absolute","left":"0px","top":"0px","filter":"alpha(opacity=0)","opacity":"0","font-family":"Verdana","font-size":"11px","padding":"0","line-height":"14px","border":"0","height":"18px"});$(this).wrap("<div class='ncdropdown_outer "+disabled+whiteEdit+"' style='margin:"+margin+"; float: "+floating+"'></div>");var paddingLeft=$(this).parent('div').css('padding-left');$(this).css("margin","0");$(this).css("float","none");var value=$(this).children(':selected').text();if($(this).hasClass('showValue')){value=$(this).children(':selected').val();}
$(this).before("<div class='outerspan'><div class='innerspan'><span>"+value+"</span></div></div>");var outerspan=$(this).parent().children('div.outerspan');var innerspan=$(this).parent().children('div.outerspan').children('div.innerspan').first().children('span').first();var outerwidth=$(this).parent().outerWidth();var buttonwidth=$(this).outerWidth();var paddingLeft=outerspan.css('padding-left').replace("px","");if(fixedWidth>0){var displayWidth=fixedWidth-paddingLeft-18;outerspan.css("width",(fixedWidth-paddingLeft)+"px");addOverflowEllipsis(innerspan,displayWidth);}
else{if(buttonwidth==0&&outerwidth==0){$(this).css("width","100%");outerspan.css("width",$(this).css("width"));outerspan.parent().css("padding-right",paddingLeft+"px");}
else if(buttonwidth>outerwidth){var diff=buttonwidth-outerwidth;outerspan.css("width",($(this).parent().children('div').width()+diff)+"px");}
else{$(this).css("width",outerwidth+"px");}}
$(this).hover(function(){outerspan.addClass("ncdropdownhover");outerspan.children("div").addClass("ncdropdownhover");},function(){outerspan.removeClass("ncdropdownhover");outerspan.removeClass("ncdropdownpressed");outerspan.children("div").removeClass("ncdropdownhover");});$(this).mousedown(function(){outerspan.addClass("ncdropdownpressed");outerspan.children("div").addClass("ncdropdownpressed");});$(this).mouseup(function(){outerspan.removeClass("ncdropdownpressed");outerspan.children("div").removeClass("ncdropdownpressed");});$(this).bind('change',function(){var value=$(this).children(':selected').text();if($(this).hasClass('showValue')){value=$(this).children(':selected').val();}
$(this).prev().children("div").text(value);});});}
function addOverflowEllipsis(containerElement,maxWidth){var contents=containerElement.html();var pixelWidth=containerElement.innerWidth();if(pixelWidth>maxWidth){contents=contents+"…";}
while(pixelWidth>maxWidth){contents=contents.substring(0,(contents.length-2))+"…";containerElement.html(contents);pixelWidth=containerElement.innerWidth();}};$(document).ready(InitializeDropdowns);
Type.registerNamespace("Visma.UI");Visma.UI.Frame=function(element){Visma.UI.Frame.initializeBase(this,[element]);this._jq=$(this.get_element());};Visma.UI.Frame.prototype={add_stateChanged:function(handler){this.get_events().addHandler("stateChanged",handler);},close:function(){if(!this.get_isClosed()){var frame=$(this.get_element());var context=this;var oldState=this.get_state();frame.fadeTo(300,0,Function.createDelegate(context,function(){frame.slideUp(100,Function.createDelegate(context,function(){var args=new Visma.UI.FrameStateChangedEventArgs(oldState,this.get_state());this._raiseEvent("stateChanged",args);}));}));}},dispose:function(){for(var key in this._getChildElementsWithHandlers()){$clearHandlers(this._getChildElementsWithHandlers()[key]);}
Visma.UI.Frame.callBaseMethod(this,'dispose');},get_isClosed:function(){return(this.get_state()&Visma.UI.FrameState.Closed)===Visma.UI.FrameState.Closed;},get_isCollapsed:function(){return(this.get_state()&Visma.UI.FrameState.Collapsed)===Visma.UI.FrameState.Collapsed;},get_state:function(){var frameElementVisible=Sys.UI.DomElement.getVisible(this.get_element());var frameBodyElementVisible=Sys.UI.DomElement.getVisible(this._frameBodyElement);var state=frameElementVisible?Visma.UI.FrameState.None:Visma.UI.FrameState.Closed;return state|(frameBodyElementVisible?Visma.UI.FrameState.None:Visma.UI.FrameState.Collapsed);},get_title:function(){return $("h2",this.get_element()).text();},initialize:function(){Visma.UI.Frame.callBaseMethod(this,"initialize");this._addFrameBody();this._addCollapseButton();this._addCloseButton();},remove_stateChanged:function(handler){this.get_events().removeHandler("stateChanged",handler);},open:function(){if(this.get_isClosed()){var frame=$(this.get_element());var context=this;var oldState=this.get_state();frame.slideDown(100,Function.createDelegate(context,function(){frame.fadeTo(300,1,Function.createDelegate(context,function(){var args=new Visma.UI.FrameStateChangedEventArgs(oldState,this.get_state());this._raiseEvent("stateChanged",args);}));}));}},showMessage:function(message){if(!this._messagePanel){this._messagePanel=$('<div class="MessagePanel"><div></div><input type="button"/></div>').hide();this._messagePanel.children("input:first").click(function(){$(this).parent().slideUp(200);});this._jq.children("div.FrameBody:first").prepend(this._messagePanel);}
var text=message;if(typeof message==="object"){text=message.text;this._messagePanel[0].className=String.format("MessagePanel {0}{1}",message.type.substring(0,1).toUpperCase(),message.type.substring(1));}
this._messagePanel.children("div:first").text(text);this._messagePanel.slideDown(200);},toggleCollapse:function(){if(typeof this._collapseButtonElement!=="undefined"){var button=$(this._collapseButtonElement);button.toggleClass("Collapse").toggleClass("Expand");var oldState=this.get_state();var newBottomMargin=this.get_isCollapsed()?"0px":"-6px";var context=this;$(this._frameBodyElement).slideToggle(200,Function.createDelegate(context,function(){var delegate=Function.createDelegate(context,function(){var args=new Visma.UI.FrameStateChangedEventArgs(oldState,this.get_state());this._raiseEvent("stateChanged",args);});$(this.get_element()).animate({marginBottom:newBottomMargin},500,delegate);}));}},_addFrameBody:function(){$("h2:first",this.get_element()).siblings().wrapAll('<div class="FrameBody"></div>');$(this.get_element()).addClass("EnhancedFrame");this._frameBodyElement=$("div.FrameBody:first",this.get_element())[0];},_addCloseButton:function(){var frame=$(this.get_element());if(frame.hasClass("Closable")){var closeButton=$('<input class="Close" type="button" />');$addHandlers(closeButton[0],{click:this._onCloseButtonClick},this);$("h2:first",this.get_element()).prepend(closeButton);this._getChildElementsWithHandlers().closeButton=closeButton[0];}},_addCollapseButton:function(){if($(this.get_element()).hasClass("Collapsible")){var collapseButton=$('<input class="Collapse" type="button" />');$("h2:first",this.get_element()).prepend(collapseButton);this._collapseButtonElement=collapseButton[0];$addHandlers(this._collapseButtonElement,{click:this._onCollapseButtonClick},this);this._getChildElementsWithHandlers().collapseButton=this._collapseButtonElement;}},_getChildElementsWithHandlers:function(){if(typeof this._childElementsWithHandlers==="undefined"){this._childElementsWithHandlers={};}
return this._childElementsWithHandlers;},_onCloseButtonClick:function(event){event.stopPropagation();event.preventDefault();this.close();},_onCollapseButtonClick:function(event){event.stopPropagation();event.preventDefault();this.toggleCollapse();},_raiseEvent:function(eventName,eventArgs){var handler=this.get_events().getHandler(eventName);if(handler){if(!eventArgs){eventArgs=Sys.EventArgs.Empty;}
handler(this,eventArgs);}}};Visma.UI.Frame._init=function(){Visma.UI.ControlHelper.createControls("Frame","div.Frame");};Visma.UI.Frame.registerClass("Visma.UI.Frame",Sys.UI.Control);Sys.Application.add_init(Visma.UI.Frame._init);Visma.UI.FrameState=function(){throw Error.notImplemented();};Visma.UI.FrameState.prototype={None:0,Closed:1,Collapsed:2};Visma.UI.FrameState.registerEnum("Visma.UI.FrameState",true);Visma.UI.FrameStateChangedEventArgs=function(oldState,newState){Visma.UI.FrameStateChangedEventArgs.initializeBase(this);this._newState=newState;this._oldState=oldState;}
Visma.UI.FrameStateChangedEventArgs.prototype={get_newState:function(){return this._newState;},get_oldState:function(){return this._oldState;}};Visma.UI.FrameStateChangedEventArgs.registerClass("Visma.UI.FrameStateChangedEventArgs",Sys.EventArgs);
var methodsVismaUiGrid3={myName:'vismaUiGrid3',init:function(options)
{this.each(methodsVismaUiGrid3.initeach);return this;},initeach:function()
{var grid=jQuery(this);var data=grid.data(methodsVismaUiGrid3.myName);data=data||{};if(data.initdone)
{return;}
data.initdone=1;data.grid=grid;data.grid.data(methodsVismaUiGrid3.myName,data);data.minheight=methodsVismaUiGrid3.parseCssPixelSize(grid.get(0).style.minHeight);data.maxheight=methodsVismaUiGrid3.parseCssPixelSize(grid.get(0).style.maxHeight);data.startheight=methodsVismaUiGrid3.parseCssPixelSize(grid.get(0).style.height);data.alwaysshowcolumn1=data.grid.hasClass("VismaUiGrid3AlwaysShowColumn1");data.alwaysshowcolumn2=data.grid.hasClass("VismaUiGrid3AlwaysShowColumn2");data.repeatedclick=data.grid.hasClass("VismaUiGrid3SelectableRowsRepeated");data.resize=data.grid.hasClass("VismaUiGrid3Resizable");data.pagination=data.grid.hasClass("VismaUiGrid3Pagination");data.colW={};data.colWStart={};data.colWTotal=0;data.colHidden={};data.colMap=[];data.rowHTotal=0;data.rowHAvg=0;data.drawwidth=0;data.resized=1;data.vscroll=false;data.hscroll=false;data.rowH={};data.rowDrawn={};data.table=grid.children(".VismaUiGrid3Table");data.scrollerX=jQuery("<div class=\"VismaUiGrid3ScrollerX VismaUiHScroll\" style=\"display:none;\"></div>");data.scrollerY=jQuery("<div class=\"VismaUiGrid3ScrollerY VismaUiVScroll\" style=\"display:none;\"></div>");data.scrollerZ=jQuery("<div class=\"VismaUiVHScroller\" style=\"display:none;\"></div>");data.scrollerX.html("<div class=\"VismaUiHScrollLeft\"></div><div class=\"VismaUiHScrollRight\"></div><div class=\"VismaUiVScrollSliderLeftOf\"></div><div class=\"VismaUiHScrollSlider\"><div class=\"VismaUiHScrollSliderLeft\"></div><div class=\"VismaUiHScrollSliderRight\"></div></div><div class=\"VismaUiVScrollSliderRightOf\"></div>");data.scrollerY.html("<div class=\"VismaUiVScrollTop\"></div><div class=\"VismaUiVScrollBottom\"></div><div class=\"VismaUiVScrollSliderAbove\"></div><div class=\"VismaUiVScrollSlider\"><div class=\"VismaUiVScrollSliderTop\"></div><div class=\"VismaUiVScrollSliderBottom\"></div></div><div class=\"VismaUiVScrollSliderBelow\"></div>");grid.append(data.scrollerX);grid.append(data.scrollerY);grid.append(data.scrollerZ);data.rows=data.table.children();data.header=data.rows.eq(0);data.rows=data.rows.slice(1);data.rowArray=[];data.rowMap=[];data.displayMap=[];for(var irow=0;irow<data.rows.length;irow++)
{data.rowMap[irow]=irow;data.displayMap[irow]=irow;data.rowArray[irow]=data.rows.eq(irow);}
data.displayrowfilteringchanged=false;data.displaycolumnfilteringchanged=true;data.visiblerowstart=0;data.visiblerowend=0;data.scrollrowstart=0;data.scrollXstart=0;data.stagediv=jQuery("<div class=\"VismaUiGrid3Table VismaUiGrid3TableStaging\"></div>");data.grid.append(data.stagediv);data.usehidden=!jQuery.browser.opera;if(data.usehidden)
{data.table.hide();data.tablehidden=data.table;data.table=jQuery("<div class=\"VismaUiGrid3Table\"></div>");data.grid.append(data.table);}
data.header.addClass("VismaUiGrid3Header");data.headers=data.header.children();data.scrollWidth=17;data.fillerRow=jQuery("<div class=\"VismaUiGrid3Filler\"/>");for(var i=0;i<data.headers.length;i++)
{data.colWStart[i]=data.headers.get(i).style.width;data.fillerRow.append(jQuery("<div/>"));}
data.table.append(data.fillerRow);if(data.resize)
{data.resizeHolders={};data.resizedColumns=0;for(var i=0;i<data.headers.length;i++)
{data.resizeHolders[i]=jQuery("<div class=\"VismaUiGrid3ColResize\"/>");data.resizeHolders[i].attr("data-index",i);data.header.append(data.resizeHolders[i]);}
methodsVismaUiGrid3.addResizableFunctionality(data);}
data.footer=jQuery("<div class=\"VismaUiGrid3Footer\"/>");data.footer.html("<div class=\"VismaUiGrid3ProgressBar\"/><table><tr><td style=\"text-align:left;\"></td><td style=\"text-align:center;\"><span class=\"VismaUiGrid3FooterLink\">|&lt;</span><span class=\"VismaUiGrid3FooterLink\">&lt;&lt;</span><span class=\"VismaUiGrid3FooterPageSelector\"><input class=\"VismaUiGrid3PageInput\" type=\"text\"/ value=\"1\"> / <span class=\"VismaUiGrid3FooterPageTotal\"></span></span><span class=\"VismaUiGrid3FooterLink\">&gt;&gt;</span><span class=\"VismaUiGrid3FooterLink\">&gt;|</span></td><td style=\"text-align:right;\" class=\"VismaUiGrid3Summary\"></td></tr></table>");data.footerHeight=0;data.paginationStartRow=0;data.paginationPage=0;data.paginationRowsPerPage=data.displayMap.length;data.paginationSortCol=-1;data.paginationSortOrder=null;if(data.pagination)
{data.grid.append(data.footer);data.footerHeight=data.footer.height();data.paginationTotalRows=parseInt(data.grid.attr("data-rowcount"));data.paginationUrl=data.grid.attr("data-url");var rowtext=data.displayMap.length>0?"1 - "+data.displayMap.length:"0";data.footer.find(".VismaUiGrid3Summary").html(rowtext+" / "+data.paginationTotalRows);var pageCount=data.displayMap.length>0?Math.ceil(data.paginationTotalRows/data.displayMap.length):1;data.footer.find(".VismaUiGrid3FooterPageTotal").html(pageCount);methodsVismaUiGrid3.addPaginationFunctionality(data);}
jQuery(window).resize(function()
{methodsVismaUiGrid3.resizeevent(data);});methodsVismaUiGrid3.addScrollerEvents(data);methodsVismaUiGrid3.resizeevent(data);methodsVismaUiGrid3.addSortableFunctionality(data);methodsVismaUiGrid3.addSelectableFunctionality(data);methodsVismaUiGrid3.resizepoller(data);},parseCssPixelSize:function(size)
{var pat=/(\d+)px/;var match=size.match(pat);if(match)
{return parseInt(match[1]);}
return null;},parseCssSize:function(size,width)
{var pat=/(\d+(\.\d*)?)%/;var match=size.match(pat);if(match)
{return parseInt(match[1]*width/100);}
pat=/(\d+)px/;match=size.match(pat);if(match)
{return parseInt(match[1]);}
return null;},resizepoller:function(data)
{if(data.grid.width()!=data.pollwidth)
{methodsVismaUiGrid3.resizeevent(data);}
setTimeout(function()
{methodsVismaUiGrid3.resizepoller(data);},1000);},calculateHeight:function(data)
{data.height=data.startheight;var headerHeight=methodsVismaUiGrid3.getRowH(data,-1);var fixedHeight=(data.hscroll?data.scrollWidth:0)+headerHeight+data.footerHeight;if(!data.height&&data.maxheight)
{data.height=data.maxheight;data.drawheight=data.height-fixedHeight;var heightfound=methodsVismaUiGrid3.determineVScroll(data);if(!data.vscroll)
{data.drawheight=heightfound;data.height=heightfound+fixedHeight;if(data.minheight&&data.height<data.minheight)
{data.height=data.minheight;}}
data.grid.height(data.height);}
else if(data.height>0)
{data.grid.height(data.startheight);data.drawheight=data.height-fixedHeight;var heightfound=methodsVismaUiGrid3.determineVScroll(data);if(!data.vscroll)
{data.drawheight=heightfound;}}
else
{data.vscroll=false;data.drawheight=methodsVismaUiGrid3.determineRowTotalHeight(data);data.height=data.drawheight+fixedHeight;if(data.minheight&&data.height<data.minheight)
{data.height=data.minheight;}
data.grid.height(data.height);}},resizeevent:function(data)
{if(data==undefined)
{data=this.eq(0).data("vismaUiGrid3");}
if(data.displaycolumnfilteringchanged)
{methodsVismaUiGrid3.updateColumnDisplayMap(data);}
if(data.displayrowfilteringchanged)
{methodsVismaUiGrid3.updateRowDisplayMap(data);}
data.resized=1;data.vscroll=false;data.hscroll=false;data.width=data.grid.width();data.pollwidth=data.width;data.drawwidth=data.width;var colWBackup={};for(var i in data.colW)
{colWBackup[i]=data.colW[i];}
methodsVismaUiGrid3.getColW(data);if(data.colWTotal>data.drawwidth)
{data.hscroll=true;}
methodsVismaUiGrid3.calculateHeight(data);if(data.vscroll)
{var oldhscroll=data.hscroll;data.drawwidth-=data.scrollWidth;data.colW=colWBackup;methodsVismaUiGrid3.getColW(data);if(!oldhscroll&&data.colWTotal>data.drawwidth)
{data.hscroll=true;methodsVismaUiGrid3.calculateHeight(data);}}
data.table.height(data.height-(data.hscroll?data.scrollWidth:0)-data.footerHeight);data.table.width(data.drawwidth);data.footer.width(data.width);data.footer.css("top",(data.height-data.footerHeight)+"px");methodsVismaUiGrid3.redraw(data);},getColW:function(data)
{data.colWTotal=0;if(data.resizedColumns)
{for(var i=0;i<data.colMap.length;i++)
{data.colWTotal+=data.colW[data.colMap[i]];}
if(data.colWTotal<data.drawwidth)
{var lastCol=data.colMap.length-1;var realLastCol=data.colMap[lastCol];data.colW[realLastCol]=data.colW[realLastCol]-data.colWTotal+data.drawwidth;data.colWTotal=data.drawwidth;}
return;}
var freeCols=data.colMap.length;var lockedCols=0;var usedW=0;data.colW={};for(var i=0;i<data.colMap.length;i++)
{var w=methodsVismaUiGrid3.parseCssSize(data.colWStart[data.colMap[i]],data.drawwidth);if(w)
{data.colW[data.colMap[i]]=w;usedW+=w;freeCols--;lockedCols++;}}
var defaultW;var correct=false;if((usedW+freeCols*20)>data.drawwidth&&lockedCols>0)
{defaultW=parseInt(usedW/lockedCols);}
else
{defaultW=parseInt((data.drawwidth-usedW)/freeCols);correct=true;}
for(var i=0;i<data.colMap.length;i++)
{if(!data.colW[data.colMap[i]])
{data.colW[data.colMap[i]]=defaultW;usedW+=defaultW;}}
if(correct)
{var lastCol=data.colMap.length-1;var realLastCol=data.colMap[lastCol];data.colW[realLastCol]=data.colW[realLastCol]-usedW+data.drawwidth;}
for(var i=0;i<data.colMap.length;i++)
{data.colWTotal+=data.colW[data.colMap[i]];}},getRowH:function(data,irow)
{if(irow==undefined)
{return 0;}
if(!data.rowH[irow])
{var row;if(irow==-1)
{row=data.header;}
else
{row=data.rowArray[irow];}
var clone=row.clone();clone.removeClass("VismaUiGrid3TableActive");data.stagediv.append(clone);data.rowH[irow]=clone.height();if(data.rowH[irow]==0)
{clone.children().andSelf().css("height","");data.rowH[irow]=clone.height();}
clone.remove();data.rowHTotal+=data.rowHTotal[irow];data.rowHAvg=parseInt(data.rowHTotal/(data.rowArray.length+1));}
return data.rowH[irow];},determineRowTotalHeight:function(data)
{var usedH=0;for(var irow=0;irow<data.displayMap.length;irow++)
{usedH+=methodsVismaUiGrid3.getRowH(data,data.displayMap[irow]);}
return usedH;},determineVScroll:function(data)
{var usedH=0;for(var irow=0;irow<data.displayMap.length;irow++)
{usedH+=methodsVismaUiGrid3.getRowH(data,data.displayMap[irow]);if(usedH>data.drawheight)
{data.vscroll=true;return null;}}
return usedH;},findstartrow:function(data)
{var startrow=Math.max(0,data.scrollrowstart);startrow=Math.min(startrow,data.displayMap.length-1);var height=methodsVismaUiGrid3.getRowH(data,data.displayMap[startrow]);var end=startrow;while(end<data.displayMap.length-1)
{var irow=end+1;var rowH=methodsVismaUiGrid3.getRowH(data,data.displayMap[irow]);if(height+rowH>data.drawheight)
{break;}
height+=rowH;end++;}
if(end==data.displayMap.length-1)
{data.scrollrowstart=end;height=methodsVismaUiGrid3.getRowH(data,data.displayMap[end]);while(data.scrollrowstart>0)
{var irow=data.scrollrowstart-1;var rowH=methodsVismaUiGrid3.getRowH(data,data.displayMap[irow]);if(height+rowH>data.drawheight)
{break;}
height+=rowH;data.scrollrowstart--;}}
else
{data.scrollrowstart=startrow;}},drawrow:function(data,row,irow,rowH,posX,posY,oldRowDrawn)
{var rowObj=row.get(0);if(!rowObj)
{return;}
rowObj.style.left=posX+"px";rowObj.style.top=posY+"px";if(!oldRowDrawn[irow]||data.resized)
{rowObj.style.width=data.colWTotal+"px";rowObj.style.height=rowH+"px";var cols=row.children();var rowX=0;for(var icol=0;icol<data.colMap.length;icol++)
{var col=cols.eq(data.colMap[icol]);var colObj=col.get(0);if(!colObj)
{continue;}
var colW=data.colW[data.colMap[icol]];colObj.style.left=rowX+"px";if((data.alwaysshowcolumn1||data.alwaysshowcolumn2)&&icol==0)
{colObj.style.left=data.scrollXstart+"px";colObj.style.zIndex="10";}
if(data.alwaysshowcolumn2&&icol==1)
{colObj.style.left=(data.scrollXstart+data.colW[data.colMap[0]])+"px";colObj.style.zIndex="10";}
colObj.style.top="0px";colObj.style.width=colW+"px";colObj.style.height=rowH+"px";colObj.style.visibility="inherit";rowX+=data.colW[data.colMap[icol]];if(irow==0&&data.resize)
{data.resizeHolders[icol].css("left",(rowX-6)+"px");data.resizeHolders[icol].css("height",rowH+"px");data.resizeHolders[icol].show();if((data.alwaysshowcolumn1||data.alwaysshowcolumn2)&&icol==0)
{data.resizeHolders[icol].css("left",((rowX-6)+data.scrollXstart)+"px");data.resizeHolders[icol].css("zIndex",10);}
if(data.alwaysshowcolumn2&&icol==1)
{data.resizeHolders[icol].css("left",((rowX-6)+data.scrollXstart)+"px");data.resizeHolders[icol].css("zIndex",10);}}}
for(var icol in data.colHidden)
{cols.get(icol).style.visibility="hidden";if(irow==0&&data.resize)
{data.resizeHolders[icol].hide();}}
row.addClass("VismaUiGrid3TableActive");if(data.usehidden&&!oldRowDrawn[irow])
{data.table.append(row);}}
else
{if(data.alwaysshowcolumn1||data.alwaysshowcolumn2)
{row.children().eq(data.colMap[0]).css("left",data.scrollXstart+"px");}
if(data.alwaysshowcolumn2)
{row.children().eq(data.colMap[1]).css("left",(data.scrollXstart+data.colW[data.colMap[0]])+"px");}}
data.rowDrawn[irow]=1;posY+=rowH;return posY;},redraw:function(data)
{if(data.displayrowfilteringchanged)
{methodsVismaUiGrid3.updateRowDisplayMap(data);}
var posX=-Math.max(Math.min(data.scrollXstart,data.colWTotal-data.drawwidth),0);data.scrollXstart=-posX;methodsVismaUiGrid3.findstartrow(data,data.scrollrowstart);var headers=data.headers;var countRow=data.displayMap.length;var endPosY=data.height-(data.hscroll?data.scrollWidth:0)-data.footerHeight;var posY=0;var oldRowDrawn=data.rowDrawn;data.rowDrawn={};data.visiblerowstart=data.scrollrowstart;var row=data.header;var rowH=methodsVismaUiGrid3.getRowH(data,-1);posY=methodsVismaUiGrid3.drawrow(data,row,-1,rowH,posX,posY,oldRowDrawn);var irow=data.visiblerowstart;data.visiblerowend=irow;while(irow>=0)
{if(irow==data.displayMap.length)
{break;}
if(posY>=endPosY)
{break;}
row=data.rowArray[data.displayMap[irow]];rowH=methodsVismaUiGrid3.getRowH(data,data.displayMap[irow]);if(posY+rowH<=endPosY)
{data.visiblerowend=irow;}
posY=methodsVismaUiGrid3.drawrow(data,row,data.displayMap[irow],rowH,posX,posY,oldRowDrawn);if(irow%2==0)
{row.addClass("VismaUiGridAlternate");}
else
{row.removeClass("VismaUiGridAlternate");}
irow++;}
delete oldRowDrawn[-2];posY=methodsVismaUiGrid3.drawrow(data,data.fillerRow,-2,Math.max(0,endPosY-posY),posX,posY,oldRowDrawn);for(irow2 in oldRowDrawn)
{if(!data.rowDrawn[irow2])
{var row=data.rowArray[irow2];row.removeClass("VismaUiGrid3TableActive");if(data.usehidden)
{data.tablehidden.append(row);}}}
data.resized=0;if(data.vscroll)
{var visibleRows=data.visiblerowend-data.visiblerowstart+1;var hiddenRows=data.displayMap.length-visibleRows;var fraction=visibleRows/data.displayMap.length;var scrollHeight=data.height-(data.hscroll?data.scrollWidth:0)-data.footerHeight;var scrollBarHeight=scrollHeight-data.scrollWidth*2;data.scrollerY.css("left",(data.width-data.scrollWidth)+"px");data.scrollerY.width(data.scrollWidth);data.scrollerY.css("top","0px");data.scrollerY.height(scrollHeight);data.scrollerY.children(".VismaUiVScrollBottom").css("top",(scrollHeight-data.scrollWidth)+"px");var scrollerHeight=Math.max(20,parseInt(fraction*scrollBarHeight));data.scrollerYFree=scrollBarHeight-scrollerHeight;var scrollerTop=data.scrollWidth+parseInt(data.visiblerowstart/hiddenRows*data.scrollerYFree);var scroller=data.scrollerY.children(".VismaUiVScrollSlider");scroller.css("top",scrollerTop+"px");scroller.height(scrollerHeight);scroller.children(".VismaUiVScrollSliderBottom").css("top",(scrollerHeight-4)+"px");data.scrollerY.children(".VismaUiVScrollSliderAbove").css("top",data.scrollWidth).height(scrollerTop-data.scrollWidth);data.scrollerY.children(".VismaUiVScrollSliderBelow").css("top",scrollerTop+scrollerHeight).height(scrollBarHeight-scrollerTop+data.scrollWidth-scrollerHeight);data.table.addClass("VismaUiGrid3VScroll");data.scrollerY.css("display","block");data.scrollerYTop=scrollerTop-data.scrollWidth;}
else
{data.table.removeClass("VismaUiGrid3VScroll");data.scrollerY.css("display","none");}
if(data.hscroll)
{var visibleSpace=data.drawwidth;var hiddenSpace=data.colWTotal-data.drawwidth;var fraction=data.drawwidth/data.colWTotal;var scrollWidth=data.width-(data.vscroll?data.scrollWidth:0);var scrollBarWidth=scrollWidth-data.scrollWidth*2;data.scrollerX.css("top",(data.height-data.scrollWidth-data.footerHeight)+"px");data.scrollerX.width(scrollWidth);data.scrollerX.css("left","0px");data.scrollerX.height(data.scrollWidth);data.scrollerX.children(".VismaUiHScrollRight").css("left",(scrollWidth-data.scrollWidth)+"px");var scrollerWidth=Math.max(20,parseInt(fraction*(scrollWidth-data.scrollWidth*2)));data.scrollerXFree=scrollBarWidth-scrollerWidth;var scrollerLeft=data.scrollWidth+parseInt((data.scrollXstart/hiddenSpace)*data.scrollerXFree);var scroller=data.scrollerX.children(".VismaUiHScrollSlider");scroller.css("left",scrollerLeft+"px");scroller.width(scrollerWidth);scroller.children(".VismaUiHScrollSliderRight").css("left",(scrollerWidth-4)+"px");data.scrollerX.children(".VismaUiVScrollSliderLeftOf").css("left",data.scrollWidth).width(scrollerLeft-data.scrollWidth);data.scrollerX.children(".VismaUiVScrollSliderRightOf").css("left",scrollerLeft+scrollerWidth).width(scrollBarWidth-scrollerLeft+data.scrollWidth-scrollerWidth);data.table.addClass("VismaUiGrid3HScroll");data.scrollerX.css("display","block");data.scrollerXLeft=scrollerLeft-data.scrollWidth;}
else
{data.table.removeClass("VismaUiGrid3HScroll");data.scrollerX.css("display","none");}
var headerHeight=methodsVismaUiGrid3.getRowH(data,-1);if(data.hscroll&&data.vscroll)
{data.scrollerZ.css("left",data.drawwidth+"px");data.scrollerZ.css("top",data.drawheight+headerHeight+"px");data.scrollerZ.show();}
else
{data.scrollerZ.hide();}},addScrollerEvents:function(data)
{var scrollerYPos=-1;var scrollerYDraggingTop=-1;var scrollerXPos=-1;var scrollerXDraggingLeft=-1;var timeout;var lasttime=new Date().getTime();function redraw()
{clearTimeout(timeout);var time=new Date().getTime();if(time-lasttime>20)
{methodsVismaUiGrid3.resizeevent(data);lasttime=time;}
else
{timeout=setTimeout(function()
{methodsVismaUiGrid3.resizeevent(data);lasttime=time;},5);}}
function mousemoveY(event)
{if(scrollerYPos==-1)
{return;}
var visibleRows=data.visiblerowend-data.visiblerowstart+1;var hiddenRows=data.displayMap.length-visibleRows;var diff=event.pageY-scrollerYPos;var newtoppos=scrollerYDraggingTop+diff;data.scrollrowstart=parseInt(hiddenRows*newtoppos/data.scrollerYFree+0.5);redraw();return false;}
function mouseupY(event)
{if(scrollerYPos==-1)
{return;}
$(document).unbind('mousemove.vismauigriddiv',mousemoveY).unbind('mouseup.vismauigriddiv',mouseupY);data.scrollerY.children(".VismaUiVScrollSlider").removeClass("VismaUiVScrollSliderActive");scrollerYPos=-1;}
function mousemoveX(event)
{if(scrollerXPos==-1)
{return;}
var hiddenSpace=data.colWTotal-data.drawwidth;var diff=event.pageX-scrollerXPos;var newleftpos=scrollerXDraggingLeft+diff;data.scrollXstart=parseInt(hiddenSpace*newleftpos/data.scrollerXFree);redraw();return false;}
function mouseupX(event)
{if(scrollerXPos==-1)
{return;}
$(document).unbind('mousemove.vismauigriddiv',mousemoveX).unbind('mouseup.vismauigriddiv',mouseupX);data.scrollerX.children(".VismaUiHScrollSlider").removeClass("VismaUiHScrollSliderActive");scrollerXPos=-1;}
data.scrollerY.mousedown(function(event)
{var r=null;scrollerYPos=-1;var target=jQuery(event.target);var oldstart=data.scrollrowstart;if(target.hasClass("VismaUiVScrollTop"))
{data.scrollrowstart=Math.max(0,data.scrollrowstart-1);}
else if(target.hasClass("VismaUiVScrollBottom"))
{if(data.visiblerowend<data.displayMap.length-1)
{data.scrollrowstart++;}}
else if(target.hasClass("VismaUiVScrollSlider")||target.hasClass("VismaUiVScrollSliderTop")||target.hasClass("VismaUiVScrollSliderBottom"))
{mouseupY(event);mouseupX(event);data.scrollerY.children(".VismaUiVScrollSlider").addClass("VismaUiVScrollSliderActive");scrollerYDraggingTop=data.scrollerYTop;scrollerYPos=event.pageY;$(document).bind('mousemove.vismauigriddiv',mousemoveY).bind('mouseup.vismauigriddiv',mouseupY);r=false;}
else if(target.hasClass("VismaUiVScrollSliderAbove"))
{var height=0;while(data.scrollrowstart>0)
{var irow=data.scrollrowstart-1;var rowH=methodsVismaUiGrid3.getRowH(data,irow);if(height+rowH>data.drawheight)
{break;}
height+=rowH;data.scrollrowstart--;}}
else if(target.hasClass("VismaUiVScrollSliderBelow"))
{data.scrollrowstart=data.visiblerowend+1;}
if(oldstart!=data.scrollrowstart)
{methodsVismaUiGrid3.redraw(data);}
if(jQuery.browser.opera)
{return false;}
return r;});data.scrollerX.mousedown(function(event)
{var target=jQuery(event.target);var oldstart=data.scrollXstart;if(target.hasClass("VismaUiHScrollLeft"))
{data.scrollXstart=data.scrollXstart-parseInt(data.drawwidth/10);}
else if(target.hasClass("VismaUiHScrollRight"))
{data.scrollXstart=data.scrollXstart+parseInt(data.drawwidth/10);}
else if(target.hasClass("VismaUiHScrollSlider")||target.hasClass("VismaUiHScrollSliderLeft")||target.hasClass("VismaUiHScrollSliderRight"))
{mouseupY(event);mouseupX(event);data.scrollerX.children(".VismaUiHScrollSlider").addClass("VismaUiHScrollSliderActive");scrollerXDraggingLeft=data.scrollerXLeft;scrollerXPos=event.pageX;$(document).bind('mousemove.vismauigriddiv',mousemoveX).bind('mouseup.vismauigriddiv',mouseupX);r=false;}
else if(target.hasClass("VismaUiVScrollSliderLeftOf"))
{data.scrollXstart=data.scrollXstart-data.drawwidth;}
else if(target.hasClass("VismaUiVScrollSliderRightOf"))
{data.scrollXstart=data.scrollXstart+data.drawwidth;}
if(oldstart!=data.scrollXstart)
{methodsVismaUiGrid3.redraw(data);}
return false;});data.grid.mousewheel(function(event,delta,deltaX,deltaY)
{if(data.vscroll)
{data.scrollrowstart-=deltaY*3;methodsVismaUiGrid3.redraw(data);return false;}});data.grid.keydown(function(e)
{var oldstartX=data.scrollXstart;var oldstartY=data.scrollrowstart;var changed=false;function findSelectedRow()
{if(data.selectedRow!=null)
{var selected=data.selectedRow.get(0);for(var irow=0;irow<data.displayMap.length;irow++)
{if(selected==data.rowArray[data.displayMap[irow]].get(0))
{return irow;}}}
return-1;}
function assertRowVisible(irow)
{if(irow<data.scrollrowstart)
{data.scrollrowstart=irow;}
else if(data.visiblerowend==irow-1)
{data.scrollrowstart++;}
else if(data.visiblerowend<irow)
{data.scrollrowstart=irow;}}
switch(e.keyCode)
{case 33:var height=0;var count=0;while(data.scrollrowstart>0)
{var irow=data.scrollrowstart-1;var rowH=methodsVismaUiGrid3.getRowH(data,irow);if(height+rowH>data.drawheight)
{break;}
height+=rowH;data.scrollrowstart--;count++;}
break;case 34:data.scrollrowstart=data.visiblerowend+1;break;case 37:data.scrollXstart=data.scrollXstart-parseInt(data.drawwidth/10);break;case 38:var irow=findSelectedRow();if(irow>0)
{methodsVismaUiGrid3.setSelectedRowData(data,data.rowArray[data.displayMap[irow-1]]);assertRowVisible(irow-1);changed=true;}
else
{data.scrollrowstart=Math.max(0,data.scrollrowstart-1);}
break;case 39:data.scrollXstart=data.scrollXstart+parseInt(data.drawwidth/10);break;case 40:var irow=findSelectedRow();if(irow>=0&&irow<data.displayMap.length-1)
{methodsVismaUiGrid3.setSelectedRowData(data,data.rowArray[data.displayMap[irow+1]]);assertRowVisible(irow+1);changed=true;}
else if(data.visiblerowend<data.displayMap.length-1)
{data.scrollrowstart++;}
break;}
if(oldstartX!=data.scrollXstart||oldstartY!=data.scrollrowstart||changed)
{methodsVismaUiGrid3.redraw(data);e.stopPropagation();e.stopImmediatePropagation();return false;}});},addSelectableFunctionality:function(data)
{if(data.grid.hasClass("VismaUiGrid3Selectable"))
{data.table.click(function(e)
{var obj=jQuery(e.target);while(true)
{var parent=obj.parent();if(parent.length==0)
{return;}
if(parent.hasClass("VismaUiGrid3Table"))
{break;}
obj=parent;}
if(obj.hasClass("VismaUiGrid3Header")||obj.hasClass("VismaUiGrid3Filler"))
{return;}
if(data.selectedRow&&data.selectedRow.get(0)==obj.get(0)&&!data.repeatedclick)
{return;}
if(data.selectedRow!=null)
{data.selectedRow.removeClass("VismaUiGrid3Selected");}
obj.addClass("VismaUiGrid3Selected");data.selectedRow=obj;if(data.rowSelected)
{data.rowSelected(obj);}});}},addPaginationFunctionality:function(data)
{var arrows=data.footer.find(".VismaUiGrid3FooterLink");arrows.eq(0).click(function()
{if(data.paginationPage!=0)
{methodsVismaUiGrid3.getPaginationRows(data,0,data.paginationSortCol,data.paginationSortOrder);}
else
{data.footer.find(".VismaUiGrid3PageInput").val("1");}});arrows.eq(1).click(function()
{if(data.paginationPage!=0)
{var startrow=(data.paginationPage-1)*data.paginationRowsPerPage;methodsVismaUiGrid3.getPaginationRows(data,startrow,data.paginationSortCol,data.paginationSortOrder);}
else
{data.footer.find(".VismaUiGrid3PageInput").val("1");}});arrows.eq(2).click(function()
{var pageCount=Math.ceil(data.paginationTotalRows/data.paginationRowsPerPage);if(data.paginationPage!=pageCount-1)
{var startrow=(data.paginationPage+1)*data.paginationRowsPerPage;methodsVismaUiGrid3.getPaginationRows(data,startrow,data.paginationSortCol,data.paginationSortOrder);}
else
{data.footer.find(".VismaUiGrid3PageInput").val(pageCount);}});arrows.eq(3).click(function()
{var pageCount=Math.ceil(data.paginationTotalRows/data.paginationRowsPerPage);if(data.paginationPage!=pageCount-1)
{methodsVismaUiGrid3.getPaginationRows(data,data.displayMap.length*(pageCount-1),data.paginationSortCol,data.paginationSortOrder);}
else
{data.footer.find(".VismaUiGrid3PageInput").val(pageCount);}});data.footer.find(".VismaUiGrid3PageInput").keydown(function(e)
{if(e.keyCode!=13)
{return;}
var val=parseInt($(this).val());if(isNaN(val))
{val=data.paginationPage+1;}
var pageCount=Math.ceil(data.paginationTotalRows/data.paginationRowsPerPage);val=Math.min(val,pageCount);val=Math.max(1,val);if(data.paginationPage+1!=val)
{var startrow=(val-1)*data.paginationRowsPerPage;methodsVismaUiGrid3.getPaginationRows(data,startrow,data.paginationSortCol,data.paginationSortOrder);}
else
{data.footer.find(".VismaUiGrid3PageInput").val(val);}});},getPaginationRows:function(data,startrow,sortcolumn,sortorder)
{function success(response,textStatus,XMLHttpRequest)
{data.rows.remove();data.rowArray=[];var obj=$(response).filter(".VismaUiGrid3");data.rows=obj.children().children().slice(1);var table=data.usehidden?data.tablehidden:data.table;table.append(data.rows);data.rowH={};data.rowDrawn={};data.rowMap=[];data.displayMap=[];for(var irow=0;irow<data.rows.length;irow++)
{data.rowMap[irow]=irow;data.displayMap[irow]=irow;data.rowArray[irow]=data.rows.eq(irow);}
data.visiblerowstart=0;data.visiblerowend=0;data.scrollrowstart=0;data.displayrowfilteringchanged=true;methodsVismaUiGrid3.resizeevent(data);data.paginationTotalRows=parseInt(obj.attr("data-rowcount"));var rowtext=data.displayMap.length>0?(startrow+1)+" - "+(startrow+data.displayMap.length):"0";data.footer.find(".VismaUiGrid3Summary").html(rowtext+" / "+data.paginationTotalRows);var pageCount=data.paginationRowsPerPage>0?Math.ceil(data.paginationTotalRows/data.paginationRowsPerPage):1;data.footer.find(".VismaUiGrid3FooterPageTotal").html(pageCount);data.paginationStartRow=startrow;data.paginationPage=parseInt(startrow/data.paginationRowsPerPage);data.footer.find(".VismaUiGrid3PageInput").val(data.paginationPage+1);if(sortcolumn!=undefined)
{data.paginationSortCol=sortcolumn;}
if(sortorder!=undefined)
{data.paginationSortOrder=sortorder;}
data.footer.find(".VismaUiGrid3ProgressBar").hide();data.footer.find("table").show();}
function error(response,textStatus,XMLHttpRequest)
{data.footer.html("An error occured..."+response.responseText);}
var ajaxdata={rowStart:startrow,rowCount:data.paginationRowsPerPage};if(sortcolumn!=undefined)
{ajaxdata.sortcolumn=sortcolumn;}
if(sortorder!=undefined)
{ajaxdata.sortorder=sortorder;}
var a={url:data.paginationUrl,data:ajaxdata,type:"POST",success:success,error:error};$.ajax(a);data.footer.find("table").hide();data.footer.find(".VismaUiGrid3ProgressBar").show();},addResizableFunctionality:function(data)
{var mouseXpos;var colStartSize;var icol;var timeout;var lasttime=new Date().getTime();function redraw()
{clearTimeout(timeout);var time=new Date().getTime();if(time-lasttime>20)
{methodsVismaUiGrid3.resizeevent(data);lasttime=time;}
else
{timeout=setTimeout(function()
{methodsVismaUiGrid3.resizeevent(data);lasttime=time;},5);}}
function mouseup(event)
{data.grid.removeClass("VismaUiGrid3Resizing");$(document).unbind('mousemove.vismauigridresize',mousemove).unbind('mouseup.vismauigridresize',mouseup);};function mousemove(event)
{data.grid.addClass("VismaUiGrid3Resizing");var diff=event.pageX-mouseXpos;var newsize=Math.max(20,colStartSize+diff);data.colW[icol]=newsize;data.resizedColumns=1;redraw();return false;};for(var icol=0;icol<data.headers.length;icol++)
{data.resizeHolders[icol].mousedown(function(event)
{var target=jQuery(event.target);icol=target.attr("data-index");mouseXpos=event.pageX;colStartSize=data.colW[icol];$(document).bind('mousemove.vismauigridresize',mousemove).bind('mouseup.vismauigridresize',mouseup);return false;});}},addSortableFunctionality:function(data)
{data.sortables=data.headers.filter(".VismaUiGrid3SortableNumber, .VismaUiGrid3SortableString");for(var icol=0;icol<data.sortables.length;icol++)
{var me=data.sortables.eq(icol);var span=jQuery("<span class=\"VismaUiGridSortSpan VismaUiGridSortBoth\"/>");if(me.hasClass("VismaUiGridSortStartAsc"))
{span.addClass("VismaUiGridSortAsc");}
else if(me.hasClass("VismaUiGridSortStartDesc"))
{span.addClass("VismaUiGridSortDesc");}
me.append(span);me.click(function()
{var mecol=jQuery(this);var mecolindex=mecol.index();var descending=false;var span=mecol.find(".VismaUiGridSortSpan");if(span.hasClass("VismaUiGridSortDesc"))
{descending=false;}
else if(span.hasClass("VismaUiGridSortAsc"))
{descending=true;}
if(!data.pagination)
{var othersort=".VismaUiGridSortBeforeColumn"+mecolindex;data.headers.filter(othersort).each(function()
{jQuery(this).find(".VismaUiGridSortSpan").removeClass("VismaUiGridSortAsc");if(descending)
{jQuery(this).find(".VismaUiGridSortSpan").addClass("VismaUiGridSortAsc");}
jQuery(this).click();});}
data.sortables.find(".VismaUiGridSortSpan").removeClass("VismaUiGridSortAsc").removeClass("VismaUiGridSortDesc").addClass("VismaUiGridSortBoth");if(descending)
{span.addClass("VismaUiGridSortDesc");}
else
{span.addClass("VismaUiGridSortAsc");}
var type='string';if(mecol.hasClass("VismaUiGrid3SortableNumber"))
{type='number';}
var uppercase=!mecol.hasClass("VismaUiGridSortCaseInsensitive");if(data.pagination)
{methodsVismaUiGrid3.getPaginationRows(data,data.paginationStartRow,mecolindex,descending?"desc":"asc");}
else
{sorttableinbrowser(data,mecolindex,descending,type,uppercase);}});function leadingZeros(num,totalChars,padWith)
{num=num+"";padWith=(padWith)?padWith:"0";if(num.length<totalChars)
{while(num.length<totalChars)
{num=padWith+num;}}
if(num.length>totalChars)
{num=num.substring((num.length-totalChars),totalChars);}
return num;}
function trailingZeros(num,totalChars,padWith)
{num=num+"";padWith=(padWith)?padWith:"0";if(num.length<totalChars)
{while(num.length<totalChars)
{num=num+padWith;}}
if(num.length>totalChars)
{num=num.substring((num.length-totalChars),totalChars);}
return num;}
function reversenumber(number)
{var out="";var len=number.length;for(var i=0;i<len;i++)
{switch(number.substr(i,1))
{case"0":out+="9";break;case"1":out+="8";break;case"2":out+="7";break;case"3":out+="6";break;case"4":out+="5";break;case"5":out+="4";break;case"6":out+="3";break;case"7":out+="2";break;case"8":out+="1";break;case"9":out+="0";break;}}
return out;}
function sorttableinbrowser(data,column,descending,type,uppercase)
{var time=new Date().getTime();var b=[];var c=[];var rows=[];var id;var rawrowid;var sortvalue;var count=0;var maxlen=0;var count=data.rowMap.length;for(var irow=0;irow<count;irow++)
{id=leadingZeros(irow,12);rawrowid=data.rowMap[irow];var row=data.rowArray[rawrowid];var cell=row.children().eq(column);sortvalue=cell.attr("data-sortvalue");if(sortvalue==undefined)
{sortvalue=cell.html();}
if(uppercase)
{sortvalue=sortvalue.toUpperCase();}
if(type=='number')
{sortvalue=sortvalue.replace("\n","");sortvalue=sortvalue.replace("\r","");sortvalue=sortvalue.replace(" ","");var neg=0;if(sortvalue.indexOf("-")>=0)
{neg=1;}
sortvalue=sortvalue.replace("-","");sortvalue=sortvalue.replace(",",".");numbers=sortvalue.split(".");sortvalue=leadingZeros(numbers[0],20);if(numbers.length>1)
{sortvalue=sortvalue+numbers[1];}
sortvalue=trailingZeros(sortvalue,40);if(neg>0)
{sortvalue=" "+reversenumber(sortvalue);}}
if(descending)
{id=reversenumber(id)+id;}
b[irow]=sortvalue;c[irow]=id;rows[irow]=leadingZeros(rawrowid,12);maxlen=Math.max(maxlen,sortvalue.length);}
if(type=='string')
{for(var i=0;i<count;i++)
{b[i]=trailingZeros(b[i],maxlen,' ')+c[i]+""+rows[i];}}
else
{for(var i=0;i<count;i++)
{b[i]=b[i]+c[i]+""+rows[i];}}
b.sort();if(descending)
{b.reverse();}
data.rowMap=[];for(var i=0;i<count;i++)
{id=b[i].substr(b[i].length-12);id=parseInt(id,10);data.rowMap[i]=id;}
data.displayrowfilteringchanged=true;methodsVismaUiGrid3.redraw(data);}}},updateRowDisplayMap:function(data)
{var map=data.rowMap;var rows=data.rowArray;var count=map.length;data.displayMap=[];for(var i=0;i<count;i++)
{var mapid=map[i];var attr=rows[mapid].attr("data-hidden");if(attr!=1)
{data.displayMap.push(mapid);}}
data.displayrowfilteringchanged=false;},updateColumnDisplayMap:function(data)
{data.colMap=[];var cols=data.headers;var count=cols.length
for(var icol=0;icol<count;icol++)
{if(data.colHidden[icol])
{continue;}
data.colMap.push(icol);}
data.displaycolumnfilteringchanged=false;},getRawRows:function()
{var data=this.eq(0).data("vismaUiGrid3");if(data&&data.rows)
{return data.rows;}
return null;},getAllRows:function()
{var data=this.eq(0).data("vismaUiGrid3");if(data&&data.rowArray)
{return data.rowArray;}
return null;},hideRow:function(row)
{var data=this.eq(0).data("vismaUiGrid3");if(data==undefined)
{return null;}
if(row.attr("data-hidden")==1)
{return;}
data.displayrowfilteringchanged=true;row.attr("data-hidden",1);clearTimeout(data.resizeevent);data.resizeevent=setTimeout(function()
{methodsVismaUiGrid3.resizeevent(data);},1);},showRow:function(row)
{var data=this.eq(0).data("vismaUiGrid3");if(data==undefined)
{return null;}
if(row.attr("data-hidden")!=1)
{return;}
data.displayrowfilteringchanged=true;row.attr("data-hidden",0);clearTimeout(data.resizeevent);data.resizeevent=setTimeout(function()
{methodsVismaUiGrid3.resizeevent(data);},1);},hideColumn:function(columnIndex)
{var data=this.eq(0).data("vismaUiGrid3");if(data==undefined)
{return null;}
if(data.colHidden[columnIndex]==1)
{return;}
data.colHidden[columnIndex]=1;data.displaycolumnfilteringchanged=true;clearTimeout(data.resizeevent);data.resizeevent=setTimeout(function()
{methodsVismaUiGrid3.resizeevent(data);},1);},showColumn:function(columnIndex)
{var data=this.eq(0).data("vismaUiGrid3");if(data==undefined)
{return null;}
if(data.colHidden[columnIndex]!=1)
{return;}
delete data.colHidden[columnIndex];data.displaycolumnfilteringchanged=true;clearTimeout(data.resizeevent);data.resizeevent=setTimeout(function()
{methodsVismaUiGrid3.resizeevent(data);},1);},setRowClickEvent:function(handler)
{var data=this.eq(0).data("vismaUiGrid3");if(data==undefined)
{data={};this.eq(0).data("vismaUiGrid3",data);}
data.rowSelected=handler;},getSelectedRow:function()
{var data=this.eq(0).data("vismaUiGrid3");if(data==undefined)
{return null;}
return data.selectedRow;},setSelectedRow:function(row)
{var data=this.eq(0).data("vismaUiGrid3");if(data==undefined)
{return null;}
methodsVismaUiGrid3.setSelectedRowData(data,row);},setSelectedRowData:function(data,row)
{if(data.selectedRow!=null)
{data.selectedRow.removeClass("VismaUiGrid3Selected");data.selectedRow=null;}
if(row)
{row=jQuery(row);row.addClass("VismaUiGrid3Selected");data.selectedRow=row;if(data.rowSelected)
{data.rowSelected(row);}}},clearSelection:function()
{var data=this.eq(0).data("vismaUiGrid3");if(data&&data.selectedRow!=null)
{data.selectedRow.removeClass("VismaUiGrid3Selected");data.selectedRow=null;}},setHeight:function(height)
{var data=this.eq(0).data("vismaUiGrid3");if(data==undefined)
{return null;}
data.startheight=height;clearTimeout(data.resizeevent);data.resizeevent=setTimeout(function()
{methodsVismaUiGrid3.resizeevent(data);},1);},setMinHeight:function(height)
{var data=this.eq(0).data("vismaUiGrid3");if(data==undefined)
{return null;}
data.minheight=height;if(height)
{data.grid.css("min-height",height+"px");}
else
{data.grid.css("min-height","");}
clearTimeout(data.resizeevent);data.resizeevent=setTimeout(function()
{methodsVismaUiGrid3.resizeevent(data);},1);},setMaxHeight:function(height)
{var data=this.eq(0).data("vismaUiGrid3");if(data==undefined)
{return null;}
data.maxheight=height;if(height)
{data.grid.css("max-height",height+"px");}
else
{data.grid.css("max-height","");}
clearTimeout(data.resizeevent);data.resizeevent=setTimeout(function()
{methodsVismaUiGrid3.resizeevent(data);},1);},createRow:function(position)
{var data=this.eq(0).data("vismaUiGrid3");if(data==undefined)
{return null;}
if(isNaN(position))
{position=data.rowArray.length;}
position=Math.max(0,position);position=Math.min(data.rows.length,position)
var row=jQuery("<div/>");for(var i=0;i<data.headers.length;i++)
{row.append(jQuery("<div></div>"));}
if(data.usehidden)
{data.tablehidden.append(row);if(position!=data.rows.length)
{for(irow2 in data.rowDrawn)
{var row2=data.rowArray[irow2];data.tablehidden.append(row2);}
data.rowDrawn={};data.rowH={}}}
else
{data.table.append(row);}
data.rows=data.rows.add(row);data.rowArray[data.rows.length-1]=row;data.rowMap.splice(position,0,data.rows.length-1);data.displayrowfilteringchanged=true;clearTimeout(data.resizeevent);data.resizeevent=setTimeout(function()
{methodsVismaUiGrid3.resizeevent(data);},1);return row;},deleteRow:function(row)
{var data=this.eq(0).data("vismaUiGrid3");if(data==undefined)
{return null;}
if(data.usehidden)
{for(irow2 in data.rowDrawn)
{var row2=data.rowArray[irow2];data.tablehidden.append(row2);}}
data.rowDrawn={};data.rowH={}
var obj=row.get(0);for(var i=0;i<data.rowArray.length;i++)
{if(obj==data.rowArray[i].get(0))
{row=data.rowArray[i];data.rowArray[i].remove();data.rows=data.rows.not(row);data.rowArray.splice(i,1);data.rowMap.splice(i,1);for(var j=i;j<data.rowMap.length;j++)
{data.rowMap[j]=data.rowMap[j]-1;}
break;}}
data.displayrowfilteringchanged=true;clearTimeout(data.resizeevent);data.resizeevent=setTimeout(function()
{methodsVismaUiGrid3.resizeevent(data);},1);return row;},refresh:function()
{var data=this.eq(0).data("vismaUiGrid3");if(data==undefined)
{return null;}
data.displayrowfilteringchanged=true;data.displaycolumnfilteringchanged=true;data.rowH={};clearTimeout(data.resizeevent);data.resizeevent=setTimeout(function()
{methodsVismaUiGrid3.resizeevent(data);},1);},resetFilter:function(){},update:function(content){}};jQuery.fn.vismaUiGrid3=function(method)
{if(methodsVismaUiGrid3[method])
{return methodsVismaUiGrid3[method].apply(this,Array.prototype.slice.call(arguments,1));}
else if(typeof method==='object'||!method)
{return methodsVismaUiGrid3.init.apply(this,arguments);}
else
{jQuery.error('Method '+method+' does not exist on jQuery.vismaUiGrid3');}};
var methods={init:function(options)
{var myName='vismaUiGrid';var _gthis=this;setTimeout(_initGrid1,10);return this;function _initGrid1()
{_gthis.each(_initGrid2);}
function _initGrid2()
{var _outerTable=jQuery(this);var data=_outerTable.data(myName);if(!data)
{data=Array();}
if(data.initdone)
{return;}
data.initdone=1;_outerTable.data(myName,data);data.grid=null;data.gridLoading=null;data.gridHeader=null;data.gridHeaderTable=null;data.gridHeaderTableColumns=null;data.gridContents=null;data.gridContentsTable=null;data.widthColumnsTotalOuterWidth=0;data.widthColumns=Array();data.widthCells=0;data.rows=_outerTable.children("tbody").children();data.size=data.rows.length;data.sortables=null;data.colGroupHeader=null;data.colGroupContents=null;data.resizes=[];data.filterTableBody=jQuery("<table style=\"position:absolute; visibility:hidden;\"/>").html("<tbody/>").find("tbody");_initGrid3();var timeout=1;if(data.size>=100)
{timeout=10;}
if(data.size>=500)
{timeout=50;}
if(data.size>=1000)
{timeout=100;}
if(data.size>100)
{setTimeout(_initGrid4,timeout);}
else
{_initGrid4();}
function _initGrid3()
{data.grid=jQuery('<div class="VismaUiGrid"/>');data.grid.data(myName,data);data.grid.html('<div class="VismaUiGridHeader"><div class="VismaUiGridHeaderHBox"><table class="VismaUiGridHeaderTable" cellpadding="0" cellspacing="0"><tbody/></table></div></div></div><div class="VismaUiGridContents"><table class="VismaUiGridContentsTable" cellpadding="0" cellspacing="0"><tbody/></table></div><div class="VismaUiGridLoading"/>');data.grid.addClass(_outerTable.attr("class"));data.grid.attr("style",_outerTable.attr("style"));data.grid.attr("id",_outerTable.attr("id"));data.gridLoading=data.grid.children(".VismaUiGridLoading");data.gridHeader=data.grid.children(".VismaUiGridHeader");data.gridContents=data.grid.children(".VismaUiGridContents");data.gridHeaderTable=data.gridHeader.children(".VismaUiGridHeaderHBox").children(".VismaUiGridHeaderTable");data.gridContentsTable=data.gridContents.children(".VismaUiGridContentsTable");data.grid.insertBefore(_outerTable);if(data.gridLoading.height()==0)
{var h1=data.grid.height()>0?data.grid.height():100;data.gridLoading.height(h1);}
var headerrow=_outerTable.find("tr:first");data.gridHeaderTableColumns=headerrow.find("th, td");_getCellWidths();data.gridHeaderTable.children("tbody").append(headerrow);_addColGroup();var setwidth=Math.max(data.widthColumnsTotalOuterWidth,data.grid.width());data.gridHeaderTable.width(setwidth);data.gridContentsTable.width(setwidth);data.grid.removeClass("VismaUiGridInit");data.gridContentsTable.addClass("VismaUiGridInit2");_outerTable.css("display","none");};function _getCellWidths()
{data.widthColumnsTotalOuterWidth=0;for(var i=0;i<data.gridHeaderTableColumns.length;i++)
{var col=data.gridHeaderTableColumns.eq(i);data.widthColumns[i]=_gridGetWidth(col);data.widthColumnsTotalOuterWidth+=data.widthColumns[i];data.widthCells+=data.widthColumns[i];data.widthCells+=parseInt(col.css("padding-left"))+parseInt(col.css("padding-right"));data.widthCells+=1;};}
function _addColGroup()
{data.colGroupHeader=jQuery("<colgroup/>");var cellwidth=(data.grid.width()-17)/data.gridHeaderTableColumns.length;cellwidth=parseInt(cellwidth);for(var i=0;i<data.gridHeaderTableColumns.length;i++)
{data.colGroupHeader.append("<col style=\"width:"+data.widthColumns[i]+"px;\">");};data.colGroupContents=data.colGroupHeader.clone();data.colGroupHeader.insertBefore(data.gridHeaderTable.children("tbody"));data.gridHeaderTable.find("th").css('width',null);data.gridContentsTable.append(data.colGroupContents);}
function _updateColGroupWithRealValues()
{var w=[];data.widthColumnsTotalOuterWidth=0;for(var i=0;i<data.gridHeaderTableColumns.length;i++)
{w[i]=data.gridHeaderTableColumns.eq(i).outerWidth();if(jQuery.browser.msie&&jQuery.browser.version=="7.0")
{w[i]=data.gridHeaderTableColumns.eq(i).width();}
data.widthColumns[i]=w[i];data.widthColumnsTotalOuterWidth+=w[i];}
var firstrow=data.gridContentsTable.find("tr:first").children();for(var i=0;i<data.gridHeaderTableColumns.length;i++)
{data.colGroupHeader.children().eq(i).width(w[i]);data.colGroupContents.children().eq(i).width(w[i]);}}
function _initGrid4()
{data.gridContentsTable.children("tbody").remove();data.gridContentsTable.append(_outerTable.children("tbody"));_outerTable.remove();_initGrid5();}
function _initGrid5()
{if(data.gridContentsTable.height()==0&&data.size>0)
{setTimeout(_initGrid5,500);return;}
data.gridContents.scroll(function()
{data.gridHeader.scrollLeft(data.gridContents.scrollLeft());});if(data.selectedRow==undefined)
{data.selectedRow=null;}
if(data.grid.hasClass("VismaUiGridSelectable"))
{data.gridContentsTable.click(function(e)
{var obj=e.target;if(obj.nodeName=="TD")
{obj=e.target.parentNode;}
if(obj.nodeName=="TR")
{if(data.selectedRow==obj)
{return;}
if(data.selectedRow!=null)
{jQuery(data.selectedRow).removeClass("VismaUiGridSelected");}
jQuery(obj).addClass("VismaUiGridSelected");data.selectedRow=obj;if(data.rowSelected)
{data.rowSelected(obj);}}});}
data.grid.vismaUiGrid("updateAlternateRows");data.gridContentsTable.removeClass("VismaUiGridInit2");data.gridLoading.remove();_updateGridHeightAndWidth();_addSortableFunctionality();_addResizeFunctionality();if(jQuery.browser.msie&&jQuery.browser.version=="7.0")
{data.gridHeaderTableColumns.wrapInner('<nobr/>');}}
function _updateGridHeightAndWidth()
{var scrollWidth=19;var gridWidth=data.grid.width();var gridHeight=data.grid.height();var gridHeaderHeight=data.gridHeader.height();var gridpixelvalue=_gridGetPixelValue(data.grid.css("border-bottom-width"));var desiredWidth=data.widthColumnsTotalOuterWidth;var desiredHeight=data.gridContentsTable.height();var hScroll=desiredWidth>gridWidth;var vScroll=desiredHeight>gridHeight;if(vScroll)
{hScroll=desiredWidth>gridWidth+scrollWidth;}
if(hScroll)
{vScroll=desiredHeight>gridHeight+scrollWidth;}
if(vScroll)
{hScroll=desiredWidth>gridWidth+scrollWidth;}
var availableWidth=gridWidth-(vScroll?scrollWidth:0);var availableHeight=gridHeight-(hScroll?scrollWidth:0);if(desiredWidth<availableWidth)
{desiredWidth=availableWidth;}
data.grid.removeClass("VismaUiGridWidthAligned");if(!vScroll)
{data.grid.addClass("VismaUiGridWidthAligned");}
data.gridHeaderTable.width(desiredWidth);data.gridContentsTable.width(desiredWidth);var gridContentsHeight=gridHeight-gridHeaderHeight-gridpixelvalue;data.grid.removeClass("VismaUiGridHeightAligned");if(data.grid.hasClass("VismaUiGridAutoHeight")&&desiredHeight<gridHeight&&data.gridContentsTable.find("tr:first").length>0)
{data.grid.height(desiredHeight+gridHeaderHeight+gridpixelvalue+(hScroll?scrollWidth:0));gridContentsHeight=desiredHeight+(hScroll?scrollWidth:0);if(!hScroll)
{data.grid.addClass("VismaUiGridHeightAligned");}}
data.gridContents.height(gridContentsHeight);_updateColGroupWithRealValues();_updateColGroupWithRealValues();}
function _addResizeFunctionality()
{var poscount=0;var indexbase=-1;var resTemplate=jQuery('<div class="VismaUiGridColResize"/>');resTemplate.height(data.gridHeaderTableColumns.eq(0).outerHeight());var width=6;resTemplate.width(width);var offset=width/2;for(var i=0;i<data.gridHeaderTableColumns.length;i++)
{var col=data.gridHeaderTableColumns.eq(i);var res=resTemplate.clone();data.resizes[i]=res;poscount+=col.outerWidth();res.css("left",poscount-offset);data.gridHeader.append(res);if(indexbase==-1)
{indexbase=res.index();}
res.draggable();res.draggable('option',"axis","x");res.bind("dragstart",function(event,ui)
{jQuery(document.body).css("cursor","e-resize").addClass("VismaUiGridResizing");data.grid.removeClass("VismaUiGridWidthAligned");});res.bind("dragstop",function(event,ui)
{jQuery(document.body).removeClass("VismaUiGridResizing");});res.bind("drag",function(event,ui)
{var i=ui.helper.index()-indexbase;var leftmargin=0;for(var j=0;j<i;j++)
{leftmargin+=data.widthColumns[j];}
var newinternalpos=Math.max(20,ui.position.left+offset-leftmargin);ui.position.left=newinternalpos-offset+leftmargin;var oldwidth=data.widthColumns[i];data.widthColumns[i]=newinternalpos;var diff=newinternalpos-oldwidth;data.widthColumnsTotalOuterWidth+=diff;_setGridPositions();});}
data.gridHeader.dblclick(function(e)
{if(!jQuery(e.target).hasClass("VismaUiGridColResize"))
{return;}
if(data.gridContentsTable.children("tbody").children().length>500)
{return;}
data.grid.removeClass("VismaUiGridWidthAligned");var i=jQuery(e.target).index()-indexbase;var scroll=data.gridContents.scrollLeft();var div=jQuery("<div style=\"position:absolute; top:0px; left:0px; height:100px; width:100px; overflow:auto; visibility:hidden;\"/>");div.html("<table style=\"white-space:nowrap;\"><tbody></tbody></table");jQuery(document.body).append(div);var table=div.find("table");var body=table.find("tbody");body.append(data.gridHeaderTable.children("tbody").children().clone());body.append(data.gridContentsTable.children("tbody").children().clone());var w=body.children().eq(0).children().eq(i).width()+12;div.remove();var diff=w-data.widthColumns[i];data.widthColumns[i]=w;data.widthColumnsTotalOuterWidth+=diff;_setGridPositions();});_setGridPositions();}
function _setGridPositions()
{_setGridPositionsImpl(0);var testobj=data.gridHeaderTable.find("td:first, th:first");var test=testobj.outerWidth();var test2=testobj.width();if(test!=data.widthColumns[0]&&test>0)
{_setGridPositionsImpl(test-data.widthColumns[0]);}
else if(test2!=data.widthColumns[0]&&(jQuery.browser.opera||jQuery.browser.webkit))
{data.gridContentsTable.css("table-layout","auto");data.gridHeaderTable.css("table-layout","auto");_setGridPositionsImpl(0);data.gridContentsTable.css("table-layout","fixed");data.gridHeaderTable.css("table-layout","fixed");}}
function _setGridPositionsImpl(diff)
{var count=0;data.gridHeaderTable.width(data.widthColumnsTotalOuterWidth);data.gridContentsTable.width(data.widthColumnsTotalOuterWidth);for(i=0;i<data.gridHeaderTableColumns.length;i++)
{count+=data.widthColumns[i];data.resizes[i].css("left",count-3);data.colGroupHeader.children().eq(i).width(data.widthColumns[i]-diff);data.colGroupContents.children().eq(i).width(data.widthColumns[i]-diff);}
data.gridHeader.scrollLeft(data.gridContents.scrollLeft());}
function _gridDisplayWidth(o)
{var out="css width: "+o.css("width")+"\nwidth(): "+o.width()+"\ninnerWidth: "+o.innerWidth()+"\nouterWidth: "+o.outerWidth();alert(out);}
function _gridDisplayHeight(o)
{var out="css height: "+o.css("height")+"\nheight(): "+o.height()+"\ninnerHeight: "+o.innerHeight()+"\nouterHeight: "+o.outerHeight();alert(out);}
function _gridGetWidth(o)
{var a=parseInt(o.css("width"));if(isNaN(a))
{a=o.width();}
return a;}
function _gridGetHeight(o)
{var a=parseInt(o.css("height"));if(isNaN(a))
{a=o.height();}
return a;}
function _gridGetPixelValue(value)
{var a=parseInt(value);if(isNaN(a))
{a=o.height();}
return a;}
function _addSortableFunctionality()
{data.sortables=data.gridHeaderTableColumns.filter(".VismaUiGridSortableNumber, .VismaUiGridSortableString");data.sortables.each(_createSortable);}
function _createSortable()
{var me=jQuery(this);var span=jQuery("<span class=\"VismaUiGridSortSpan VismaUiGridSortBoth\"/>");me.append(span);var type='string';if(me.hasClass("VismaUiGridSortableNumber"))
{type='number';}
me.click(function()
{var descending=0;if(span.hasClass("VismaUiGridSortAsc"))
{descending=1;}
var othersort=".VismaUiGridSortBeforeColumn"+me.index();data.gridHeader.find(othersort).each(function()
{jQuery(this).find(".VismaUiGridSortSpan").removeClass("VismaUiGridSortAsc");if(descending)
{jQuery(this).find(".VismaUiGridSortSpan").addClass("VismaUiGridSortAsc");}
jQuery(this).click();});data.sortables.find(".VismaUiGridSortSpan").removeClass("VismaUiGridSortAsc").removeClass("VismaUiGridSortDesc").addClass("VismaUiGridSortBoth");if(descending)
{span.addClass("VismaUiGridSortDesc");}
else
{span.addClass("VismaUiGridSortAsc");}
sorttableinbrowser(data.gridContentsTable,me.index(),descending,type);data.grid.vismaUiGrid("updateAlternateRows");});function leadingZeros(num,totalChars,padWith)
{num=num+"";padWith=(padWith)?padWith:"0";if(num.length<totalChars)
{while(num.length<totalChars)
{num=padWith+num;}}
if(num.length>totalChars)
{num=num.substring((num.length-totalChars),totalChars);}
return num;}
function trailingZeros(num,totalChars,padWith)
{num=num+"";padWith=(padWith)?padWith:"0";if(num.length<totalChars)
{while(num.length<totalChars)
{num=num+padWith;}}
if(num.length>totalChars)
{num=num.substring((num.length-totalChars),totalChars);}
return num;}
function reversenumber(number)
{var out="";var len=number.length;for(var i=0;i<len;i++)
{switch(number.substr(i,1))
{case"0":out+="9";break;case"1":out+="8";break;case"2":out+="7";break;case"3":out+="6";break;case"4":out+="5";break;case"5":out+="4";break;case"6":out+="3";break;case"7":out+="2";break;case"8":out+="1";break;case"9":out+="0";break;}}
return out;}
function sorttableinbrowser(table,column,descending,type)
{var time=new Date().getTime();var b=[];var c=[];var rows=[];var tbody=jQuery(table).children("tbody");var row=tbody.get()[0].firstChild;var id;var sortvalue;var count=0;var maxlen=0;while(row)
{if(row.nodeType!=1)
{row=row.nextSibling;continue;}
id=leadingZeros(count,12);sortvalue=jQuery(row.cells[column]).attr("data-sortvalue");if(sortvalue==undefined)
{sortvalue=row.cells[column].innerHTML;}
if(type=='number')
{sortvalue=sortvalue.replace("\n","");sortvalue=sortvalue.replace("\r","");sortvalue=sortvalue.replace(" ","");var neg=0;if(sortvalue.indexOf("-")>=0)
{neg=1;}
sortvalue=sortvalue.replace("-","");sortvalue=sortvalue.replace(",",".");numbers=sortvalue.split(".");sortvalue=leadingZeros(numbers[0],20);if(numbers.length>1)
{sortvalue=sortvalue+numbers[1];}
sortvalue=trailingZeros(sortvalue,40);if(neg>0)
{sortvalue=" "+reversenumber(sortvalue);}}
if(descending)
{id=reversenumber(id)+id;}
b[count]=sortvalue;c[count]=id;rows[count]=row;maxlen=Math.max(maxlen,sortvalue.length);count++;row=row.nextSibling;}
if(type=='string')
{for(var i=0;i<count;i++)
{b[i]=trailingZeros(b[i],maxlen,' ')+c[i];}}
else
{for(var i=0;i<count;i++)
{b[i]=b[i]+c[i];}}
b.sort();if(descending)
{b.reverse();}
var c=[];for(var i=0;i<count;i++)
{id=b[i].substr(b[i].length-12);id=parseInt(id,10);c[i]=tbody.get()[0].rows[id];}
var tbody=tbody.get()[0];if(count>100)
{var placeHolder=jQuery('<div style="display:none; visibility:hidden;"/>');var placeHolder2=jQuery('<div style="display:none; visibility:hidden;"/>');jQuery(document.body).append(placeHolder);placeHolder2.insertAfter(table);placeHolder.append(table);var frag=document.createDocumentFragment();var time=new Date().getTime();for(var i=0;i<count;i++)
{tbody.appendChild(c[i]);}
placeHolder2.replaceWith(table);placeHolder.remove();}
else
{for(var i=0;i<count;i++)
{tbody.appendChild(c[i]);}}}}}},updateAlternateRows:function()
{this.each(function()
{var data=jQuery(this).data("vismaUiGrid");var i=0;data.gridContentsTable.children("tbody").children().each(function()
{var obj=jQuery(this);if(obj.css("display")=="none")
{return;}
if(i%2==0)
{obj.addClass("VismaUiGridAlternate");}
else
{obj.removeClass("VismaUiGridAlternate");}
i++;});});},getContentsBody:function()
{var data=this.eq(0).data("vismaUiGrid");if(data&&data.gridContentsTable)
{return data.gridContentsTable.children("tbody");}
return this.eq(0).children("tbody");},setRowClickEvent:function(handler)
{var data=this.eq(0).data("vismaUiGrid");if(data==undefined)
{data=Array();this.eq(0).data("vismaUiGrid",data);}
data.rowSelected=handler;},getSelectedRow:function()
{var data=this.eq(0).data("vismaUiGrid");if(data==undefined)
{return null;}
return data.selectedRow;},setSelectedRow:function(row)
{var data=this.eq(0).data("vismaUiGrid");if(data==undefined)
{return null;}
if(data.selectedRow!=null)
{jQuery(data.selectedRow).removeClass("VismaUiGridSelected");data.selectedRow=null;}
if(row)
{jQuery(row).addClass("VismaUiGridSelected");data.selectedRow=row;if(data.rowSelected)
{data.rowSelected(row);}}},clearSelection:function()
{var data=this.eq(0).data("vismaUiGrid");if(data&&data.selectedRow!=null)
{jQuery(data.selectedRow).removeClass("VismaUiGridSelected");data.selectedRow=null;}},resetFilter:function(){},update:function(content){}};jQuery.fn.vismaUiGrid=function(method)
{if(methods[method])
{return methods[method].apply(this,Array.prototype.slice.call(arguments,1));}
else if(typeof method==='object'||!method)
{return methods.init.apply(this,arguments);}
else
{jQuery.error('Method '+method+' does not exist on jQuery.vismaUiGrid');}};
function ncgridDisplayWidth(o){var out="css width: "+o.css("width")+"\nwidth(): "+o.width()+"\ninnerWidth: "+o.innerWidth()+"\nouterWidth: "+o.outerWidth();alert(out);}
jQuery.fn.ncgrid=function(o){var cfg={height:200,savedStateLoad:false,initialLoad:false,colWidths:[225,225,225,225],minColWidth:60,headerHeight:30,headerClass:'grid-header-bg',resizableCols:true,gridClass:'datagrid',rowClasses:[],colClasses:[],rowHoverClass:'grid-row-hover',rowSelection:true,rowSelectedClass:'grid-row-sel',onRowSelect:function(tr,selected){},sorting:true,colSortParams:[],sortAscParam:'asc',sortDescParam:'desc',sortedCol:'col1',sortedColDir:'desc',sortDefaultDir:'desc',sortAscClass:'grid-sort-asc',sortDescClass:'grid-sort-desc',sortNoneClass:'grid-sort-none',unsortableCols:[],paging:true,pageNumber:1,recordsPerPage:0,totalRecords:0,pageToolbarHeight:25,pageToolbarClass:'grid-page-toolbar',pageStartClass:'grid-page-start',pagePrevClass:'grid-page-prev',pageInfoClass:'grid-page-info',pageInputClass:'grid-page-input',pageNextClass:'grid-page-next',pageEndClass:'grid-page-end',pageLoadingClass:'grid-page-loading',pageLoadingDoneClass:'grid-page-loading-done',pageViewingRecordsInfoClass:'grid-page-viewing-records-info',pageChanged:function(p){},resizeHandleHtml:'',resizeHandleClass:'grid-col-resize',scrollbarW:22,columnIDAttr:'_colid',ingridIDPrefix:'_ingrid',minHeight:100,resizableGrid:true,dragDropCols:true,sortType:'server|client|none',isSortableCol:function(colIndex){if(cfg.unsortableCols.length==0||jQuery.inArray(colIndex,cfg.unsortableCols)==-1){return true;}
return false;}};jQuery.extend(cfg,o);var measureTable=$('<table class="ncgrid" style="white-space:nowrap;"/>');var measureRow=$(this).find("tr:first").clone();var measureCols=measureRow.find("td");var cssColWidth=new Array();for(var i=0;i<measureCols.length;i++){var obj=measureCols.eq(i);cssColWidth[i]=0;var a=parseInt(obj.css("width"));if(!isNaN(a)){cssColWidth[i]=a;}}
measureCols.css("width","");measureTable.append(measureRow);$(document.body).append(measureTable);var minColWidth=new Array();for(var i=0;i<measureCols.length;i++){var obj=measureCols.eq(i);minColWidth[i]=obj.width()+4;}
var ncgrid_header_height=measureRow.height();measureTable.remove();var ncgrid_width=$(this).css("width");var ncgrid_height=$(this).css("height");var ncgrid=$('<div class="ncgrid"/>');$(this).replaceWith(ncgrid);ncgrid.html('<div class="ncgrid_header"><div class="ncgrid_header_hbox"><table class="ncgrid_header_table" cellpadding="0" cellspacing="0"><thead/></table></div></div></div><div class="ncgrid_contents"><div class="ncgrid_contents_sbox"><table class="ncgrid_contents_table" cellpadding="0" cellspacing="0" style="table-layout:fixed;"><tbody/></table></div></div>');ncgrid.addClass($(this).attr("class"));ncgrid.attr("style",$(this).attr("style"));ncgrid.attr("id",$(this).attr("id"));ncgrid.css("width",ncgrid_width);ncgrid.css("height",ncgrid_height);var row1=$(this).find("tr:first");if(row1.length==0){return;}
row1.remove();ncgrid.find(".ncgrid_header thead").append(row1);ncgrid.find(".ncgrid_contents tbody").append($(this).find("tr"));ncgrid.find(".ncgrid_header th, .ncgrid_header td").each(function(){var div=$('<div class="ncgrid_header_celldiv"/>');div.html($(this).html());$(this).html(div);});var h1=parseInt(ncgrid_header_height);if(isNaN(h1)){h1=ncgrid.find(".ncgrid_header").height();}
var height=ncgrid.height()-h1;ncgrid.find(".ncgrid_contents").height(height);var cols=ncgrid.find(".ncgrid_header th, .ncgrid_header td");for(var i=0;i<cols.length;i++){cols.eq(i).width(Math.max(minColWidth[i],cssColWidth[i]));}
var w=ncgrid.find(".ncgrid_header_table").width();ncgrid.find(".ncgrid_header_table, .ncgrid_contents_table, .ncgrid_contents_sbox").css("width",w+"px");var headerCols=ncgrid.find(".ncgrid_header_table tr:first td, .ncgrid_header_table tr:first th");var contentCols=ncgrid.find(".ncgrid_contents_table tr:first td");ncgrid.find(".ncgrid_contents_table td").css("width","");for(var i=0;i<measureCols.length;i++){contentCols.eq(i).css("width",headerCols.eq(i).css("width"));}
var a=ncgrid.find(".ncgrid_header th, .ncgrid_header td").outerHeight();ncgrid.find(".ncgrid_header_resize").height(a);ncgrid.find(".ncgrid_contents tr:odd").addClass("ncgrid_alternate");var tmp4=$('<div/>');ncgrid.replaceWith(tmp4);tmp4.replaceWith(ncgrid);ncgrid.find(".ncgrid_contents").scroll(function(){$(this).parent(".ncgrid").find(".ncgrid_header").scrollLeft($(this).scrollLeft());});ncgrid.find(".ncgrid_contents tr").click(function(){$(this).siblings().removeClass("ncgrid_selected");$(this).addClass("ncgrid_selected");});return;var cols=new Array();var h=jQuery('<table cellpadding="0" cellspacing="0"></table>').html(this.find('thead')).addClass(cfg.gridClass).addClass(cfg.headerClass).height(cfg.headerHeight).extend({cols:cols});h.find('th').each(function(i){jQuery(this).width(cfg.colWidths[i]);var col_label=jQuery('<div />').html(jQuery(this).html()).css({float:'left',display:'block'}).css('-moz-user-select','none').css('-khtml-user-select','none').css('user-select','none').attr('unselectable','on');if(cfg.sorting&&cfg.isSortableCol(i)){var key=cfg.colSortParams[i]?cfg.colSortParams[i]:i;var cls=(key==cfg.sortedCol||i==cfg.sortedCol)?(cfg.sortedColDir==cfg.sortAscParam?cfg.sortAscClass:cfg.sortDescClass):(cfg.sortNoneClass);col_label.addClass(cls).click(function(){var dir=col_label.hasClass(cfg.sortNoneClass)?cfg.sortDefaultDir:(col_label.hasClass(cfg.sortAscClass)?cfg.sortDescParam:cfg.sortAscParam);var params={sort:key,dir:dir};if(p)jQuery.extend(params,{page:p.getPage()});g.load(params,function(){var cls=col_label.hasClass(cfg.sortNoneClass)?(cfg.sortDefaultDir==cfg.sortAscParam?cfg.sortAscClass:cfg.sortDescClass):(col_label.hasClass(cfg.sortAscClass)?cfg.sortDescClass:cfg.sortAscClass);var i2=0;g.getHeaders(function(col){col.find('div:first').each(function(){if(cfg.isSortableCol(i2++))
jQuery(this).addClass(cfg.sortNoneClass).removeClass(cfg.sortAscClass).removeClass(cfg.sortDescClass);});});col_label.removeClass(cfg.sortAscClass).removeClass(cfg.sortDescClass).addClass(cls).removeClass(cfg.sortNoneClass);});});}
jQuery(this).html(col_label);jQuery(this).bind('resizeColumn',{col_num:i},function(e,w){jQuery(this).width(w);while(jQuery(this).parent().height()>cfg.headerHeight){jQuery(this).width(++w);}
g.resize();g.getColumn(e.data.col_num).each(function(){jQuery(this).width(w);});});if(cfg.resizableCols){var handle=jQuery('<div />').html(cfg.resizeHandleHtml==''?'-':cfg.resizeHandleHtml).addClass(cfg.resizeHandleClass);handle.bind('mousedown',function(e){var th=jQuery(this).parent();var left=e.clientX;z.resizeStart(th,left);});jQuery(this).append(handle);}});var row=this.find('tr:first')
jQuery(row).find('td').each(function(i){jQuery(this).width(cfg.colWidths[i])});var b=jQuery('<div />').html(jQuery('<table cellpadding="0" cellspacing="0"></table>').html(this.find('tbody')).width(h.width()).addClass(cfg.gridClass)).css('overflow','auto').height(cfg.height);if(cfg.resizableCols){var z_sel='vertical-resize-divider'+new Date().getTime();var z=jQuery('<div id="'+z_sel+'"></div>').css({backgroundColor:'#ababab',height:(cfg.headerHeight+cfg.height),width:'4px',position:'absolute',zIndex:'10',display:'block'}).extend({resizeStart:function(th,eventX){var pos=th.offset();jQuery(this).show().css({top:pos.top,left:eventX})
jQuery('body').bind('mousemove',{col:th},function(e){var th=e.data.col;var pos=th.offset();var col_w=e.clientX-pos.left;if(col_w>cfg.minColWidth){jQuery('#'+z_sel).css('left',e.clientX);}})
jQuery('body').bind('mouseup',{col:th},function(e){jQuery(this).unbind('mousemove').unbind('mouseup');jQuery('#'+z_sel).hide();var th=e.data.col;var pos=th.offset();var col_w=e.clientX-pos.left;if(col_w>cfg.minColWidth){th.trigger('resizeColumn',[col_w]);}else{th.trigger('resizeColumn',[cfg.minColWidth]);}})}});}
if(cfg.paging){var totr=cfg.recordsPerPage>0?cfg.recordsPerPage:b.find('tr').length;var pv;if(cfg.totalRecords>0){pv=jQuery('<div />').addClass(cfg.pageViewingRecordsInfoClass).extend({updateViewInfo:function(loaded_rows,page){var _start=((loaded_rows*(page-1)+1));var _end=((loaded_rows*page)>cfg.totalRecords?cfg.totalRecords:loaded_rows*page);this.html('Viewing Rows '+_start+' - '+_end+' of '+cfg.totalRecords);return this;}});pv.updateViewInfo(totr,cfg.pageNumber);}
var p=jQuery('<div />').addClass(cfg.pageToolbarClass).height(cfg.pageToolbarHeight).width(b.width()).extend({setPage:function(p){var input=this.find('input.'+cfg.pageInputClass);pload.removeClass(cfg.pageLoadingDoneClass);g.load({page:p},function(){input.val(p);if(cfg.totalRecords>0){var totr=b.find('tr').length;pv.updateViewInfo(totr,p);if(cfg.pageChanged)
cfg.pageChanged(p);}
pload.addClass(cfg.pageLoadingDoneClass);});return this;},getPage:function(){var p=Number(this.find('input.'+cfg.pageInputClass).val());return p;}});var pb1=jQuery('<a href="#">&laquo;</a>').addClass(cfg.pageStartClass).click(function(){p.setPage(1);});var pb2=jQuery('<a href="#">&lt;</a>').addClass(cfg.pagePrevClass).click(function(){var _p=p.getPage();if(_p>1){_p--;p.setPage(_p);}});if(cfg.totalRecords>0){var totp=Math.ceil(cfg.totalRecords/totr);}
var pb3=jQuery('<a href="#">&gt;</a>').addClass(cfg.pageNextClass).click(function(){var _p=p.getPage();_p++;if(totp){if(_p<=totp)p.setPage(_p);}else{p.setPage(_p);}});var pload=jQuery('<div />').addClass(cfg.pageLoadingClass).addClass(cfg.pageLoadingDoneClass);var pfld=jQuery('<input type="text" value="'+cfg.pageNumber+'"/>').addClass(cfg.pageInputClass);var pinfo=jQuery('<div />').addClass(cfg.pageInfoClass).append(pfld);var pform=jQuery('<form></form>').append(pinfo).submit(function(){var _p=parseInt(p.getPage());if(_p){if(totp){if(_p<=totp)p.setPage(_p);}else if(_p>0){p.setPage(_p);}}else{alert('Please Enter a Valid Page Number.');}
return false;});var pb4;if(cfg.totalRecords>0){pinfo.html('Page '+pinfo.html()+' of '+totp);var pb4=jQuery('<a href="#">&raquo;</a>').addClass(cfg.pageEndClass).click(function(){var _p=p.getPage();_p++;if(totp){if(_p<totp)p.setPage(totp);}});}else{pinfo.html('Page '+pinfo.html());}
p.append(pb1).append(pb2).append(pform).append(pb3).append(pb4).append(pload).append(pv);}
var g=jQuery('<div />').append(h).append(b).extend({h:h,b:b});if(cfg.paging){g.append(p).extend({p:p});}
if(cfg.resizableCols){g.append(z.hide()).extend({z:z});}
var gap=jQuery('<div />').width(cfg.scrollbarW).addClass(cfg.headerClass).height(cfg.headerHeight).css({position:'absolute',zIndex:'0'}).appendTo(g);var modalmask=jQuery('<div />');modalmask.html(cfg.loadingHtml);modalmask=modalmask.addClass(cfg.loadingClass).css({position:'absolute',zIndex:'1000'}).appendTo(g).hide();g.extend({selected_ids:[],load:function(params,cb){var data=jQuery.extend(cfg.extraParams,params);modalmask.width(b.width()).show();g.saveSelectedRows();jQuery.ajax({type:cfg.type.toUpperCase(),url:cfg.url,data:data,success:function(result){if(result==""){alert('Error: Empty result.');return;}
if(cfg.dataType=='json'){var rows=eval('('+result+')');alert('json = '+rows);}
if(cfg.dataType=='html'){var $tbl=jQuery(result);var row=$tbl.find('tr:first');if(jQuery(row).find('td').length==cfg.colWidths.length){jQuery(row).find('td').each(function(i){jQuery(this).width(g.getHeader(i).css('width'))});b.find('tbody').html($tbl.find('tbody').html());g.initStylesAndWidths();g.saveState(data);}else if(row.length<1){alert('Error: No Rows Returned.');}else{alert('Error: Total columns returned ['+$tbl.find('tbody tr:first td').length+'] do not match Ingrid ['+cfg.colWidths.length+'].');}}
if(cb)cb();},error:function(){alert('Error: Could not load "'+cfg.url+'". Please check the URL and try again. ');},complete:function(){modalmask.hide();}});return this;},getState:function(){var props={url:'nothing'}
return props;},saveState:function(data){if(jQuery.cookie){var g_id=this.attr('id');var param_str='page='+data.page+',sort='+data.sort+',dir='+data.dir;jQuery.cookie(g_id,param_str,{expires:cfg.cookieExpiresDays,path:cfg.cookiePath});}},saveSelectedRows:function(){if(jQuery.cookie){var row_ids=g.selected_ids;jQuery.cookie(this.attr('id')+'_rows',row_ids.join(','),{expires:cfg.cookieExpiresDays,path:cfg.cookiePath});}},getHeaders:function(cb){var ths=this.find('th');if(cb){ths.each(function(){cb(jQuery(this));});return this;}else{return ths;}},getHeader:function(i,cb){var th=this.find('th').slice(i,i+1);if(cb){cb(jQuery(this));return this;}else{return th;}},getColumn:function(i,cb){var tds=this.find("tbody td["+cfg.columnIDAttr+"='"+i+"']");if(cb){tds.each(function(){cb(jQuery(this));});return this;}else{return tds;}},getRows:function(cb){var trs=this.find("tbody tr");if(cb){trs.each(function(){cb(jQuery(this));});return this;}else{return trs;}},getSelectedRows:function(){return this.find("tbody tr[_selected='true']");},unSelectAll:function(){g.getSelectedRows().each(function(){$(this).attr("_selected","true");$(this).click();});},selectAll:function(){this.find("tbody tr").each(function(){$(this).attr("_selected","false");$(this).click();});},getSelectedRowIds:function(){var rows=g.getSelectedRows();var row_ids=[];for(i=0;i<rows.length;i++){if(jQuery(rows[i]).attr('id'))row_ids.push(jQuery(rows[i]).attr('id'));}
return row_ids;},getSavedRowIds:function(){var row_ids=[];if(jQuery.cookie){var str_ids=jQuery.cookie(this.attr('id')+'_rows');if(str_ids)row_ids=str_ids.split(',');}
return row_ids;},resize:function(){var outer_w=h.width()+cfg.scrollbarW;b.width(outer_w);if(p)p.width(outer_w);if(gap){var pos=h.offset();gap.css('left',outer_w-cfg.scrollbarW+pos.left).css('top',pos.top);}},initStylesAndWidths:function(){var colWidths=new Array();this.getHeaders().each(function(i){colWidths[i]=jQuery(this).css('width');});g.selected_ids=g.getSavedRowIds();this.getRows().each(function(r){if(cfg.rowClasses.length>0){var cursor=(r==0?0:r%cfg.rowClasses.length);if(cfg.rowClasses[cursor]!=''){jQuery(this).addClass(cfg.rowClasses[cursor]);}
if(cfg.rowHoverClass!=''){jQuery(this).hover(function(){if(jQuery(this).attr('_selected')!='true')jQuery(this).removeClass(cfg.rowClasses[cursor]).addClass(cfg.rowHoverClass);},function(){if(jQuery(this).attr('_selected')!='true')jQuery(this).removeClass(cfg.rowHoverClass).addClass(cfg.rowClasses[cursor]);});}}
jQuery(this).find('td').each(function(i){var txt=jQuery(this).html();jQuery(this).attr(cfg.columnIDAttr,i).width(colWidths[i]).html(jQuery('<div />').html(txt).css('overflow','hidden'));if(cfg.colClasses.length>0){if(cfg.colClasses[i]!=''){jQuery(this).addClass(cfg.colClasses[i]);}}});if(cfg.rowSelection==true){jQuery(this).click(function(){isAlreadySelected=jQuery(this).attr('id')!=undefined&&jQuery.inArray(jQuery(this).attr('id'),g.selected_ids)!=-1;if(jQuery(this).attr('_selected')&&jQuery(this).attr('_selected')=='true'){jQuery(this).attr('_selected','false').removeClass(cfg.rowSelectedClass);if(isAlreadySelected)
g.selected_ids.splice(jQuery.inArray(jQuery(this).attr('id'),g.selected_ids),1);}else{jQuery(this).attr('_selected','true').addClass(cfg.rowSelectedClass);if(!isAlreadySelected)
g.selected_ids.push(jQuery(this).attr('id'));}
if(cfg.onRowSelect)
cfg.onRowSelect(this,(jQuery(this).attr('_selected')=='true'));});if(jQuery(this).attr('id')!=undefined&&jQuery.inArray(jQuery(this).attr('id'),g.selected_ids)!=-1){jQuery(this).attr('_selected','true').addClass(cfg.rowSelectedClass);if(jQuery(this).attr('id')==undefined||jQuery.inArray(jQuery(this).attr('id'),g.selected_ids)==-1)
g.selected_ids.push(jQuery(this).attr('id'));if(cfg.onRowSelect)
cfg.onRowSelect(this,true);}}});}});return this.each(function(tblIter){var g_id=cfg.ingridIDPrefix+'_'+jQuery(this).attr('id')+'_'+tblIter;g.attr('id',g_id);jQuery(this).replaceWith(g[0])
g.initStylesAndWidths();g.resize();modalmask.width(h.width()+cfg.scrollbarW).height(b.height()).css({top:b.offset().top,left:b.offset().left});if(cfg.savedStateLoad&&jQuery.cookie){var param_str=jQuery.cookie(g_id);if(!param_str){g.load();cfg.initialLoad=false;}else{var pairs=param_str.split(',');var params={};var hash=[];for(i=0;i<pairs.length;i++){var prop=pairs[i].split('=');hash[prop[0]]=prop[1];}
if(hash['page'].toLowerCase()!='undefined'&&cfg.paging){params.page=hash['page'];p.find('input.'+cfg.pageInputClass).val(params.page);}
if(hash['sort'].toLowerCase()!='undefined'&&hash['dir'].toLowerCase()!='undefined'){params.sort=hash['sort'];params.dir=hash['dir'];var colid=params.sort;if(cfg.colSortParams.length>0){for(i=0;i<cfg.colSortParams;i++){if(cfg.colSortParams[i]==params.sort){colid=i;break;}}}
var i2=0;g.getHeaders(function(col){col.find('div:first').each(function(){if(cfg.isSortableCol(i2++))
g.getHeaders(function(th){jQuery(this).addClass(cfg.sortNoneClass).removeClass(cfg.sortAscClass).removeClass(cfg.sortDescClass);})})});g.getHeader(parseInt(colid)).find('div:first').addClass(cfg.sortNoneClass).removeClass(cfg.sortAscClass).removeClass(cfg.sortDescClass).addClass(params.dir==cfg.sortAscParam?cfg.sortAscClass:cfg.sortDescClass).removeClass(cfg.sortNoneClass);}
if(params.page||params.sort||params.dir){g.load(params);cfg.initialLoad=false;}}}
if(cfg.initialLoad){g.load();}}).extend({g:g});};
jQuery.fn.frame=function(config){var settings=$.extend({border:'border',padding:'0px',headerVisible:'visible',backgroundcolor:'noColor'},config||{});var frametemplate='<table class="nc_frame" style="vertical-align:top;width:100%;  table-layout: fixed;"><tr style="height:26px"><td class="nc_frame_before_inner"></td><td class="nc_frame_inner"></td><td class="nc_frame_after_inner"></td></tr><tr><td colspan="3" style="padding-left:1px;padding-right:1px;"><table id="tilfeldig" style="vertical-align:top;width:100%;"><tr><td style="vertical-align:top;" class="nc_frame_content"></td></tr></table></td></tr></table>';var framelist=$(this);framelist.each(function(){var frame=$(this);if(frame.hasClass("isframed")===false){frame.addClass("isframed");var header=$("> div:nth-child(1)",frame);var content=$("> div:nth-child(2)",frame);content.find("script").remove();frame.append($('<div class="wrap"/>'));frame.find(".wrap").html(frametemplate);frame.find(".nc_frame_inner").append(header);frame.find(".nc_frame_content").append(content);if(settings.border==='border'){$(".nc_frame_content",frame).addClass("nc_frame_content_border");}
if(settings.backgroundcolor!=='noColor'){$(".nc_frame_content",frame).css("background-color",settings.backgroundcolor);}
if(settings.headerVisible==='hidden'){var headerRow=$(".nc_frame_inner:first",frame);headerRow.parent().hide();}
$(".nc_frame_content",frame).css("padding",settings.padding);}});};
function visma_ui_mergesort(o)
{this.cfg={comparison_function:this.compare_type_string,array_sort_value:""}
jQuery.extend(this.cfg,o);}
visma_ui_mergesort.prototype.set_comparison_function=function(o)
{this.cfg.comparison_function=o;}
visma_ui_mergesort.prototype.swap=function(array,a,b)
{var tmp=array[a];array[a]=array[b];array[b]=tmp;}
visma_ui_mergesort.prototype.insert=function(array,begin,end,v)
{while(begin+1<end&&this.compare(array[begin+1],v)<0)
{this.swap(array,begin,begin+1);++begin;}
array[begin]=v;}
visma_ui_mergesort.prototype.merge=function(array,begin,beginRight,end)
{for(;begin<beginRight;++begin)
{if(this.compare(array[begin],array[beginRight])>0)
{var v=array[begin];array[begin]=array[beginRight];this.insert(array,beginRight,end,v);}}}
visma_ui_mergesort.prototype.msort=function(array,begin,end){var size=end-begin;if(size<2)
{return;}
var beginRight=begin+Math.floor(size/2);this.msort(array,begin,beginRight);this.msort(array,beginRight,end);this.merge(array,begin,beginRight,end);}
visma_ui_mergesort.prototype.mergeSort=function(array){this.msort(array,0,array.length);}
visma_ui_mergesort.prototype.sort=function(array){this.msort(array,0,array.length);}
visma_ui_mergesort.prototype.compare=function(a,b)
{if(this.cfg.array_sort_value)
{return this.cfg.comparison_function(a[this.cfg.array_sort_value],b[this.cfg.array_sort_value]);}
return this.cfg.comparison_function(a,b);}
visma_ui_mergesort.prototype.compare_type_string=function(a,b)
{if(a<b)return-1;if(a>b)return 1;return 0;}
visma_ui_mergesort.prototype.compare_type_int=function(string_a,string_b)
{var a=parseInt(string_a);var b=parseInt(string_b);if(a<b)return-1;if(a>b)return 1;return 0;}
Type.registerNamespace("Visma.UI");Visma.UI.NavigationItem=function(element,args){Visma.UI.NavigationItem.initializeBase(this,[element]);this._args=args||{};this._childItems={};this._selectedItem=null;this._jq=$(element);this._delegates={childDeselected:Function.createDelegate(this,this._onChildItemDeselected),childInserted:Function.createDelegate(this,this._onChildItemInserted),childMoved:Function.createDelegate(this,this._onChildItemMoved),childReordered:Function.createDelegate(this,this._onChildItemReordered),childSelected:Function.createDelegate(this,this._onChildItemSelected)}};Visma.UI.NavigationItem.prototype={add_itemAdded:function(handler){this.get_events().addHandler("itemAdded",handler);},add_itemDeselected:function(handler){this.get_events().addHandler("itemDeselected",handler);},add_itemInserted:function(handler){this.get_events().addHandler("itemInserted",handler);},add_itemMoved:function(handler){this.get_events().addHandler("itemMoved",handler);},add_itemRemoved:function(handler){this.get_events().addHandler("itemRemoved",handler);},add_itemReordered:function(handler){this.get_events().addHandler("itemReordered",handler);},add_itemSelected:function(handler){this.get_events().addHandler("itemSelected",handler);},addComponent:function(item){this._childItems[item.get_id()]=item;item.add_itemDeselected(this._delegates.childDeselected);item.add_itemInserted(this._delegates.childInserted);item.add_itemMoved(this._delegates.childMoved);item.add_itemReordered(this._delegates.childReordered);item.add_itemSelected(this._delegates.childSelected);var jq=$(item.get_element());if(jq.hasClass("Selected")){item.select();}
var args=new Visma.UI.NavigationItemAddedEventArgs(item);this._raiseEvent("itemAdded",args);},collapse:function(){if(!this.isCollapsed()){this._jq.addClass("Collapsed");}},createInsertButton:function(options){var html='<li class="InsertButton"><a href="{0}" title="{1}">{2}</a></li>',opt=options||{},url=opt.url||"#",tooltip=opt.tooltip||"",text=opt.text||"Insert new item",listItem=$(String.format(html,url,tooltip,text)),delegate=Function.createDelegate(this,this._onInsertButtonClicked);listItem.find("a").click(delegate);$(this.get_element()).children("ul").append(listItem);},deselect:function(itemToBeSelected){var args=new Visma.UI.NavigationItemDeselectedEventArgs(this,itemToBeSelected);this._onChildItemDeselected(this,args);},dispose:function(){Visma.UI.NavigationItem.callBaseMethod(this,"dispose");},expand:function(){if(this.isCollapsed()){this._jq.removeClass("Collapsed");}},findComponent:function(id){if(typeof this._childItems[id]!=="undefined"){return this._childItems[id];}
return null;},getComponents:function(){var res=[],childItems=this._childItems;for(var name in childItems){res.push(childItems[name]);}
return res;},getLevel:function(){return this._args.level;},getNextItem:function(){var jq=this._jq.nextAll("li:not(.InsertButton):first");return jq.size()===1?jq.get(0).control:null;},getPrevItem:function(){var jq=this._jq.prevAll("li:not(.InsertButton):first");return jq.size()===1?jq.get(0).control:null;},getSelectedItem:function(){if(!this._selectedItem){var parent=this.get_parent(),delegateToParent=parent&&Visma.UI.NavigationItem.isInstanceOfType(parent);if(delegateToParent){return parent.getSelectedItem();}}
return this._selectedItem;},get_text:function(){return this._jq.children("a:first").text();},get_tooltip:function(){return this._jq.children("a").attr("title");},get_url:function(){return this._jq.children("a").attr("href");},initialize:function(){Visma.UI.NavigationItem.callBaseMethod(this,"initialize");this._makeSelectableIfRequired();this._appendSubListIfMissing();this._attachHandlerToInsertButtonIfProvided();this._makeCollapsibleIfRequired();},isCollapsed:function(){return this._jq.children("ul:first:hidden").size()===1;},isSelected:function(){return this===this.getSelectedItem();},moveDown:function(){this._move({next:"nextAll",append:"prepend",after:"after"});},moveUp:function(){this._move({next:"prevAll",append:"append",after:"before"});},remove_itemAdded:function(handler){this.get_events().removeHandler("itemAdded",handler);},remove_itemDeselected:function(handler){this.get_events().removeHandler("itemDeselected",handler);},remove_itemRemoved:function(handler){this.get_events().removeHandler("itemRemoved",handler);},remove_itemReordered:function(handler){this.get_events().removeHandler("itemReordered",handler);},remove_itemSelected:function(handler){this.get_events().removeHandler("itemSelected",handler);},remove_itemInserted:function(handler){this.get_events().removeHandler("itemInserted",handler);},remove_itemMoved:function(handler){this.get_events().removeHandler("itemMoved",handler);},removeComponent:function(item){item.remove_itemDeselected(this._delegates.childDeselected);item.remove_itemInserted(this._delegates.childInserted);item.remove_itemMoved(this._delegates.childMoved);item.remove_itemReordered(this._delegates.childReordered);item.remove_itemSelected(this._delegates.childSelected);delete this._childItems[item.get_id()];var args=new Visma.UI.NavigationItemRemovedEventArgs(item);this._raiseEvent("itemRemoved",args);},select:function(){if(!this.isSelected()){var selectedItem=this.getSelectedItem();if(selectedItem){selectedItem.deselect(this);}
this._jq.addClass("Selected");var args=new Visma.UI.NavigationItemSelectedEventArgs(this);this._raiseEvent("itemSelected",args);}},set_text:function(text){this._jq.children("a:first").text(text);},set_toolTip:function(tooltip){this._jq.children("a").attr("title",tooltip)},set_url:function(url){this._jq.children("a").attr("href",url);},toggleCollapse:function(){if(this.isCollapsed()){this.expand();}else{this.collapse();}},appearAndExpand:function(){this._jq.addClass("Collapsed").show();this.select();this.expand();},_appendChildElement:function(jq){this._jq.children("ul").append(jq);},_appendSubListIfMissing:function(){var missingSubList=this.get_element().nodeName.toLowerCase()==="li"&&this._jq.children("ul").size()===0;if(missingSubList){this._jq.append('<ul></ul>');}},_attachHandlerToInsertButtonIfProvided:function(){var delegate=Function.createDelegate(this,this._onInsertButtonClicked);this._jq.children("ul:first").children("li.InsertButton:first").children("a:first").click(delegate);},_createAndAppendChildItem:function(e){var jq=$('<li><a href="#">New item&hellip;</a><ul></ul></li>').hide();this._appendChildElement(jq);var item=Visma.UI.NavigationItemFactory.create({element:jq.get(0),parent:this,level:this.getLevel()+1});item.select();var args=new Visma.UI.NavigationItemInsertedEventArgs({event:e,insertedItem:item,hidden:false});this._onChildItemInserted(this,args);if(!args.get_hidden()){item.appearAndExpand();}},_getOutOfViewLeftPosition:function(){var pos=this._jq.offset();var width=this._jq.outerWidth();return-(pos.left+width);},_makeChildrenMoveableIfRequired:function(){if(Sys.Browser.agent===Sys.Browser.InternetExplorer){return;}
var removeDelegate=Function.createDelegate(this,function(e,ui){var item=ui.item.get(0).control;if(item.isSelected()){item._selectOnReceive=true;item.deselect();}else{item._selectOnReceive=false;}
this.removeComponent(item);}),html='<a class="DragHandle" href="#"></a>',dragHandle=$(html).click(function(e){e.preventDefault();e.stopPropagation();});this._jq.children("a:first").after(dragHandle);this._jq.children("ul").mousedown(function(e){e.stopPropagation();}).addClass("SecondLevel").sortable({handle:"a.DragHandle:first",items:"li:not(.InsertButton)",opacity:0.6,connectWith:'ul.SecondLevel',distance:10,stop:function(e,ui){ui.item.attr("style","");},receive:function(e,ui){var item=ui.item.get(0).control;item.get_parent().addComponent(item);var args=new Visma.UI.NavigationItemMovedEventArgs(item);item._raiseEvent("itemMoved",args);if(item._selectOnReceive){item.select();}},remove:removeDelegate});},_makeCollapsibleIfRequired:function(){if(this._jq.parent("ul.VerticalNavigationBar").size()===1){var toggleCollapseDelegate=Function.createDelegate(this,function(e){e.preventDefault();e.stopPropagation();this.toggleCollapse();});var html='<a class="CollapseButton" href="#"></a>',jq=$(html).click(toggleCollapseDelegate);this._jq.children("a:first").after(jq);}},_makeSelectableIfRequired:function(){var clickHandler=function(e){e.preventDefault();e.stopPropagation();this.select();};$addHandlers(this.get_element(),{click:clickHandler},this);},_move:function(args){var filter="li:not(.InsertButton):first",next=this._jq[args.next](filter);if(next.size()===0){var parent=this.get_parent();if(!parent){return;}
var nextParentJq=$(parent.get_element())[args.next](filter);if(nextParentJq.size()===0){return;}
this.deselect();parent.removeComponent(this);var newParent=nextParentJq.get(0).control;nextParentJq.children("ul:first")[args.append](this._jq);newParent.addComponent(this);var movedEventArgs=new Visma.UI.NavigationItemMovedEventArgs(this);this._raiseEvent("itemMoved",movedEventArgs);this.select();}else{next[args.after](this._jq);var reorderedEventArgs=new Visma.UI.NavigationItemReorderedEventArgs(this);this._raiseEvent("itemReordered",reorderedEventArgs);}},_onChildItemMoved:function(sender,args){this._raiseEvent("itemMoved",args);},_onChildItemInserted:function(sender,args){this._raiseEvent("itemInserted",args);},_onChildItemReordered:function(sender,args){this._raiseEvent("itemReordered",args);},_onChildItemSelected:function(sender,args){this._jq.addClass("Selected SubSelected");this._selectedItem=args.get_selectedItem();this._raiseEvent("itemSelected",args);},_onChildItemDeselected:function(sender,args){this._selectedItem=null;var removeSelectionClasses=!args.get_itemToBeSelected()||this.findComponent(args.get_itemToBeSelected().get_id())===null;if(removeSelectionClasses){this._jq.removeClass("Selected SubSelected");}
this._raiseEvent("itemDeselected",args);},_onInsertButtonClicked:function(e){e.preventDefault();e.stopPropagation();this._createAndAppendChildItem(e);},_raiseEvent:function(eventName,eventArgs){var handler=this.get_events().getHandler(eventName);if(handler){if(!eventArgs){eventArgs=Sys.EventArgs.Empty;}
handler(this,eventArgs);}}};Visma.UI.NavigationItem._getNoHeightMarginBottom=function(jq){var outerHeight=jq.outerHeight(true);var marginBottom=parseInt(jq.css("margin-bottom"),10);if(isNaN(marginBottom)){marginBottom=0;}
return marginBottom-outerHeight;}
Visma.UI.NavigationItem.registerClass("Visma.UI.NavigationItem",Sys.UI.Control,Sys.IContainer);var ___element=document.createElement("li"),___navItem=new Visma.UI.NavigationItem(___element);___navItem.dispose();delete ___element,___navItem;Visma.UI.BaseNavigationItemDecorator=function(item){this._item=item;};for(var key in Visma.UI.NavigationItem.prototype){if(typeof Visma.UI.NavigationItem.prototype[key]!=="function"){continue;}
(function(methodName){Visma.UI.BaseNavigationItemDecorator.prototype[methodName]=function(){return this._item[methodName].apply(this._item,arguments);};})(key);}
Visma.UI.BaseNavigationItemDecorator.registerClass("Visma.UI.BaseNavigationItemDecorator");Visma.UI.AnimatedCollapseNavigationItemDecorator=function(item){Visma.UI.AnimatedCollapseNavigationItemDecorator.initializeBase(this,[item]);this._jq=$(item.get_element());};Visma.UI.AnimatedCollapseNavigationItemDecorator.prototype={appearAndExpand:function(){var item=this,jq=this._jq,marginBottom=parseInt(jq.css("margin-bottom"),10);if(isNaN(marginBottom)){marginBottom=0;}
item.select();if(item._jq.parent("ul.VerticalNavigationBar").size()===1){jq.addClass("Collapsed").children("ul:first").hide();}
jq.css({position:"relative",left:item._getOutOfViewLeftPosition(),top:-50,marginBottom:Visma.UI.NavigationItem._getNoHeightMarginBottom(jq),opacity:0}).show().animate({left:0,top:0,marginBottom:marginBottom,opacity:1},300,"swing",function(){jq.attr("style","");if(item._jq.parent("ul.VerticalNavigationBar").size()===1){item.expand();}});},collapse:function(){if(!this.isCollapsed()){this._jq.children("ul:first").slideUp(300);var query="a.CollapseButton:first",jq=this._jq;jq.find(query).fadeOut(150,function(){jq.addClass("Collapsed").children(query).fadeIn(150);});}},expand:function(){if(this.isCollapsed()){this._jq.children("ul").slideDown(300);var query="a.CollapseButton:first",jq=this._jq;jq.find(query).fadeOut(150,function(){jq.removeClass("Collapsed").children(query).fadeIn(150);});}},initialize:function(){Visma.UI.AnimatedCollapseNavigationItemDecorator.callBaseMethod(this,"initialize");this._replaceCollapseButtonHandler();var delegate=Function.createDelegate(this,this._replaceCollapseButtonHandler);this._item.add_itemInserted(delegate);},toggleCollapse:function(){if(this.isCollapsed()){this.expand();}else{this.collapse();}},_replaceCollapseButtonHandler:function(){var toggleCollapseDelegate=Function.createDelegate(this,function(e){e.preventDefault();e.stopPropagation();this.toggleCollapse();});this._jq.children("a.CollapseButton:first").unbind("click").click(toggleCollapseDelegate);}};Visma.UI.AnimatedCollapseNavigationItemDecorator.registerClass("Visma.UI.AnimatedCollapseNavigationItemDecorator",Visma.UI.BaseNavigationItemDecorator);Type.registerNamespace("Visma.UI.Nav.Vertical");Visma.UI.Nav.Vertical.AnimatedSelectDecorator=function(item){Visma.UI.Nav.Vertical.AnimatedSelectDecorator.initializeBase(this,[item]);this._jq=$(item.get_element());this._delegates={childDeselected:Function.createDelegate(this,this._onChildItemDeselected),childSelected:Function.createDelegate(this,this._onChildItemSelected),deselected:Function.createDelegate(this,this._onDeselected),itemAdded:Function.createDelegate(this,this._onChildItemAdded),itemRemoved:Function.createDelegate(this,this._onChildItemRemoved),selected:Function.createDelegate(this,this._onSelected)};};Visma.UI.Nav.Vertical.AnimatedSelectDecorator.prototype={initialize:function(){Visma.UI.Nav.Vertical.AnimatedSelectDecorator.callBaseMethod(this,"initialize");this.add_itemAdded(this._delegates.itemAdded);this.add_itemDeselected(this._delegates.deselected);this.add_itemRemoved(this._delegates.itemRemoved);this.add_itemSelected(this._delegates.selected);this._jq.children("a:first").each(function(){$(this).css({color:this.style.color,backgroundColor:this.style.backgroundColor});});},_getColor:function(selector){var isBlueTheme=$(document.body).hasClass("Blue")||this._jq.parents("ul.VerticalNavigationBar").hasClass("Blue");if(isBlueTheme){selector=String.format("body.Blue {0}",selector);}
return this._getRuleBySelector(selector).style.backgroundColor;},_getNcStyleSheet:function(){if(!this._ncStyleSheet){this._ncStyleSheet=null;var styleSheets=document.styleSheets,numStyleSheets=styleSheets.length,styleSheet=null;for(var i=0;i<numStyleSheets;i++){styleSheet=styleSheets[i];if(styleSheet.href){if(styleSheet.href.endsWith("nc.css")){this._ncStyleSheet=styleSheet;break;}}}}
return this._ncStyleSheet;},_getRuleBySelector:function(selector){selector=selector.toLowerCase();var styleSheet=this._getNcStyleSheet(),rules=styleSheet.rules||styleSheet.cssRules,numRules=rules.length,rule=null;for(var i=0;i<numRules;i++){rule=rules[i];if(rule.selectorText.toLowerCase().indexOf(selector)!==-1){return rule;}}
return null;},_getSelectedColor:function(){if(!this._selectedColor){var selector="ul.VerticalNavigationBar > li.Selected > a:first-child";this._selectedColor=this._getColor(selector);}
return this._selectedColor;},_getSubSelectedColor:function(){if(!this._subSelectedColor){var selector="ul.VerticalNavigationBar > li.SubSelected > a:first-child";this._subSelectedColor=this._getColor(selector);}
return this._subSelectedColor;},_onChildItemAdded:function(sender,args){args.get_addedItem().add_itemDeselected(this._delegates.childDeselected);args.get_addedItem().add_itemSelected(this._delegates.childSelected);},_onChildItemDeselected:function(sender,args){var noChildItemIsToBeSelected=!args.get_itemToBeSelected()||this.findComponent(args.get_itemToBeSelected().get_id())===null;if(noChildItemIsToBeSelected){this._jq.children("a:first").stop().animate({color:"#2c2c2c",backgroundColor:"#eeeeee"},500);}},_onChildItemRemoved:function(sender,args){args.get_removedItem().remove_itemDeselected(this._delegates.childDeselected);args.get_removedItem().remove_itemSelected(this._delegates.childSelected);},_onChildItemSelected:function(sender,args){this._jq.children("a:first").stop().animate({color:"black",backgroundColor:this._getSubSelectedColor()},500);},_onDeselected:function(sender,args){if(this.isSelected()){this._jq.children("a:first").stop().animate({color:"#2c2c2c",backgroundColor:"#eeeeee"},500);}},_onSelected:function(sender,args){var thisItemWasSelected=args.get_selectedItem().get_id()===this.get_id();if(thisItemWasSelected&&!this.isSelected()){this._jq.children("a:first").stop().animate({color:"white",backgroundColor:this._getSelectedColor()},500);}}};Visma.UI.Nav.Vertical.AnimatedSelectDecorator.registerClass("Visma.UI.Nav.Vertical.AnimatedSelectDecorator",Visma.UI.BaseNavigationItemDecorator);Visma.UI.MiscNavigationItemDecorator=function(item){Visma.UI.MiscNavigationItemDecorator.initializeBase(this,[item]);};Visma.UI.MiscNavigationItemDecorator.prototype={};Visma.UI.MiscNavigationItemDecorator.registerClass("Visma.UI.MiscNavigationItemDecorator",Visma.UI.BaseNavigationItemDecorator);
Type.registerNamespace("Visma.UI");Visma.UI.NavigationItemAddedEventArgs=function(addedItem){Visma.UI.NavigationItemAddedEventArgs.initializeBase(this);this._addedItem=addedItem;}
Visma.UI.NavigationItemAddedEventArgs.prototype={get_addedItem:function(){return this._addedItem;}};Visma.UI.NavigationItemAddedEventArgs.registerClass("Visma.UI.NavigationItemAddedEventArgs",Sys.EventArgs);
Type.registerNamespace("Visma.UI");Visma.UI.NavigationItemDeselectedEventArgs=function(deselectedItem,itemToBeSelected){Visma.UI.NavigationItemDeselectedEventArgs.initializeBase(this);this._deselectedItem=deselectedItem;this._itemToBeSelected=typeof itemToBeSelected==="undefined"?null:itemToBeSelected;}
Visma.UI.NavigationItemDeselectedEventArgs.prototype={get_deselectedItem:function(){return this._deselectedItem;},get_itemToBeSelected:function(){return this._itemToBeSelected;}};Visma.UI.NavigationItemDeselectedEventArgs.registerClass("Visma.UI.NavigationItemDeselectedEventArgs",Sys.EventArgs);
Type.registerNamespace("Visma.UI");Visma.UI.NavigationItemFactory=function(){throw Error.invalidOperation("Static class. No constructor.");};Visma.UI.NavigationItemFactory.create=function(spec){if(typeof spec==="undefined"){throw Error.argumentUndefined("spec not specified.");}
if(!spec.element.id){spec.element.id=Visma.UI.ControlHelper.getNextId("NavigationItem");}
var item=new Visma.UI.NavigationItem(spec.element,{level:spec.level});if(spec.orientation===1){item=Visma.UI.NavigationItemFactory._decorateVertNavItem(spec,item);}
item.initialize();if(spec.parent){spec.parent.addComponent(item);}
return item;};Visma.UI.NavigationItemFactory._decorateVertNavItem=function(spec,item){if(Sys.Browser.agent===Sys.Browser.InternetExplorer){}else{item=new Visma.UI.AnimatedCollapseNavigationItemDecorator(item);if(spec.level===0){item=new Visma.UI.Nav.Vertical.AnimatedSelectDecorator(item);}}
return item;};Visma.UI.NavigationItemFactory.registerClass("Visma.UI.NavigationItemFactory");
Type.registerNamespace("Visma.UI");Visma.UI.NavigationItemInsertedEventArgs=function(args){Visma.UI.NavigationItemInsertedEventArgs.initializeBase(this);this._args=args;}
Visma.UI.NavigationItemInsertedEventArgs.prototype={get_event:function(){return this._args.event;},get_insertedItem:function(){return this._args.insertedItem;},get_hidden:function(){return this._args.hidden;},set_hidden:function(hidden){this._args.hidden=hidden;}};Visma.UI.NavigationItemInsertedEventArgs.registerClass("Visma.UI.NavigationItemInsertedEventArgs",Sys.EventArgs);
Type.registerNamespace("Visma.UI");Visma.UI.NavigationItemMovedEventArgs=function(movedItem){Visma.UI.NavigationItemMovedEventArgs.initializeBase(this);this._movedItem=movedItem;}
Visma.UI.NavigationItemMovedEventArgs.prototype={get_movedItem:function(){return this._movedItem;}};Visma.UI.NavigationItemMovedEventArgs.registerClass("Visma.UI.NavigationItemMovedEventArgs",Sys.EventArgs);
Type.registerNamespace("Visma.UI");Visma.UI.NavigationItemRemovedEventArgs=function(removedItem){Visma.UI.NavigationItemRemovedEventArgs.initializeBase(this);this._removedItem=removedItem;}
Visma.UI.NavigationItemRemovedEventArgs.prototype={get_removedItem:function(){return this._removedItem;}};Visma.UI.NavigationItemRemovedEventArgs.registerClass("Visma.UI.NavigationItemRemovedEventArgs",Sys.EventArgs);
Type.registerNamespace("Visma.UI");Visma.UI.NavigationItemReorderedEventArgs=function(reorderedItem){Visma.UI.NavigationItemReorderedEventArgs.initializeBase(this);this._reorderedItem=reorderedItem;}
Visma.UI.NavigationItemReorderedEventArgs.prototype={get_reorderedItem:function(){return this._reorderedItem;}};Visma.UI.NavigationItemReorderedEventArgs.registerClass("Visma.UI.NavigationItemReorderedEventArgs",Sys.EventArgs);
Type.registerNamespace("Visma.UI");Visma.UI.NavigationItemSelectedEventArgs=function(selectedItem){Visma.UI.NavigationItemSelectedEventArgs.initializeBase(this);this._selectedItem=selectedItem;}
Visma.UI.NavigationItemSelectedEventArgs.prototype={get_selectedItem:function(){return this._selectedItem;}};Visma.UI.NavigationItemSelectedEventArgs.registerClass("Visma.UI.NavigationItemSelectedEventArgs",Sys.EventArgs);
function visma_ui_quicksort(o)
{this.cfg={comparison_function:this.compare_type_string,array_sort_value:""};jQuery.extend(this.cfg,o);}
visma_ui_quicksort.prototype.swap=function(array,a,b)
{var tmp=array[a];array[a]=array[b];array[b]=tmp;}
visma_ui_quicksort.prototype.compare=function(a,b)
{if(this.cfg.array_sort_value)
{return this.cfg.comparison_function(a[this.cfg.array_sort_value],b[this.cfg.array_sort_value]);}
return this.cfg.comparison_function(a,b);}
visma_ui_quicksort.prototype.compare_type_string=function(a,b)
{if(a<b)return-1;if(a>b)return 1;return 0;}
visma_ui_quicksort.prototype.partition=function(array,begin,end,pivot)
{var piv=array[pivot];this.swap(array,pivot,end-1);var store=begin;var ix;for(ix=begin;ix<end-1;++ix)
{if(this.compare(array[ix],piv)<=0)
{this.swap(array,store,ix);++store;}}
this.swap(array,end-1,store);return store;}
visma_ui_quicksort.prototype.qsort=function(array,begin,end)
{if(end-1>begin)
{var pivot=begin+Math.floor(Math.random()*(end-begin));pivot=this.partition(array,begin,end,pivot);this.qsort(array,begin,pivot);this.qsort(array,pivot+1,end);}}
visma_ui_quicksort.prototype.quick_sort=function(array)
{this.qsort(array,0,array.length);}
jQuery.fn.tabcontrol=function(o){var tabcontrollist=$(this);tabcontrollist.each(function(){var tabcontrol=$(this);if(tabcontrol.hasClass("tabcontrol")===false){tabcontrol.addClass("tabcontrol");}
if(tabcontrol.hasClass("tabcontrolIsInitialized")===false){tabcontrol.addClass("tabcontrolIsInitialized");var headers=tabcontrol.find("> div:even");var contents=tabcontrol.find("> div:odd");tabcontrol.append($('<div class="tabheaderitems"/>'));tabcontrol.append($('<div class="tabcontentitems"/>'));tabcontrol.find(".tabheaderitems").append(headers);tabcontrol.find(".tabcontentitems").append(contents);var tabheaderitems=$("> .tabheaderitems > div",tabcontrol);var tabcontentitems=$("> .tabcontentitems > div",tabcontrol);tabcontentitems.each(function(index){$(this).addClass("tabcontentitem");HideTab($(this));});var tabselected=$("> .tabheaderitems > div.tabitemselected",tabcontrol);if(tabselected.size()===0){$("> .tabheaderitems div:first-child",tabcontrol).addClass("tabitemselected");}
tabheaderitems.eq(0).addClass("tabfirst");tabheaderitems.each(function(index){var item=$(this);item.click(function(){if(tabcontrol.hasClass("disabled")){return;}
tabcontrol.find("> .tabheaderitems > div").removeClass("tabitemselected");HideTab(tabcontrol.find("> .tabcontentitems > div"));$(this).addClass("tabitemselected");ShowTab($(tabcontentitems[index]));});item.wrapInner("<div class='tab_inner'></div>");$(".tab_inner",item).before("<div class='tab_before_inner'></div>");$(".tab_inner",item).after("<div class='tab_after_inner'></div>");if(item.hasClass("tabitemselected")){ShowTab($(tabcontentitems[index]));}});}});function HideTab(tab){tab.css("position","absolute").css("visibility","hidden");}
function ShowTab(tab){tab.css("position","relative").css("visibility","");}};
Type.registerNamespace("Visma.UI");Visma.UI.ToolsPanel=function(){Visma.UI.ToolsPanel.initializeBase(this);this._navbar=null;this._jq=null;}
Visma.UI.ToolsPanel.prototype={get_navbar:function(){return this._navbar;},set_navbar:function(navbar){this._navbar=navbar;},initialize:function(){Visma.UI.ToolsPanel.callBaseMethod(this,"initialize");this._jq=$(this._navbar.get_element());this._addTools();$("#cancelReorganizeButton").click();},dispose:function(){Visma.UI.ToolsPanel.callBaseMethod(this,"dispose");},_addTools:function(){var movePanel=this._createMovePanel(),htmlTemplate='<a href="#" title="{0}" id="{1}"><img src="{2}"/></a>',collapseHtml=String.format(htmlTemplate,"Klikk for å skjule elementer ...","collapseButton","mvc-common/nc/src/img/visma.ui.toolspanel/Collapse_Normal.png","mvc-common/scripts/visma.ui.toolspanel/img/Collapse_Pressed.png"),collapseDelegate=Function.createDelegate(this,function(e){e.preventDefault();e.stopPropagation();this._navbar.collapseAll();}),collapseButton=$(collapseHtml).click(collapseDelegate),expandHtml=String.format(htmlTemplate,"Klikk for å vise elementer ...","expandButton","mvc-common/nc/src/img/visma.ui.toolspanel/Expand_Normal.png","mvc-common/scripts/visma.ui.toolspanel/img/Expand_Pressed.png"),expandDelegate=Function.createDelegate(this,function(e){e.preventDefault();e.stopPropagation();this._navbar.expandAll();}),expandButton=$(expandHtml).click(expandDelegate),cancelHtml=String.format(htmlTemplate,"Klikk for å stoppe reorganisering ...","cancelReorganizeButton","mvc-common/nc/src/img/visma.ui.toolspanel/Return_Normal.png","mvc-common/scripts/visma.ui.toolspanel/img/Return_Pressed.png"),cancelDelegate=Function.createDelegate(this,function(e){e.preventDefault();e.stopPropagation();$('.MovePanel').hide();$('.InsertButton').show();$('#collapseButton').show();$('#expandButton').show();$('#reorganizeButton').show();$('#cancelReorganizeButton').hide();}),cancelButton=$(cancelHtml).click(cancelDelegate),reorganizeHtml=String.format(htmlTemplate,"Klikk for å reorganiserer elementer ...","reorganizeButton","mvc-common/nc/src/img/visma.ui.toolspanel/Reshuffle_Normal.png"),reorganizeDelegate=Function.createDelegate(this,function(e){e.preventDefault();e.stopPropagation();var movePanel=this._createMovePanel();$('.MovePanel').show();$('.InsertButton').hide();$('#collapseButton').hide();$('#expandButton').hide();$('#reorganizeButton').hide();$('#cancelReorganizeButton').show();}),reorganizeButton=$(reorganizeHtml).click(reorganizeDelegate)
this._jq.parent().prepend($('<div class="ToolsPanel"></div>').append(cancelButton).append(reorganizeButton).append(expandButton).append(collapseButton).append(movePanel));},_createMovePanel:function(){var htmlTemplate='<a href="#" id ="{0}" title="{1}"><img src="{2}"/></a>',moveUpHtml=String.format(htmlTemplate,"moveUpArrow","Klikk for å flytte element opp ...","mvc-common/nc/src/img/visma.ui.toolspanel/Up_Normal.png"),moveUpDelegate=Function.createDelegate(this,function(e){e.preventDefault();e.stopPropagation();this._navbar.getSelectedItem().moveUp();}),moveUpButton=$(moveUpHtml).click(moveUpDelegate),moveDownHtml=String.format(htmlTemplate,"moveDownArrow","Klikk for å flytte element ned ...","mvc-common/nc/src/img/visma.ui.toolspanel/Down_Normal.png"),moveDownDelegate=Function.createDelegate(this,function(e){e.preventDefault();e.stopPropagation();this._navbar.getSelectedItem().moveDown();}),moveDownButton=$(moveDownHtml).click(moveDownDelegate),movePanel=$('<div class="MovePanel"></div>');return movePanel.append(moveUpButton).append(moveDownButton);}};Visma.UI.ToolsPanel.registerClass("Visma.UI.ToolsPanel",Sys.Component);
Type.registerNamespace("Visma.UI");Visma.UI.TwoLevelNavigationBar=function(element){Visma.UI.TwoLevelNavigationBar.initializeBase(this,[element]);};Visma.UI.TwoLevelNavigationBar.prototype={dispose:function(){Visma.UI.TwoLevelNavigationBar.callBaseMethod(this,"dispose");},initialize:function(){Visma.UI.TwoLevelNavigationBar.callBaseMethod(this,"initialize");if($(this.get_element()).hasClass("Configured")){if(Visma.Config.getNavSection().populate){$(this.get_element()).html(Visma.UI.TwoLevelNavigationBar._createConfiguredItemsHtml());}
if(Visma.Config.getNavSection().expandOnHover){$(this.get_element()).addClass("ExpandOnHover");}}}};Visma.UI.TwoLevelNavigationBar._createConfiguredItemsHtml=function(){var sb=new Sys.StringBuilder(),navConfig=Visma.Config.getNavSection(),numberOfItems=navConfig.items.length;for(var i=0;i<numberOfItems;i++){var item=navConfig.items[i],sb2=new Sys.StringBuilder();if(typeof item.items!=="undefined"){var hasSelectedItem=false,sb3=new Sys.StringBuilder();for(var j=0;j<item.items.length;j++){var secondLvlItem=item.items[j];var innerSelected="";if(typeof secondLvlItem.selected==="boolean"&&secondLvlItem.selected){innerSelected=' class="Selected"';hasSelectedItem=true;}
sb3.append(String.format('<li{0}><a href="{1}" title="{2}">{3}</a></li>',innerSelected,secondLvlItem.url,secondLvlItem.tooltip,secondLvlItem.title));}
sb2.append(hasSelectedItem?'<ul class="Selected">':"<ul>");sb2.append(sb3.toString());sb2.append("</ul>");}
var selected="";if(typeof item.selected==="boolean"&&item.selected){selected=' class="Selected"';}
sb.append(String.format('<li{0}><a href="{1}" title="{2}">{3}</a>{4}</li>',selected,item.url,item.tooltip,item.title,sb2.toString()));}
return sb.toString();};Visma.UI.TwoLevelNavigationBar._findElements=function(){return $("ul.TwoLevelNavigationBar:not(ul.Static)");};Visma.UI.TwoLevelNavigationBar._getNextId=function(){if(typeof Visma.UI.TwoLevelNavigationBar._nextId!=="number"){Visma.UI.TwoLevelNavigationBar._nextId=0;}
return String.format("visma:two-lvl-nav-bar:{0}",Visma.UI.TwoLevelNavigationBar._nextId++);};Visma.UI.TwoLevelNavigationBar._init=function(){var elements=Visma.UI.TwoLevelNavigationBar._findElements();elements.each(function(){if(!this.id){this.id=Visma.UI.TwoLevelNavigationBar._getNextId();}
$create(Visma.UI.TwoLevelNavigationBar,null,null,null,this);});};Visma.UI.TwoLevelNavigationBar.registerClass("Visma.UI.TwoLevelNavigationBar",Sys.UI.Control);Sys.Application.add_init(Visma.UI.TwoLevelNavigationBar._init);
Type.registerNamespace("Visma.UI");Visma.UI.VerticalNavigationBar=function(element){Visma.UI.VerticalNavigationBar.initializeBase(this,[element]);};Visma.UI.VerticalNavigationBar.prototype={collapseAll:function(){var components=this.getComponents(),numComponents=components.length;for(var i=0;i<numComponents;i++){components[i].collapse();}},collapseAllNoAnim:function(){var components=this.getComponents(),numComponents=components.length;for(var i=0;i<numComponents;i++){if(!components[i].isCollapsed()){components[i]._jq.addClass("Collapsed");}}},dispose:function(){Visma.UI.VerticalNavigationBar.callBaseMethod(this,"dispose");},disableInsert:function(){this._jq.find("li.InsertButton").addClass("Disabled");},enableInsert:function(){this._jq.find("li.InsertButton").removeClass("Disabled");},expandAll:function(){var components=this.getComponents(),numComponents=components.length;for(var i=0;i<numComponents;i++){components[i].expand();}},getLevel:function(){return-1;},initialize:function(){Visma.UI.VerticalNavigationBar.callBaseMethod(this,"initialize");this._wrapIntoBorder();$clearHandlers(this.get_element());},_appendChildElement:function(jq){$(this.get_element()).children("li.InsertButton").before(jq);},_attachHandlerToInsertButtonIfProvided:function(){var delegate=Function.createDelegate(this,this._onInsertButtonClicked);this._jq.children("li.InsertButton:first").children("a:first").click(delegate);},_makeChildrenMoveableIfRequired:function(){if(Sys.Browser.agent===Sys.Browser.InternetExplorer){return;}
$(this.get_element()).sortable({handle:"a.DragHandle:first",items:"li:not(.InsertButton, li ul li)",opacity:0.6,distance:10,stop:function(e,ui){ui.item.attr("style","");}});},_wrapIntoBorder:function(){var classes="VerticalNavigationBarBorder";if(this._jq.hasClass("Blue")){classes+=" Blue";}
var html=String.format('<div class="{0}"><div></div></div>',classes);this._jq.wrap(html).parent().before("<div></div>");}};Visma.UI.VerticalNavigationBar._init=function(){$("ul.VerticalNavigationBar:not(.Static)").each(function(){if(!this.id){this.id=Visma.UI.ControlHelper.getNextId("VerticalNavigationBar");}
var bar=new Visma.UI.VerticalNavigationBar(this),orientation=1;bar.initialize();Sys.Application.addComponent(bar);$(this).children("li:not(li.InsertButton)").each(function(){var firstLevelItem=Visma.UI.NavigationItemFactory.create({element:this,parent:bar,level:0,orientation:orientation});$(this).children("ul").children("li:not(li.InsertButton)").each(function(){Visma.UI.NavigationItemFactory.create({element:this,parent:firstLevelItem,level:1,orientation:orientation});});});});};Visma.UI.VerticalNavigationBar.registerClass("Visma.UI.VerticalNavigationBar",Visma.UI.NavigationItem);Sys.Application.add_init(Visma.UI.VerticalNavigationBar._init);
