(function(a){a.fn.hover_class=function(b){return this.each(function(){var c=a(this);c.unbind("hover");c.hover(function(){c.addClass(b)},function(){c.removeClass(b)})})}})(jQuery);(function(a){a.fn.focus_class=function(b){return this.each(function(){var c=a(this);c.unbind("focus").bind("focus",function(){c.addClass(b)}).unbind("blur").bind("blur",function(){c.removeClass(b)})})}})(jQuery);jQuery.ajaxSetup({beforeSend:function(a){a.setRequestHeader("Accept","text/javascript")}});jQuery.log=function(a){if(window.console){console.debug(a)}};Array.max=function(a){return Math.max.apply(Math,a)};Array.min=function(a){return Math.min.apply(Math,a)};MI.has_local=(typeof(localStorage)!=="undefined");MI._state={};MI.state=function(a,b){if(typeof(b)==="undefined"){return MI._state[a]}else{MI._state[a]=b}};MI.Time=MI.Time||{};MI.Time.years_ago=function(a){var b=new Date();var d=b.getFullYear()-a;var c=new Date();c.setFullYear(d);return c};MI.Time.years_from_now=function(a){var b=new Date();var d=b.getFullYear()+a;var c=new Date();c.setFullYear(d);return c};MI.Time.today=function(){return new Date()};MI.Time.tomorrow=function(){var a=new Date();a.setDate(a.getDate()+1);return a};MI.set_cookie=function(b,e,a){var d=new Date();d.setDate(d.getDate()+a);var c=[b,"=",escape(e)];if(a!==null){c.push(";expires="+d.toUTCString())}document.cookie=c.join("")};(function(a){$.extend(a,{post:function(d,c,b){d.authenticity_token=MI.auth_token;$.ajax({type:"post",dataType:"json",data:d,url:c,success:function(e){if(b){b(true,e)}},error:function(g,f,e){if(b){b(false,f)}}})},get:function(c,b){$.ajax({url:c,data:{},dataType:"json",success:function(d){if(b){b(true,d)}},error:function(f,e,d){if(b){b(false,e)}}})}})})(MI);(function(a){var b={story:"stories"};a.AR=a.AR||{};$.extend(a.AR,{pluralize:function(c){if(b[c]){return b[c]}else{return c+"s"}},update:function(f,j,e,i){var d=["/",this.pluralize(f),"/",j].join("");var h={_method:"put"};for(var c in e){var g=[f,"[",c,"]"].join("");h[g]=e[c]}MI.post(h,d,i)},create:function(g,f,j){var e="/"+this.pluralize(g);var i;if(typeof(f)==="string"){i=f}else{i={};if(f.extra){for(var d in f.extra){var c=f.extra[d];i[d]=c}delete f.extra}for(var d in f){var h=[g,"[",d,"]"].join("");i[h]=f[d]}}MI.post(i,e,j)},destroy:function(d,g,f){var e={_method:"delete"};var c="/"+this.pluralize(d);MI.post(e,c,f)}})})(MI);MI.Views={};MI.Views.welcome=function(){};MI.Views.users_edit=function(){$("#user_setting_attributes_ignore_before").datepick({pickerClass:"small",dateFormat:"yyyy-mm-dd",alignment:"bottomLeft",prevText:"&laquo;",nextText:"&raquo;",minDate:MI.Time.years_ago(20),maxDate:MI.Time.tomorrow(),onSelect:function(){$("#user_setting_attributes_ignore_before_enabled").attr("checked",true)}})};MI.Views.days_calendar=function(){$("#calendar").datepick({pickerClass:"large",dateFormat:"yyyy-mm-dd",defaultDate:MI.default_date,minDate:MI.Time.years_ago(20),maxDate:MI.Time.years_from_now(2),prevText:"&laquo;",nextText:"&raquo;",showOtherMonths:true,selectOtherMonths:true,createButton:false,selectDefaultDate:true,fixedWeeks:true,dayNamesMin:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],highlightWeek:true,onDate:function(c){var d=$.datepick.formatDate("yyyy-mm-dd",c);var a=$.datepick.formatDate("d",c);var i=($.inArray(d,MI.start_days)>=0);var g=($.inArray(d,MI.note_days)>=0);var b=($.inArray(d,MI.next_starts)>=0);var h={};var e=[];var f=$.datepick.formatDate("yyyy-mm-dd",MI.Time.today());if(f==d){e.push("today")}if(i){e.push("start")}else{if(g){e.push("other")}else{if(b){e.push("predicted_start")}}}if(e.length>0){h.dateClass=e.join(" ")}return h},onChangeMonthYear:function(b,c){var a=[b,c,"01"].join("-");MI.set_cookie("default_date",a,7)}})};MI.Views.days_index=function(){$("#day_start").change(function(){var d=$(this).is(":checked");var c=$("#add_note_form");var b=($("#day_notes").val()==="");if(d&&b){c.slideUp("fast")}else{c.slideDown("fast")}});$("#calendar").datepick({pickerClass:"small",dateFormat:"yyyy-mm-dd",defaultDate:MI.default_date,minDate:MI.Time.years_ago(20),maxDate:MI.Time.tomorrow(),prevText:"&laquo;",nextText:"&raquo;",showOtherMonths:true,selectOtherMonths:true,createButton:false,selectDefaultDate:true,fixedWeeks:true,dayNamesMin:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],highlightWeek:true,onDate:function(f){var b=$.datepick.formatDate("yyyy-mm-dd",f);var e=($.inArray(b,MI.disabled_days)<0);var g=($.inArray(b,MI.start_days)>=0);var d={selectable:e};var c=[];if(g){c.push("start")}if(!e){c.push("other")}if(c.length>0){d.dateClass=c.join(" ")}return d},onSelect:function(e){var c=e[0];var d=$.datepick.formatDate("yyyy-mm-dd",c);var b=$.datepick.formatDate("D, MM d, yyyy",c);a(d,b)},onChangeMonthYear:function(c,d){var b=[c,d,"01"].join("-");MI.set_cookie("default_date",b,7)}});function a(c,b){MI.set_cookie("default_date",c,7);$("#day_date").val(c);$("#day_date_preview").html(b);$("#new_day_form").slideDown("fast")}$("#add_note_control").click(function(){var c=$(this);var b=$("#add_note_form");if(b.is(":visible")){b.slideUp("fast");c.html("Add a note?");document.getElementById("day_notes").value=""}else{b.slideDown("fast");c.html("(Remove note)")}});$(".cal_tab.today a, .cal_tab.yesterday a").click(function(d){d.preventDefault();var c=$(this).attr("data-raw-date");var b=$(this).attr("data-pretty-date");a(c,b)});$("#close_new_day_form").click(function(){$("#new_day_form").slideUp("fast")})};MI.Views.reminders_form=function(){var l=$("#reminder_content").html()!=="";function e(){return $("#reminder_days").val()}function g(){return($("#reminder_before_group input[type=radio]:checked").val()==="true")}function i(){return($("#reminder_start_group input[type=radio]:checked").val()==="true")}function h(){return $("#reminder_delivery_group input[type=radio]:checked").val()}function c(m){$("#reminder_delivery_label").html(m)}function d(m){$("#reminder_days").val(m)}function a(m){document.getElementById("reminder_content").value=m}function f(m){k($("#reminder_before_group"),m)}function j(m){k($("#reminder_start_group"),m)}function k(m,n){m.find("input").each(function(p,o){if($(o).val()===n.toString()){$(o).attr("checked","checked")}})}function b(){var r=e();var n;if(r===""||!r.match(/\d/)){n=""}else{var o=g();var q=i();var m=r+" day"+((r==="1")?"":"s");if(o&&q){n="You have approximately "+m+" until the start of your next period."}else{if(!o&&q){n="Your last period was approximately "+m+" ago."}else{if(o&&!q){n="You have approximately "+m+" until your next ovulation."}else{if(!o&&!q){n="Your last ovulation was approximately "+m+" ago."}}}}n+="\n\nLove,\nMonthlyInfo.com"}if(!l){a(n)}var p=h();if(p==="email"){$("#reminder_carriers").hide();$("#reminder_subject_fieldset").show();c("Email")}else{if(p==="sms"){$("#reminder_carriers").show();$("#reminder_subject_fieldset").hide();c("Phone #")}}}$("#new_reminder, .edit_reminder").unbind("click").bind("click",b);$("#new_reminder, .edit_reminder").unbind("keyup").bind("keyup",b);$("#self_breast_exam_template").click(function(){var m=["Time for your monthly self breast exam!","","Love,","MonthlyInfo","","P.S. Here's some helpful information: http://en.wikipedia.org/wiki/Breast_self-examination"].join("\n");a(m);f(false);j(true);d(7);l=true});$("#update_monthly_template").click(function(){var m=["Remember to update MonthlyInfo!","","Love,","MonthlyInfo"].join("\n");a(m);f(false);j(true);d(3);l=true});b()};MI.Views.reminders_index=function(){MI.Views.reminders_form()};MI.Views.reminders_edit=function(){MI.Views.reminders_form()};MI.Views.static_about=function(){var c=["faq","reminders","exporting"];$("#about_tabs li a").hover(function(){$(this).parents("li").addClass("hover")},function(){$(this).parents("li").removeClass("hover")});$("#about_tabs li a").click(function(f){f.preventDefault();var d=$(this).attr("href").replace(/^\/about\//,"");b(d);return false});function b(e){$("#about_tabs li").removeClass("current");$("#about_tab_"+e).addClass("current");$("#about_"+e).show();for(var f=0;f<c.length;f++){var d=c[f];if(e!==d){$("#about_"+d).hide()}}window.location.hash="#!/"+e}var a=unescape(self.document.location.hash.substring(1).replace(/^!\//,""));if(a!==""){b(a)}};MI.listen=function(){$(".auto_hide_labels .fieldset input, .auto_hide_labels .fieldset textarea").focus(function(){$(this).parents(".fieldset").find(".label").show()}).blur(function(){$(this).parents(".fieldset").find(".label").hide()})};MI.init=function(a){if(MI.Views[a]){MI.Views[a]()}MI.listen()};
