
function $sdf(selector,context,init)
{var j=jQuery(selector,context);init=typeof init=='undefined'?false:true;if(j.length)
{var res=jQuery.data(j[0],'sdf');if(res||!init){return res;}
j.sdf();return jQuery.data(j[0],'sdf');}
else{return null;}}
(function($){$.sdf=$.sdf||{};var sdf;$.fn.sdfHandle=function()
{var i=0;for(;i<arguments.length;i++)
{if(arguments[i].constructor===Array){this.bind(arguments[i][0],arguments[i][1],function(Evt){sdf.handle.apply(this,[Evt]);});}
else{this.bind(arguments[i],function(Evt){sdf.handle.apply(this,[Evt]);});}}
return this;};$.fn.sdf=function(cl,strict)
{strict=typeof strict=='undefined'?true:false;cl=typeof cl=='undefined'?false:cl;for(var i=0;i<this.length;i++)
{if(strict||(typeof $.data(this[i],'sdf')=='undefined'))
{if(cl){new cl(this[i]);}
else
{var $i=$(this[i]);$i.is('.sdf-input')&&new $.sdf.input(this[i]);}}}
return this;}
$.sdf=function(el)
{if(el)
{if(el!='__prototype__')
{this.__clean__=new Array();this.init(el);}
else{return false;}}
else{this.__clean__=new Array();}
sdf.__clean__.push(this.__clean__);this.uniqId=Math.round(Math.random()*1000000000);this.eventStoreProp=$.browser.mozilla||$.browser.msie?'returnValue':'initUIEvent';}
sdf=$.sdf;$.extend(sdf,{__clean__:new Array(),extend:function()
{var ei=1,parent=arguments[0]||{},child;if(!($.isFunction(parent)&&parent.prototype&&sdf.prototype.isPrototypeOf(parent)))
{parent=this;ei=0;}
if(arguments.length>ei&&$.isFunction(arguments[ei].__construct))
{child=arguments[ei].__construct;arguments[ei].__construct=undefined;}
else{child=function(){if(!arguments.length==0||arguments[0]!='__prototype__'){this.parentCall('constructor',arguments,parent);}};}
$.extend(child,parent);child.prototype=new parent('__prototype__');child.prototype.parent=parent;child.prototype.constructor=child;if(arguments.length>ei){$.extend(child.prototype,arguments[ei]);}
if(arguments.length>ei+1){$.extend(child,arguments[ei+1]);}
return child;},handle:function(Evt)
{var obj=Evt.data&&Evt.data.obj?Evt.data.obj:$.data(this,'sdf');var type=Evt.data&&Evt.data.type?Evt.data.type:Evt.type;var args=new Array(arguments.length);for(i=0;i<arguments.length;i++){args[i]=arguments[i];}
args.splice(1,0,this);if($.isFunction(type)){return type.apply(obj,args);}
else
{var hName='on'+type.substr(0,1).toUpperCase()+type.substr(1);if($.isFunction(obj[hName])){return obj[hName].apply(obj,args);}}},cleanLeaks:function()
{var i,j;for(i=0;i<sdf.__clean__.length;i++)
{if(sdf.__clean__[i]!==null)
{for(j=0;j<sdf.__clean__[i].length;j++){$.removeData(sdf.__clean__[i][j],'sdf');}
sdf.__clean__[i]=null;}}
sdf.__clean__=null;}});sdf.prototype={constructor:sdf,__clean__:null,__cur_context__:null,bind:function(et,handler,data)
{if(!$.isFunction(handler))
{data=handler;handler=sdf.handle;}
return $.event.add(this,et,handler,data);},bindObj:function(et,obj,redirEt)
{redirEt=redirEt||(obj&&obj.constructor===String?obj:et);obj=obj||this;obj=obj.constructor===String?this:obj;return $.event.add(this,et,sdf.handle,{obj:obj,type:redirEt});},trigger:function(et,data,extra)
{$.event.trigger(et,data,this,false,extra);},parentCall:function(method,params,cl)
{var cur=this.__cur_context__,res;params=params||[];if(!cl)
{if(this.__cur_context__===null){cl=this.parent;}
else{cl=this.__cur_context__.prototype.parent;}}
this.__cur_context__=cl;if(this.parent.prototype[method])
{res=cl.prototype[method].apply(this,params);this.__cur_context__=cur;return res;}
else{alert('invalid method');}},instanceOf:function(cl)
{return cl.prototype.isPrototypeOf(this);},init:function(el)
{return this.bindElement('el',el);},bindElement:function(name,selector,context)
{var j;if(name.constructor!==String)
{selector=name;name=null;}
if(selector.constructor!==String)
{context=null;if(selector.styleFloat){j=selector;}
else{j=$(selector);}}
else{j=$(selector,context);}
if(j.length)
{if(name){this[name]=j[0];}
if(typeof $.data(j[0],'sdf')!='undefined'){throw new sdf;}
$.data(j[0],'sdf',this);this.__clean__.push(j[0]);}
else
{if(name){this[name]=null;}}
if(name){this['$'+name]=j;}
return j;},addEventListener:function(){},drop:function()
{if(!this.__dropping__)
{this.__dropping__=true;this.__destruct();var i;for(i=0;i<this.__clean__.length;i++){$.removeData(this.__clean__[i],'sdf');}
this.__clean__=null;if(typeof this.$el!=='undefined'){this.$el.remove();}}},__destruct:function(){},set:function()
{var o={},a=arguments,b=a.length;if(b===2){o[a[0]]=a[1];}
else if(b===1){o=a[0];}
for(var i in o){this[i]=o[i];}
if(this.afterSet&&typeof(this.afterSet)==='function'){this.afterSet();}},stopPropagation:function(Evt)
{Evt=Evt.originalEvent||Evt;if(!Evt){return;}
if(typeof(Evt[this.eventStoreProp])!='object'){Evt[this.eventStoreProp]={};}
if(Evt[this.eventStoreProp][this.uniqId]){Evt[this.eventStoreProp][this.uniqId].cancelBubble=1;}
else
Evt[this.eventStoreProp][this.uniqId]={cancelBubble:1};},cancelBubble:function(Evt)
{Evt=Evt.originalEvent||Evt;return Evt[this.eventStoreProp]&&Evt[this.eventStoreProp][this.uniqId]&&Evt[this.eventStoreProp][this.uniqId]['cancelBubble'];}};if($.browser.msie&&$.browser.version.indexOf('6.')!==-1){$(window).bind("unload",sdf.cleanLeaks);}})(jQuery);

var UserIsOnline=true;function userLiveDaemonInit()
{setTimeout(userLiveDaemon,20000);}
function userLiveDaemon(){if(IS_DEMO){return;}
$.ajaxSetup({error:function(){userLiveDaemonInit();}});$.getJSON(sdfPermUserLiveUrl,{a:''},function(json){if(window.updateNewMessages&&typeof(json.messages)!='undefined'){updateNewMessages(json.messages);}
if(window.bumsInformerIconUpdate)
{if(typeof(json.commentsUnread)!='undefined'){bumsInformerIconUpdate('informerCommentsUnread',parseInt(json.commentsUnread));}
if(typeof(json.favorites)!='undefined'){bumsInformerIconUpdate('informerFavorites',parseInt(json.favorites));}
if(typeof(json.tasksRejected)!='undefined'){bumsInformerIconUpdate('informerTasksRejected',parseInt(json.tasksRejected));}
if(typeof(json.tasksNew)!='undefined'){bumsInformerIconUpdate('informerTasksNew',parseInt(json.tasksNew));}
if(typeof(json.messages)!='undefined'){bumsInformerIconUpdate('informerNewMessages',parseInt(json.messages));}}
if(json.timeLeft<0)
{createMessage(sdfGetText('You\'ve been logged out.')+' <a href="/login">'+sdfGetText('Enter again')+'</a>.','Red',60000,SHADOW_SET);UserIsOnline=false;}
else
{if(!UserIsOnline){createMessage(sdfGetText('We\'re in touch again. Good luck at work!'),'Green',3000,SHADOW_DELETE);}
UserIsOnline=true;}
userLiveDaemonInit();});$.ajaxSetup({error:null});}

(function($){$(document).ready(function(){window.sdfWindow=$sdf($('<div class="sdf-wnd sdf-wnd-shadow" style="display:none"></div>').prependTo(document.body).sdf($.sdf.window));});$.sdf.window=$.sdf.extend({__construct:function(El)
{if(this.parentCall('constructor',arguments)===false)return false;$('<table class="sdf-wnd-tbl">'
+'<tr><td class="sdf-wnd-tl"><div></div></td><td class="sdf-wnd-t"><img src="/i/0.gif"/></td><td class="sdf-wnd-tr"></td></tr>'
+'<tr><td class="sdf-wnd-l"></td><td class="sdf-wnd-c"><div class="sdf-wnd-body"></div></td><td class="sdf-wnd-r"></td></tr>'
+'<tr><td class="sdf-wnd-bl"></td><td class="sdf-wnd-b"><img src="/i/0.gif"/></td><td class="sdf-wnd-br"></td></tr>'
+'</table>').prependTo(this.$el);this.jBody=this.$el.find('.sdf-wnd-body');this.className='sdf-wnd-shadow';this.pos='';this.fixed='';this.left=300;this.top=300;this.maxHeight=0;this.html='';this.showCloseIcon=false;},show:function(X,Y,Pos,Fixed)
{if(typeof(Fixed)=='undefined'){Fixed='';}
if(this.pos){this.$el.removeClass('sdf-wnd-pos-'+this.pos);};this.pos=Pos?Pos:'';if(this.pos){this.$el.addClass('sdf-wnd-pos-'+this.pos);}
this.left=X;this.top=Y;this.fixed=Fixed;this.$el.css({left:'-10000px',top:'-10000px'});this.$el.show();this.tunePosition();this.clearDocumentClick();},load:function(Url,Params,OnLoad)
{this.jBody.html('<img src="/i/0.gif" width="25" height="20"/>');this.$el.addClass('in-progress');var me=this;if(typeof(Params)=='function'){this.html=$.get(Url,function(html){me.html=html;me.onLoad();Params();});}
else{this.html=$.get(Url,Params,function(html){me.html=html;me.onLoad();if(OnLoad)OnLoad();});}},hide:function()
{this.$el.hide();this.$el.find('.confirm-action').hide();this.modalBg&&this.modalBg.remove();this.showCloseIcon=false;this.trigger('onHide');},html:function(Html)
{this.jBody.html(Html);this.onLoad();},setClass:function(ClassName)
{if(this.className==ClassName){return false;}
if(this.className){this.$el.removeClass(this.className);}
this.$el.addClass(ClassName);this.className=ClassName;},tunePosition:function(Delayed)
{var top=this.top;var left=this.left;if(this.maxHeight&&this.jBody[0].offsetHeight>this.maxHeight){this.jBody.css('height',this.maxHeight+'px');}
else{this.jBody.css('height','auto');}
if(this.pos)
{if($.browser.msie&&parseInt($.browser.version)<7&&this.pos.indexOf('b')>=0&&this.fixed=='bottom'){top=this.top+this.$el.height();}
else if(this.pos.indexOf('b')>=0&&this.fixed!='bottom'||this.pos.indexOf('t')>=0&&this.fixed=='bottom'){top=this.top-this.$el.height();}
if(this.pos.indexOf('r')>=0){left=this.left-this.$el.width();}
if(this.pos.indexOf('c')>=0){left=($(window).width()-this.$el.width())/2;}
if(this.pos.indexOf('m')>=0){top=($(window).height()-this.$el.height())/2;}}
if(left<20){left=20;}
var windowWidth=$(window).width();var elWidth=this.$el.children().width();if(left+elWidth+10>windowWidth){left=windowWidth-elWidth-10;}
var body=document.getElementsByTagName('body')[0];var scrollBottom=$(window).scrollTop()+window.innerHeight||body.clientHeight;var elHeight=this.$el.children().height();if(top+elHeight+20>scrollBottom){top=scrollBottom-elHeight-20;}
if(top<0){top=0;}
if(this.fixed)
{if($.browser.msie&&parseInt($.browser.version)<7)
{if(this.fixed=='bottom')
{this.$el.css({left:left+'px',bottom:''});this.$el[0].style.setExpression('top',"document.getElementsByTagName( 'body' )[0].scrollTop + document.getElementsByTagName( 'body' )[0].clientHeight - "+top+" + 'px'");}
else
{this.$el.css({left:left+'px',bottom:''});this.$el[0].style.setExpression('top',"document.getElementsByTagName( 'body' )[0].scrollTop + "+top+" + 'px'");}
document.recalc&&document.recalc(true);}
else
{this.$el.css('position','fixed')
if(this.fixed=='bottom'){this.$el.css({left:left+'px',top:'',bottom:top+'px'});}
else{this.$el.css({left:left+'px',top:top+'px',bottom:''});}}}
else{this.$el.css({left:left+'px',top:top+'px',bottom:''});}
if(($.browser.mozilla)&&(typeof(Delayed)!='undefined'&&Delayed))
{var me=this;setTimeout(function(){me.tunePosition(false);},100);return;}},onLoad:function()
{this.$el.removeClass('in-progress');this.jBody.html(this.html);if(this.showCloseIcon){this.jBody.prepend('<div class="sdf-wnd-close"><img src="/i/0.gif" onclick="sdfWindow.hide()"/></div>');}
this.tunePosition(true);},setAutoClose:function()
{if(this.onDocumentClick){return;}
var me=this;setTimeout(function(){if(me.onDocumentClick){return;}
me.onDocumentClick=function(Evt){var el=Evt.target;while(el)
{if(el===me.$el[0]){return;}
el=el.parentNode;}
me.hide();me.clearDocumentClick();};$(document).bind('click',me.onDocumentClick);},18);},clearDocumentClick:function()
{if(this.onDocumentClick)
{$(document).unbind('click',this.onDocumentClick);this.onDocumentClick=null;}},setModal:function()
{this.$el.addClass('modal-div');this.modalBg=$('<div class="modal-bg"></div>').prependTo(document.body);}})})(jQuery);function sdfDialog(Text,Type,Callback)
{sdfCustomDialog(sdfUrlTo('SdfCommonC_Model','showDialog'),{text:Text,type:Type},Callback);}
function sdfCustomDialog(Url,Params,Callback)
{if(!window.sdfDialogWindow){window.sdfDialogWindow=$sdf($('<div id="sdfDialog" class="sdf-wnd sdf-wnd-shadow" style="display:none"></div>').prependTo(document.body).sdf($.sdf.window));}
var wnd=window.sdfDialogWindow;var handler=Math.round(Math.random()*1000000000);Params.handler=handler
if(!window.sdfHandlers){window.sdfHandlers={};}
window.sdfHandlers[handler]=function()
{delete(window.sdfHandlers[handler]);wnd.hide();Callback.apply(null,arguments);}
wnd.load(Url,Params);wnd.show(0,0,'cm');wnd.setModal();}

var bumsInformerTimeoutId=0;var bumsInformerPrevValue=null;function bumsInformerPerformSearch()
{if($('#informerSearchIsLocal').attr('checked'))
{if($.trim($('#iSearch .s').val()).length!=1)
{if($('#iSearch .l').is('.disabled')){bumsInformerHighlight();}
else{bumsInformerUpdateTable();}}
else{$('#iSearch').removeClass('progress');}}
else{bumsGsearchPerform();}}
function bumsInformerHighlight(s)
{if(typeof(s)=='undefined'){s=$.trim($('#iSearch .s').get(0).value);}
var sp,re;$('.ihlBlock hib').each(function(){sp=document.createTextNode(this.getAttribute('informer-replaced'));this.parentNode.insertBefore(sp,this);this.parentNode.removeChild(this);});$('.ihlBlock input[value]').removeClass('ihl');$('.ihlBlock select').removeClass('ihl');if(s!='')
{re=new RegExp("("+RegExp.escape(s)+")","ig");$('.ihlBlock').textNodes().each(function(){if(re.test(this.nodeValue))
{sp=document.createElement('hib');sp.innerHTML=this.nodeValue.replace(re,'<q>$1</q>');sp.setAttribute('informer-replaced',this.nodeValue);this.parentNode.insertBefore(sp,this);this.parentNode.removeChild(this);re.lastIndex=0;}});re=new RegExp(RegExp.escape(s),"i");$('.ihlBlock input[value]').each(function(){if(re.test(this.value)){$(this).addClass('ihl');}});$('.ihlBlock select > option').each(function(){if(re.test(this.innerHTML)){$(this.parentNode).addClass('ihl');}});}
$('#iSearch').removeClass('progress');}
function bumsInformerLookClick(ev)
{var sv=$('#informerSearchVariants');sv.toggle();if(sv.css('display')=='block'){$(document).one('click',function(){$('#informerSearchVariants').hide();});}
ev.stopPropagation();}
function bumsInformerSetOption(elem,optId)
{var sv=$('#informerSearchVariants');var prev=sv.find('.current');if(prev.get(0)!=elem)
{prev.removeClass('current');$(elem).addClass('current')
$('#iSearch .l').attr('curtype',optId);sv.hide();var s=$('#iSearch .s');s.inlineHint(elem.innerHTML);if($.trim(s.get(0).value)!=s.attr('inline-hint')){bumsInformerUpdateTable();}}}
function bumsInformerHotKey(ev)
{var keyCode=ev.which||ev.keyCode;window.hotkeys=window.hotkeys||{};if(ev.ctrlKey&&keyCode==70)
{if(!window.hotkeys.Ctrl_F)
{$('#iSearch .s').focus();window.setTimeout(function(){window.hotkeys.Ctrl_F=true;$('#iSearch .s').one('blur',function(){window.hotkeys.Ctrl_F=false;});},18);}}
return bumsInformerHotKeyHandleDefault(ev);}
function bumsInformerHotKeyHandleDefault(ev)
{var keyCode=ev.which||ev.keyCode;window.hotkeys=window.hotkeys||{};if(ev.ctrlKey&&keyCode==70)
{if(!window.hotkeys.Ctrl_F)
{ev.preventDefault();if(ev.originalEvent&&$.browser.msie){ev.originalEvent.keyCode=74;}
return false;}}}
var bumsInformerIcons={informerCommentsUnread:{popup:sdfUrlTo('BumsCommonC_Comment','listUnread'),url:sdfUrlTo('BumsTaskC_Task','list'),text:'You have %1% unread comments.'},informerTasksRejected:{popup:sdfUrlTo('BumsCommonC_Informer','tasks',{rejected:1}),url:sdfUrlTo('BumsTaskC_Task','list'),text:'You have %1% rejected tasks.'},informerTasksNew:{popup:sdfUrlTo('BumsCommonC_Informer','tasks',{isNew:1}),url:sdfUrlTo('BumsTaskC_Task','list'),text:'You have %1% new tasks.'},informerNewMessages:{popup:sdfUrlTo('BumsCommonC_Informer','messages'),url:sdfUrlTo('BumsCommonC_Message','list'),text:'You have %1% new messages.'},informerFavorites:{popup:sdfUrlTo('BumsCommonC_Informer','favorites'),text:'You have %1% favorite objects.'}};function bumsInformerIconClick(evt)
{var target=evt.target?evt.target:evt.srcElement;jIcon=$(target);if(!jIcon.is('.informer-icon')){jIcon=jIcon.parents('.informer-icon');}
if(!window.sdfInformerWindow)
{window.sdfInformerWindow=$sdf($('<div class="sdf-wnd sdf-wnd-shadow" style="display:none"></div>').prependTo(document.body).sdf($.sdf.window));window.sdfInformerWindow.setClass('sdf-wnd-bubble wnd-info');window.sdfInformerWindow.maxHeight=300;}
var wnd=window.sdfInformerWindow;wnd.load(bumsInformerIcons[jIcon[0].id].popup);var offset=$(target).offset();wnd.show(offset.left+target.offsetWidth/2+21,20,'br','bottom');wnd.setAutoClose();}
function bumsInformerIconUpdate(Id,Cnt,Relative)
{var jIcon=$('#'+Id);var curCnt=jIcon.length>0?parseInt(jIcon.children('span').text()):0;if(Relative){Cnt=curCnt+Cnt;}
if(Cnt==curCnt){return;}
if(Cnt==0&&jIcon.length>0)
{jIcon.remove();return;}
var text=sdfGetText(bumsInformerIcons[Id].text,Cnt,Cnt);if(jIcon.length==0){jIcon=$('<div id="'+Id+'" onclick="bumsInformerIconClick(event)" class="informer-icon" title="'+text+'" class=""><span>'+Cnt+'</span></div>').appendTo('#informerIcons');}
else
{jIcon.children('span').text(Cnt);jIcon.attr('title',text);if(Cnt>=10){jIcon.addClass('digits2');}}
jIcon.fadeOut('fast').fadeIn('fast').fadeOut('fast').fadeIn('fast').fadeOut('fast').fadeIn('fast').fadeOut('fast').fadeIn('fast');}
var bumsGsearchUrl='';function bumsGsearchPerform()
{if($.trim($('#iSearch .s').val()).length>1)
{bumsInformerSearchWnd.load(bumsGsearchUrl,{qs:$('#iSearch .s').val()},bumsGsearchCallback);offset=$('#iSearch .l').offset();bumsInformerSearchWnd.show(offset.left-15,20,'bl','bottom');}
else
{bumsInformerSearchWnd.hide();$('#iSearch').removeClass('progress');}}
function bumsGsearchCallback()
{$(document).one('click',function(){bumsInformerSearchWnd.hide();});bumsInformerSearchWnd.jBody.find('div a').hover(bumsGsearchResultOver,bumsGsearchResultOut);$('#iSearch').removeClass('progress');bumsInformerSearchWnd.jBody.find('div.no').click(function(){bumsInformerSearchWnd.hide();});}
function bumsGsearchEmptyClose()
{bumsInformerSearchWnd.hide();}
function bumsGsearchClick(evt)
{if(bumsInformerSearchWnd.jEl.is(':visible')){evt.stopPropagation();}}
function bumsGsearchFocus(evt)
{if(bumsInformerSearchWnd.jEl.is(':hidden')&&$.trim($('#iSearch .s').val())!='')
{bumsInformerSearchWnd.show();$(document).one('click',function(){bumsInformerSearchWnd.hide();});}}
function bumsInformerKeydown(evt)
{var keyCode=undefined==evt.which?evt.keyCode:evt.which;if(bumsInformerSearchWnd.$el.is(':visible')&&bumsInformerSearchWnd.jBody.find('div a').length>0)
{if(keyCode==40||keyCode==38)
{var next=(keyCode==40);if(bumsInformerSearchWnd.jBody.find('div a.hover').length)
{var x=bumsInformerSearchWnd.jBody.find('div a.hover');var s=next?x.next():x.prev();if(!s.length)
{s=next?x.parent().parent().next():x.parent().parent().prev();if(s.length){s=next?s.find('a:first-child'):s.find('a:last-child');}}
if(s.length)
{x.removeClass('hover cur');s.addClass('hover cur');}}
else
{var jLinks=bumsInformerSearchWnd.jBody.children('div').children('div').children('div').children('a');if(next){$(jLinks[0]).addClass('hover cur');}
else{$(jLinks[jLinks.length-1]).addClass('hover cur');}}}
else if(keyCode==13)
{var href=bumsInformerSearchWnd.jBody.find('a.cur').attr('href');if(href){document.location.href=href;}
else{document.location.href=$.composeUrl(bumsFullGsearchUrl,{qs:$('#iSearch .s').val()});}}}}
function bumsGsearchResultOver(evt)
{bumsInformerSearchWnd.jBody.find('a.hover').removeClass('hover cur');var a=$(evt.target).is('a')?$(evt.target):$(evt.target).parents('a');a.addClass('hover');}
function bumsGsearchResultOut(evt)
{var a=$(evt.target).is('a.hover')?$(evt.target):$(evt.target).parents('a.hover');a.removeClass('hover');}
function bumsInformerIsLocalChange()
{var s=$('#iSearch .s');if($('#informerSearchIsLocal').attr('checked'))
{if(s.val().length>=2&&!s.is('.inline-hint'))
{if($('#iSearch .l').is('.disabled')){bumsInformerHighlight();}
else{bumsInformerUpdateTable();}}}
else
{if($.trim(s.get(0).value)==s.attr('inline-hint')){s.attr('value','').removeClass('inline-hint');}
s.focus();bumsGsearchPerform();if($('#iSearch .l').is('.disabled')){bumsInformerHighlight('');}
else{bumsInformerUpdateTable('');}}}
var bumsInformerRepaintForSafariCnt=0;var bumsInformerRepaintForSafariIcoFix=null;function bumsInformerRepaintForSafari()
{if(bumsInformerRepaintForSafariCnt==0){bumsInformerRepaintForSafariIcoFix=$('<img src="/i/0.gif" width="1" height="1" alt="" />').appendTo('#informerIcons');}
else if(bumsInformerRepaintForSafariCnt%2==1){bumsInformerRepaintForSafariIcoFix.hide();}
else{bumsInformerRepaintForSafariIcoFix.show();}
bumsInformerRepaintForSafariCnt++;window.setTimeout(bumsInformerRepaintForSafari,1000);}
$(document).ready(function(){bumsSearchInputRegister('iSearch',bumsInformerPerformSearch);$('#iSearch .l').click(bumsInformerLookClick);$(document).keydown(bumsInformerHotKey).keypress(function(Evt){return bumsInformerHotKeyHandleDefault(Evt)});$('#iSearch .s').keydown(bumsInformerKeydown);window.bumsInformerSearchWnd=$sdf($('<div id="qSearchWnd" class="sdf-wnd sdf-wnd-shadow" style="display:none"></div>').prependTo(document.body).sdf($.sdf.window));window.bumsInformerSearchWnd.setClass('sdf-wnd-bubble qsearch-results');if($.browser.safari){window.setTimeout(bumsInformerRepaintForSafari,1000);}});

function sdfFavoriteToggle(Event,El,Cls,Id)
{if(IS_DEMO)
{sdfConfirmDemo('#favoriteDemoNotice',El);var checked=$(El).hasClass('favorite-checked');}
else
{var checked=!$(El).hasClass('favorite-checked');$(El).toggleClass('favorite-checked',checked).attr('title',sdfGetText(checked?'Remove from favorites':'Add to favorites'));$.post(sdfUrlTo('SdfConfC_UserFavorite','set','.json'),{cls:Cls,oid:Id,value:(checked)?1:0});window.bumsInformerIconUpdate&&bumsInformerIconUpdate('informerFavorites',checked?1:-1,true);}
if(Event.stopPropagation){Event.stopPropagation();}
else{Event.cancelBubble=true;}
return checked;};function sdfFavoriteCommentToggle(Event,El,Cls,Id)
{var checked=sdfFavoriteToggle(Event,El,Cls,Id);var $comment=$(El).parents('.comment-item');$comment.toggleClass('comment-favorite',checked);return checked;};

function bumsCommonInitHideableBlocks()
{$('div.hideable-block div.title').click(function(jEvt){$(jEvt.target).parents('div.hideable-block').toggleClass('hidden').toggleClass('shown');})}
function composeMessage(params)
{sdfWindow.setClass('sdf-wnd-shadow');sdfWindow.load(sdfUrlTo(sdfUrlTo('BumsCommonC_Message','compose'),params));sdfWindow.show(200,100);}
function closeActionDiv()
{sdfWindow.hide();}
function updateNewMessages(cnt)
{var html='';if(cnt>0){html=sdfGetText('%1% new',cnt,cnt);}
else{html=sdfGetText('no new');}
if($('#NewMessages').attr('msgCount')<cnt){if(cnt>0){$('#NewMessages').addClass('new');}
$('#NewMessages').html(html);}
$('#NewMessages').attr('msgCount',cnt);}
function mainLayoutOnLoad()
{bumsCommonInitHideableBlocks();window.EM=document.getElementById('EM').offsetWidth/1000;window.em2px=function(val){return Math.round(val*window.EM)};window.px2em=function(val){return Math.round(val/window.EM*1000)/1000};}
function sdfEditFieldName(Evt)
{Evt.stopPropagation();var offset=$(this).offset();var cls=$(this).attr('cls');var fieldName=$(this).attr('field-name');sdfWindow.setClass('sdf-wnd-bubble');sdfWindow.load(sdfUrlTo('SdfAdminC_Service','editFieldName',{cls:cls,field:fieldName}));sdfWindow.show(offset.left,offset.top+40,'tl');return false;}
function sdfEditLangTranslation(Evt)
{Evt.stopPropagation();var offset=$(this).offset();var phrase=$(this).attr('phrase');var file=$(this).attr('file');var n=$(this).attr('n');sdfWindow.setClass('sdf-wnd-bubble');sdfWindow.load(sdfUrlTo('SdfAdminC_Service','editLangTranslation',{phrase:phrase,file:file,n:n}));sdfWindow.show(offset.left,offset.top+40,'tl');return false;}
$(document).ready(mainLayoutOnLoad);

var BUMS_COLUMN_WIDTH=15;var BUMS_DEPARTMENT_WIDTH=13;var BUMS_COLUMNS_COUNT=8;var BUMS_DEPARTMENT_VSPACE=2;function BumsEmployee(El,Dep)
{this.jEl=$(El);this.id=parseInt(this.jEl[0].id.substr(1));this.department=Dep;this.director=this.jEl.attr('director');}
BumsEmployee.prototype={startMove:function(Event)
{var areaAbsPos=this.department.area.jEl.absPos();var elAbsPos=this.jEl.absPos();this.moveStartX=elAbsPos.x-areaAbsPos.x-Event.pageX;this.moveStartY=elAbsPos.y-areaAbsPos.y-Event.pageY;this.startDepartment=this.department;this.lastDepartment=this.department;var me=this;$(document).mouseup(function(evt){me.stopMove(evt)}).mousemove(function(evt){me.doMove(evt);return false;});},doMove:function(Event)
{if(!this.jClone)
{this.jEl.removeClass('emp-head');this.jClone=this.jEl.clone();this.jClone.addClass('emp-clone').appendTo(this.department.area.jEl);this.jClone.wrap('<div class="emp-clone" style="position:absolute;width:'+this.jEl[0].offsetWidth+'px;height:'+this.jEl[0].offsetHeight+'px;"></div>');this.jEl.addClass('emp-hl');this.jStart=$('<div></div>').insertAfter(this.jEl);}
this.setPosition(this.moveStartX+Event.pageX,this.moveStartY+Event.pageY);},stopMove:function(Event)
{$(document).unbind('mousemove').unbind('mouseup');if(this.jClone)
{if(!this.jEl.prev('.emp').length)
{var $oldHead=this.jEl.next('.emp-head');var me=this;sdfDialog(sdfGetText('Do you want to set the employee as department head?'),'yes_no',function(Data){if(Data)
{me.jEl.addClass('emp-head');$oldHead.length&&$oldHead.removeClass('emp-head');}
else{$oldHead.length&&me.jEl.insertAfter($oldHead);}
me.finishMove();});}
else{this.finishMove();}}
this.department.area.setState('');},finishMove:function()
{this.jClone.parent().remove();this.jClone=null;this.jStart.remove();this.jStart=null;this.jEl.removeClass('emp-hl');this.department=this.lastDepartment;this.department.area.saveEmployees();this.department.area.updateSubordination(this);},setPosition:function(X,Y)
{this.jClone.parent().css({left:X+'px',top:Y+'px'});var column=this.department.area.getColumnByX(X);var dep=null;for(var i=0;i<column.departments.length;i++)
{if(column.departments[i].collapsed){continue;}
dep=column.departments[i];if((dep.jEl[0].offsetTop+dep.jEl[0].offsetHeight>=Y)&&(!dep.collapsed)){break;}}
if(dep)
{var jEmployeesDiv=dep.jEl.find('.employees');var employeesDivPos=jEmployeesDiv.absPos();var areaPos=this.department.area.jEl.absPos();var y=employeesDivPos.y;var cloneY=areaPos.y+Y+this.jClone[0].offsetHeight/2;var placed=false;var l=dep.employees.length;for(var i=0;i<l;i++)
{jEmp=dep.employees[i].jEl;if(jEmp[0].id==this.jEl[0].id){continue;}
if(cloneY<(y+jEmp[0].offsetHeight))
{this.jEl.insertBefore(jEmp);placed=true;break;}
y+=jEmp[0].offsetHeight;}
if(!placed)
{this.jEl.appendTo(jEmployeesDiv);placed=true;}
dep.normalize();this.lastDepartment.normalize();this.department.area.arrangeColumn(column);if(column.index!=this.lastDepartment.column){this.department.area.arrangeColumn(this.department.area.columns[this.lastDepartment.column]);}
this.lastDepartment=dep;}}};function BumsDepartment(El,Area)
{this.jEl=$(El);this.area=Area;this.column=parseInt(this.jEl.attr('column'))||0;this.position=parseInt(this.jEl.attr('position'));this.space=parseInt(this.jEl.attr('space'))||0;this.collapsed=this.jEl.is('.collapsed');this.id=parseInt(this.jEl[0].id.substr(1));this.employees=[];var jEmps=this.jEl.find('.emp');var emp=null;for(var i=0;i<jEmps.length;i++)
{emp=new BumsEmployee(jEmps[i],this);this.employees.push(emp);this.area.employees[emp.id]=emp}};BumsDepartment.prototype={startMove:function(Event)
{this.moveStartX=this.jEl[0].offsetLeft-Event.pageX;this.moveStartY=this.jEl[0].offsetTop-Event.pageY;var me=this;$(document).mouseup(function(evt){me.stopMove(evt)}).mousemove(function(evt){me.doMove(evt);return false;});},doMove:function(Event)
{if(!this.jClone)
{this.jClone=this.jEl.clone();this.jClone.addClass('clone').appendTo(this.jEl.parent());this.jEl.addClass('highlight');var column=this.area.columns[this.column];if(column.departments.length-1>this.position)
{prevDepartmentBottom=this.position>0?column.departments[this.position-1].jEl[0].offsetTop+column.departments[this.position-1].jEl[0].offsetHeight:-this.area.vSpace;column.departments[this.position+1].space+=column.departments[this.position].jEl[0].offsetHeight+column.departments[this.position].jEl[0].offsetTop-prevDepartmentBottom;}}
var posX=this.moveStartX+Event.pageX;var posY=this.moveStartY+Event.pageY;this.setClonePosition(posX,posY);this.setPosition(this.jClone[0].offsetLeft,this.jClone[0].offsetTop);},stopMove:function(Event)
{$(document).unbind('mousemove').unbind('mouseup');if(this.jClone)
{this.jClone.remove();this.jClone=null;this.jEl.removeClass('highlight');var departments=this.area.columns[this.column].departments;for(var i=0;i<departments.length-1;i++)
{if(departments[i].id==this.id)
{var next=departments[i+1];next.space=next.jEl[0].offsetTop-this.jEl[0].offsetTop-this.jEl[0].offsetHeight-this.area.vSpace;break;}}
var dep=null;for(var i=0;i<this.area.departments.length;i++){dep=this.area.departments[i];}
this.area.save();this.area.setState('');}},setClonePosition:function(X,Y)
{this.jClone.css({left:X,top:Y});},setPosition:function(X,Y)
{this.area.placeDepartment(this,X,Y);},collapse:function()
{if(this.collapsed)
{this.collapsed=false;this.jEl.removeClass('collapsed');}
else
{this.collapsed=true;this.jEl.addClass('collapsed');}
this.area.arrangeColumn(this.area.columns[this.column]);this.area.save();},initEdit:function()
{if(this.jEdit){return false;}
this.jEl.find('.wnd-head .wnd-title').hide();this.jEdit=$('<input type="text" class="edit-title" />').hide().appendTo(this.jEl.children('.wnd-head')).attr('value',this.jEl.find('.wnd-head .wnd-title span').text());var me=this;this.jEdit.show().focus().select().blur(function(){me.stopEdit();});this.jEdit.keydown(function(evt){if(evt.keyCode==13){me.stopEdit();}
if(evt.keyCode==27){me.stopEdit(false);}});this.jEl.addClass('highlight');},stopEdit:function(Apply)
{if(typeof(Apply)=='undefined'||Apply){this.jEl.find('.wnd-head .wnd-title span').text(this.jEdit.attr('value'));}
this.jEdit.hide();this.jEl.find('.wnd-head .wnd-title').show();this.jEdit.remove();this.jEdit=null;this.jEl.removeClass('highlight');this.area.save();},remove:function()
{if(!window.confirm(sdfGetText('Are you sure want to delete department?'))){return false;}
if(!IS_DEMO){$.postJSON('/BumsStaff/Department/delete.json',{id:this.id});}
var column=this.area.columns[this.column];var departments=[];for(var i=0;i<column.departments.length;i++)
{if(column.departments[i].id!=this.id){departments.push(column.departments[i]);}}
column.departments=departments;for(var i=0;i<this.employees.length;i++){this.employees[i].department=this.area.departments[0];}
this.jEl.find('.emp').removeClass('emp-head').appendTo($('.dep-unallocated .employees'));this.jEl.remove();delete(this.area.departments[this.id]);this.area.arrangeColumn(column);this.area.updateSubordination();},normalize:function(FirstIsHead)
{var employees=[];var jEmps=this.jEl.find('.emp');for(var i=0;i<jEmps.length;i++){employees.push(this.area.employees[parseInt(jEmps[i].id.substr(1))]);}
this.employees=employees;}}
function BumsDepartmentsArea(El)
{this.jEl=$(El);this.jActions=$('#depActions');this.departments={};this.employees={};this.columns={};this.readOnly=false;for(var i=0;i<BUMS_COLUMNS_COUNT;i++){this.columns[i]={left:i*15+'em',index:i,departments:[]};}
this.columns[-1]={left:0,index:-1,departments:[]};this.selectedEmployee=null;this.state='';this.chiefs={};this.subordinates={};this.extraDepartments={};this.realChiefs={};this.realSubordinates={};this.em=0;this.graphs={};var graph=new BumsGraph(this.jEl.children('.graph-chiefs'));graph.directions=['left','right'];graph.shift=[-2,-2];this.graphs['chiefs']=graph;graph=new BumsGraph(this.jEl.children('.graph-subordinates'));graph.directions=['right','left'];graph.shift=[2,2];this.graphs['subordinates']=graph;};BumsDepartmentsArea.prototype={init:function()
{var jDepartments=this.jEl.children('.department');var dep=null;this.jUnit=$('<div style="width:40em; position:absolute;"></div>').appendTo(this.jEl);this.vSpace=this.em2px(BUMS_DEPARTMENT_VSPACE);this.hSpace=this.em2px(BUMS_COLUMN_WIDTH-BUMS_DEPARTMENT_WIDTH);for(var i=0;i<jDepartments.length;i++)
{dep=new BumsDepartment(jDepartments[i],this);dep.area=this;this.departments[dep.id]=dep;this.columns[dep.column].departments.push(dep);}
var jDepUnallocated=$('.dep-unallocated');if(jDepUnallocated.length)
{dep=new BumsDepartment(jDepUnallocated,this);dep.area=this;this.columns[-1].departments[0]=dep;this.departments[0]=dep;}
for(var i in this.columns)
{this.normalizeColumn(this.columns[i]);this.arrangeColumn(this.columns[i]);}
var me=this;this.jEl.add('.dep-unallocated').mousedown(function(evt){return me.mouseDown(evt);});this.jEl.mouseover(function(evt){me.mouseOver(evt);}).mouseout(function(evt){me.mouseOut(evt);});this.jActions.children('.action-chiefs').click(function(evt){me.setState('edit-chiefs');});this.jActions.children('.action-subordinates').click(function(evt){me.setState('edit-subordinates');});this.jActions.children('.cancel').click(function(evt){me.setState('');});this.jActions.children('.action-add-dep').click(function(evt){if(me.state!='edit-chiefs'&&me.state!='edit-subordinates')me.addDepartment();});this.updateSubordination();this.jEl.removeClass('waiting');this.updateAreaHeight();},normalizeColumn:function(Column)
{Column.departments=Column.departments.sort(function(Dep1,Dep2){return Dep1.position-Dep2.position;});for(var i=0;i<Column.departments.length;i++){Column.departments[i].position=i;}},arrangeColumn:function(Column)
{var top=0;var dep=null;if(typeof(Column)!='object'){Column=this.columns[Column];}
for(var i=0;i<Column.departments.length;i++)
{dep=Column.departments[i];top+=dep.space+(top?this.vSpace:0);dep.jEl.css({top:top+'px',left:Column.left});top+=dep.jEl[0].offsetHeight;}},updateAreaHeight:function()
{var max=0;var column=null;var dep=null;var val=0;for(i in this.departments)
{dep=this.departments[i];val=dep.jEl[0].offsetTop+dep.jEl[0].offsetHeight;if(val>max){max=val;}}
this.jEl.css('height',max);},moveToColumn:function(Department,Column,Y)
{var top=0;var dep=null;var departments=[];var placed=false;Y=Math.max(Y,0);var depSpace=0;if(Department.column!=Column.index){this.removeFromColumn(Department);}
for(var i=0;i<Column.departments.length;i++)
{dep=Column.departments[i];depSpace=dep.space;if(dep.id==Department.id){continue;}
if(dep.jEl[0].offsetTop>=Y&&!placed)
{top+=(top?this.vSpace:0);var maxSpace=Math.max(dep.jEl[0].offsetTop-top-this.vSpace-Department.jEl[0].offsetHeight,-0.01);if(maxSpace>=0)
{var space=Math.max(Y-top,0);if(space>maxSpace){space=maxSpace;}
Department.space=space;depSpace=maxSpace-space;}
else{Department.space=0;}
top+=Department.space;Department.jEl.css({top:top+'px',left:Column.left});top+=Department.jEl[0].offsetHeight;departments.push(Department);Department.position=departments.length-1;Department.column=Column.index;placed=true;}
top+=depSpace+(top?this.vSpace:0);dep.jEl.css({top:top+'px',left:Column.left});top+=dep.jEl[0].offsetHeight;departments.push(dep);dep.position=departments.length-1;}
if(!placed)
{var space=Y-top-(top?this.vSpace:0);if(space>0)
{Department.space=space;Department.jEl.css({top:Y+'px',left:Column.left});}
else
{Department.space=0;Department.jEl.css({top:top+(top?this.vSpace:0)+'px',left:Column.left});}
departments.push(Department);Department.column=Column.index;Department.position=departments.length-1;placed=true;}
Column.departments=departments;},removeFromColumn:function(Department)
{var column=this.columns[Department.column];var departments=[];for(var i=0;i<column.departments.length;i++)
{if(column.departments[i].id!=Department.id)
{departments.push(column.departments[i]);departments[departments.length-1].position=departments.length-1;}}
Department.column=-1;Department.position=-1;column.departments=departments;this.arrangeColumn(column);},mouseDown:function(evt)
{if(this.readOnly){return false;}
var jEl=$(evt.target);var action='';var dep=null,emp=null;var jDep=null;var jEmp=null;while(jEl.length>0)
{if(jEl.is('.btn-collapse')){action='collapse';}
if(jEl.is('.btn-edit')){action='edit';}
if(jEl.is('.btn-delete')){action='delete';}
if(!action&&jEl.is('.wnd-head')){action='moveDepartment';}
if(jEl.is('.emp'))
{jEmp=jEl;emp=this.employees[jEmp[0].id.substr(1)];if(!action){action='moveEmployee';}}
if(jEl.is('.department'))
{jDep=jEl;dep=this.departments[jEl[0].id.substr(1)];break;}
if(jEl.is('.wnd-head')&&this.state=='edit-subordinates'){action='selectDepartment';}
jEl=jEl.parent();}
if(jEmp&&dep&&dep.id!=0){if(this.selectedEmployee&&this.selectedEmployee.id==emp.id){this.selectEmployee(null);}
else{this.selectEmployee(emp);}}
if(action=='collapse'){dep.collapse();}
if(action=='edit'){dep.initEdit();}
if(action=='delete'){dep.remove();}
if(action=='moveDepartment'&&this.state!='edit-chiefs'&&this.state!='edit-subordinates')
{this.setState('dep-move');dep.startMove(evt);}
if(action=='moveEmployee'&&this.state!='edit-chiefs'&&this.state!='edit-subordinates')
{this.setState('emp-move');emp.startMove(evt);}
if(action=='selectDepartment'&&!jDep.is('.dep-check-disabled'))
{jDep.toggleClass('dep-checked');jDep.children('.wnd-head').find('.checkbox input').attr('checked',jDep.is('.dep-checked'));}
if(action){return false;}},mouseOver:function(evt)
{var jEl=$(evt.target);if(this.state){return;}
while(jEl.length&&!jEl.is('#departmentsArea'))
{if(jEl.is('.emp'))
{var eId=jEl[0].id.substr(1);if(this.graphFor!=eId)
{this.graphs['subordinates'].clear();this.graphs['chiefs'].clear();this.graphFor=eId;this.showSubordinationLinks(eId);}
return;}
jEl=jEl.parent();}
if(this.graphFor)
{this.graphs['subordinates'].clear();this.graphs['chiefs'].clear();this.graphFor=0;}},mouseOut:function(evt)
{var jEl=$(evt.target);while(jEl.length&&!jEl.is('#departmentsArea'))
{if(jEl.is('.emp'))
{var eId=jEl[0].id.substr(1);if(this.graphFor)
{this.graphs['subordinates'].clear();this.graphs['chiefs'].clear();this.graphFor=0;}
return;}
jEl=jEl.parent();}
if(this.graphFor)
{this.graphs['subordinates'].clear();this.graphs['chiefs'].clear();this.graphFor=0;}},em2px:function(L)
{if(!this.em){this.em=this.jUnit[0].offsetWidth/40;}
return this.em*parseInt(L);},getColumnByX:function(X)
{var columnWidth=this.em2px(BUMS_COLUMN_WIDTH);var columnNum=Math.max(Math.round(X/columnWidth),-1);if(columnNum>=BUMS_COLUMNS_COUNT){columnNum=BUMS_COLUMNS_COUNT-1;}
return this.columns[columnNum];},placeDepartment:function(Department,X,Y)
{this.moveToColumn(Department,this.getColumnByX(X),Y);},save:function()
{if(this.readOnly){return false;}
var dep=null;var data='';for(var i in this.departments)
{dep=this.departments[i];data=data+';'+dep.id+','+dep.jEl.find('.wnd-head .wnd-title span').text()+','+dep.column+','+dep.position+','+dep.space+','+(dep.collapsed?1:0);}
if(!IS_DEMO){$.postJSON('/BumsStaff/Department/saveDiagram.json',{data:data});}},saveEmployees:function()
{if(this.readOnly){return false;}
var dep=null;var data='';var j=0;var employees=[];for(var i in this.departments)
{dep=this.departments[i];employees.length=0;for(j=0;j<dep.employees.length;j++){employees.push(dep.employees[j].id);}
data+=(data&&';'||'')+dep.id+':';if(dep.employees[0]&&dep.employees[0].jEl.is('.emp-head')){data+=dep.employees[0].id;}
data+=':'+employees.join(',');}
if(!IS_DEMO){$.postJSON('/BumsStaff/Department/saveEmployees.json',{data:data});}},selectEmployee:function(Emp)
{if(this.readOnly){return false;}
if(this.state=='edit-chiefs'||this.state=='edit-subordinates')
{if(Emp&&Emp.id!=this.selectedEmployee.id&&!Emp.jEl.is('.emp-check-disabled'))
{Emp.jEl.toggleClass('emp-checked');Emp.jEl.find('.checkbox input').attr('checked',Emp.jEl.is('.emp-checked'));}
return;}
if(this.selectedEmployee){this.selectedEmployee.jEl.removeClass('emp-hl');}
if(Emp)
{Emp.jEl.addClass('emp-hl');this.jActions.addClass('emp-selected');}
else{this.jActions.removeClass('emp-selected');}
this.selectedEmployee=Emp;if(Emp&&Emp.director){this.jActions.addClass('director-selected');}
else{this.jActions.removeClass('director-selected');}},setState:function(State)
{if(this.state==State||(State=='edit-chiefs'&&(!this.selectedEmployee||this.selectedEmployee.director))||(State=='edit-subordinates'&&(!this.selectedEmployee||this.selectedEmployee.director))){return;}
if(this.state)
{if(this.state=='edit-chiefs'||this.state=='edit-subordinates')
{this.saveSubordination();if(this.jExtraCancel)
{this.jExtraCancel.remove();this.jExtraCancel=null;}
this.arrangeColumn(this.columns[this.selectedEmployee.department.column]);}
this.jEl.removeClass(this.state);this.jActions.removeClass(this.state);this.state='';}
if(State)
{if(this.graphFor)
{this.graphs['subordinates'].clear();this.graphs['chiefs'].clear();this.graphFor=0;}
this.state=State;this.jEl.addClass(this.state);this.jActions.addClass(this.state);me=this;if(this.selectedEmployee){var eId=this.selectedEmployee.id;}
if(this.state=='edit-chiefs')
{this.fillCheckboxes(this.chiefs[eId],this.realSubordinates[eId]);this.jExtraCancel=this.jActions.children('.cancel').clone().insertAfter(this.selectedEmployee.jEl).click(function(evt){me.setState('');});this.arrangeColumn(this.columns[this.selectedEmployee.department.column]);}
if(this.state=='edit-subordinates')
{var depsDisabled={};depsDisabled[this.selectedEmployee.department.id]=1;for(var i in this.realChiefs[eId]){depsDisabled[this.employees[i].department.id]=1;}
this.fillCheckboxes(this.subordinates[eId],this.realChiefs[eId],this.extraDepartments[eId],depsDisabled);this.jExtraCancel=this.jActions.children('.cancel').clone().insertAfter(this.selectedEmployee.jEl).click(function(evt){me.setState('');});this.arrangeColumn(this.columns[this.selectedEmployee.department.column]);}}
this.updateAreaHeight();},fillCheckboxes:function(EmpsChecked,EmpsDisabled,DepsChecked,DepsDisabled)
{var jDepartments=this.jEl.find('.department');var jEmps=this.jEl.find('.emp');jDepartments.removeClass('dep-checked');jDepartments.find('.checkbox input').attr('checked',false);jEmps.removeClass('emp-checked').removeClass('emp-check-disabled');jEmps.find('.checkbox input').attr('checked',false).attr('disabled',false);for(var i in EmpsChecked)
{$('#e'+i).find('.checkbox input').attr('checked',true);$('#e'+i).addClass('emp-checked');}
for(i in EmpsDisabled){$('#e'+i).addClass('emp-check-disabled').find('.checkbox input').attr('disabled',true);}
for(i in DepsChecked)
{$('#d'+i).find('.wnd-head .checkbox input').attr('checked',true);$('#d'+i).addClass('dep-checked');}
for(i in DepsDisabled){$('#d'+i).addClass('dep-check-disabled').find('.wnd-head .checkbox input').attr('disabled',true);}},saveSubordination:function()
{if(this.readOnly){return false;}
var jChecked=this.jEl.find('.emp:has(.checkbox input[checked])');var emps={};for(var i=0;i<jChecked.length;i++){emps[jChecked[i].id.substr(1)]=1;}
var jChecked=this.jEl.find('.department:has(.wnd-head .checkbox input[checked])');var deps={};for(var i=0;i<jChecked.length;i++){deps[jChecked[i].id.substr(1)]=1;}
if(this.state=='edit-chiefs')
{this.chiefs[this.selectedEmployee.id]=emps;this.subordinates=this.mirrorSubordination(this.chiefs);}
if(this.state=='edit-subordinates')
{this.subordinates[this.selectedEmployee.id]=emps;this.chiefs=this.mirrorSubordination(this.subordinates);this.extraDepartments[this.selectedEmployee.id]=deps;}
this.updateSubordination();var data='';var saved={};for(var i in this.chiefs)
{data=data+';'+i+':'+sdfObjectJoinKeys(this.chiefs[i],',')+':'+sdfObjectJoinKeys(this.extraDepartments[i],',');saved[i]=1;}
for(var i in this.extraDepartments)
{if(!saved[i]){data=data+';'+i+'::'+sdfObjectJoinKeys(this.extraDepartments[i],',');}}
if(!IS_DEMO){$.postJSON('/BumsStaff/Department/saveSubordination.json',{data:data});}},cancelEdit:function(JEvt)
{this.setState('');},setChiefs:function(Chiefs)
{var i,j;this.chiefs={};for(i in Chiefs)
{this.chiefs[i]={};for(j=0;j<Chiefs[i].length;j++){this.chiefs[i][Chiefs[i][j]]=1;}}
this.subordinates=this.mirrorSubordination(this.chiefs);},setExtraDepartments:function(Departments)
{var i,j;this.extraDepartments={};for(i in Departments)
{this.extraDepartments[i]={};for(j=0;j<Departments[i].length;j++){this.extraDepartments[i][Departments[i][j]]=1;}}},mirrorSubordination:function(Arr)
{var k=0;var i=0;var j=0;var mirror={};for(i in Arr)
{for(j in Arr[i])
{if(!mirror[j]){mirror[j]={};}
mirror[j][parseInt(i)]=1;}}
return mirror;},updateSubordination:function(Employee)
{var i,j;var jEmps=null;var depEmployees={};var dep=null;var myDeps={};var subordinates={};var directors=[];var allExceptDirectors={};for(i in this.employees)
{subordinates[i]={};if(this.employees[i].department.id==0){continue;}
if(this.employees[i].director){directors.push(i);}
else{allExceptDirectors[i]=1;}}
for(i in this.departments)
{dep=this.departments[i];depEmployees[dep.id]={};for(j=0;j<dep.employees.length;j++)
{if(!dep.employees[j].director){depEmployees[dep.id][dep.employees[j].id]=1;}}
if(dep.id!=0&&dep.employees.length>0&&dep.employees[0].jEl.is('.emp-head'))
{myDeps[dep.employees[0].id]={};myDeps[dep.employees[0].id][dep.id]=1;}}
this.extend(subordinates,this.subordinates);for(i=0;i<directors.length;i++){this.extend(subordinates[directors[i]],allExceptDirectors);}
this.extend(myDeps,this.extraDepartments);for(i in myDeps)
{for(j in myDeps[i]){subordinates[i]&&this.extend(subordinates[i],depEmployees[j]);}}
this.applyTransitivity(subordinates);this.realSubordinates=subordinates;this.realChiefs=this.mirrorSubordination(subordinates);if(Employee){this.fixSubordination(Employee);}},fixSubordination:function(Employee)
{var i,j;var changedChiefs=false,changedSubordinates=false;for(i in this.subordinates[Employee.id])
{if(this.realChiefs[Employee.id]&&this.realChiefs[Employee.id][i])
{changedSubordinates=true;delete(this.subordinates[Employee.id][i]);}}
if(changedSubordinates){this.chiefs=this.mirrorSubordination(this.subordinates);}
for(i in this.chiefs[Employee.id])
{if(this.realSubordinates[Employee.id][i])
{changedChiefs=true;delete(this.chiefs[Employee.id][i]);}}
if(changedChiefs){this.subordinates=this.mirrorSubordination(this.chiefs);}
if(changedChiefs||changedSubordinates){this.updateSubordination();}},extend:function(Target,Source)
{for(var i in Source)
{if(typeof(Source[i])=='object')
{if(!Target[i]){Target[i]={};}
this.extend(Target[i],Source[i]);}
else{Target[i]=Source[i];}}},showLinks:function(LinkFrom,LinksTo,Graph)
{var employees={};var averagePos=0;var minColumn=1000;var maxColumn=0
var jEl=null;var jDep=null;var dep=null;var column=null;LinksTo[LinkFrom]={};var linksCount=0;for(var i in LinksTo)
{jEl=$(i);jDep=jEl;while(jDep.length&&!jDep.is('.department')){jDep=jDep.parent();}
if(!jDep.length||!jEl.is(':visible'))
{delete(LinksTo[i]);continue;}
dep=this.departments[jDep[0].id.substr(1)];if(!dep||dep.id==0)
{delete(LinksTo[i]);continue;}
linksCount++;LinksTo[i].column=this.columns[dep.column];LinksTo[i].pos=jDep[0].offsetTop+jEl[0].offsetTop+jEl[0].offsetHeight/2;averagePos+=LinksTo[i].pos;if((i==LinkFrom&&Graph.directions[0]=='right')||(i!=LinkFrom&&Graph.directions[1]=='right'))
{minColumn=Math.min(minColumn,LinksTo[i].column.index+1);maxColumn=Math.max(maxColumn,LinksTo[i].column.index+1);}
else
{minColumn=Math.min(minColumn,LinksTo[i].column.index);maxColumn=Math.max(maxColumn,LinksTo[i].column.index);}}
if(linksCount<2){return false;}
averagePos=averagePos/linksCount;var j=0;var minDiff=100000;var bestPos=-1;var baseLine={};var top=0;var bottom=0;var columnWidth=this.em2px(BUMS_COLUMN_WIDTH);var vertex=null;Graph.clear();for(i=minColumn;i<maxColumn;i++)
{column=this.columns[i];minDiff=100000;var spaces=[];if(column.departments.length>0||i==minColumn)
{bottom=0;for(j=0;j<column.departments.length;j++)
{dep=column.departments[j];top=dep.jEl[0].offsetTop-this.vSpace/2;spaces.push([j==0?0:bottom,top]);bottom=top+dep.jEl[0].offsetHeight+this.vSpace;}
spaces.push([bottom,100000]);if(i==minColumn||(bestPos<bottom&&bestPos>spaces[0][1]))
{for(j=0;j<spaces.length;j++)
{if(spaces[j][1]>=averagePos)
{if(spaces[j][0]<=averagePos){bestPos=averagePos;}
else
{if(averagePos-spaces[j-1][1]>spaces[j][0]-averagePos){bestPos=spaces[j][0];}
else{bestPos=spaces[j-1][1];}}
break;}}}}
vertex=Graph.addVertex(this.em2px(column.left)-this.hSpace/2,bestPos,vertex);vertex=Graph.addVertex(this.em2px(column.left)-this.hSpace/2+columnWidth,bestPos,vertex);}
var root=null;for(i in LinksTo)
{if((i==LinkFrom&&Graph.directions[0]=='right')||(i!=LinkFrom&&Graph.directions[1]=='right'))
{x=this.em2px(LinksTo[i].column.left)+columnWidth-this.hSpace/2;vertex=Graph.addVertex(x,LinksTo[i].pos);vertex=Graph.addVertex(x-25,LinksTo[i].pos,vertex);Graph.addIcon(x-25,LinksTo[i].pos,'arrow');}
else
{x=this.em2px(LinksTo[i].column.left)-this.hSpace/2;vertex=Graph.addVertex(x,LinksTo[i].pos);vertex=Graph.addVertex(x+20,LinksTo[i].pos,vertex);Graph.addIcon(x+19,LinksTo[i].pos,'arrow');}
if(i==LinkFrom){root=vertex;}}
if(root)
{Graph.setRoot(root);Graph.draw();}},showSubordinationLinks:function(EmployeeId)
{var linkFrom='#e'+EmployeeId;var linksTo=null;var i=0;if(this.realChiefs[EmployeeId])
{linksTo={};for(i in this.realChiefs[EmployeeId]){linksTo['#e'+i]={};}
this.showLinks(linkFrom,linksTo,this.graphs['chiefs']);}
if(this.realSubordinates[EmployeeId]||this.extraDepartments[EmployeeId])
{linksTo={};for(i in this.realSubordinates[EmployeeId]){linksTo['#e'+i]={};}
this.showLinks(linkFrom,linksTo,this.graphs['subordinates']);}},addDepartment:function()
{if(this.readOnly){return false;}
var offsetEl=this.jEl.offset();var offsetAddDep=this.jActions.children('.action-add-dep').offset();var column=this.getColumnByX(offsetAddDep.left-offsetEl.left);var me=this;if(IS_DEMO)
{json=new Object();json.depId=2000000+Math.round(10000*Math.random());json.depName='Новый отдел';var html='<div class="wnd department" column="0" position="100" space="0" oid="'+json.depId+'" id="d'+json.depId+'" >';html+='<div class="wnd-head"><div class="btns"><div class="btn-delete"></div><div class="btn-edit"></div><div class="btn-collapse"></div></div>';html+='<div class="wnd-title" id="dt'+json.depId+'"><div class="checkbox"><input type="checkbox" onclick="return false" /></div>';html+='<span>'+json.depName+'</span>';html+='</div></div>';html+='<div class="wnd-body"><div class="employees"></div></div>';html+='<div class="wnd-t"></div><div class="wnd-r"></div><div class="wnd-br"></div><div class="wnd-b"></div><div class="wnd-bl"></div><div class="wnd-l"></div>';html+='</div>';var jDep=$(html).appendTo(me.jEl);var dep=new BumsDepartment(jDep);dep.area=me;var departments=[dep];dep.column=column.index;for(var i=0;i<column.departments.length;i++)
{departments.push(column.departments[i]);column.departments[i].position=i+1;}
column.departments=departments;me.departments[dep.id]=dep;me.arrangeColumn(column);document.scrollTop=document.scrollHeight;dep.initEdit();return false;}
$.postJSON('/BumsStaff/Department/add.json',function(json){if(!json.depId){return false;}
var html='<div class="wnd department" column="0" position="100" space="0" oid="'+json.depId+'" id="d'+json.depId+'" >';html+='<div class="wnd-head"><div class="btns"><div class="btn-delete"></div><div class="btn-edit"></div><div class="btn-collapse"></div></div>';html+='<div class="wnd-title" id="dt'+json.depId+'">';html+='<span>'+json.depName+'</span>';html+='</div><div class="checkbox"><input type="checkbox" onclick="return false" /></div></div>';html+='<div class="wnd-body"><div class="employees"></div></div>';html+='<div class="wnd-t"></div><div class="wnd-r"></div><div class="wnd-br"></div><div class="wnd-b"></div><div class="wnd-bl"></div><div class="wnd-l"></div>';html+='</div>';var jDep=$(html).appendTo(me.jEl);var dep=new BumsDepartment(jDep);dep.area=me;var departments=[dep];dep.column=column.index;for(var i=0;i<column.departments.length;i++)
{departments.push(column.departments[i]);column.departments[i].position=i+1;}
column.departments=departments;me.departments[dep.id]=dep;me.arrangeColumn(column);document.scrollTop=document.scrollHeight;dep.initEdit();});},applyTransitivity:function(Arr)
{var changed=true;var a,b,c;while(changed)
{changed=false;for(a in Arr)
{for(b in Arr[a])
{if(Arr[b])
{for(c in Arr[b])
{if(!Arr[a][c])
{Arr[a][c]=1;changed=true;}}}}}}},setReadOnly:function()
{this.readOnly=true;this.jEl.addClass('read-only');this.jActions.addClass('read-only');}}
function BumsGraph(El)
{this.jEl=$(El);this.graph=[];this.icons=[];this.border=2;this.shift=[0,0];this.className='subordinates';this.html='';}
BumsGraph.prototype={addVertex:function(X,Y,Parent)
{X=Math.round(X);Y=Math.round(Y);for(var i=this.graph.length-1;i>=0;i--)
{if(this.graph[i].x==X&&this.graph[i].y==Y){return this.graph[i];}}
var newVertex={i:this.graph.length,x:X,y:Y,parent:null};this.graph.push(newVertex);if(this.graph.length==0){return newVertex;}
var minDistance=-1;if(typeof(Parent)=='undefined'||!Parent)
{var distance=0;for(var i=this.graph.length-2;i>=0;i--)
{if(this.graph[i].x==X)
{if(this.graph[i].parent&&this.graph[i].parent.x==X&&(this.graph[i].parent.y-Y)*(this.graph[i].y-Y)<=0)
{newVertex.parent=this.graph[i].parent;this.graph[i].parent=newVertex;break;}
distance=Math.abs(Y-this.graph[i].y);}
else if(this.graph[i].y==Y)
{if(this.graph[i].parent&&this.graph[i].parent.y==Y&&(this.graph[i].parent.x-X)*(this.graph[i].x-X)<=0)
{newVertex.parent=this.graph[i].parent;this.graph[i].parent=newVertex;break;}
distance=Math.abs(X-this.graph[i].x);}
else{continue;}
if(minDistance<0||distance<minDistance)
{minDistance=distance;newVertex.parent=this.graph[i];}}}
else{newVertex.parent=Parent;}
return newVertex;},draw:function()
{for(var i=this.graph.length-1;i>=0;i--){this.connectVertex(this.graph[i]);}
this.drawIcons();this.jEl.html(this.html);},clear:function()
{this.jEl.empty();this.html='';this.graph.length=0;this.icons.length=0;},connectVertex:function(Vertex)
{Vertex.connected=true;if(!Vertex.parent){return;}
var parent1=Vertex.parent;var parent2=Vertex.parent.parent;if(!parent2)
{if(Vertex.x==parent1.x)
{if(Vertex.y>parent1.y){this.drawLine(Vertex.x,Vertex.y-this.border,parent1.x,parent1.y);}
else{this.drawLine(Vertex.x,Vertex.y+this.border,parent1.x,parent1.y);}}
else if(Vertex.y==parent1.y)
{if(Vertex.x>parent1.x){this.drawLine(Vertex.x-this.border,Vertex.y,parent1.x,parent1.y);}
else{this.drawLine(Vertex.x+this.border,Vertex.y,parent1.x,parent1.y);}}
return;}
if(Vertex.x==parent1.x&&parent1.x==parent2.x)
{if(Vertex.y>parent1.y&&Vertex.y>parent2.y){this.drawLine(Vertex.x,Vertex.y-this.border,parent1.x,parent1.y-this.border);}
else if(Vertex.y<parent1.y&&Vertex.y<parent2.y){this.drawLine(Vertex.x,Vertex.y+this.border,parent1.x,parent1.y+this.border);}
return;}
if(Vertex.y==parent1.y&&parent1.y==parent2.y)
{if(Vertex.x>parent1.x&&Vertex.x>parent1.x){this.drawLine(Vertex.x-this.border,Vertex.y,parent1.x-this.border,parent1.y);}
else if(Vertex.x<parent1.x&&Vertex.x<parent1.x){this.drawLine(Vertex.x+this.border,Vertex.y,parent1.x+this.border,parent1.y);}
return;}
if(Vertex.x==parent1.x)
{if(Vertex.y>parent1.y)
{this.drawLine(Vertex.x,Vertex.y-this.border,parent1.x,parent1.y+this.border);this.drawCorner(parent1.x,parent1.y,parent1.x>parent2.x?4:3);}
else
{this.drawLine(Vertex.x,Vertex.y+this.border,parent1.x,parent1.y-this.border);this.drawCorner(parent1.x,parent1.y,parent1.x>parent2.x?1:2);}
return;}
else if(Vertex.y==parent1.y)
{if(Vertex.x>parent1.x)
{this.drawLine(Vertex.x-this.border,Vertex.y,parent1.x+this.border,parent1.y);this.drawCorner(parent1.x,parent1.y,parent1.y>parent2.y?2:3);}
else
{this.drawLine(Vertex.x+this.border,Vertex.y,parent1.x-this.border,parent1.y);this.drawCorner(parent1.x,parent1.y,parent1.y>parent2.y?1:4);}
return;}},drawLine:function(X1,Y1,X2,Y2)
{if(X2<X1){var tmp=X2;X2=X1;X1=tmp;}
if(Y2<Y1){var tmp=Y2;Y2=Y1;Y1=tmp;}
if(X1==X2){this.html+='<div class="'+this.className+'" style="border-left-width:1px; width:1px; left:'+(X1+this.shift[0])+'px; top:'+(Y1+this.shift[1])+'px; height:'+(Y2-Y1+1)+'px"></div>';}
else if(Y1==Y2){this.html+='<div class="'+this.className+'" style="border-top-width:1px; height:1px; left:'+(X1+this.shift[0])+'px; top:'+(Y1+this.shift[1])+'px; width:'+(X2-X1+1)+'px"></div>';}
else{alert('Big Bara Boom: draw line which is not vertical or horizontal');}},drawCorner:function(X,Y,Sector)
{if(Sector==1)
{var left=X-1+this.shift[0];var top=Y-1+this.shift[1];}
else if(Sector==2)
{var left=X+1+this.shift[0];var top=Y-1+this.shift[1];}
else if(Sector==3)
{var left=X+1+this.shift[0];var top=Y+1+this.shift[1];}
else if(Sector==4)
{var left=X-1+this.shift[0];var top=Y+1+this.shift[1];}
else
{alert('Big Bara Boom: wrong sector number: '+Sector);return false;}
this.html+='<div class="'+this.className+'" style="border-top-width:1px; width:1px; height:1px; left:'+left+'px; top:'+top+'px"></div>';},setRoot:function(Vertex)
{var newGraph=[];var v=Vertex;v.newParent=null;while(v)
{newGraph.push(v);if(v.parent&&!v.parent.newParent)
{v.parent.newParent=v;v=v.parent;}
else{v=null;}}
for(var i=0;i<this.graph.length;i++)
{if(typeof(this.graph[i].newParent)!='undefined')
{this.graph[i].parent=this.graph[i].newParent;this.graph[i].i=i;delete(this.graph[i].newParent);}
else{newGraph.push(this.graph[i]);}}
this.graph=newGraph;},addIcon:function(X,Y,ClassName)
{this.icons.push([X,Y,ClassName]);},drawIcons:function()
{var left=0;var top=0;for(var i=0;i<this.icons.length;i++)
{left=Math.round(this.icons[i][0]+this.shift[0]);top=Math.round(this.icons[i][1]-5+this.shift[1]);this.html+='<div class="'+this.icons[i][2]+'" style="left:'+left+'px; top:'+top+'px"></div>';}}};

(function($){$.bums=$.bums||{};var bums=$.bums,btn;bums.btn=$.sdf.extend({__construct:function(el,protect)
{if(this.parentCall('constructor',arguments)===false)return false;this.focused=false;this.disabled=false;this.multiClickProtection=protect||true;this.$el.sdfHandle('click','mousedown','hover');this.bindElement('input','input',this.$el).sdfHandle('focus','blur','click');this.type=this.$input.attr('type').toLowerCase();if(this.type=='submit'){this.initOwnForm();}
btn.all.push(this);},initOwnForm:function()
{if(!this.$form)
{this.$form=this.$input.parents('form');this.$form.sdfHandle(['submit',{obj:this}]);}
if(!this.form)
{this.form=$sdf(this.$form);if(this.form)
{this.form.bindObj('fail',this,'formFail');this.form.bindObj('disable',this,'formDisable');this.form.bindObj('enable',this,'formEnable');}}},onFormFail:function()
{if(this.multiClickProtection)
{var x=this;window.setTimeout(function(){x.endProgress()},200);}},onFormDisable:function()
{this.disable();},onFormEnable:function()
{this.enable();},onClick:function(evt,el)
{$(document).click();if(!this.disabled)
{if(el!==this.input){this.$input.click();}
else
{this.trigger('click');if('submit'==this.type)
{evt.preventDefault();this.$input.parents('form').submit();}
else
{if(this.multiClickProtection){this.startProgress();}}}
evt.stopPropagation();}},onSubmit:function(Evt)
{if(this.multiClickProtection)
{if(this.disabled)
{if(!this.form)
{Evt.preventDefault();return false;}}
else{this.startProgress();}}},onMousedown:function(evt)
{var i;for(i=0;i<bums.btn.all.length;i++)
{if(bums.btn.all[i].focused)
{bums.btn.all[i].onBlur();break;}}
if(!this.disabled)
{this.onFocus();$(document).one('mouseup',{obj:this},$.sdf.handle);}
if(this.focused){this.preventBlur=true;}
evt.stopPropagation();evt.preventDefault();},onMouseup:function()
{this.preventBlur=false;this.focus();},onFocus:function()
{this.focused=true;this.$el.find('tr').addClass('focused');},onBlur:function()
{if(!this.preventBlur)
{this.focused=false;this.$el.find('tr').removeClass('focused');}
else{this.preventBlur=false;}},onMouseover:function()
{this.$el.find('tr').addClass('hover');},onMouseout:function()
{this.$el.find('tr').removeClass('hover');},focus:function()
{try{this.$input.focus();}
catch(e){}},disable:function()
{this.disabled=true;this.$input.attr('disabled','true');this.preventBlur=false;this.onBlur();this.$el.find('tr').addClass('disabled');},enable:function()
{this.$el.find('tr').removeClass('disabled');this.$input.removeAttr('disabled');this.disabled=false;},startProgress:function()
{this.disable();this.$el.find('tbody').addClass('progress');},endProgress:function()
{this.$el.find('tbody').removeClass('progress');this.enable();}},{all:[],cleanLeacks:function()
{var i;for(i=0;i<btn.all.length;i++){btn.all[i]=null;}
btn.all=null;}});btn=bums.btn;if($.browser.msie&&$.browser.version.indexOf('6.')!==-1){$(window).bind("unload",btn.cleanLeacks);}
$(document).ready(function(){$('.bums-btn').sdf(btn);});})(jQuery);

var bumsSearchInputTimeoutId=0;var bumsSearchInput=[];function bumsSearchInputRegister(id,handler,timeout)
{handler=handler||null;timeout=timeout||500;var sid=bumsSearchInput.length;$('#'+id).attr('sid',sid);bumsSearchInput[sid]={id:id,perform:function()
{var s=$('#'+this.id+' .s');if(this.prevValue!=s.val()&&!s.is('.inline-hint')&&this.handle)
{$('#'+this.id).addClass('progress');this.handle();}
this.prevValue=null;},handle:handler,timeout:timeout,prevValue:null};}
function bumsSearchInputDown(evt)
{if(bumsSearchInputTimeoutId!=0){clearTimeout(bumsSearchInputTimeoutId);}
var sid=parseInt($(evt.target).parents('.search').attr('sid'));bumsSearchInputTimeoutId=setTimeout('bumsSearchInput['+sid+'].perform()',bumsSearchInput[sid].timeout);if(bumsSearchInput[sid].prevValue==null){bumsSearchInput[sid].prevValue=evt.target.value;}
if($.browser.opera&&(evt.keyCode==8||evt.keyCode==46)){bumsSearchInput[sid].prevValue+='x';}}
function bumsSearchInputUp(evt)
{if($.trim(evt.target.value)!=''&&!$(evt.target).is('.inline-hint')){$(evt.target).parents('.search').addClass('nempty');}
else{$(evt.target).parents('.search').removeClass('nempty');}}
function bumsSearchInputLClick(evt)
{$(evt.target).parents('.search').find('.s').focus();}
function bumsSearchInputROver(evt){$(evt.target).addClass('hover');}
function bumsSearchInputROut(evt){$(evt.target).removeClass('hover');}
function bumsSearchInputRClick(evt)
{var sid=parseInt($(evt.target).parents('.search').attr('sid'));var s=$(evt.target).parents('.search').find('.s');s.focus();var si=s.get(0);if($.trim(si.value)!='')
{si.value='';bumsSearchInput[sid].perform();$(evt.target).parents('.search').removeClass('nempty');}}
$(document).ready(function(){$('.search div.l').click(bumsSearchInputLClick);$('.search input.s').keydown(bumsSearchInputDown).keyup(bumsSearchInputUp);$('.search div.r').mouseover(bumsSearchInputROver).mouseout(bumsSearchInputROut).click(bumsSearchInputRClick);});

function bumsFgsearchCallback()
{$('.p2-main .sidebar .s-cats').remove();$('#fgsResults .s-cats').prependTo('.p2-main .sidebar').show();$('#fgsResults .extra').hide();$('#fgsResults .show-more').add('#fgsResults .show-less').click(bumsFgsearchShowMore);$('#fgsResults div h2').click(function(evt){$(evt.target.parentNode).toggleClass('collapsed');});}
function bumsFgsearchFilterCat(el)
{if(!$(el).is('.cur'))
{var typeId=el.getAttribute('typeid');$('.sidebar .s-cats .cur').removeClass('cur');$(el).addClass('cur');if(0==typeId){$('#fgsResults>div').show();}
else
{$('#fgsResults>div[typeid='+typeId+']').show();$('#fgsResults>div[typeid!='+typeId+']').hide();}}
return false;}
function bumsFgsearchShowMore(evt)
{var jParent=$(evt.target).parent('div');jParent.find('.show-more').toggle();jParent.find('.show-less').toggle();jParent.find('.show-all').toggle();jParent.find('.extra').toggle();}
function bumsFgsearchKeydown(evt)
{var keyCode=undefined==evt.which?evt.keyCode:evt.which;if(13==keyCode&&$.trim(evt.target.value)!=''){evt.target.form.submit();}}

mainMenuMover={menuId:'menuMain',menuLineId:'menu-line',menuSpacerId:'menuMainSpacer',moveMenuDelay:300,moveMenuTimeout:null,menuOutDelay:500,menuOutTimeout:null,menu:null,menuLine:null,menuLineInitialOffsetTop:null,menuLineInitialOffsetBottom:null,canMoveMenu:false,menuMoved:false,init:function()
{this.menuLine=$('#'+this.menuLineId);this.menu=$('#'+this.menuId);this.setMenuSpacerParams();this.menuLineInitialOffsetTop=this.getMenuLineOffsetTop();this.menuLineInitialOffsetBottom=this.menuLineInitialOffsetTop+$(this.menuLine).height();$(window).scroll(function(){setTimeout(function(){mainMenuMover.onScroll();},10);});if($.browser.msie)
{setTimeout(function(){mainMenuMover.onScroll();},300);}
else
{mainMenuMover.onScroll();}
$('#'+this.menuLineId).hover(function(){mainMenuMover.overLine();},function(){mainMenuMover.outLine();});},setMenuSpacerParams:function()
{$('#'+this.menuSpacerId).css('height',$(this.menu).height());},onScroll:function()
{var windowScrollTop=this.getScrollTop();this.setCanMoveMenu(windowScrollTop);if(this.checkLineCanMove(windowScrollTop))
{this.setMenuLineTop('check');$(this.menuLine).addClass('fixed');}
if(this.checkMenuLineUpper(windowScrollTop))
{$(this.menuLine).removeClass('fixed');this.setMenuLineTop('');}
if(this.needFixBugFastScroll()){this.setMenuLineTop(0);}
this.setCanMoveMenu(windowScrollTop);},overLine:function()
{this.moveMenuTimeout=setTimeout(function(){mainMenuMover.moveMenu2Line();},this.moveMenuDelay);},outLine:function()
{if(this.moveMenuTimeout){clearTimeout(this.moveMenuTimeout);}},moveMenu2Line:function()
{if(this.canMoveMenu&&!this.menuMoved)
{clearTimeout(this.moveMenuTimeout);this.menuMoved=true;this.setMenuLineTop(this.menuLineInitialOffsetTop);$(this.menuLine).addClass('fixed');$(this.menu).hide();$(this.menu).addClass('fixed');$(this.menu).animate({height:'show'},100);$(this.menu).bind('mouseleave',mainMenuMover.tryMoveMenuBack);}},moveMenuBack:function()
{clearTimeout(this.menuOutTimeout);this.menuOutTimeout=null;$(this.menu).unbind('mouseleave',mainMenuMover.tryMoveMenuBack);this.menuMoved=false;this.setMenuTop(0);$(this.menu).show();$(this.menu).removeClass('fixed');this.setMenuLineTop('check');if(this.checkMenuLineUpper(this.getScrollTop()))
{$(this.menuLine).removeClass('fixed');this.setMenuLineTop('');}},tryMoveMenuBack:function()
{if(!mainMenuMover.menuOutTimeout)
{mainMenuMover.menuOutTimeout=setTimeout(function(){$(mainMenuMover.menu).animate({height:'hide'},100,null,function(){mainMenuMover.moveMenuBack();});},mainMenuMover.menuOutDelay);$(mainMenuMover.menu).unbind('mouseenter');$(mainMenuMover.menu).bind('mouseenter',function(){clearTimeout(mainMenuMover.menuOutTimeout);mainMenuMover.menuOutTimeout=null;});}},checkMenuLineUpper:function(windowScrollTop)
{if(this.menuMoved&&windowScrollTop>0)
{return false;}
if(windowScrollTop<parseInt(this.menuLineInitialOffsetTop)){return true;}
return false;},checkLineCanMove:function(windowScrollTop)
{var menuLineTop=this.getMenuLineOffsetTop();if(this.menuMoved){return true;}
if(menuLineTop<windowScrollTop){return true;}
if((menuLineTop>windowScrollTop)&&(menuLineTop>this.menuLineInitialOffsetTop)){return true;}
return false;},getMenuLineTop:function()
{return parseInt(this.menuLine.css('top'));},getMenuLineOffsetTop:function()
{return this.menuLine.offset().top;},setMenuLineTop:function(top)
{if(top!='check'){this.setTop(this.menuLine,top);return;}
if(this.menuMoved||!this.canMoveMenu){this.setMenuLineTop('');}
else{this.setMenuLineTop(0);}},setMenuTop:function(top)
{this.setTop(this.menu,top);},setTop:function(obj,top)
{$(obj).css({'top':top});},getScrollTop:function()
{return $(window).scrollTop();},setCanMoveMenu:function(windowScrollTop)
{if(windowScrollTop>0){this.canMoveMenu=true;}
else{this.canMoveMenu=false;}},needFixBugFastScroll:function()
{if(parseInt(this.menuLine.css('top'))>0&&!this.menuMoved&&parseInt(this.getScrollTop())>this.menuLineInitialOffsetTop){return true;}
return false;}};
