(function($,window,document,undefined){var pluginName="jarvisWidgets";function Plugin(element,options){this.obj=$(element);this.o=$.extend({},$.fn[pluginName].defaults,options);this.objId=this.obj.attr("id");this.pwCtrls=".jarviswidget-ctrls";this.widget=this.obj.find(this.o.widgets);this.toggleClass=this.o.toggleClass.split("|");this.editClass=this.o.editClass.split("|");this.fullscreenClass=this.o.fullscreenClass.split("|");this.customClass=this.o.customClass.split("|");this.init()}Plugin.prototype={_settings:function(){var self=this;storage=!!function(){var result,uid=+new Date;try{localStorage.setItem(uid,uid);result=localStorage.getItem(uid)==uid;localStorage.removeItem(uid);return result}catch(e){}}()&&localStorage;if(storage&&self.o.localStorage){if(self.o.ajaxnav===true){widget_url=location.hash.replace(/^#/,"");keySettings="Plugin_settings_"+widget_url+"_"+self.objId;getKeySettings=localStorage.getItem(keySettings);keyPosition="Plugin_position_"+widget_url+"_"+self.objId;getKeyPosition=localStorage.getItem(keyPosition)}else{keySettings="jarvisWidgets_settings_"+location.pathname+"_"+self.objId;getKeySettings=localStorage.getItem(keySettings);keyPosition="jarvisWidgets_position_"+location.pathname+"_"+self.objId;getKeyPosition=localStorage.getItem(keyPosition)}}if(("ontouchstart" in window)||window.DocumentTouch&&document instanceof DocumentTouch){clickEvent="touchstart"}else{clickEvent="click"}},_runLoaderWidget:function(elm){var self=this;if(self.o.indicator===true){elm.parents(self.o.widgets).find(".jarviswidget-loader").stop(true,true).fadeIn(100).delay(self.o.indicatorTime).fadeOut(100)}},_getPastTimestamp:function(t){var self=this;var da=new Date(t);tsMonth=da.getMonth()+1;tsDay=da.getDate();tsYear=da.getFullYear();tsHours=da.getHours();tsMinutes=da.getMinutes();tsSeconds=da.getUTCSeconds();if(tsMonth<10){var tsMonth="0"+tsMonth}if(tsDay<10){var tsDay="0"+tsDay}if(tsHours<10){var tsHours="0"+tsHours}if(tsMinutes<10){var tsMinutes="0"+tsMinutes}if(tsSeconds<10){var tsSeconds="0"+tsSeconds}var format=self.o.timestampFormat.replace(/%d%/g,tsDay).replace(/%m%/g,tsMonth).replace(/%y%/g,tsYear).replace(/%h%/g,tsHours).replace(/%i%/g,tsMinutes).replace(/%s%/g,tsSeconds);return format},_loadAjaxFile:function(awidget,file,loader){var self=this;awidget.find(".widget-body").load(file,function(response,status,xhr){var $this=$(this);if(status=="error"){$this.html('
").children("div").removeAttr("style").end().find(".jarviswidget-fullscreen-btn").children().removeClass(self.fullscreenClass[1]).addClass(self.fullscreenClass[0]).parents(self.pwCtrls).children("a").show();if(thisWidgetContent.hasClass("jarviswidget-visible")){thisWidgetContent.hide().removeClass("jarviswidget-visible")}}else{$("body").addClass("nooverflow");thisWidget.wrap('
').parent().find(".jarviswidget-fullscreen-btn").children().removeClass(self.fullscreenClass[0]).addClass(self.fullscreenClass[1]).parents(self.pwCtrls).children("a:not(.jarviswidget-fullscreen-btn)").hide();if(thisWidgetContent.is(":hidden")){thisWidgetContent.show().addClass("jarviswidget-visible")}}heightFullscreen();if(typeof self.o.onFullscreen=="function"){self.o.onFullscreen.call(this,thisWidget)}e.preventDefault()});$(window).resize(function(){heightFullscreen()});self.widget.on(clickEvent,".jarviswidget-edit-btn",function(e){var tWidget=$(this).parents(self.o.widgets);self._runLoaderWidget($(this));if(tWidget.find(self.o.editPlaceholder).is(":visible")){$(this).children().removeClass(self.editClass[1]).addClass(self.editClass[0]).parents(self.o.widgets).find(self.o.editPlaceholder).slideUp(self.o.editSpeed,function(){self._saveSettingsWidget()})}else{$(this).children().removeClass(self.editClass[0]).addClass(self.editClass[1]).parents(self.o.widgets).find(self.o.editPlaceholder).slideDown(self.o.editSpeed)}if(typeof self.o.onEdit=="function"){self.o.onEdit.call(this,tWidget)}e.preventDefault()});$(self.o.editPlaceholder).find("input").keyup(function(){$(this).parents(self.o.widgets).children("header").children("h2").text($(this).val())});self.widget.on(clickEvent,"[data-widget-setstyle]",function(e){var val=$(this).data("widget-setstyle");var styles="";$(this).parents(self.o.editPlaceholder).find("[data-widget-setstyle]").each(function(){styles+=$(this).data("widget-setstyle")+" "});$(this).parents(self.o.widgets).attr("data-widget-attstyle",""+val+"").removeClassPrefix("jarviswidget-color-").addClass(val);self._runLoaderWidget($(this));self._saveSettingsWidget();e.preventDefault()});self.widget.on(clickEvent,".jarviswidget-custom-btn",function(e){var w=$(this).parents(self.o.widgets);self._runLoaderWidget($(this));if($(this).children("."+self.customClass[0]).length){$(this).children().removeClass(self.customClass[0]).addClass(self.customClass[1]);if(typeof self.o.customStart=="function"){self.o.customStart.call(this,w)}}else{$(this).children().removeClass(self.customClass[1]).addClass(self.customClass[0]);if(typeof self.o.customEnd=="function"){self.o.customEnd.call(this,w)}}self._saveSettingsWidget();e.preventDefault()});self.widget.on(clickEvent,".jarviswidget-delete-btn",function(e){var tWidget=$(this).parents(self.o.widgets);var removeId=tWidget.attr("id");var widTitle=tWidget.children("header").children("h2").text();$.SmartMessageBox({title:"
"+self.o.labelDelete+' "'+widTitle+'"',content:"Warning: This action cannot be undone",buttons:"[No][Yes]"},function(ButtonPressed){if(ButtonPressed=="Yes"){self._runLoaderWidget($(this));$("#"+removeId).fadeOut(self.o.deleteSpeed,function(){$(this).remove();if(typeof self.o.onDelete=="function"){self.o.onDelete.call(this,tWidget)}})}});e.preventDefault()});self.widget.on(clickEvent,".jarviswidget-refresh-btn",function(e){var rItem=$(this).parents(self.o.widgets),pathToFile=rItem.data("widget-load"),ajaxLoader=rItem.children(),btn=$(this);btn.button("loading");ajaxLoader.addClass("widget-body-ajax-loading");setTimeout(function(){btn.button("reset");ajaxLoader.removeClass("widget-body-ajax-loading");self._loadAjaxFile(rItem,pathToFile,ajaxLoader)},1000);e.preventDefault()})},destroy:function(){var self=this;self.widget.off("click",self._clickEvents());self.obj.removeData(pluginName)}};$.fn[pluginName]=function(option){return this.each(function(){var $this=$(this);var data=$this.data(pluginName);var options=typeof option=="object"&&option;if(!data){$this.data(pluginName,(data=new Plugin(this,options)))}if(typeof option=="string"){data[option]()}})};$.fn[pluginName].defaults={grid:"section",widgets:".jarviswidget",localStorage:true,deleteSettingsKey:"",settingsKeyLabel:"Reset settings?",deletePositionKey:"",positionKeyLabel:"Reset position?",sortable:true,buttonsHidden:false,toggleButton:true,toggleClass:"min-10 | plus-10",toggleSpeed:200,onToggle:function(){},deleteButton:true,deleteClass:"trashcan-10",deleteSpeed:200,onDelete:function(){},editButton:true,editPlaceholder:".jarviswidget-editbox",editClass:"pencil-10 | delete-10",editSpeed:200,onEdit:function(){},colorButton:true,fullscreenButton:true,fullscreenClass:"fullscreen-10 | normalscreen-10",fullscreenDiff:3,onFullscreen:function(){},customButton:true,customClass:"",customStart:function(){},customEnd:function(){},buttonOrder:"%refresh% %delete% %custom% %edit% %fullscreen% %toggle%",opacity:1,dragHandle:"> header",placeholderClass:"jarviswidget-placeholder",indicator:true,indicatorTime:600,ajax:true,loadingLabel:"loading...",timestampPlaceholder:".jarviswidget-timestamp",timestampFormat:"Last update: %m%/%d%/%y% %h%:%i%:%s%",refreshButton:true,refreshButtonClass:"refresh-10",labelError:"Sorry but there was a error:",labelUpdated:"Last Update:",labelRefresh:"Refresh",labelDelete:"Delete widget:",afterLoad:function(){},rtl:false,onChange:function(){},onSave:function(){},ajaxnav:true};$.fn.removeClassPrefix=function(prefix){this.each(function(i,it){var classes=it.className.split(" ").map(function(item){return item.indexOf(prefix)===0?"":item});it.className=$.trim(classes.join(" "))});return this}})(jQuery,window,document);