/* base.js (87%) */
String.prototype.namespace=function(){this.split('.').inject(window,function(parent,child){return(parent[child]=parent[child]||{});});}

/* uploader.js (84%) */
'Controls'.namespace();Controls.Uploader=Class.create({initialize:function(element,url,field,session,options){this.element=$(element);this.url=url;this.field=field;this.session=session;this.options=Object.extend({selectId:this.element.id+'_selectFiles',allowMultipleFiles:true,simUploadLimit:2,fileFilters:[{description:'All Files',extensions:'*.*'}]},options||{});this.fileList=new Hash();this.totalSize=0;this.totalProgress=0;this.overlayElement=new Element('div',{id:this.element.id+'_overlay'});this.overlayElement.setStyle({position:'absolute',zIndex:'2'});document.body.insert({top:this.overlayElement});$(this.options.selectId).addClassName('loading');$(this.element.id+'_upload').observe('click',this.upload.bind(this));this.uploader=new YAHOO.widget.Uploader(this.overlayElement.id);this.uploader.addListener('contentReady',this.onContentReady.bind(this));this.uploader.addListener('fileSelect',this.onFileSelect.bind(this));this.uploader.addListener('uploadStart',this.onUploadStart.bind(this));this.uploader.addListener('uploadProgress',this.onUploadProgress.bind(this));this.uploader.addListener('uploadCancel',this.onUploadCancel.bind(this));this.uploader.addListener('uploadComplete',this.onUploadComplete.bind(this));this.uploader.addListener('uploadCompleteData',this.onUploadCompleteData.bind(this));this.uploader.addListener('uploadError',this.onUploadError.bind(this));this.uploader.addListener('rollOver',this.onRollOver.bind(this));this.uploader.addListener('rollOut',this.onRollOut.bind(this));this.uploader.addListener('click',this.onClick.bind(this));this.uploader.addListener('mouseDown',this.onMouseDown.bind(this));this.uploader.addListener('mouseUp',this.onMouseUp.bind(this));this.setStep(1);},onContentReady:function(){$(this.options.selectId).removeClassName('loading');if(!this.options.allowMultipleFiles){$(this.element.id+'_fileList').select('tfoot').first().hide();}
this.uploader.setAllowMultipleFiles(this.options.allowMultipleFiles);this.uploader.setFileFilters(this.options.fileFilters);},onFileSelect:function(event){if(event.fileList){this.fileList=new Hash();var entries=event.fileList;for(var key in entries){this.fileList.set(entries[key].id,entries[key]);}
if(typeof(this.options.fileSelect)=='function'){this.options.fileSelect(this.fileList);}
this.renderFileList();this.setStep(2);}},onUploadStart:function(event){var icon=$(this.element.id+'_'+event.id).select('.icon').first();if(icon){icon.stopObserving('click');icon.removeClassName('delete').addClassName('uploading');}
this.overlayElement.setStyle('width: 0px; height: 0px;');if(typeof(this.options.uploadStart)=='function'){this.options.uploadStart();}},onUploadProgress:function(event){var progress=Math.round(100*(event.bytesLoaded/event.bytesTotal));this.renderTotalProgress(this.totalProgress+progress);},onUploadCancel:function(event){},onUploadComplete:function(event){var file=this.fileList.get(event.id);if(file){this.totalProgress+=file.size;}
this.renderTotalProgress(this.totalProgress);var icon=$(this.element.id+'_'+event.id).select('.icon').first();if(icon){icon.removeClassName('uploading').addClassName('complete');}
if(typeof(this.options.uploadComplete)=='function'){this.options.uploadComplete(this.fileList.get(event.id));}},onUploadCompleteData:function(event){if(typeof(this.options.uploadCompleteData)=='function'){this.options.uploadCompleteData(this.fileList.get(event.id),event.data);}},onUploadError:function(event){},onRollOver:function(event){if(typeof(this.options.rollOver)=='function'){this.options.rollOver(event);}},onRollOut:function(event){if(typeof(this.options.rollOut)=='function'){this.options.rollOut(event);}},onClick:function(event){if(typeof(this.options.click)=='function'){this.options.click(event);}},onMouseDown:function(event){if(typeof(this.options.mouseDown)=='function'){this.options.mouseDown(event);}},onMouseUp:function(event){if(typeof(this.options.mouseUp)=='function'){this.options.mouseUp(event);}},setStep:function(step){var selectElement=null;if($(this.element.id+'_step'+step)){$(this.element.id+'_step'+step).show();}
switch(step){case 1:$(this.element.id+'_step2').hide();selectElement=$(this.options.selectId);break;case 2:if($(this.element.id+'_step1')){$(this.element.id+'_step1').hide();}
selectElement=$(this.element.id+'_addMore');break;}
if(selectElement){this.overlayElement.clonePosition(selectElement);}},renderFileList:function(){var table=$(this.element.id+'_fileList');table.select('tbody').each(function(tbody){tbody.remove();});var tbody=table.appendChild(Builder.node('tbody'));var totalSize=0;this.fileList.each(function(pair){var file=pair.value;var deleteIcon=Builder.node('a',{href:'#',className:'icon mini delete'},[Builder.node('span',['Delete'])]);deleteIcon.observe('click',this.removeFile.bind(this,file.id));tbody.insert(Builder.node('tr',{id:this.element.id+'_'+file.id},[Builder.node('td',[file.name]),Builder.node('td',[Math.round(file.size/102.4)/10+' kB']),Builder.node('td',[deleteIcon])]));totalSize+=file.size;}.bind(this));$(this.element.id+'_count').update(this.fileList.size()+' file'+(this.fileList.size()==1?'':'s'));$(this.element.id+'_total').update(Math.round(totalSize/102.4)/10+' kB');},renderTotalProgress:function(totalProgress){var progress=100*totalProgress/this.totalSize;new Effect.Morph($(this.element.id+'_progress').select('.indicator').first(),{style:'width: '+progress+'%',duration:.5});},removeFile:function(fileId){if(typeof(this.options.removeFile)=='function'){this.options.removeFile(this.fileList.get(fileId));}
this.fileList.unset(fileId);this.uploader.removeFile(fileId);if(this.fileList.size()>0){new Effect.Fade($(this.element.id+'_'+fileId),{duration:.5,afterFinish:function(){this.renderFileList();this.setStep(2);}.bind(this)});}else{this.setStep(1);}},upload:function(){this.totalSize=this.fileList.inject(0,function(acc,pair){return acc+pair.value.size;}.bind(this));this.totalProgress=0;$(this.element.id+'_upload').hide();$(this.element.id+'_progress').show();var parameters={};if(typeof(this.options.callback)=='function'){parameters=this.options.callback();}
this.uploader.setSimUploadLimit(Math.min(this.options.simUploadLimit,this.fileList.size()));this.uploader.uploadAll(this.url,'POST',Object.extend(parameters||{},this.session||{}),this.field);if(typeof(this.options.upload)=='function'){this.options.upload();}}});

/* masker.js (84%) */
'Controls'.namespace();Controls.Masker=Class.create({initialize:function(element,options){this.element=$(element);this.options=options||{};this._masks=[];this._ignoreEndResize=false;this._createWrap();this._createOverlay();},_createWrap:function(){var dimensions=this.element.getDimensions();this._wrap=Builder.node('div',{id:this.element.id+'_wrap',className:'mask-wrap',style:'overflow: hidden; position: relative; width:'+dimensions.width+'px; height: '+dimensions.height+'px'});this.element.parentNode.replaceChild(this._wrap,this.element);this._wrap.appendChild(this.element);},_createOverlay:function(){this._overlay=Builder.node('div',{id:this.element.id+'_overlay',className:'mask-overlay',style:'position: absolute; top: 0px; left: 0px; height: 100%; width: 100%;'});this._wrap.appendChild(this._overlay);this._overlay.observe('mousedown',this._overlayMouseDownHandler.bind(this));},_createMask:function(event){var offset=this.element.cumulativeOffset();var maskElement=Builder.node('div',{style:'border: 1px dashed #FFFFFF; position: absolute; left: '+(event.pointerX()-offset.left)+'px; top: '+(event.pointerY()-offset.top)+'px;'},[Builder.node('div',{style:'position: absolute; width: 100%; height: 100%; background-color: #000000;'})]);this._wrap.appendChild(maskElement);var mask=new YAHOO.util.Resize(maskElement,{handles:'all',knobHandles:true,draggable:true,minWidth:-1,minHeight:-1});mask.on('startResize',this._maskStartResizeHandler,this,true);mask.on('endResize',this._maskEndResizeHandler,this,true);mask.dd.on('endDragEvent',function(event){this._maskEndDragEventHandler(mask,event);},this,true);['t','b','r','l','bl','br','tl','tr'].each(function(handle){mask._dds[handle].on('dragEvent',this['_'+handle+'HandleDragEventHandler'],this,true);},this);YAHOO.util.DragDropMgr.handleMouseDown(event,mask._dds.br);YAHOO.util.DragDropMgr.startDrag(YAHOO.util.DragDropMgr.startX,YAHOO.util.DragDropMgr.startY);this._masks.push(mask);},getMasks:function(){var masks=[];for(var i=0,yuiResize;(yuiResize=this._masks[i]);i++){masks.push(this._getMask(yuiResize));}
return masks;},_getMask:function(mask){var position=$(mask.get('element')).positionedOffset();return{width:mask.get('width'),height:mask.get('height'),left:position.left,top:position.top};},_clipMask:function(mask){var clipped=false;var dimensions=this.element.getDimensions();var position=$(mask.get('element')).positionedOffset();var width=mask.get('width'),height=mask.get('height'),left=position.left,top=position.top;if(width<6||height<6||(width*height<144)||left+width<0||left>dimensions.width||top+height<0||top>dimensions.height){this._masks.splice(this._masks.indexOf(mask));mask.get('element').parentNode.removeChild(mask.get('element'));mask.destroy();clipped=true;}
return clipped;},_overlayMouseDownHandler:function(event){event.stop();this._createMask(event);},_maskStartResizeHandler:function(event){this._currentMask=event.target;},_maskEndResizeHandler:function(event){if(!this._ignoreEndResize){this._clipMask(event.target);if(typeof(this.options.maskResize)=='function'){this.options.maskResize(event);}}},_maskEndDragEventHandler:function(mask,event){this._clipMask(mask);if(typeof(this.options.maskResize)=='function'){this.options.maskResize(this._getMask(mask));}},_tHandleDragEventHandler:function(args){var newH=this._currentMask._setHeight(args.e,true);if(newH<0){this._ignoreEndResize=true;YAHOO.util.DragDropMgr.handleMouseUp(args.e,this._currentMask._dds.t);this._ignoreEndResize=false;YAHOO.util.DragDropMgr.handleMouseDown(args.e,this._currentMask._dds.b);}},_bHandleDragEventHandler:function(args){var newH=this._currentMask._setHeight(args.e);if(newH<0){this._ignoreEndResize=true;YAHOO.util.DragDropMgr.handleMouseUp(args.e,this._currentMask._dds.b);this._ignoreEndResize=false;YAHOO.util.DragDropMgr.handleMouseDown(args.e,this._currentMask._dds.t);}},_rHandleDragEventHandler:function(args){var newW=this._currentMask._setWidth(args.e);if(newW<0){this._ignoreEndResize=true;YAHOO.util.DragDropMgr.handleMouseUp(args.e,this._currentMask._dds.r);YAHOO.util.DragDropMgr.handleMouseDown(args.e,this._currentMask._dds.l);}},_lHandleDragEventHandler:function(args){var newW=this._currentMask._setWidth(args.e,true);if(newW<0){this._ignoreEndResize=true;YAHOO.util.DragDropMgr.handleMouseUp(args.e,this._currentMask._dds.l);this._ignoreEndResize=false;YAHOO.util.DragDropMgr.handleMouseDown(args.e,this._currentMask._dds.r);}},_blHandleDragEventHandler:function(args){var newW=this._currentMask._setWidth(args.e,true);var newH=this._currentMask._setHeight(args.e);if(newW<0||newH<0){this._ignoreEndResize=true;YAHOO.util.DragDropMgr.handleMouseUp(args.e,this._currentMask._dds.bl);this._ignoreEndResize=false;if(newW<0&&newH<0){YAHOO.util.DragDropMgr.handleMouseDown(args.e,this._currentMask._dds.tr);}else if(newW<0){YAHOO.util.DragDropMgr.handleMouseDown(args.e,this._currentMask._dds.br);}else if(newH<0){YAHOO.util.DragDropMgr.handleMouseDown(args.e,this._currentMask._dds.tl);}}},_brHandleDragEventHandler:function(args){var newW=this._currentMask._setWidth(args.e);var newH=this._currentMask._setHeight(args.e);if(newW<0||newH<0){this._ignoreEndResize=true;YAHOO.util.DragDropMgr.handleMouseUp(args.e,this._currentMask._dds.br);this._ignoreEndResize=false;if(newW<0&&newH<0){YAHOO.util.DragDropMgr.handleMouseDown(args.e,this._currentMask._dds.tl);}else if(newW<0){YAHOO.util.DragDropMgr.handleMouseDown(args.e,this._currentMask._dds.bl);}else if(newH<0){YAHOO.util.DragDropMgr.handleMouseDown(args.e,this._currentMask._dds.tr);}}},_tlHandleDragEventHandler:function(args){var newW=this._currentMask._setWidth(args.e,true);var newH=this._currentMask._setHeight(args.e,true);if(newW<0||newH<0){this._ignoreEndResize=true;YAHOO.util.DragDropMgr.handleMouseUp(args.e,this._currentMask._dds.tl);this._ignoreEndResize=false;if(newW<0&&newH<0){YAHOO.util.DragDropMgr.handleMouseDown(args.e,this._currentMask._dds.br);}else if(newW<0){YAHOO.util.DragDropMgr.handleMouseDown(args.e,this._currentMask._dds.tr);}else if(newH<0){YAHOO.util.DragDropMgr.handleMouseDown(args.e,this._currentMask._dds.bl);}}},_trHandleDragEventHandler:function(args){var newW=this._currentMask._setWidth(args.e);var newH=this._currentMask._setHeight(args.e,true);if(newW<0||newH<0){this._ignoreEndResize=true;YAHOO.util.DragDropMgr.handleMouseUp(args.e,this._currentMask._dds.tr);this._ignoreEndResize=false;if(newW<0&&newH<0){YAHOO.util.DragDropMgr.handleMouseDown(args.e,this._currentMask._dds.bl);}else if(newW<0){YAHOO.util.DragDropMgr.handleMouseDown(args.e,this._currentMask._dds.tl);}else if(newH<0){YAHOO.util.DragDropMgr.handleMouseDown(args.e,this._currentMask._dds.br);}}}});

/* watermark.js (83%) */
'Controls'.namespace();Controls.Watermark=Class.create({initialize:function(element,options){this.element=$(element);this.options=Object.extend({watermarkText:this.element.value,watermarkCssClass:'watermark',clearOnSubmit:true},options||{});this.element.observe('focus',this._onFocus.bind(this));this.element.observe('blur',this._onBlur.bind(this));if(this.element==document.activeElement){this._onFocus();}else{this.element.blur();this._onBlur();}
Ajax.Responders.register({onCreate:this._onAjaxCreate.bind(this)});var forms=$$('form');forms.each(function(form){if(this.element.descendantOf(form)){form.observe('submit',this._onFormSubmit.bind(this));}},this);},isWatermarked:function(){return(this.element.value==this.options.watermarkText);},clearText:function(focusing){this.element.clear();if(focusing){this.element.setAttribute('autocomplete','off');this.element.select();}},_applyWatermark:function(){this.element.value=this.options.watermarkText;this.element.store('className',this.element.className);if(this.options.watermarkCssClass){this.element.className=this.options.watermarkCssClass;}},_onFocus:function(event){if(this.isWatermarked()){this.clearText(event?true:false);}
this.element.className=this.element.retrieve('className','');if(this.element.retrieve('maxLength',0)>0){this.element.maxLength=this.element.retrieve('maxLength');this.element.store('maxLength',null);}},_onBlur:function(event){if(!this.element.present()||this.isWatermarked()){if(this.element.maxLength>0&&this.options.watermarkText.length>this.element.maxLength){this.element.store('maxLength',this.element.maxLength);this.element.maxLength=this.options.watermarkText.length;}
this._applyWatermark();}},_onAjaxCreate:function(request,response){if(this.isWatermarked()&&this.options.clearOnSubmit){var value=Form.Element.serialize(this.element);var params=value.toQueryParams();for(key in params){params[key]='';}
var emptyValue=Object.toQueryString(params);if(request.method=='post'){var postBody=request.options.postBody||Object.toQueryString(request.parameters);if(postBody.include(value)){request.options.postBody=postBody.replace(value,emptyValue);}}else{var url=request.url;if(url.include(value)){request.url=url.replace(value,emptyValue);}}}},_onFormSubmit:function(event){if(this.isWatermarked()&&this.options.clearOnSubmit){this.clearText(false);}}});

/* date_selector.js (79%) */
if(typeof Prototype=='undefined')alert("CalendarDateSelect Error: Prototype could not be found. Please make sure that your application's layout includes prototype.js (.g. <%= javascript_include_tag :defaults %>) *before* it includes calendar_date_select.js (.g. <%= calendar_date_select_includes %>).");if(Prototype.Version<"1.6")alert("Prototype 1.6.0 is required.  If using earlier version of prototype, please use calendar_date_select version 1.8.3");Element.addMethods({purgeChildren:function(element){$A(element.childNodes).each(function(e){$(e).remove();});},build:function(element,type,options,style){var newElement=Element.buildAndAppend(type,options,style);element.appendChild(newElement);return newElement;}});Element.buildAndAppend=function(type,options,style)
{var e=$(document.createElement(type));$H(options).each(function(pair){e[pair.key]=pair.value});if(style)e.setStyle(style);return e;};nil=null;Date.one_day=24*60*60*1000;Date.weekdays=$w("S M T W T F S");Date.first_day_of_week=0;Date.months=$w("January February March April May June July August September October November December");Date.padded2=function(hour){var padded2=parseInt(hour,10);if(hour<10)padded2="0"+padded2;return padded2;}
Date.prototype.getPaddedMinutes=function(){return Date.padded2(this.getMinutes());}
Date.prototype.getAMPMHour=function(){var hour=this.getHours();return(hour==0)?12:(hour>12?hour-12:hour)}
Date.prototype.getAMPM=function(){return(this.getHours()<12)?"AM":"PM";}
Date.prototype.stripTime=function(){return new Date(this.getFullYear(),this.getMonth(),this.getDate());};Date.prototype.daysDistance=function(compare_date){return Math.round((compare_date-this)/Date.one_day);};Date.prototype.toFormattedString=function(include_time){var hour,str;str=Date.months[this.getMonth()]+" "+this.getDate()+", "+this.getFullYear();if(include_time){hour=this.getHours();str+=" "+this.getAMPMHour()+":"+this.getPaddedMinutes()+" "+this.getAMPM()}
return str;}
Date.parseFormattedString=function(string){return new Date(string);}
Math.floor_to_interval=function(n,i){return Math.floor(n/i)*i;}
window.f_height=function(){return([window.innerHeight?window.innerHeight:null,document.documentElement?document.documentElement.clientHeight:null,document.body?document.body.clientHeight:null].select(function(x){return x>0}).first()||0);}
window.f_scrollTop=function(){return([window.pageYOffset?window.pageYOffset:null,document.documentElement?document.documentElement.scrollTop:null,document.body?document.body.scrollTop:null].select(function(x){return x>0}).first()||0);}
_translations={"OK":"OK","Now":"Now","Today":"Today","Clear":"Clear"}
SelectBox=Class.create();SelectBox.prototype={initialize:function(parent_element,values,html_options,style_options){this.element=$(parent_element).build("select",html_options,style_options);this.populate(values);},populate:function(values){this.element.purgeChildren();var that=this;$A(values).each(function(pair){if(typeof(pair)!="object"){pair=[pair,pair]};that.element.build("option",{value:pair[1],innerHTML:pair[0]})});},setValue:function(value){var e=this.element;var matched=false;$R(0,e.options.length-1).each(function(i){if(e.options[i].value==value.toString()){e.selectedIndex=i;matched=true;};});return matched;},getValue:function(){return $F(this.element)}}
CalendarDateSelect=Class.create();CalendarDateSelect.prototype={initialize:function(target_element,options){this.target_element=$(target_element);if(!this.target_element){alert("Target element "+target_element+" not found!");return false;}
if(this.target_element.tagName!="INPUT")this.target_element=this.target_element.down("INPUT")
this.target_element.calendar_date_select=this;this.last_click_at=0;this.options=$H({embedded:false,popup:nil,time:false,buttons:true,clear_button:true,year_range:10,close_on_click:nil,minute_interval:5,popup_by:this.target_element,month_year:"dropdowns",onchange:this.target_element.onchange,valid_date_check:nil}).merge(options||{});this.use_time=this.options.get("time");this.parseDate();this.callback("before_show")
this.initCalendarDiv();if(!this.options.get("embedded")){this.positionCalendarDiv()
Event.observe(document,"mousedown",this.closeIfClickedOut_handler=this.closeIfClickedOut.bindAsEventListener(this));Event.observe(document,"keypress",this.keyPress_handler=this.keyPress.bindAsEventListener(this));}
this.callback("after_show")},positionCalendarDiv:function(){var above=false;var c_pos=this.calendar_div.cumulativeOffset(),c_left=c_pos[0],c_top=c_pos[1],c_dim=this.calendar_div.getDimensions(),c_height=c_dim.height,c_width=c_dim.width;var w_top=window.f_scrollTop(),w_height=window.f_height();var e_dim=$(this.options.get("popup_by")).cumulativeOffset(),e_top=e_dim[1],e_left=e_dim[0],e_height=$(this.options.get("popup_by")).getDimensions().height,e_bottom=e_top+e_height;if(((e_bottom+c_height)>(w_top+w_height))&&(e_bottom-c_height>w_top))above=true;var left_px=e_left.toString()+"px",top_px=(above?(e_top-c_height):(e_top+e_height)).toString()+"px";this.calendar_div.style.left=left_px;this.calendar_div.style.top=top_px;this.calendar_div.setStyle({visibility:""});if(navigator.appName=="Microsoft Internet Explorer")this.iframe=$(document.body).build("iframe",{src:"javascript:false",className:"ie6_blocker"},{left:left_px,top:top_px,height:c_height.toString()+"px",width:c_width.toString()+"px",border:"0px"})},initCalendarDiv:function(){if(this.options.get("embedded")){var parent=this.target_element.parentNode;var style={}}else{var parent=document.body
var style={position:"absolute",visibility:"hidden",left:0,top:0}}
this.calendar_div=$(parent).build('div',{className:"calendar_date_select"},style);var that=this;$w("top header body buttons footer bottom").each(function(name){eval("var "+name+"_div = that."+name+"_div = that.calendar_div.build('div', { className: 'cds_"+name+"' }, { clear: 'left'} ); ");});this.initHeaderDiv();this.initButtonsDiv();this.initCalendarGrid();this.updateFooter("&#160;");this.refresh();this.setUseTime(this.use_time);},initHeaderDiv:function(){var header_div=this.header_div;this.close_button=header_div.build("a",{innerHTML:"x",href:"#",onclick:function(){this.close();return false;}.bindAsEventListener(this),className:"close"});this.next_month_button=header_div.build("a",{innerHTML:"&gt;",href:"#",onclick:function(){this.navMonth(this.date.getMonth()+1);return false;}.bindAsEventListener(this),className:"next"});this.prev_month_button=header_div.build("a",{innerHTML:"&lt;",href:"#",onclick:function(){this.navMonth(this.date.getMonth()-1);return false;}.bindAsEventListener(this),className:"prev"});if(this.options.get("month_year")=="dropdowns"){this.month_select=new SelectBox(header_div,$R(0,11).map(function(m){return[Date.months[m],m]}),{className:"month",onchange:function(){this.navMonth(this.month_select.getValue())}.bindAsEventListener(this)});this.year_select=new SelectBox(header_div,[],{className:"year",onchange:function(){this.navYear(this.year_select.getValue())}.bindAsEventListener(this)});this.populateYearRange();}else{this.month_year_label=header_div.build("span")}},initCalendarGrid:function(){var body_div=this.body_div;this.calendar_day_grid=[];var days_table=body_div.build("table",{cellPadding:"0px",cellSpacing:"0px",width:"100%"})
var weekdays_row=days_table.build("thead").build("tr");Date.weekdays.each(function(weekday){weekdays_row.build("th",{innerHTML:weekday});});var days_tbody=days_table.build("tbody")
var row_number=0,weekday;for(var cell_index=0;cell_index<42;cell_index++)
{weekday=(cell_index+Date.first_day_of_week)%7;if(cell_index%7==0)days_row=days_tbody.build("tr",{className:'row_'+row_number++});(this.calendar_day_grid[cell_index]=days_row.build("td",{calendar_date_select:this,onmouseover:function(){this.calendar_date_select.dayHover(this);},onmouseout:function(){this.calendar_date_select.dayHoverOut(this)},onclick:function(){this.calendar_date_select.updateSelectedDate(this,true);},className:(weekday==0)||(weekday==6)?" weekend":""},{cursor:"pointer"})).build("div");this.calendar_day_grid[cell_index];}},initButtonsDiv:function()
{var buttons_div=this.buttons_div;if(this.options.get("time"))
{var blank_time=$A(this.options.get("time")=="mixed"?[[" - ",""]]:[]);buttons_div.build("span",{innerHTML:"@",className:"at_sign"});var t=new Date();this.hour_select=new SelectBox(buttons_div,blank_time.concat($R(0,23).map(function(x){t.setHours(x);return $A([t.getAMPMHour()+" "+t.getAMPM(),x])})),{calendar_date_select:this,onchange:function(){this.calendar_date_select.updateSelectedDate({hour:this.value});},className:"hour"});buttons_div.build("span",{innerHTML:":",className:"seperator"});var that=this;this.minute_select=new SelectBox(buttons_div,blank_time.concat($R(0,59).select(function(x){return(x%that.options.get('minute_interval')==0)}).map(function(x){return $A([Date.padded2(x),x]);})),{calendar_date_select:this,onchange:function(){this.calendar_date_select.updateSelectedDate({minute:this.value})},className:"minute"});}else if(!this.options.get("buttons"))buttons_div.remove();if(this.options.get("buttons")){buttons_div.build("span",{innerHTML:"&#160;"});if(this.options.get("time")=="mixed"||!this.options.get("time"))b=buttons_div.build("a",{innerHTML:_translations["Today"],href:"#",onclick:function(){this.today(false);return false;}.bindAsEventListener(this)});if(this.options.get("time")=="mixed")buttons_div.build("span",{innerHTML:"&#160;|&#160;",className:"button_seperator"})
if(this.options.get("time"))b=buttons_div.build("a",{innerHTML:_translations["Now"],href:"#",onclick:function(){this.today(true);return false}.bindAsEventListener(this)});if(!this.options.get("embedded")&&!this.closeOnClick())
{buttons_div.build("span",{innerHTML:"&#160;|&#160;",className:"button_seperator"})
buttons_div.build("a",{innerHTML:_translations["OK"],href:"#",onclick:function(){this.close();return false;}.bindAsEventListener(this)});}
if(this.options.get('clear_button')){buttons_div.build("span",{innerHTML:"&#160;|&#160;",className:"button_seperator"})
buttons_div.build("a",{innerHTML:_translations["Clear"],href:"#",onclick:function(){this.clearDate();if(!this.options.get("embedded"))this.close();return false;}.bindAsEventListener(this)});}}},refresh:function()
{this.refreshMonthYear();this.refreshCalendarGrid();this.setSelectedClass();this.updateFooter();},refreshCalendarGrid:function(){this.beginning_date=new Date(this.date).stripTime();this.beginning_date.setDate(1);this.beginning_date.setHours(12);var pre_days=this.beginning_date.getDay()
if(pre_days<3)pre_days+=7;this.beginning_date.setDate(1-pre_days+Date.first_day_of_week);var iterator=new Date(this.beginning_date);var today=new Date().stripTime();var this_month=this.date.getMonth();vdc=this.options.get("valid_date_check");for(var cell_index=0;cell_index<42;cell_index++)
{day=iterator.getDate();month=iterator.getMonth();cell=this.calendar_day_grid[cell_index];Element.remove(cell.childNodes[0]);div=cell.build("div",{innerHTML:day});if(month!=this_month)div.className="other";cell.day=day;cell.month=month;cell.year=iterator.getFullYear();if(vdc){if(vdc(iterator.stripTime()))cell.removeClassName("disabled");else cell.addClassName("disabled")};iterator.setDate(day+1);}
if(this.today_cell)this.today_cell.removeClassName("today");if($R(0,41).include(days_until=this.beginning_date.stripTime().daysDistance(today))){this.today_cell=this.calendar_day_grid[days_until];this.today_cell.addClassName("today");}},refreshMonthYear:function(){var m=this.date.getMonth();var y=this.date.getFullYear();if(this.options.get("month_year")=="dropdowns")
{this.month_select.setValue(m,false);var e=this.year_select.element;if(this.flexibleYearRange()&&(!(this.year_select.setValue(y,false))||e.selectedIndex<=1||e.selectedIndex>=e.options.length-2))this.populateYearRange();this.year_select.setValue(y);}else{this.month_year_label.update(Date.months[m]+" "+y.toString());}},populateYearRange:function(){this.year_select.populate(this.yearRange().toArray());},yearRange:function(){if(!this.flexibleYearRange())
return $R(this.options.get("year_range")[0],this.options.get("year_range")[1]);var y=this.date.getFullYear();return $R(y-this.options.get("year_range"),y+this.options.get("year_range"));},flexibleYearRange:function(){return(typeof(this.options.get("year_range"))=="number");},validYear:function(year){if(this.flexibleYearRange()){return true;}else{return this.yearRange().include(year);}},dayHover:function(element){var hover_date=new Date(this.selected_date);hover_date.setYear(element.year);hover_date.setMonth(element.month);hover_date.setDate(element.day);this.updateFooter(hover_date.toFormattedString(this.use_time));},dayHoverOut:function(element){this.updateFooter();},clearSelectedClass:function(){if(this.selected_cell)this.selected_cell.removeClassName("selected");},setSelectedClass:function(){if(!this.selection_made)return;this.clearSelectedClass()
if($R(0,42).include(days_until=this.beginning_date.stripTime().daysDistance(this.selected_date.stripTime()))){this.selected_cell=this.calendar_day_grid[days_until];this.selected_cell.addClassName("selected");}},reparse:function(){this.parseDate();this.refresh();},dateString:function(){return(this.selection_made)?this.selected_date.toFormattedString(this.use_time):"&#160;";},parseDate:function()
{var value=$F(this.target_element).strip()
this.selection_made=(value!="");this.date=value==""?NaN:Date.parseFormattedString(this.options.get("date")||value);if(isNaN(this.date))this.date=new Date();if(!this.validYear(this.date.getFullYear()))this.date.setYear((this.date.getFullYear()<this.yearRange().start)?this.yearRange().start:this.yearRange().end);this.selected_date=new Date(this.date);this.use_time=/[0-9]:[0-9]{2}/.exec(value)?true:false;this.date.setDate(1);},updateFooter:function(text){if(!text)text=this.dateString();this.footer_div.purgeChildren();this.footer_div.build("span",{innerHTML:text});},clearDate:function(){if((this.target_element.disabled||this.target_element.readOnly)&&this.options.get("popup")!="force")return false;var last_value=this.target_element.value;this.target_element.value="";this.clearSelectedClass();this.updateFooter('&#160;');if(last_value!=this.target_element.value)this.callback("onchange");},updateSelectedDate:function(partsOrElement,via_click){var parts=$H(partsOrElement);if((this.target_element.disabled||this.target_element.readOnly)&&this.options.get("popup")!="force")return false;if(parts.get("day")){var t_selected_date=this.selected_date,vdc=this.options.get("valid_date_check");for(var x=0;x<=3;x++)t_selected_date.setDate(parts.get("day"));t_selected_date.setYear(parts.get("year"));t_selected_date.setMonth(parts.get("month"));if(vdc&&!vdc(t_selected_date.stripTime())){return false;}
this.selected_date=t_selected_date;this.selection_made=true;}
if(!isNaN(parts.get("hour")))this.selected_date.setHours(parts.get("hour"));if(!isNaN(parts.get("minute")))this.selected_date.setMinutes(Math.floor_to_interval(parts.get("minute"),this.options.get("minute_interval")));if(parts.get("hour")===""||parts.get("minute")==="")
this.setUseTime(false);else if(!isNaN(parts.get("hour"))||!isNaN(parts.get("minute")))
this.setUseTime(true);this.updateFooter();this.setSelectedClass();if(this.selection_made)this.updateValue();if(this.closeOnClick()){this.close();}
if(via_click&&!this.options.get("embedded")){if((new Date()-this.last_click_at)<333)this.close();this.last_click_at=new Date();}},closeOnClick:function(){if(this.options.get("embedded"))return false;if(this.options.get("close_on_click")===nil)
return(this.options.get("time"))?false:true
else
return(this.options.get("close_on_click"))},navMonth:function(month){(target_date=new Date(this.date)).setMonth(month);return(this.navTo(target_date));},navYear:function(year){(target_date=new Date(this.date)).setYear(year);return(this.navTo(target_date));},navTo:function(date){if(!this.validYear(date.getFullYear()))return false;this.date=date;this.date.setDate(1);this.refresh();this.callback("after_navigate",this.date);return true;},setUseTime:function(turn_on){this.use_time=this.options.get("time")&&(this.options.get("time")=="mixed"?turn_on:true)
if(this.use_time&&this.selected_date){var minute=Math.floor_to_interval(this.selected_date.getMinutes(),this.options.get("minute_interval"));var hour=this.selected_date.getHours();this.hour_select.setValue(hour);this.minute_select.setValue(minute)}else if(this.options.get("time")=="mixed"){this.hour_select.setValue("");this.minute_select.setValue("");}},updateValue:function(){var last_value=this.target_element.value;this.target_element.value=this.dateString();if(last_value!=this.target_element.value)this.callback("onchange");},today:function(now){var d=new Date();this.date=new Date();var o=$H({day:d.getDate(),month:d.getMonth(),year:d.getFullYear(),hour:d.getHours(),minute:d.getMinutes()});if(!now)o=o.merge({hour:"",minute:""});this.updateSelectedDate(o,true);this.refresh();},close:function(){if(this.closed)return false;this.callback("before_close");this.target_element.calendar_date_select=nil;Event.stopObserving(document,"mousedown",this.closeIfClickedOut_handler);Event.stopObserving(document,"keypress",this.keyPress_handler);this.calendar_div.remove();this.closed=true;if(this.iframe)this.iframe.remove();if(this.target_element.type!="hidden"&&!this.target_element.disabled)this.target_element.focus();this.callback("after_close");},closeIfClickedOut:function(e){if(!$(Event.element(e)).descendantOf(this.calendar_div))this.close();},keyPress:function(e){if(e.keyCode==Event.KEY_ESC)this.close();},callback:function(name,param){if(this.options.get(name)){this.options.get(name).bind(this.target_element)(param);}}}

/* observation_addform2.js (78%) */
'Observation'.namespace();Observation.addForm={fileList:new Hash(),uploadedFiles:new Hash(),maskerControls:new Hash(),toggleTab:function(event){if(!Event.element(event).hasClassName('selected')){$$('.tabs a').each(function(tab){tab.toggleClassName('selected');});$$('.tab').each(function(tab){tab.toggle();});$('ScreenshotUploadData_overlay').toggle();}},saveMasks:function(){this.maskerControls.each(function(pair){var file=this.uploadedFiles.get(pair.key);var masker=pair.value;var masks=masker.getMasks();masks.each(function(mask,index){$$('fieldset').last().insert(Builder.node('input',{type:'hidden',name:'data[Mask]['+index+'][screenshot_id]',value:file.Screenshot.id}));['left','top','width','height'].each(function(key){$$('fieldset').last().insert(Builder.node('input',{type:'hidden',name:'data[Mask]['+index+']['+key+']',value:mask[key]||-1}));});});},this);this.renderDetailsInterface();},renderMaskInterface:function(){var list=Builder.node('dl');this.uploadedFiles.each(function(pair){var file=pair.value;list.insert(Builder.node('dt',[file.Screenshot.name]));list.insert(Builder.node('dd',{id:'Masker'+file.Screenshot.id,className:'yui-skin-sam'},[Builder.node('img',{src:file.Screenshot.path+'/width:800'}).observe('load',function(key,event){this.maskerControls.set(key,new Controls.Masker(event.target));}.bind(this,pair.key))]));},this);$('mask').insert(list);$('mask').insert(Builder.node('div',[$(Builder.node('a',{href:'#',className:'button'},'Save & continue')).observe('click',this.saveMasks.bind(this)),' ',$(Builder.node('a',{href:'#'},'Skip to details')).observe('click',this.renderDetailsInterface.bind(this))]));},renderDetailsInterface:function(){$('mask').up().toggleClassName('complete');$('mask').update('Mask screenshots for privacy<span class="note"> (optional)</span>');$$('#details div').first().show();},registerTimeUnitScript:function(select,container){select.observe('change',function(event){if(Event.element(event).getValue()==60*60){container.show();}else{container.hide();}});},registerProfileScripts:function(input,autoComplete,update,indicator){new Ajax.Autocompleter(input,autoComplete,'/profiles/autoComplete',{});new Form.Element.EventObserver(input,function(element,value){$(update).update('');window.setTimeout(function(){;new Ajax.Updater(update,'/reports/add',{asynchronous:true,evalScripts:true,onComplete:function(request,json){Element.hide(indicator);},onLoading:function(request){Element.show(indicator);},parameters:$('ObservationAddForm').serialize({submit:false}),requestHeaders:['X-Update',update]});},200);})},onKillCountChange:function(event){var count=1+parseInt($('kill-details').select('select').first().getValue());var currentKills=$('kill-details').select('.incident');$R(currentKills.size(),count-1).each(function(i){$('kill-details').insert(Builder.node('div',{className:'incident'+(i%2==1?' alt':'')},[Builder.node('div',{className:'input text'},[Builder.node('label',{'for':'Incident'+i+'KillerName'},['Killer:']),Builder.node('input',{id:'Incident'+i+'KillerName',type:'text',name:'data[Incident]['+i+'][killer_name]'}),Builder.node('img',{id:'killer-loading'+i,src:'/img/icons/small/loading.gif',className:'loading icon',style:'display: none;'}),Builder.node('div',{id:'killer'+i}),]),Builder.node('div',{id:'Incident'+i+'KillerName_autoComplete',className:'auto_complete'}),Builder.node('div',{className:'input text'},[Builder.node('label',{'for':'Incident'+i+'VictimName'},['Victim:']),Builder.node('input',{id:'Incident'+i+'VictimName',type:'text',name:'data[Incident]['+i+'][victim_name]'}),Builder.node('img',{id:'victim-loading'+i,src:'/img/icons/small/loading.gif',className:'loading icon',style:'display: none;'}),Builder.node('div',{id:'victim'+i}),]),Builder.node('div',{id:'Incident'+i+'VictimName_autoComplete',className:'auto_complete'}),Builder.node('div',{className:'input select'},[Builder.node('label',{'for':'Incident'+i+'ElapsedTime'},['Time before screenshot:']),Builder.node('select',{id:'Incident'+i+'ElapsedTime',name:'data[Incident]['+i+'][elapsed_time]'},[$R(0,59).collect(function(i){return Builder.node('option',{value:i},[i]);})]),Builder.node('select',{id:'Incident'+i+'TimeUnit',name:'data[Incident]['+i+'][time_unit]'},[Builder.node('option',{value:1},['second(s)']),Builder.node('option',{value:60},['minute(s)']),Builder.node('option',{value:60*60},['hour(s)']),Builder.node('option',{value:60*60*24},['day(s)']),Builder.node('option',{value:60*60*24*7},['week(s)'])]),Builder.node('span',{id:'Incident'+i+'ElapsedMinutes_container',style:'display: none;'},['and ',Builder.node('select',{id:'Incident'+i+'ElapsedMinutes',name:'data[Incident]['+i+'][elapsed_minutes]'},[$R(0,59).collect(function(i){return Builder.node('option',{value:i},[i]);})]),Builder.node('select',{disabled:'true'},[Builder.node('option',{value:60},['minute(s)'])])])])]));$('Incident'+i+'ElapsedTime').selectedIndex=0;$('Incident'+i+'TimeUnit').selectedIndex=0;$('Incident'+i+'ElapsedMinutes').selectedIndex=0;this.registerTimeUnitScript($('Incident'+i+'TimeUnit'),$('Incident'+i+'ElapsedMinutes_container'));this.registerProfileScripts('Incident'+i+'KillerName','Incident'+i+'KillerName_autoComplete','killer'+i,'killer-loading'+i);this.registerProfileScripts('Incident'+i+'VictimName','Incident'+i+'VictimName_autoComplete','victim'+i,'victim-loading'+i);},this);currentKills.splice(count,currentKills.size()-count).each(function(element){new Effect.Fade(element,{duration:.5,afterFinish:function(){element.remove();}});});},displayUploadMessage:function(){if(this.fileList.size()>1){$$('#upload .message').first().show();if(Prototype.Browser.Gecko){$$('#upload .message #gecko').first().show();}}else{$$('#upload .message').first().hide();}},onFileSelect:function(fileList){this.fileList=fileList;this.displayUploadMessage();},onRemoveFile:function(file){this.fileList.unset(file.id);this.displayUploadMessage();},onUploadCompleteData:function(file,data){data=data.evalJSON(true);$$('#ObservationAddForm fieldset').first().insert(Builder.node('input',{type:'hidden',name:'data[Screenshot]['+this.uploadedFiles.size()+'][id]',value:data.Screenshot.id}));$$('#ObservationAddForm fieldset').first().insert(Builder.node('input',{type:'hidden',name:'data[Screenshot]['+this.uploadedFiles.size()+'][filehash]',value:data.Screenshot.filehash}));this.uploadedFiles.set(file.id,data);if(this.uploadedFiles.size()==this.fileList.size()){$('upload').hide();$('report-details').show();this.renderMaskInterface();}}};

/* incidents_submissions.js (79%) */
'Incident'.namespace();Incident.submissions={initialize:function(){Event.observe(window,'scroll',this.onscroll.bind(this));},onscroll:function(event){if(document.body.getHeight()-document.viewport.getHeight()-document.viewport.getScrollOffsets().top<=800){if(typeof(this.callback)=='function'){this.callback();$('loading').show();}}},highlight:function(ids){ids.each(function(id){$A(document.getElementsByName(id)).each(function(a){var parent=a.parentNode;while(!parent.hasClassName('incident')){parent=parent.parentNode;}
if(parent.hasClassName('incident')){var options={duration:3},color=parent.parentNode.getStyle('background-color');if(color!='transparent'){options.startcolor='#ffff99';options.endcolor=color.parseColor('#ffffff');}
new Effect.Highlight(parent,options);}});});}};Incident.submissions.initialize();
