disableScripts("PersonalPageWidgets");Object.extend(Ajax.InPlaceEditor.prototype,{onLoadedExternalText:function(transport){Element.removeClassName(this.form,this.options.loadingClassName);this.editField.disabled=false;this.editField.value=transport.responseText;Field.scrollFreeActivate(this.editField);}});Object.extend(Ajax.InPlaceEditor.prototype,{getText:function(){return this.element.innerHTML.gsub('<br>','\n').gsub('<BR>','\n').gsub('&nbsp;&nbsp;','  ');}});function MWidgetManager(){this.appId=0;this.external_widgets=[];this.getBoxId=function(){return'mw_box_'+this.getAppId();};this.getTitleId=function(){return'mw_title_'+this.getAppId();};this.getSubtitleId=function(){return'mw_subtitle_'+this.getAppId();};this.getAppId=function(){return this.appId;};this.setAppId=function(appId){this.appId=appId;};this.nextApp=function(){this.appId+=1;};this.widget_call=function(url){this.external_widgets.push(new Array(url,this.getAppId()));};this.onComplete=function(w){var id=w[1];return function(transport){$mwidgetManager.setAppId(id);$('pp_show').getElementsBySelector("."+$mwidgetManager.getBoxId()).each(function(node){node.innerHTML=transport.responseText;if(typeof node.up(".wg")!="undefined"){node.up(".wg".widget).updateHeight();}});setTimeout(function(){transport.responseText.evalScripts();},10);};};this.execute=function(){for(i=0;i<this.external_widgets.length;i++){var w=this.external_widgets[i];new Ajax.Request(w[0],{method:'get',onComplete:this.onComplete(w)});}};}
function MWidgetHelper(mwidgetManager){this.mwidgetManager=mwidgetManager;this.setTitle=function(title){$(this.mwidgetManager.getTitleId()).innerHTML=title;};this.setSubtitle=function(subtitle){$(this.mwidgetManager.getSubtitleId()).innerHTML=subtitle;};}
var $mwidgetManager=new MWidgetManager();var $mwidgetHelper=new MWidgetHelper($mwidgetManager);function PersonalPage(widgets,options){this.prefix="wg";var portal_options=new Array();portal_options["non_movable_widgets"]=options["non_movable_widgets"];this.portal=new Xilinus.Portal("#portal div",this.prefix,portal_options);this.widgets=widgets;this.options=options;this.can_edit=options["can_edit"]||false;this.personalPageId=options["id"];this._nextId=-1;enableScripts("PersonalPageWidgets");for(var column=0;column<widgets.length;column++){col_widgets=widgets[column];for(var row=0;row<col_widgets.length;row++){widget=col_widgets[row];var id=widget["id"];var header=Element.extend(document.getElementById("wg_header_"+id));var content=Element.extend(document.getElementById("wg_content_"+id));var minimized=widget["minimized"]||false;var deletable=widget["deletable"]||false;var movable=widget["movable"]||false;if(id!=null&&content!=null){if(this.can_edit){var controlsDivHTML="<div class='wg_controls'>";if(deletable){controlsDivHTML+="<div class='wg_btn'><a onclick='javascript:$personal_page.deleteWidget(this)' id='wg_del_btn'></a></div>";}
controlsDivHTML+="<div class='wg_btn'><a onclick='javascript:$personal_page.minimizeWidget(this)' id='wg_min_btn'></a></div>";controlsDivHTML+="</div>";if(header!=null){new Insertion.Top(header.firstDescendant(),controlsDivHTML);}}
if(header!=null){widget=new Xilinus.Widget(this.prefix,id).setHeader(header.innerHTML).setContent(content.innerHTML,content.className);}else{widget=new Xilinus.Widget(this.prefix,id).setHeader(null).setContent(content.innerHTML,content.className);}
this.portal.add(widget,column,row,movable);if(minimized){var newContent=widget.getElement().getElementsBySelector('div.wg_content')[0];if(typeof(newContent)!='undefined'){newContent.hide();}}}}}
$('ppw_col_cont').remove();this.nextId=function(){return this._nextId--;};this.minimizeWidget=function(minimize_control){var widget=$(minimize_control).up(".wg").widget;var content=$(minimize_control).up(".wg").getElementsBySelector(".wg_content")[0];var minimize=1;if(!content.visible()){content.show();minimize=0;}else{content.hide();minimize=1;}
new Ajax.Request('/personal_page_widgets/edit_widget',{method:'post',parameters:{"widget[id]":widget._id,"widget[minimized]":minimize,"personal_page[id]":this.personalPageId}});this.portal.updateColumnsHeight();};this.addWidget=function(title,type,instanceId,singleton){widgetSelected(type,instanceId,singleton);var new_id=this.nextId();var header=document.createElement("div");Element.extend(header);header.innerHTML=$('wg_header_-9999').innerHTML;var content=document.createElement("div");Element.extend(content);content.innerHTML=$('wg_content_-9999').innerHTML;var titleElem=header.getElementsBySelector(".mw_title")[0];titleElem.id='mw_title_'+new_id;titleElem.addClassName('mw_title_'+new_id);titleElem.innerHTML=title;var iconElem=header.getElementsBySelector(".mw_icon")[0];iconElem.addClassName('pp_app_'+type);var subtitleElem=header.getElementsBySelector(".app_subtitle")[0];subtitleElem.id='mw_subtitle_'+new_id;subtitleElem.addClassName('mw_subtitle_'+new_id);widget=new Xilinus.Widget(this.prefix,new_id).setHeader(header.innerHTML).setContent(content.innerHTML);var addColumn=1;for(var addRow=0;addRow<this.widgets[addColumn].length;addRow++){if(this.widgets[addColumn][addRow].movable){break;}}
this.portal.add(widget,addColumn,addRow,true);new Ajax.Request('/personal_page_widgets/create_widget',{method:'post',parameters:{"widget_data[id]":instanceId,row:addRow,column:addColumn,type:type,"personal_page[id]":this.personalPageId},onComplete:this.onComplete(widget,$('wg_content_'+new_id),new_id)});};this.onComplete=function(widget,content,temp_id){return function(transport){$mwidgetManager.setAppId(temp_id);content.innerHTML=transport.responseText;setTimeout(function(){transport.responseText.evalScripts()},10);var newWidgetId=content.getElementsBySelector(".wg_new")[0].innerHTML;widget._id=newWidgetId;$('wg_'+temp_id).id='wg_'+newWidgetId;content.id='wg_content_'+newWidgetId;}};this.smallestColumn=function(){var smallestColumn=0;var smallestNumOfWidgets=9999;for(var col=0;col<=2;col++){if(smallestNumOfWidgets>this.portal._columns[col].childNodes.length){smallestNumOfWidgets=this.portal._columns[col].childNodes.length;smallestColumn=col;}}
return smallestColumn;};this.deleteWidget=function(delete_control){resetApplicationList();var widget=$(delete_control).up(".wg").widget;if(confirm('Are you sure you want to remove this widget?')){this.portal.remove(widget);this.portal.updateColumnsHeight();new Ajax.Request('/personal_page_widgets/destroy_widget',{method:'post',parameters:{"widget[id]":widget._id,"personal_page[id]":this.personalPageId}});}};}
function SettingsDrawer(options){$('settings_drawer').hide();this.loadedApps=false;this.open=false;this.current_form="apps";this.personal_page_name=options["name"];this.personal_page_id=options["id"];this.user_login=options["user_login"];this.theme=options["theme"];this.hidden_apps_length=options["hidden_apps_length"];this.closeDrawer=function(){if(this.open){this.toggleDrawer();}};this.widgetSelected=function(app_type,app_instance_id,singleton){if(app_instance_id!=null||singleton){var app_id='app_drw_'+app_type;if(app_instance_id!=null){app_id=app_id+'_'+app_instance_id;}
$(app_id).innerHTML="<div class='set_dra_selected_app pp_app_selected_icon'><img src='/RoR/images/blank.gif'/></div>";}};this.resetApplicationList=function(){this.loadedApps=false;};this.toggleDrawer=function(){if(this.open==false){$('settings_drawer').show();this.open=true;if(this.hidden_apps_length>0){if(!this.loadedApps){new Ajax.Updater('hidden_apps','/personal_pages/application_lists',{parameters:{id:this.personal_page_id},asynchronous:true,evalScripts:true});this.loadedApps=true;$('hidden_apps').innerHTML='<div class="set_apps_load"><img src="/RoR/images/settings_apps_load.gif"></div>';}
$('hidden_apps').setStyle({height:(this.hidden_apps_length*38).toString()+"px"});}
$('set_btn_bor').className="set_dra_item set_dra_open";$('set_btn').className="set_btn_item set_btn_open";$('set_tn_'+this.theme).className="set_th_item set_th_item_sel";this.save_theme_html=$('set_save_bt').innerHTML;this.hideAllForms();$("apps").show();this.openSettingsForm("apps");}else{$('settings_drawer').hide();this.open=false;$('set_btn_bor').className="set_dra_item set_dra_closed";$('set_btn').className="set_btn_item set_btn_closed";$('set_dra_share_this').innerHTML="";this.resetSaveThemeButton();setTheme(this.theme);}};this.savePageSettings=function(){new Ajax.Request('/personal_pages/update_settings/'+this.personal_page_id,{method:'post',parameters:Form.serialize($('st_personal_page_settings')),onSuccess:function(transport){if(transport.responseText=='Saved'){$('pp_sel_tab').innerHTML=$('st_personal_page[name]').value;toggleDrawer();}else{$('set_dra_page_settings').update(transport.responseText);setTimeout(function(){transport.responseText.evalScripts();},10);}}});};this.hideAllForms=function(){$("settings_drawer").getElementsBySelector(".set_page").each(function(settingsPage){settingsPage.hide();});};this.refreshForm=function(form_name){this.openSettingsForm(form_name);};this.openSettingsForm=function(form_name){if(this.current_form==form_name&&this.current_form!='share_this'){return false;}
else{$(this.current_form+'_tab').removeClassName("set_tab_sel");$(this.current_form).hide();$(form_name+'_tab').addClassName("set_tab_sel");$(form_name).show();this.current_form=form_name;if(this.current_form=='share_this'){$ppcManager=new PPContactsManager();$ppc_wizard=new PPContactsWizard(this.personal_page_id);$('set_dra_share_this').innerHTML='<div class="set_apps_load"><img src="/RoR/images/settings_apps_load.gif"></div>';new Ajax.Updater('set_dra_share_this','/personal_page_contacts/list',{parameters:{id:this.personal_page_id,app_drw:true,manage_contacts:true},asynchronous:true,evalScripts:true});}}};this.saveTheme=function(){this.theme=$('theme').className;showSubmitting('set_save_bt');new Ajax.Request('/personal_pages/update',{method:'post',parameters:{"personal_page[theme]":this.theme,"id":this.personal_page_id},onSuccess:function(transport){showSubmitted('set_save_bt',transport.responseText);toggleDrawer();}});};this.showSubmitting=function(submit_id){$(submit_id).innerHTML='<b>Submitting</b> <img src="/RoR/images/settings_submit_load.gif">';};this.showSubmitted=function(submit_id,text){$(submit_id).innerHTML='<b>'+text+'</b>';};this.resetSaveThemeButton=function(){$('set_save_bt').innerHTML=this.save_theme_html;};}
function setTheme(new_theme,prefix){var theme=$('theme');if(theme.hasClassName(new_theme)){return false;}
var old_theme=theme.className;theme.removeClassName(old_theme);theme.addClassName(new_theme);$(prefix+old_theme).className="set_th_item";$(prefix+new_theme).className="set_th_item set_th_item_sel";};function showAddBox(){$('pp_types_box').show();}
function hideAddBox(){$('pp_types_box').hide();}
function PersonalPageWizard(user_id,isForm){this.user_id=user_id
this.isForm=(typeof(isForm)!='undefined'&&isForm);this.personalPageId=0;this.start=function(pageName,pageType){this.pageType=pageType;this.pageName=pageName;closeDrawer();Position.clone($('universe'),$('lb_wizard_container'),{setWidth:false,setHeight:false,offsetLeft:100,offsetTop:70});myLightbox.start('wizard_lb',0.5,true);new Ajax.Updater('wizard','/personal_pages/new',{parameters:{"user_id":this.user_id,"personal_page[type]":pageType},evalScripts:true,method:'get',onComplete:function(transport){$('wizard').setStyle({background:'#D7E8F2 none repeat scroll 0 0'});}});};this.pageCreated=function(personalPageId){this.personalPageId=personalPageId;}
this.stop=function(){if(!this.isForm){myLightbox.end();}
if(this.personalPageId>0){window.location="/personal_pages/show/"+this.personalPageId;}else if(this.isForm){window.location="/user_profiles/my_profile";}};this.showThemesPage=function(personalPageId){new Ajax.Updater('wizard','/personal_pages/edit_theme',{parameters:{"id":personalPageId},method:'get',evalScripts:true});};this.showDonePage=function(personalPageId){this.personalPageId=personalPageId;$('wz_done_pgname').update(this.pageName);$('wizard').update($('wz_done_page').innerHTML);$('wizard').firstDescendant().show();};this.initializeButtons=function(){$('wz_btns').getElementsBySelector("a").each(function(wLink){Event.observe(wLink,'click',function(){ppWizardLightBox.disableButtons();});});};this.disableButtons=function(){$('wz_btns').getElementsBySelector("a").each(function(wLink){wLink.onclick=function(){return false;};});$('wz_btn_spin').show();};this.enableButtons=function(){$('wz_btns').getElementsBySelector("a").each(function(wLink){wLink.onclick=null;});$('wz_btn_spin').hide();};}
function WizardThemeSelector(personalPageId,personalPageTheme){this.personalPageId=personalPageId;this.personalPageTheme=personalPageTheme;$('wz_th_'+this.personalPageTheme).addClassName("set_th_item_sel");this.setTheme=function(newTheme){$('wz_th_'+this.personalPageTheme).removeClassName("set_th_item_sel");$('wz_th_'+newTheme).addClassName("set_th_item_sel");this.personalPageTheme=newTheme;new Ajax.Request('/personal_pages/update',{method:'post',parameters:{"personal_page[theme]":this.personalPageTheme,"id":this.personalPageId}});};}
function PersonalPageDeleteBox(){this.deletePersonalPage=function(personalPageId){if(confirm("Are you sure you want to delete this page?")){$('pp_del_form_id').value=personalPageId;$('pp_del_form').submit();}};this.start=function(personalPageId){hideFlash();};this.stop=function(){showFlash();};}
function PPContactsManager(){this._contacts=new Hash();this._existingContacts=new Hash();this._manualContacts="";this._manualContactsNotify=true;this._ppcExistingContacts=false;this._ppcFind=false;this.resetFoundFriends=function(){this._contacts=new Hash();this._ppcFind=false;};}
function PPContactsWizard(personalPageId){this._personalPageId=personalPageId;this._pageNum=0;this._contactsPage="";this._existingContactsPage="";this._foundContactsPage="";this._emailMessage="";this._emailMessageFrom="";this.nextPage=function(){this._pageNum=this._pageNum+1;};this.prevPage=function(){this._pageNum=this._pageNum-1;};this.page=function(){return this._pageNum;};this.checkAllNotifyAndSave=function(value){checkAllNotify(value);new Ajax.Updater({},'/personal_page_contacts/toggle_all_notify',{parameters:{id:this._personalPageId,value:value},asynchronous:true,evalScripts:true});};this.notifySave=function(contactId,value){new Ajax.Updater({},'/personal_page_contacts/toggle_notify',{parameters:{id:this._personalPageId,contact_id:contactId,value:value},asynchronous:true,evalScripts:true});};this.deleteContact=function(contactId){$('pp_myc_contact_'+contactId).remove();new Ajax.Updater('pp_myc_contact_'+contactId,'/personal_page_contacts/destroy',{parameters:{id:this._personalPageId,contact_id:contactId},asynchronous:true,evalScripts:true});};this.appDrawerGetContactsPage=function(pageName){this.getContactsPage(pageName,{app_drw:1},'set_dra_share_this');};this.getContactsPage=function(pageName,params,target){if(params==null){params={};}
if(target==null){target='wizard';}
new Ajax.Request('/personal_page_contacts/'+pageName+'/'+this._personalPageId,{method:'get',asynchronous:true,evalScripts:true,parameters:params,onComplete:function(transport){$(target).innerHTML=transport.responseText;setTimeout(function(){transport.responseText.evalScripts();},10);}});};this.postFindContacts=function(isAppDrawer){if(isAppDrawer){target='set_dra_share_this';params='?app_drw=1';}else{target='wizard';params="";}
new Ajax.Updater(target,'/personal_page_contacts/find_contacts/'+this._personalPageId+params,{asynchronous:true,evalScripts:true,parameters:Form.serialize($('find_contacts_form'))});};this.updateContacts=function(isFoundFriends,isAppDrawer){if(isFoundFriends){this._foundContactsPage=$('pp_myc_contacts').innerHTML;$ppcManager._contacts=new Hash();}
else{this._existingContactsPage=$('pp_myc_contacts').innerHTML;$ppcManager._existingContacts=new Hash();}
$$(".cb_ppc_name").each(function(item){if(item.checked){var container=item.up('.pp_myc_row');var key=container.getElementsBySelector('.pp_myc_email')[0].innerHTML;var name=container.getElementsBySelector('.pp_name')[0];var cb=container.getElementsBySelector('.cb_ppc_notify')[0];var value=new Array(name.innerHTML,cb.checked,cb.id.substr(10));if(isFoundFriends){$ppcManager._contacts.set(key,value);}
else{$ppcManager._existingContacts.set(key,value);}}});if(isAppDrawer){this.appDrawerGetContactsPage('show_message');}else{if(this.page()==1){this.getContactsPage('find_contacts');}
else{this.getContactsPage('show_message');}}};this.saveManualContactsSettings=function(){$ppcManager._manualContacts=$('personal_page_contact_emails').value;$ppcManager._manualContactsNotify=$('personal_page_contact_notify').checked;};this.saveMessage=function(){this._emailMessage=$('ppc_message').value;this._emailMessageFrom=$('ppc_message_from').value;};this.updateMessage=function(){if(this._emailMessage!=""){$("ppc_message").value=this._emailMessage;}
if(this._emailMessageFrom!=""){$('ppc_message_from').value=this._emailMessageFrom;}};this.submitManualContacts=function(isAppDrawer){if(this.validateEmailList($('personal_page_contact_emails').value)){$('disabled_text').hide();this.nextPage();this.saveManualContactsSettings();if(isAppDrawer){this.appDrawerGetContactsPage('show_message');}else{this.getContactsPage('show_message');}}else{$('disabled_text').show();if(!isAppDrawer){ppWizardLightBox.enableButtons();}}};this.validateEmailList=function(text){var emails=text.split(',');for(var i=0;i<emails.length;i=i+1){if(emails[i].length>0&&!validate_email(emails[i].strip())){return false;}}
return true;};this.submitEmails=function(){var message=$('ppc_message').value;if(this.messageFormValidation(message)){this.sendEmails(message);}};this.submitAddDrawerEmails=function(){var message=$('ppc_message').value;if(this.messageFormValidation(message)){new Ajax.Request('/personal_page_contacts/send_email/'+this._personalPageId,{method:'post',asynchronous:true,evalScripts:true,parameters:{"app_drw":1,"contacts":$ppcManager._contacts.toJSON(),"existing_contacts":$ppcManager._existingContacts.toJSON(),"manual_contacts":$ppcManager._manualContacts,"manual_notify":$ppcManager._manualContactsNotify,"message":message,"message_from":$('ppc_message_from').value},onComplete:function(transport){refreshForm('share_this');}});}};this.messageFormValidation=function(message){var limit_exceeded=(message.length>10240);if(limit_exceeded){$('disabled_text').show();return false;}else{$('disabled_text').hide();return true;}};this.sendEmails=function(message){new Ajax.Updater('wizard','/personal_page_contacts/send_email/'+this._personalPageId,{asynchronous:true,evalScripts:true,method:'post',parameters:{"contacts":$ppcManager._contacts.toJSON(),"existing_contacts":$ppcManager._existingContacts.toJSON(),"manual_contacts":$ppcManager._manualContacts,"manual_notify":$ppcManager._manualContactsNotify,"message":message,"message_from":$('ppc_message_from').value}});};this.updateAppDrawerPage=function(pageName){switch(pageName){case'my_contacts':$('ppc_contacts_prev').href="javascript:$ppc_wizard.prevPage();$ppc_wizard.appDrawerGetContactsPage('find_contacts');";$('ppc_contacts_next').href="javascript:$ppc_wizard.nextPage();$ppc_wizard.updateContacts(true,true);";if(this._foundContactsPage!=""){$('pp_myc_contacts').innerHTML=this._foundContactsPage;checkAllNames(false);checkAllNotify(false);$ppcManager._contacts.each(function(pair){$('pp_name_'+pair.value[2]).checked=true;$('pp_notify_'+pair.value[2]).checked=pair.value[1];$('pp_notify_'+pair.value[2]).disabled=false;});}
break;case'manual_contacts':$('ppc_contacts_next').href="javascript:$ppc_wizard.submitManualContacts(true);";$('ppc_contacts_prev').href="javascript:$ppc_wizard.saveManualContactsSettings();refreshForm('share_this');";if($ppcManager._manualContacts!=""){$('personal_page_contact_emails').value=$ppcManager._manualContacts;}
$('personal_page_contact_notify').checked=$ppcManager._manualContactsNotify;break;case'find_contacts':$('ppc_contacts_prev').href="javascript:refreshForm('share_this');";$('ppc_contacts_next').href="javascript:$ppc_wizard.nextPage();$ppc_wizard.postFindContacts(true);";break;case'show_message':$('ppc_contacts_next').href="javascript:$ppc_wizard.submitAddDrawerEmails();";if(this.page()==2){$('ppc_contacts_prev').href="javascript:$ppc_wizard.prevPage();$ppc_wizard.saveMessage();$ppc_wizard.appDrawerGetContactsPage('list');";}else{$('ppc_contacts_prev').href="javascript:$ppc_wizard.prevPage();$ppc_wizard.saveMessage();$ppc_wizard.appDrawerGetContactsPage('manual_contacts');";}
this.updateMessage();break;}};this.updatePage=function(pageName){switch(pageName)
{case'my_contacts':if(this.page()==0){$('ppc_contacts_prev').href='javascript:ppWizardLightBox.showThemesPage('+this._personalPageId+');';$('ppc_contacts_next').href='javascript:$ppc_wizard.nextPage();$ppc_wizard.updateContacts(false,false);';if(this._existingContactsPage!=""){$('pp_myc_contacts').innerHTML=this._existingContactsPage;checkAllNames(false);checkAllNotify(false);$ppcManager._existingContacts.each(function(pair){$('pp_name_'+pair.value[2]).checked=true;$('pp_notify_'+pair.value[2]).checked=pair.value[1];$('pp_notify_'+pair.value[2]).disabled=false;});}}else{$('ppc_contacts_prev').href='javascript:$ppc_wizard.prevPage();$ppc_wizard.getContactsPage("find_contacts");';$('ppc_contacts_next').href="javascript:$ppc_wizard.nextPage();$ppc_wizard.updateContacts(true,false);";if(this._foundContactsPage!=""){$('pp_myc_contacts').innerHTML=this._foundContactsPage;checkAllNames(false);checkAllNotify(false);$ppcManager._contacts.each(function(pair){$('pp_name_'+pair.value[2]).checked=true;$('pp_notify_'+pair.value[2]).checked=pair.value[1];$('pp_notify_'+pair.value[2]).disabled=false;});}}
break;case'find_contacts':$ppcManager.resetFoundFriends();if(this.page()==0){$('ppc_contacts_prev').href='javascript:ppWizardLightBox.showThemesPage('+this._personalPageId+');';}else{$('ppc_contacts_prev').href='javascript:$ppc_wizard.prevPage();$ppc_wizard.getContactsPage("my_contacts");';}
$('ppc_contacts_next').href="javascript:$ppc_wizard.nextPage();$ppc_wizard.postFindContacts(false);";break;case'manual_contacts':$('ppc_contacts_next').href="javascript:$ppc_wizard.submitManualContacts();";$('ppc_contacts_prev').href='javascript:$ppc_wizard.prevPage();$ppc_wizard.saveManualContactsSettings();$ppc_wizard.getContactsPage("find_contacts")';if($ppcManager._manualContacts!=""){$('personal_page_contact_emails').value=$ppcManager._manualContacts;}
$('personal_page_contact_notify').checked=$ppcManager._manualContactsNotify;break;case'show_message':$('ppc_contacts_next').href="javascript:$ppc_wizard.submitEmails();";if($ppcManager._ppcFind){$('ppc_contacts_prev').href="javascript:$ppc_wizard.prevPage();$ppc_wizard.saveMessage();$ppc_wizard.getContactsPage('my_contacts');";}else{$('ppc_contacts_prev').href="javascript:$ppc_wizard.prevPage();$ppc_wizard.saveMessage();$ppc_wizard.getContactsPage('manual_contacts');";}
this.updateMessage();break;}};}
var $ppcManager=new PPContactsManager();function checkAllNames(value){$$(".cb_ppc_name").each(function(item){item.checked=value;});$$(".cb_ppc_notify").each(function(item){item.disabled=!value;});}
function checkAllNotify(value){$$(".cb_ppc_notify").each(function(item){item.checked=value;});}
$selectedAppInstanceId=null;function viewApplicationInstances(id){if($selectedAppInstanceId!=id){if($selectedAppInstanceId!=null){Element.hide($selectedAppInstanceId+'_box');$($selectedAppInstanceId+'_icon').toggleClassName('pp_app_instance_open_icon');$($selectedAppInstanceId+'_icon').toggleClassName('pp_app_instance_closed_icon');}
Element.show(id+'_box');$(id+'_icon').toggleClassName('pp_app_instance_closed_icon');$(id+'_icon').toggleClassName('pp_app_instance_open_icon');$selectedAppInstanceId=id;}}
function RelativeInfo(){this.options_open={};this.name_open={};this.relative_id={};this.model_type={};this.model_id={};this.init_options=function(options){var uid=options["type"]+options["id"];this.options_open[uid]=false;this.name_open[uid]=false;this.relative_id[uid]=options["relative_id"];this.model_type[uid]=options["type"];this.model_id[uid]=options["id"];this.relatives=options["relatives"];this.controller=options["controller"];this.user_id=options["user_id"];}
this.toggleRelativeOptions=function(uid){$('relative_name'+uid).value="";$('relative_id'+uid).value=this.relative_id;if(this.options_open[uid]){$('rel_options'+uid).hide();$('rel_for'+uid).show();$('edit_rel_for'+uid).show();this.options_open[uid]=false;}
else{$('rel_for'+uid).hide();$('edit_rel_for'+uid).hide();$('rel_options'+uid).show();this.options_open[uid]=true;}};this.toggleRelativeName=function(uid){relative_id=$('relative_id'+uid).value;if(relative_id=="0"){$('rel_name'+uid).show();}
else{$('rel_name'+uid).hide();}};this.setRelative=function(uid){new_relative_id=$('relative_id'+uid).value;new_relative_name=$('relative_name'+uid).value;if(new_relative_id!="0"){new_relative_name=this.relatives[new_relative_id];$('rel_for'+uid).innerHTML=" "+new_relative_name+" ";}
new Ajax.Request('/'+this.controller+'/set_relative',{method:'post',parameters:{type:this.model_type[uid],id:this.model_id[uid],user_id:this.user_id,relative_id:new_relative_id,relative_name:new_relative_name},onSuccess:function(transport){if(new_relative_id=="0"){new_relative_id=transport.responseText;$relative_info.relatives[new_relative_id]=new_relative_name;options_length=$('relative_id'+uid).options.length;$('relative_id'+uid).options.length=options_length-1;$('relative_id'+uid).options[options_length-1]=new Option(new_relative_name,new_relative_id,false,true);$('relative_id'+uid).options[options_length]=new Option("Someone else",0,false,false);$('rel_for'+uid).innerHTML=" "+new_relative_name+" ";}
$relative_info.relative_id[uid]=new_relative_id;}});this.toggleRelativeOptions(uid);};}
function Immunizations(options){this.id=options["id"];this.personal_page_id=options["personal_page_id"];this.toggleImmunization=function(vacc,time){var new_class='vacc imm_on';if($(vacc+'_'+time).className.indexOf('imm_on')>=0){$(vacc+'_'+time).className="vacc imm_off";}else{switch(vacc)
{case'HepB':if([1,2,4,5,6,7].indexOf(time)>=0){new_class="vacc imm_on_rng"}
break;case'DTaP':if([6,7,10].indexOf(time)>=0){new_class="vacc imm_on_rng"}
break;case'Hib':if([5,6].indexOf(time)>=0){new_class="vacc imm_on_rng"}
break;case'PCV':if([5,6].indexOf(time)>=0){new_class="vacc imm_on_rng"}else if([9,10].indexOf(time)>=0){new_class="vacc imm_on_rsk"}
break;case'IPV':if([4,5,6,7,10].indexOf(time)>=0){new_class="vacc imm_on_rng"}
break;case'MMR':if([5,6,10].indexOf(time)>=0){new_class="vacc imm_on_rng"}
break;case'Varicella':if([5,6,10].indexOf(time)>=0){new_class="vacc imm_on_rng"}
break;case'Influenza':if([4,5,6,7,8,9,10].indexOf(time)>=0){new_class="vacc imm_on_rng"}
break;case'HepA':if([5,6,7,8].indexOf(time)>=0){new_class="vacc imm_on_rng"}else if([9,10].indexOf(time)>=0){new_class="vacc imm_on_rsk"}
break;case'MCV4':if([9,10].indexOf(time)>=0){new_class="vacc imm_on_rsk"}
break;}
$(vacc+'_'+time).className=new_class;}
new Ajax.Request('/immunizations/update',{method:'post',parameters:{"id":this.id,"vaccine":vacc,"time":time,"personal_page_id":this.personal_page_id}});};}
function SlidingHeaders(container){this.container=container;this.hover_tid=null;this.current=null;this.next=null;this.stop_slide=function(event){hovered=$A(arguments)[1];if(this.next==hovered&&this.hover_tid){clearTimeout(this.hover_tid);this.hover_tid=null;}};this.start_slide=function(event){hovered=$A(arguments)[1];if(this.hover_tid){clearTimeout(this.hover_tid);this.hover_tid=null;}
if(this.current!=hovered){this.next=hovered;this.hover_tid=setTimeout(this.slide_it.bind(this),200);}};this.slide_it=function(){if(this.current!=this.next){this.current.removeClassName("selected");this.next.addClassName("selected");new Effect.Parallel([new Effect.BlindDown(this.next.select('.sh_cnt')[0].id,{sync:true}),new Effect.BlindUp(this.current.select('.sh_cnt')[0].id,{sync:true})],{duration:0.2});this.current=this.next;}
this.hover_tid=null;};var first=null;container.select(".sh_box").each(function(box){if(first==null){first=box;}
var hdr=box.select('.sh_hdr')[0];Event.observe(hdr,'mouseout',this.stop_slide.bindAsEventListener(this,box));Event.observe(hdr,'mousemove',this.start_slide.bindAsEventListener(this,box));if(box.match('.selected')){this.current=box;}},this);if(first&&this.current==null){this.current=first;this.current.addClassName("selected");}}
function selectLearningCenterSection(sectionName){$('lc_section_buttons').descendants().each(function(desc){if(desc.id.match(/^lc_sec_btn_/)){var dsName=desc.id.gsub(/^lc_sec_btn_(.*)$/,'#{1}');if(dsName==sectionName&&!desc.hasClassName("sel_slv_btn")){desc.removeClassName("unsel_slv_btn");desc.addClassName("sel_slv_btn");$('lc_'+dsName+'_guide').show();$('lc_'+dsName+'_recommendations').show();}else if(dsName!=sectionName&&!desc.hasClassName("unsel_slv_btn")){desc.addClassName("unsel_slv_btn");desc.removeClassName("sel_slv_btn");$('lc_'+dsName+'_guide').hide();$('lc_'+dsName+'_recommendations').hide();}}});return false;}
var Builder={NODEMAP:{AREA:'map',CAPTION:'table',COL:'table',COLGROUP:'table',LEGEND:'fieldset',OPTGROUP:'select',OPTION:'select',PARAM:'object',TBODY:'table',TD:'table',TFOOT:'table',TH:'table',THEAD:'table',TR:'table'},node:function(elementName){elementName=elementName.toUpperCase();var parentTag=this.NODEMAP[elementName]||'div';var parentElement=document.createElement(parentTag);try{parentElement.innerHTML="<"+elementName+"></"+elementName+">";}catch(e){}
var element=parentElement.firstChild||null;if(element&&(element.tagName.toUpperCase()!=elementName))
element=element.getElementsByTagName(elementName)[0];if(!element)element=document.createElement(elementName);if(!element)return;if(arguments[1])
if(this._isStringOrNumber(arguments[1])||(arguments[1]instanceof Array)||arguments[1].tagName){this._children(element,arguments[1]);}else{var attrs=this._attributes(arguments[1]);if(attrs.length){try{parentElement.innerHTML="<"+elementName+" "+
attrs+"></"+elementName+">";}catch(e){}
element=parentElement.firstChild||null;if(!element){element=document.createElement(elementName);for(attr in arguments[1])
element[attr=='class'?'className':attr]=arguments[1][attr];}
if(element.tagName.toUpperCase()!=elementName)
element=parentElement.getElementsByTagName(elementName)[0];}}
if(arguments[2])
this._children(element,arguments[2]);return element;},_text:function(text){return document.createTextNode(text);},ATTR_MAP:{'className':'class','htmlFor':'for'},_attributes:function(attributes){var attrs=[];for(attribute in attributes)
attrs.push((attribute in this.ATTR_MAP?this.ATTR_MAP[attribute]:attribute)+'="'+attributes[attribute].toString().escapeHTML().gsub(/"/,'&quot;')+'"');return attrs.join(" ");},_children:function(element,children){if(children.tagName){element.appendChild(children);return;}
if(typeof children=='object'){children.flatten().each(function(e){if(typeof e=='object')
element.appendChild(e)
else
if(Builder._isStringOrNumber(e))
element.appendChild(Builder._text(e));});}else
if(Builder._isStringOrNumber(children))
element.appendChild(Builder._text(children));},_isStringOrNumber:function(param){return(typeof param=='string'||typeof param=='number');},build:function(html){var element=this.node('div');$(element).update(html.strip());return element.down();},dump:function(scope){if(typeof scope!='object'&&typeof scope!='function')scope=window;var tags=("A ABBR ACRONYM ADDRESS APPLET AREA B BASE BASEFONT BDO BIG BLOCKQUOTE BODY "+"BR BUTTON CAPTION CENTER CITE CODE COL COLGROUP DD DEL DFN DIR DIV DL DT EM FIELDSET "+"FONT FORM FRAME FRAMESET H1 H2 H3 H4 H5 H6 HEAD HR HTML I IFRAME IMG INPUT INS ISINDEX "+"KBD LABEL LEGEND LI LINK MAP MENU META NOFRAMES NOSCRIPT OBJECT OL OPTGROUP OPTION P "+"PARAM PRE Q S SAMP SCRIPT SELECT SMALL SPAN STRIKE STRONG STYLE SUB SUP TABLE TBODY TD "+"TEXTAREA TFOOT TH THEAD TITLE TR TT U UL VAR").split(/\s+/);tags.each(function(tag){scope[tag]=function(){return Builder.node.apply(Builder,[tag].concat($A(arguments)));}});}}
if(Object.isUndefined(Effect))
throw("dragdrop.js requires including script.aculo.us' effects.js library");var Droppables={drops:[],remove:function(element){this.drops=this.drops.reject(function(d){return d.element==$(element)});},add:function(element){element=$(element);var options=Object.extend({greedy:true,hoverclass:null,tree:false},arguments[1]||{});if(options.containment){options._containers=[];var containment=options.containment;if(Object.isArray(containment)){containment.each(function(c){options._containers.push($(c))});}else{options._containers.push($(containment));}}
if(options.accept)options.accept=[options.accept].flatten();Element.makePositioned(element);options.element=element;this.drops.push(options);},findDeepestChild:function(drops){deepest=drops[0];for(i=1;i<drops.length;++i)
if(Element.isParent(drops[i].element,deepest.element))
deepest=drops[i];return deepest;},isContained:function(element,drop){var containmentNode;if(drop.tree){containmentNode=element.treeNode;}else{containmentNode=element.parentNode;}
return drop._containers.detect(function(c){return containmentNode==c});},isAffected:function(point,element,drop){return((drop.element!=element)&&((!drop._containers)||this.isContained(element,drop))&&((!drop.accept)||(Element.classNames(element).detect(function(v){return drop.accept.include(v)})))&&Position.within(drop.element,point[0],point[1]));},deactivate:function(drop){if(drop.hoverclass)
Element.removeClassName(drop.element,drop.hoverclass);this.last_active=null;},activate:function(drop){if(drop.hoverclass)
Element.addClassName(drop.element,drop.hoverclass);this.last_active=drop;},show:function(point,element){if(!this.drops.length)return;var drop,affected=[];this.drops.each(function(drop){if(Droppables.isAffected(point,element,drop))
affected.push(drop);});if(affected.length>0)
drop=Droppables.findDeepestChild(affected);if(this.last_active&&this.last_active!=drop)this.deactivate(this.last_active);if(drop){Position.within(drop.element,point[0],point[1]);if(drop.onHover)
drop.onHover(element,drop.element,Position.overlap(drop.overlap,drop.element));if(drop!=this.last_active)Droppables.activate(drop);}},fire:function(event,element){if(!this.last_active)return;Position.prepare();if(this.isAffected([Event.pointerX(event),Event.pointerY(event)],element,this.last_active))
if(this.last_active.onDrop){this.last_active.onDrop(element,this.last_active.element,event);return true;}},reset:function(){if(this.last_active)
this.deactivate(this.last_active);}};var Draggables={drags:[],observers:[],register:function(draggable){if(this.drags.length==0){this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.updateDrag.bindAsEventListener(this);this.eventKeypress=this.keyPress.bindAsEventListener(this);Event.observe(document,"mouseup",this.eventMouseUp);Event.observe(document,"mousemove",this.eventMouseMove);Event.observe(document,"keypress",this.eventKeypress);}
this.drags.push(draggable);},unregister:function(draggable){this.drags=this.drags.reject(function(d){return d==draggable});if(this.drags.length==0){Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);Event.stopObserving(document,"keypress",this.eventKeypress);}},activate:function(draggable){if(draggable.options.delay){this._timeout=setTimeout(function(){Draggables._timeout=null;window.focus();Draggables.activeDraggable=draggable;}.bind(this),draggable.options.delay);}else{window.focus();this.activeDraggable=draggable;}},deactivate:function(){this.activeDraggable=null;},updateDrag:function(event){if(!this.activeDraggable)return;var pointer=[Event.pointerX(event),Event.pointerY(event)];if(this._lastPointer&&(this._lastPointer.inspect()==pointer.inspect()))return;this._lastPointer=pointer;this.activeDraggable.updateDrag(event,pointer);},endDrag:function(event){if(this._timeout){clearTimeout(this._timeout);this._timeout=null;}
if(!this.activeDraggable)return;this._lastPointer=null;this.activeDraggable.endDrag(event);this.activeDraggable=null;},keyPress:function(event){if(this.activeDraggable)
this.activeDraggable.keyPress(event);},addObserver:function(observer){this.observers.push(observer);this._cacheObserverCallbacks();},removeObserver:function(element){this.observers=this.observers.reject(function(o){return o.element==element});this._cacheObserverCallbacks();},notify:function(eventName,draggable,event){if(this[eventName+'Count']>0)
this.observers.each(function(o){if(o[eventName])o[eventName](eventName,draggable,event);});if(draggable.options[eventName])draggable.options[eventName](draggable,event);},_cacheObserverCallbacks:function(){['onStart','onEnd','onDrag'].each(function(eventName){Draggables[eventName+'Count']=Draggables.observers.select(function(o){return o[eventName];}).length;});}};var Draggable=Class.create({initialize:function(element){var defaults={handle:false,reverteffect:function(element,top_offset,left_offset){var dur=Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02;new Effect.Move(element,{x:-left_offset,y:-top_offset,duration:dur,queue:{scope:'_draggable',position:'end'}});},endeffect:function(element){var toOpacity=Object.isNumber(element._opacity)?element._opacity:1.0;new Effect.Opacity(element,{duration:0.2,from:0.7,to:toOpacity,queue:{scope:'_draggable',position:'end'},afterFinish:function(){Draggable._dragging[element]=false}});},zindex:1000,revert:false,quiet:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,snap:false,delay:0};if(!arguments[1]||Object.isUndefined(arguments[1].endeffect))
Object.extend(defaults,{starteffect:function(element){element._opacity=Element.getOpacity(element);Draggable._dragging[element]=true;new Effect.Opacity(element,{duration:0.2,from:element._opacity,to:0.7});}});var options=Object.extend(defaults,arguments[1]||{});this.element=$(element);if(options.handle&&Object.isString(options.handle))
this.handle=this.element.down('.'+options.handle,0);if(!this.handle)this.handle=$(options.handle);if(!this.handle)this.handle=this.element;if(options.scroll&&!options.scroll.scrollTo&&!options.scroll.outerHTML){options.scroll=$(options.scroll);this._isScrollChild=Element.childOf(this.element,options.scroll);}
Element.makePositioned(this.element);this.options=options;this.dragging=false;this.eventMouseDown=this.initDrag.bindAsEventListener(this);Event.observe(this.handle,"mousedown",this.eventMouseDown);Draggables.register(this);},destroy:function(){Event.stopObserving(this.handle,"mousedown",this.eventMouseDown);Draggables.unregister(this);},currentDelta:function(){return([parseInt(Element.getStyle(this.element,'left')||'0'),parseInt(Element.getStyle(this.element,'top')||'0')]);},initDrag:function(event){if(!Object.isUndefined(Draggable._dragging[this.element])&&Draggable._dragging[this.element])return;if(Event.isLeftClick(event)){var src=Event.element(event);if((tag_name=src.tagName.toUpperCase())&&(tag_name=='INPUT'||tag_name=='SELECT'||tag_name=='OPTION'||tag_name=='BUTTON'||tag_name=='TEXTAREA'))return;var pointer=[Event.pointerX(event),Event.pointerY(event)];var pos=Position.cumulativeOffset(this.element);this.offset=[0,1].map(function(i){return(pointer[i]-pos[i])});Draggables.activate(this);Event.stop(event);}},startDrag:function(event){this.dragging=true;if(!this.delta)
this.delta=this.currentDelta();if(this.options.zindex){this.originalZ=parseInt(Element.getStyle(this.element,'z-index')||0);this.element.style.zIndex=this.options.zindex;}
if(this.options.ghosting){this._clone=this.element.cloneNode(true);this._originallyAbsolute=(this.element.getStyle('position')=='absolute');if(!this._originallyAbsolute)
Position.absolutize(this.element);this.element.parentNode.insertBefore(this._clone,this.element);}
if(this.options.scroll){if(this.options.scroll==window){var where=this._getWindowScroll(this.options.scroll);this.originalScrollLeft=where.left;this.originalScrollTop=where.top;}else{this.originalScrollLeft=this.options.scroll.scrollLeft;this.originalScrollTop=this.options.scroll.scrollTop;}}
Draggables.notify('onStart',this,event);if(this.options.starteffect)this.options.starteffect(this.element);},updateDrag:function(event,pointer){if(!this.dragging)this.startDrag(event);if(!this.options.quiet){Position.prepare();Droppables.show(pointer,this.element);}
Draggables.notify('onDrag',this,event);this.draw(pointer);if(this.options.change)this.options.change(this);if(this.options.scroll){this.stopScrolling();var p;if(this.options.scroll==window){with(this._getWindowScroll(this.options.scroll)){p=[left,top,left+width,top+height];}}else{p=Position.page(this.options.scroll);p[0]+=this.options.scroll.scrollLeft+Position.deltaX;p[1]+=this.options.scroll.scrollTop+Position.deltaY;p.push(p[0]+this.options.scroll.offsetWidth);p.push(p[1]+this.options.scroll.offsetHeight);}
var speed=[0,0];if(pointer[0]<(p[0]+this.options.scrollSensitivity))speed[0]=pointer[0]-(p[0]+this.options.scrollSensitivity);if(pointer[1]<(p[1]+this.options.scrollSensitivity))speed[1]=pointer[1]-(p[1]+this.options.scrollSensitivity);if(pointer[0]>(p[2]-this.options.scrollSensitivity))speed[0]=pointer[0]-(p[2]-this.options.scrollSensitivity);if(pointer[1]>(p[3]-this.options.scrollSensitivity))speed[1]=pointer[1]-(p[3]-this.options.scrollSensitivity);this.startScrolling(speed);}
if(Prototype.Browser.WebKit)window.scrollBy(0,0);Event.stop(event);},finishDrag:function(event,success){this.dragging=false;if(this.options.quiet){Position.prepare();var pointer=[Event.pointerX(event),Event.pointerY(event)];Droppables.show(pointer,this.element);}
if(this.options.ghosting){if(!this._originallyAbsolute)
Position.relativize(this.element);delete this._originallyAbsolute;Element.remove(this._clone);this._clone=null;}
var dropped=false;if(success){dropped=Droppables.fire(event,this.element);if(!dropped)dropped=false;}
if(dropped&&this.options.onDropped)this.options.onDropped(this.element);Draggables.notify('onEnd',this,event);var revert=this.options.revert;if(revert&&Object.isFunction(revert))revert=revert(this.element);var d=this.currentDelta();if(revert&&this.options.reverteffect){if(dropped==0||revert!='failure')
this.options.reverteffect(this.element,d[1]-this.delta[1],d[0]-this.delta[0]);}else{this.delta=d;}
if(this.options.zindex)
this.element.style.zIndex=this.originalZ;if(this.options.endeffect)
this.options.endeffect(this.element);Draggables.deactivate(this);Droppables.reset();},keyPress:function(event){if(event.keyCode!=Event.KEY_ESC)return;this.finishDrag(event,false);Event.stop(event);},endDrag:function(event){if(!this.dragging)return;this.stopScrolling();this.finishDrag(event,true);Event.stop(event);},draw:function(point){var pos=Position.cumulativeOffset(this.element);if(this.options.ghosting){var r=Position.realOffset(this.element);pos[0]+=r[0]-Position.deltaX;pos[1]+=r[1]-Position.deltaY;}
var d=this.currentDelta();pos[0]-=d[0];pos[1]-=d[1];if(this.options.scroll&&(this.options.scroll!=window&&this._isScrollChild)){pos[0]-=this.options.scroll.scrollLeft-this.originalScrollLeft;pos[1]-=this.options.scroll.scrollTop-this.originalScrollTop;}
var p=[0,1].map(function(i){return(point[i]-pos[i]-this.offset[i])}.bind(this));if(this.options.snap){if(Object.isFunction(this.options.snap)){p=this.options.snap(p[0],p[1],this);}else{if(Object.isArray(this.options.snap)){p=p.map(function(v,i){return(v/this.options.snap[i]).round()*this.options.snap[i]}.bind(this));}else{p=p.map(function(v){return(v/this.options.snap).round()*this.options.snap}.bind(this));}}}
var style=this.element.style;if((!this.options.constraint)||(this.options.constraint=='horizontal'))
style.left=p[0]+"px";if((!this.options.constraint)||(this.options.constraint=='vertical'))
style.top=p[1]+"px";if(style.visibility=="hidden")style.visibility="";},stopScrolling:function(){if(this.scrollInterval){clearInterval(this.scrollInterval);this.scrollInterval=null;Draggables._lastScrollPointer=null;}},startScrolling:function(speed){if(!(speed[0]||speed[1]))return;this.scrollSpeed=[speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed];this.lastScrolled=new Date();this.scrollInterval=setInterval(this.scroll.bind(this),10);},scroll:function(){var current=new Date();var delta=current-this.lastScrolled;this.lastScrolled=current;if(this.options.scroll==window){with(this._getWindowScroll(this.options.scroll)){if(this.scrollSpeed[0]||this.scrollSpeed[1]){var d=delta/1000;this.options.scroll.scrollTo(left+d*this.scrollSpeed[0],top+d*this.scrollSpeed[1]);}}}else{this.options.scroll.scrollLeft+=this.scrollSpeed[0]*delta/1000;this.options.scroll.scrollTop+=this.scrollSpeed[1]*delta/1000;}
Position.prepare();Droppables.show(Draggables._lastPointer,this.element);Draggables.notify('onDrag',this);if(this._isScrollChild){Draggables._lastScrollPointer=Draggables._lastScrollPointer||$A(Draggables._lastPointer);Draggables._lastScrollPointer[0]+=this.scrollSpeed[0]*delta/1000;Draggables._lastScrollPointer[1]+=this.scrollSpeed[1]*delta/1000;if(Draggables._lastScrollPointer[0]<0)
Draggables._lastScrollPointer[0]=0;if(Draggables._lastScrollPointer[1]<0)
Draggables._lastScrollPointer[1]=0;this.draw(Draggables._lastScrollPointer);}
if(this.options.change)this.options.change(this);},_getWindowScroll:function(w){var T,L,W,H;with(w.document){if(w.document.documentElement&&documentElement.scrollTop){T=documentElement.scrollTop;L=documentElement.scrollLeft;}else if(w.document.body){T=body.scrollTop;L=body.scrollLeft;}
if(w.innerWidth){W=w.innerWidth;H=w.innerHeight;}else if(w.document.documentElement&&documentElement.clientWidth){W=documentElement.clientWidth;H=documentElement.clientHeight;}else{W=body.offsetWidth;H=body.offsetHeight;}}
return{top:T,left:L,width:W,height:H};}});Draggable._dragging={};var SortableObserver=Class.create({initialize:function(element,observer){this.element=$(element);this.observer=observer;this.lastValue=Sortable.serialize(this.element);},onStart:function(){this.lastValue=Sortable.serialize(this.element);},onEnd:function(){Sortable.unmark();if(this.lastValue!=Sortable.serialize(this.element))
this.observer(this.element)}});var Sortable={SERIALIZE_RULE:/^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/,sortables:{},_findRootElement:function(element){while(element.tagName.toUpperCase()!="BODY"){if(element.id&&Sortable.sortables[element.id])return element;element=element.parentNode;}},options:function(element){element=Sortable._findRootElement($(element));if(!element)return;return Sortable.sortables[element.id];},destroy:function(element){element=$(element);var s=Sortable.sortables[element.id];if(s){Draggables.removeObserver(s.element);s.droppables.each(function(d){Droppables.remove(d)});s.draggables.invoke('destroy');delete Sortable.sortables[s.element.id];}},create:function(element){element=$(element);var options=Object.extend({element:element,tag:'li',dropOnEmpty:false,tree:false,treeTag:'ul',overlap:'vertical',constraint:'vertical',containment:element,handle:false,only:false,delay:0,hoverclass:null,ghosting:false,quiet:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,format:this.SERIALIZE_RULE,elements:false,handles:false,onChange:Prototype.emptyFunction,onUpdate:Prototype.emptyFunction},arguments[1]||{});this.destroy(element);var options_for_draggable={revert:true,quiet:options.quiet,scroll:options.scroll,scrollSpeed:options.scrollSpeed,scrollSensitivity:options.scrollSensitivity,delay:options.delay,ghosting:options.ghosting,constraint:options.constraint,handle:options.handle};if(options.starteffect)
options_for_draggable.starteffect=options.starteffect;if(options.reverteffect)
options_for_draggable.reverteffect=options.reverteffect;else
if(options.ghosting)options_for_draggable.reverteffect=function(element){element.style.top=0;element.style.left=0;};if(options.endeffect)
options_for_draggable.endeffect=options.endeffect;if(options.zindex)
options_for_draggable.zindex=options.zindex;var options_for_droppable={overlap:options.overlap,containment:options.containment,tree:options.tree,hoverclass:options.hoverclass,onHover:Sortable.onHover};var options_for_tree={onHover:Sortable.onEmptyHover,overlap:options.overlap,containment:options.containment,hoverclass:options.hoverclass};Element.cleanWhitespace(element);options.draggables=[];options.droppables=[];if(options.dropOnEmpty||options.tree){Droppables.add(element,options_for_tree);options.droppables.push(element);}
(options.elements||this.findElements(element,options)||[]).each(function(e,i){var handle=options.handles?$(options.handles[i]):(options.handle?$(e).select('.'+options.handle)[0]:e);options.draggables.push(new Draggable(e,Object.extend(options_for_draggable,{handle:handle})));Droppables.add(e,options_for_droppable);if(options.tree)e.treeNode=element;options.droppables.push(e);});if(options.tree){(Sortable.findTreeElements(element,options)||[]).each(function(e){Droppables.add(e,options_for_tree);e.treeNode=element;options.droppables.push(e);});}
this.sortables[element.id]=options;Draggables.addObserver(new SortableObserver(element,options.onUpdate));},findElements:function(element,options){return Element.findChildren(element,options.only,options.tree?true:false,options.tag);},findTreeElements:function(element,options){return Element.findChildren(element,options.only,options.tree?true:false,options.treeTag);},onHover:function(element,dropon,overlap){if(Element.isParent(dropon,element))return;if(overlap>.33&&overlap<.66&&Sortable.options(dropon).tree){return;}else if(overlap>0.5){Sortable.mark(dropon,'before');if(dropon.previousSibling!=element){var oldParentNode=element.parentNode;element.style.visibility="hidden";dropon.parentNode.insertBefore(element,dropon);if(dropon.parentNode!=oldParentNode)
Sortable.options(oldParentNode).onChange(element);Sortable.options(dropon.parentNode).onChange(element);}}else{Sortable.mark(dropon,'after');var nextElement=dropon.nextSibling||null;if(nextElement!=element){var oldParentNode=element.parentNode;element.style.visibility="hidden";dropon.parentNode.insertBefore(element,nextElement);if(dropon.parentNode!=oldParentNode)
Sortable.options(oldParentNode).onChange(element);Sortable.options(dropon.parentNode).onChange(element);}}},onEmptyHover:function(element,dropon,overlap){var oldParentNode=element.parentNode;var droponOptions=Sortable.options(dropon);if(!Element.isParent(dropon,element)){var index;var children=Sortable.findElements(dropon,{tag:droponOptions.tag,only:droponOptions.only});var child=null;if(children){var offset=Element.offsetSize(dropon,droponOptions.overlap)*(1.0-overlap);for(index=0;index<children.length;index+=1){if(offset-Element.offsetSize(children[index],droponOptions.overlap)>=0){offset-=Element.offsetSize(children[index],droponOptions.overlap);}else if(offset-(Element.offsetSize(children[index],droponOptions.overlap)/2)>=0){child=index+1<children.length?children[index+1]:null;break;}else{child=children[index];break;}}}
dropon.insertBefore(element,child);Sortable.options(oldParentNode).onChange(element);droponOptions.onChange(element);}},unmark:function(){if(Sortable._marker)Sortable._marker.hide();},mark:function(dropon,position){var sortable=Sortable.options(dropon.parentNode);if(sortable&&!sortable.ghosting)return;if(!Sortable._marker){Sortable._marker=($('dropmarker')||Element.extend(document.createElement('DIV'))).hide().addClassName('dropmarker').setStyle({position:'absolute'});document.getElementsByTagName("body").item(0).appendChild(Sortable._marker);}
var offsets=Position.cumulativeOffset(dropon);Sortable._marker.setStyle({left:offsets[0]+'px',top:offsets[1]+'px'});if(position=='after')
if(sortable.overlap=='horizontal')
Sortable._marker.setStyle({left:(offsets[0]+dropon.clientWidth)+'px'});else
Sortable._marker.setStyle({top:(offsets[1]+dropon.clientHeight)+'px'});Sortable._marker.show();},_tree:function(element,options,parent){var children=Sortable.findElements(element,options)||[];for(var i=0;i<children.length;++i){var match=children[i].id.match(options.format);if(!match)continue;var child={id:encodeURIComponent(match?match[1]:null),element:element,parent:parent,children:[],position:parent.children.length,container:$(children[i]).down(options.treeTag)};if(child.container)
this._tree(child.container,options,child);parent.children.push(child);}
return parent;},tree:function(element){element=$(element);var sortableOptions=this.options(element);var options=Object.extend({tag:sortableOptions.tag,treeTag:sortableOptions.treeTag,only:sortableOptions.only,name:element.id,format:sortableOptions.format},arguments[1]||{});var root={id:null,parent:null,children:[],container:element,position:0};return Sortable._tree(element,options,root);},_constructIndex:function(node){var index='';do{if(node.id)index='['+node.position+']'+index;}while((node=node.parent)!=null);return index;},sequence:function(element){element=$(element);var options=Object.extend(this.options(element),arguments[1]||{});return $(this.findElements(element,options)||[]).map(function(item){return item.id.match(options.format)?item.id.match(options.format)[1]:'';});},setSequence:function(element,new_sequence){element=$(element);var options=Object.extend(this.options(element),arguments[2]||{});var nodeMap={};this.findElements(element,options).each(function(n){if(n.id.match(options.format))
nodeMap[n.id.match(options.format)[1]]=[n,n.parentNode];n.parentNode.removeChild(n);});new_sequence.each(function(ident){var n=nodeMap[ident];if(n){n[1].appendChild(n[0]);delete nodeMap[ident];}});},serialize:function(element){element=$(element);var options=Object.extend(Sortable.options(element),arguments[1]||{});var name=encodeURIComponent((arguments[1]&&arguments[1].name)?arguments[1].name:element.id);if(options.tree){return Sortable.tree(element,arguments[1]).children.map(function(item){return[name+Sortable._constructIndex(item)+"[id]="+
encodeURIComponent(item.id)].concat(item.children.map(arguments.callee));}).flatten().join('&');}else{return Sortable.sequence(element,arguments[1]).map(function(item){return name+"[]="+encodeURIComponent(item);}).join('&');}}};Element.isParent=function(child,element){if(!child.parentNode||child==element)return false;if(child.parentNode==element)return true;return Element.isParent(child.parentNode,element);};Element.findChildren=function(element,only,recursive,tagName){if(!element.hasChildNodes())return null;tagName=tagName.toUpperCase();if(only)only=[only].flatten();var elements=[];$A(element.childNodes).each(function(e){if(e.tagName&&e.tagName.toUpperCase()==tagName&&(!only||(Element.classNames(e).detect(function(v){return only.include(v)}))))
elements.push(e);if(recursive){var grandchildren=Element.findChildren(e,only,recursive,tagName);if(grandchildren)elements.push(grandchildren);}});return(elements.length>0?elements.flatten():[]);};Element.offsetSize=function(element,type){return element['offset'+((type=='vertical'||type=='height')?'Height':'Width')];};if(typeof Draggable=='undefined')
throw("widget.js requires including script.aculo.us' dragdrop.js library");if(typeof Builder=='undefined')
throw("widget.js requires including script.aculo.us' builder.js library");if(typeof Xilinus=='undefined')
Xilinus={}
Builder.dump();Xilinus.Widget=Class.create();Xilinus.Widget.lastId=0;Xilinus.Widget.remove=function(element,options){if(options&&options.afterFinish)
options.afterFinish.call();}
Object.extend(Xilinus.Widget.prototype,{initialize:function(prefix,id){className=prefix||"widget";this._prefix=prefix||"widget";this._id=id||(prefix+"_"+Xilinus.Widget.lastId++);this._headerDiv=DIV({className:className+'_header',id:this._getId("header")},"");this._contentDiv=DIV({className:className+'_content',id:this._getId("content")},"");this.construct();return this;},construct:function(){var divHeader="";var divContent;if(this._headerDiv!=null){divHeader=DIV({className:className+'_nw'},this._headerDiv);divContent=DIV({className:className+'_w'},this._contentDiv);}else{divContent=DIV({className:className+'_w'},DIV({className:'wg'+'_content2',id:this._getId("content")},""));}
divContent=DIV({className:className+'_w'},this._contentDiv);this._div=DIV({className:className,id:this._getId()},[divHeader,divContent]);this._div.widget=this;},destroy:function(){this._div.remove();},getElement:function(){return $(this._getId())||$(this._div);},setHeader:function(header){if(header==null){this._headerDiv=null;this.construct();}else{$(this._headerDiv).update(header);}
return this;},getHeader:function(){return $(this._headerDiv)},setContent:function(content,className){$(this._contentDiv).addClassName(className);$(this._contentDiv).update(content);return this;},getContent:function(){return $(this._contentDiv)},updateHeight:function(){return;$(this._contentDiv).setStyle({height:null})
var h=$(this._contentDiv).getHeight();$(this._contentDiv).setStyle({height:h+"px"})},_getId:function(element){return this._prefix+"_"+(element?element+"_":"")+this._id;}});Xilinus.Portal=Class.create()
Object.extend(Xilinus.Portal.prototype,{lastEvent:null,widgets:null,columns:null,initialize:function(columns,prefix,options){this.options=Object.extend({url:"/personal_pages/update",onOverWidget:null,onOutWidget:null,onChange:null,onUpdate:null,removeEffect:Effect.SwitchOff},options)
this._prefix=prefix||"widget";this._non_draggables=options["non_movable_widgets"];this._columns=(typeof columns=="string")?$$(columns):columns;this._widgets=new Array();this._columns.each(function(element){Droppables.add(element,{onHover:this.onHover.bind(this),overlap:"vertical",accept:this.options.accept})}.bind(this));this._outTimer=null;this._columns.invoke("undoPositioned");this._currentOverWidget=null;this._widgetMouseOver=this.widgetMouseOver.bindAsEventListener(this);this._widgetMouseOut=this.widgetMouseOut.bindAsEventListener(this);Draggables.addObserver({onEnd:this.endDrag.bind(this),onStart:this.startDrag.bind(this)});},add:function(widget,columnIndex,rowIndex,draggable){draggable=typeof draggable=="undefined"?true:draggable
this._widgets.push(widget);if(this.options.accept){widget.getElement().addClassName(this.options.accept);}
firstWidget=this._columns[columnIndex].childNodes[rowIndex];if(firstWidget!=undefined){this._columns[columnIndex].insertBefore(widget.getElement(),firstWidget);}else{this._columns[columnIndex].appendChild(widget.getElement());}
widget.updateHeight();if(draggable){widget.draggable=new Draggable(widget.getElement(),{handle:widget._headerDiv,revert:false});widget.getHeader().addClassName(this._prefix+"_draggable");}
this.updateColumnsHeight();if(this.options.onOverWidget){widget.getElement().immediateDescendants().invoke("observe","mouseover",this._widgetMouseOver);}
if(this.options.onOutWidget){widget.getElement().immediateDescendants().invoke("observe","mouseout",this._widgetMouseOut);}},remove:function(widget){this._widgets.reject(function(w){return w==widget});if(this.options.onOverWidget)
widget.getElement().immediateDescendants().invoke("stopObserving","mouseover",this._widgetMouseOver);if(this.options.onOutWidget)
widget.getElement().immediateDescendants().invoke("stopObserving","mouseout",this._widgetMouseOut);if(widget.draggable)
widget.draggable.destroy();this.options.removeEffect(widget.getElement(),{afterFinish:function(){widget.destroy();}});this.updateColumnsHeight();},serialize:function(){parameters=""
this._columns.each(function(column){var p=column.immediateDescendants().collect(function(element){return column.id+"[]="+element.id}).join("&")
parameters+=p+"&"});return parameters;},layout:function(){return $personal_page.portal._columns.collect(function(col){return col.immediateDescendants().collect(function(elem){elemId=elem.id.substr(3);if(elemId[0]!="-"){return elem.id.substr(3)}else{return elem.getElementsBySelector('.wg_new')[0].innerHTML;}})});},addWidgetControls:function(element){$(element).observe("mouseover",this._widgetMouseOver);$(element).observe("mouseout",this._widgetMouseOut);},widgetMouseOver:function(event){this._clearTimer();var element=Event.element(event).up(".widget");if(this._currentOverWidget==null||this._currentOverWidget!=element){if(this._currentOverWidget&&this._currentOverWidget!=element)
this.options.onOutWidget(this,this._currentOverWidget.widget)
this._currentOverWidget=element;this.options.onOverWidget(this,element.widget)}},widgetMouseOut:function(event){this._clearTimer();var element=Event.element(event).up(".widget");this._outTimer=setTimeout(this._doWidgetMouseOut.bind(this,element),100);},_doWidgetMouseOut:function(element){this._currentOverWidget=null;this.options.onOutWidget(this,element.widget)},startDrag:function(eventName,draggable){var widget=draggable.element;if(!this._widgets.find(function(w){return w==widget.widget}))
return;var column=widget.parentNode;var ghost=DIV({className:this._prefix+"_ghost"},"");$(ghost).setStyle({height:widget.getHeight()+'px'})
column.insertBefore(ghost,widget);widget.setStyle({width:widget.getWidth()+"px"});Position.absolutize(widget);$('pp_show').appendChild(widget);draggable.element.ghost=ghost;this._savePosition=this.serialize();},endDrag:function(eventName,draggable){var widget=draggable.element;if(!this._widgets.find(function(w){return w==widget.widget}))
return;var column=widget.ghost.parentNode;column.insertBefore(draggable.element,widget.ghost);widget.ghost.remove();if(Prototype.Browser.Opera)
widget.setStyle({top:0,left:0,width:"100%",height:widget._originalHeight,zIndex:null,opacity:null,position:"relative"})
else
widget.setStyle({top:null,left:null,width:null,height:widget._originalHeight,zIndex:null,opacity:null,position:"relative"})
widget.ghost=null;widget.widget.updateHeight();this.updateColumnsHeight();if(this._savePosition!=this.serialize()){if(this.options.url)
new Ajax.Request(this.options.url,{parameters:{"id":$personal_page.personalPageId,"personal_page[layout]":this.layout().toJSON()}});if(this.options.onUpdate)
this.options.onUpdate(this);}},onHover:function(dragWidget,dropon,overlap){var offset=Position.cumulativeOffset(dropon);var x=offset[0]+10;var y=offset[1]+(1-overlap)*dropon.getHeight();if(Position.within(dragWidget.ghost,x,y))
return;var found=false;var moved=false;for(var index=0,len=this._widgets.length;index<len;++index){var w=this._widgets[index].getElement();if(w==dragWidget||w.parentNode!=dropon)
continue;top_non_draggables=this._non_draggables;bottom_non_draggables=this._non_draggables;if(Position.within(w,x,y)){var overlap=Position.overlap('vertical',w);if(overlap<0.5){if(!bottom_non_draggables.include(w.id)&&(w.next()!=dragWidget.ghost)){w.parentNode.insertBefore(dragWidget.ghost,w.next());moved=true;}}
else{if(!top_non_draggables.include(w.id)&&(w.previous()!=dragWidget.ghost)){w.parentNode.insertBefore(dragWidget.ghost,w);moved=true;}}
found=true;break;}}
if(!found){if(dragWidget.ghost.parentNode!=dropon){var last=dropon.immediateDescendants().last();var yLast=last?Position.cumulativeOffset(last)[1]+last.getHeight():0;if(y>yLast&&last!=dragWidget.ghost){dropon.appendChild(dragWidget.ghost);moved=true;}}}
if(moved&&this.options.onChange)
this.options.onChange(this)
this.updateColumnsHeight();},updateColumnsHeight:function(){return;var h=0;this._columns.each(function(col){h=Math.max(h,col.immediateDescendants().inject(0,function(sum,element){return sum+element.getHeight()+20;}));})
this._columns.invoke("setStyle",{height:h+'px'})},_clearTimer:function(){if(this._outTimer){clearTimeout(this._outTimer);this._outTimer=null;}}});if(!Control)var Control={};Control.Slider=Class.create({initialize:function(handle,track,options){var slider=this;if(Object.isArray(handle)){this.handles=handle.collect(function(e){return $(e)});}else{this.handles=[$(handle)];}
this.track=$(track);this.options=options||{};this.axis=this.options.axis||'horizontal';this.increment=this.options.increment||1;this.step=parseInt(this.options.step||'1');this.range=this.options.range||$R(0,1);this.value=0;this.values=this.handles.map(function(){return 0});this.spans=this.options.spans?this.options.spans.map(function(s){return $(s)}):false;this.options.startSpan=$(this.options.startSpan||null);this.options.endSpan=$(this.options.endSpan||null);this.restricted=this.options.restricted||false;this.maximum=this.options.maximum||this.range.end;this.minimum=this.options.minimum||this.range.start;this.alignX=parseInt(this.options.alignX||'0');this.alignY=parseInt(this.options.alignY||'0');this.trackLength=this.maximumOffset()-this.minimumOffset();this.handleLength=this.isVertical()?(this.handles[0].offsetHeight!=0?this.handles[0].offsetHeight:this.handles[0].style.height.replace(/px$/,"")):(this.handles[0].offsetWidth!=0?this.handles[0].offsetWidth:this.handles[0].style.width.replace(/px$/,""));this.active=false;this.dragging=false;this.disabled=false;if(this.options.disabled)this.setDisabled();this.allowedValues=this.options.values?this.options.values.sortBy(Prototype.K):false;if(this.allowedValues){this.minimum=this.allowedValues.min();this.maximum=this.allowedValues.max();}
this.eventMouseDown=this.startDrag.bindAsEventListener(this);this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.update.bindAsEventListener(this);this.handles.each(function(h,i){i=slider.handles.length-1-i;slider.setValue(parseFloat((Object.isArray(slider.options.sliderValue)?slider.options.sliderValue[i]:slider.options.sliderValue)||slider.range.start),i);h.makePositioned().observe("mousedown",slider.eventMouseDown);});this.track.observe("mousedown",this.eventMouseDown);document.observe("mouseup",this.eventMouseUp);document.observe("mousemove",this.eventMouseMove);this.initialized=true;},dispose:function(){var slider=this;Event.stopObserving(this.track,"mousedown",this.eventMouseDown);Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);this.handles.each(function(h){Event.stopObserving(h,"mousedown",slider.eventMouseDown);});},setDisabled:function(){this.disabled=true;},setEnabled:function(){this.disabled=false;},getNearestValue:function(value){if(this.allowedValues){if(value>=this.allowedValues.max())return(this.allowedValues.max());if(value<=this.allowedValues.min())return(this.allowedValues.min());var offset=Math.abs(this.allowedValues[0]-value);var newValue=this.allowedValues[0];this.allowedValues.each(function(v){var currentOffset=Math.abs(v-value);if(currentOffset<=offset){newValue=v;offset=currentOffset;}});return newValue;}
if(value>this.range.end)return this.range.end;if(value<this.range.start)return this.range.start;return value;},setValue:function(sliderValue,handleIdx){if(!this.active){this.activeHandleIdx=handleIdx||0;this.activeHandle=this.handles[this.activeHandleIdx];this.updateStyles();}
handleIdx=handleIdx||this.activeHandleIdx||0;if(this.initialized&&this.restricted){if((handleIdx>0)&&(sliderValue<this.values[handleIdx-1]))
sliderValue=this.values[handleIdx-1];if((handleIdx<(this.handles.length-1))&&(sliderValue>this.values[handleIdx+1]))
sliderValue=this.values[handleIdx+1];}
sliderValue=this.getNearestValue(sliderValue);this.values[handleIdx]=sliderValue;this.value=this.values[0];this.handles[handleIdx].style[this.isVertical()?'top':'left']=this.translateToPx(sliderValue);this.drawSpans();if(!this.dragging||!this.event)this.updateFinished();},setValueBy:function(delta,handleIdx){this.setValue(this.values[handleIdx||this.activeHandleIdx||0]+delta,handleIdx||this.activeHandleIdx||0);},translateToPx:function(value){return Math.round(((this.trackLength-this.handleLength)/(this.range.end-this.range.start))*(value-this.range.start))+"px";},translateToValue:function(offset){return((offset/(this.trackLength-this.handleLength)*(this.range.end-this.range.start))+this.range.start);},getRange:function(range){var v=this.values.sortBy(Prototype.K);range=range||0;return $R(v[range],v[range+1]);},minimumOffset:function(){return(this.isVertical()?this.alignY:this.alignX);},maximumOffset:function(){return(this.isVertical()?(this.track.offsetHeight!=0?this.track.offsetHeight:this.track.style.height.replace(/px$/,""))-this.alignY:(this.track.offsetWidth!=0?this.track.offsetWidth:this.track.style.width.replace(/px$/,""))-this.alignX);},isVertical:function(){return(this.axis=='vertical');},drawSpans:function(){var slider=this;if(this.spans)
$R(0,this.spans.length-1).each(function(r){slider.setSpan(slider.spans[r],slider.getRange(r))});if(this.options.startSpan)
this.setSpan(this.options.startSpan,$R(0,this.values.length>1?this.getRange(0).min():this.value));if(this.options.endSpan)
this.setSpan(this.options.endSpan,$R(this.values.length>1?this.getRange(this.spans.length-1).max():this.value,this.maximum));},setSpan:function(span,range){if(this.isVertical()){span.style.top=this.translateToPx(range.start);span.style.height=this.translateToPx(range.end-range.start+this.range.start);}else{span.style.left=this.translateToPx(range.start);span.style.width=this.translateToPx(range.end-range.start+this.range.start);}},updateStyles:function(){this.handles.each(function(h){Element.removeClassName(h,'selected')});Element.addClassName(this.activeHandle,'selected');},startDrag:function(event){if(Event.isLeftClick(event)){if(!this.disabled){this.active=true;var handle=Event.element(event);var pointer=[Event.pointerX(event),Event.pointerY(event)];var track=handle;if(track==this.track){var offsets=Position.cumulativeOffset(this.track);this.event=event;this.setValue(this.translateToValue((this.isVertical()?pointer[1]-offsets[1]:pointer[0]-offsets[0])-(this.handleLength/2)));var offsets=Position.cumulativeOffset(this.activeHandle);this.offsetX=(pointer[0]-offsets[0]);this.offsetY=(pointer[1]-offsets[1]);}else{while((this.handles.indexOf(handle)==-1)&&handle.parentNode)
handle=handle.parentNode;if(this.handles.indexOf(handle)!=-1){this.activeHandle=handle;this.activeHandleIdx=this.handles.indexOf(this.activeHandle);this.updateStyles();var offsets=Position.cumulativeOffset(this.activeHandle);this.offsetX=(pointer[0]-offsets[0]);this.offsetY=(pointer[1]-offsets[1]);}}}
Event.stop(event);}},update:function(event){if(this.active){if(!this.dragging)this.dragging=true;this.draw(event);if(Prototype.Browser.WebKit)window.scrollBy(0,0);Event.stop(event);}},draw:function(event){var pointer=[Event.pointerX(event),Event.pointerY(event)];var offsets=Position.cumulativeOffset(this.track);pointer[0]-=this.offsetX+offsets[0];pointer[1]-=this.offsetY+offsets[1];this.event=event;this.setValue(this.translateToValue(this.isVertical()?pointer[1]:pointer[0]));if(this.initialized&&this.options.onSlide)
this.options.onSlide(this.values.length>1?this.values:this.value,this);},endDrag:function(event){if(this.active&&this.dragging){this.finishDrag(event,true);Event.stop(event);}
this.active=false;this.dragging=false;},finishDrag:function(event,success){this.active=false;this.dragging=false;this.updateFinished();},updateFinished:function(){if(this.initialized&&this.options.onChange)
this.options.onChange(this.values.length>1?this.values:this.value,this);this.event=null;}});function destroy_submitting(id,form_id){var frm=$('lightbox').getElementsByClassName(id+form_id)[0];var green_button=frm.getElementsBySelector('[id=smgr_button'+form_id+']')[0];green_button.replace('<b>Submitting</b> <span><img src="/RoR/images/wait_arrows.gif"></span>');return true;}
function validate_ut_journals(){title=$('user_journal_title').value;message=$('user_journal_message').value;if((title.length!=0&&message.length==0)||(title.length==0&&message.length!=0)){tr_form.tracker_disable_form('title_message','Title and message must both be filled or both be blank.');}
else if(title.length>40){tr_form.tracker_disable_form('title','Title is too long.');}
else if(message.length>40000){tr_form.tracker_disable_form('message','Message is too long.');}
else{tr_form.tracker_clear_form();}}
function user_tracker_after_render_cb(lb){if(this.page==this.config.length-1){Element.show('tutorial_n');$('tutorial_n').href="javascript:myLightbox.end();tr_form.show(546, 'chart', dayToDate(39), 84);";}else{$('tutorial_n').href="javascript:tutorial_lb.next();";}}
var current_section="";var current_date="";var calculated_coords=null;function validateFloatValue(value,min,max){if(value==''){return true;}
var re=/^([-+]?[0-9]*\.?[0-9]+)$/;if(value.match(re)){if(min!==null&&min>value){return false;}
if(max!==null&&max<value){return false;}
return true;}
return false;}
function validateIntegerValue(value,min,max){if(value==''){return true;}
var re=/^([-+]?[0-9]+)$/;if(value.match(re)){if(min!==null&&min>value){return false;}
if(max!==null&&max<value){return false;}
return true;}
return false;}
function validate_float(id,min,max){value=$(id).value;return validateFloatValue(value,min,max);}
function validate_integer(id,min,max){value=$(id).value;return validateIntegerValue(value,min,max);}
function point_within(x,y,coords){return(x>coords[0]&&y>coords[1]&&x<coords[2]&&y<coords[3]);}
function sectionDayFromEvent(e){image_coords=Position.cumulativeOffset($('chart_image'))
x=Event.pointerX(e)-image_coords[0]-1;y=Event.pointerY(e)-image_coords[1]-1;sectionName=null;day=null;tr_sections.each(function(name){if(tr_coords[name]!=null&&point_within(x,y,tr_coords[name])){sectionName=name;}})
coords=calculate_coords();if(point_within(x,y,calculated_coords.active_area)){day=(Event.pointerX(e)-image_coords[0]-2-calculated_coords.active_area[0])/14;return[sectionName,day,x,y];}
return[sectionName,day,x,y];}
function calculate_coords(){if(calculated_coords==null){top_sec=tr_coords[tr_sections.first()];bottom_sec=tr_coords[tr_sections.last()];calculated_coords={bar:{left:top_sec[0],top:top_sec[1],height:bottom_sec[3]-top_sec[1],width:13},active_area:[top_sec[0],top_sec[1],bottom_sec[2],bottom_sec[3]]}}
return calculated_coords;}
function dayToDate(day){return new Date(start_date.getTime()+24*3600*1000*day);}
function get_field_name(yOffset,yBoxOffset,fieldNames){offset=yOffset-yBoxOffset;index=Math.floor(offset/grid_size);return fieldNames[index]}
function tr_image_click(e){if($show_input_hint){Element.hide('gen_tutorial_outer');Element.hide('lb_trk_tut_bx_r_arr');}
clickInfo=sectionDayFromEvent(e);if(clickInfo[0]==null&&tr_form.sections.indexOf("pain")>=0){clickInfo=painStripClick(clickInfo,e);}
if(clickInfo[0]==null)return;if(tr_calculated_sections[clickInfo[0]])return;dayOffset=Math.ceil(clickInfo[1]-1)*14;sectionName=clickInfo[0];date=dayToDate(clickInfo[1]);yOffset=clickInfo[3];tr_form.currentSectionName=sectionName;if(sectionName=="journals"){yBoxOffset=tr_coords["journals"][1];fieldNames=tr_section_field_names["journals"];formatted_date=formatDate(date);fieldName=get_field_name(yOffset,yBoxOffset,fieldNames);values_date=dateToString(date);values_data=tr_values[values_date];if(values_data&&values_data["data"]){values=values_data["data"];tracker_field_id=tr_form.user_journal_tracker_field_id;user_journal_id=values[tracker_field_id];if(user_journal_id){url='/user_trackers/get_user_journal'+'?start_date='+formatted_date;new Ajax.Request(url,{method:'post',parameters:{user_journal_id:user_journal_id,field_name:fieldName},onSuccess:function(transport){switch(transport.responseText){case'redirect':window.location="/user_journals/show/"+user_journal_id;return false;case'private':alert("This journal entry is private");return false;case'disabled':alert("This journal entry is disabled");return false;case'reload':window.location.reload();return false;default:return false;}}});}
else{showForm(e,clickInfo[1],dayOffset,sectionName,date,yOffset);}}
else{showForm(e,clickInfo[1],dayOffset,sectionName,date,yOffset);}}
else{showForm(e,clickInfo[1],dayOffset,sectionName,date,yOffset);}}
function showForm(e,clickInfo_1,dayOffset,sectionName,date,yOffset){if(can_edit==true){tr_form.show(dayOffset,sectionName,date,yOffset);showBarHover(e,clickInfo_1);hideDateHover();}
else{return false;}}
function tr_image_mmove(e){if(tr_form.visible){return;}
clickInfo=sectionDayFromEvent(e);bar=$('tr_hover_bar');mini_me=$('chart_image_mini_mes');mini_me.show();mini_me.style.left=Event.pointerX(e)-2+"px";mini_me.style.top=Event.pointerY(e)-2+"px";if(clickInfo[1]){showBarHover(e,clickInfo[1]);showDateHover(e,getReadableDate(dayToDate(clickInfo[1])));}else{hideBarHover();hideDateHover();}}
function showBarHover(event,day){coords=calculate_coords();bar=$('tr_hover_bar');cursorY=Event.pointerY(event)-image_coords[1]-coords.bar.top;bar.show();bar.style.width=coords.bar.width+1+"px";bar.style.height=coords.bar.height+"px";Position.clone($('chart_image'),bar,{setHeight:false,setWidth:false,offsetTop:coords.bar.top,offsetLeft:coords.bar.left+Math.floor(day)*14});}
function hideBarHover(){$('tr_hover_bar').hide();}
function showSliderDateHover(dateString){hover_date=$('tr_hover_date');hover_date.innerHTML=dateString;hover_date.clonePosition($('timeline_slider_knob'),{setWidth:false,setHeight:false,offsetTop:30});hover_date.show();}
function showDateHover(event,dateString){hover_date=$('tr_hover_date');hover_date.innerHTML=dateString+"<br/><span class='hint'>Click to add data</span>";hover_date.style.left=Event.pointerX(event)+20+'px';hover_date.style.top=Event.pointerY(event)+20+'px';hover_date.show();}
function hideDateHover(){$('tr_hover_date').hide();}
function dateToString(date){return date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate();}
function stringToDate(date){var d=date.split("-");return(new Date(d[0],d[1]-1,d[2]));}
var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December');var WEEK_DAYS=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday')
function getReadableDate(date){return WEEK_DAYS[date.getDay()]+', '+MONTH_NAMES[date.getMonth()]+' '+date.getDate();}
function TrackerInputForm(section_coords,sections,refElement,options){options=options||{};this.link_tid=null;this.section_coords=section_coords;this.sections=sections;this.refElement=refElement;this.currentSectionName=null;this.date=null;this.visible=false;this.user_tracker_id=options["user_tracker_id"];this.user_journal_tracker_field_id=options["user_journal_tracker_field_id"];user_journal_exists=false;this.tr_validation_errors=new Hash({});this.getErrorElement=function(){return $('ut_'+this.currentSectionName).getElementsBySelector(".trk_error")[0];}
this.hasErrors=function(){return this.tr_validation_errors.keys().length!=0;}
this.tracker_clear_form=function(){this.tr_validation_errors=new Hash({});this.getErrorElement().innerHTML="";$('ut_'+this.currentSectionName).getElementsBySelector(".trk_btn").each(function(node){node.style.opacity=1;node.removeClassName('disable_hover');});}
this.tracker_enable_form=function(name){this.tr_validation_errors.unset(name);if(this.hasErrors()){this.getErrorElement().innerHTML=this.tr_validation_errors.values().first();}else{this.getErrorElement().innerHTML="";$('ut_'+this.currentSectionName).getElementsBySelector(".trk_btn").each(function(node){node.style.opacity=1;node.removeClassName('disable_hover');});}}
this.tracker_disable_form=function(name,text){this.tr_validation_errors.set(name,text);this.getErrorElement().innerHTML=text;$('ut_'+this.currentSectionName).getElementsBySelector(".trk_btn").each(function(node){node.style.opacity=0.5;node.addClassName('disable_hover');});}
this.prev=function(){if(this.hasErrors()){return;}
if(trFormCallbacks.get(this.currentSectionName))trFormCallbacks.get(this.currentSectionName).get("onSectionClose")();Element.hide('ut_'+this.currentSectionName);index=this.sections.indexOf(this.currentSectionName);do{index=index-1;if(index<0){index=this.sections.length-1;}}while(index>=0&&(tr_coords[this.sections[index]]==null||tr_calculated_sections[this.sections[index]]));this.currentSectionName=this.sections[index];if(this.currentSectionName=="journals"&&user_journal_exists==true){tr_form.prev();}
if(trFormCallbacks.get(this.currentSectionName))trFormCallbacks.get(this.currentSectionName).get("onSectionShow")();this.reposition_and_show(section_coords[this.currentSectionName][1]+5);}
this.next=function(){if(this.hasErrors()){return;}
if(trFormCallbacks.get(this.currentSectionName))trFormCallbacks.get(this.currentSectionName).get("onSectionClose")();Element.hide('ut_'+this.currentSectionName);index=this.sections.indexOf(this.currentSectionName)
do{index=index+1;if(index>=this.sections.length){index=0;}}while(index<this.sections.length&&(tr_coords[this.sections[index]]==null||tr_calculated_sections[this.sections[index]]));this.currentSectionName=this.sections[index];if(this.currentSectionName=="journals"&&user_journal_exists==true){tr_form.next();}
if(trFormCallbacks.get("onSectionShow"))trFormCallbacks.get("onSectionShow")();this.reposition_and_show(section_coords[this.currentSectionName][1]+5);}
this.close=function(){Element.hide('ut_'+this.currentSectionName);for(var i=0;i<this.sections.length;i++){if(trFormCallbacks.get(this.sections[i]))trFormCallbacks.get(this.sections[i]).get("onFormClose")();}
Element.hide('bx_l_arr');Element.hide('bx_r_arr');this.visible=false;}
this.done=function(){if(this.hasErrors()){return;}
this.close();trFormCallbacks.keys().each(function(sectionName){trFormCallbacks.get(sectionName).get("onFormSubmit")();});photo_element=$('photo_file')
if(photo_element&&photo_element.value!=""){document.user_tracker_values_form.submit();}else{$('chart_image').src='/RoR/images/blank.gif';$('user_tracker_values_form').submit();}
hideBarHover();}
this.onChartLoad=function(){if(!imageCallbacksExecuted&&$('gen_tutorial_outer')!==null){imageCallbacksExecuted=true;}else{return;}
if(tr_show_form!==""){var y_offset=tr_coords[tr_show_form][1]+5;$('gen_tutorial_outer').hide();this.show(39*14,tr_show_form,new Date(),y_offset);tr_show_form=null;}}
this.show=function(dayOffset,sectionName,date,yOffset){this.date=dateToString(date);this.dateObj=date;this.dayOffset=dayOffset;if(trFormCallbacks.get(sectionName))trFormCallbacks.get(sectionName).get("onSectionShow")();$('user_tracker_values_form').getElementsBySelector(".ut_frm_date").each(function(node){node.innerHTML=getReadableDate(date);});values=tr_values[this.date];tf_id=this.user_journal_tracker_field_id;if(sectionName!='journals'){user_journal_exists=false;}
Form.reset('user_tracker_values_form');$inputFields.resetFields();if(values){$H(values.data).each(function(pair){field=$('user_tracker_data_'+pair.key)
if(field!=null){populateField(field,pair.value);}
if(pair.key==tf_id){user_journal_exists=true;}});}
$('user_tracker_value_timestamp').value=this.date;$('start_date').value=start_date
if(this.currentSectionName!=null){Element.hide("ut_"+this.currentSectionName);}
this.currentSectionName=sectionName;this.tracker_clear_form();this.reposition_and_show(yOffset);this.visible=true;}
this.reposition_and_show=function(yOffset){var sectionName=this.currentSectionName;var sectionElement=$('ut_'+sectionName);var x=section_coords[sectionName][0]+this.dayOffset+30;var y=0;if(trFormCallbacks.get(sectionName)){trFormCallbacks.get(sectionName).get("repositionAndShow")(yOffset,refElement,sectionElement);}else{if(x>400){Position.clone(refElement,sectionElement,{setHeight:false,setWidth:false,offsetTop:y+yOffset-44,offsetLeft:x-sectionElement.getWidth()-38});Position.clone(refElement,$('bx_r_arr'),{setHeight:false,setWidth:false,offsetTop:y+yOffset-14,offsetLeft:x-74});Element.hide('bx_l_arr');Element.show('bx_r_arr');}else{Position.clone(refElement,sectionElement,{setHeight:false,setWidth:false,offsetTop:y+yOffset-44,offsetLeft:x-6});Position.clone(refElement,$('bx_l_arr'),{setHeight:false,setWidth:false,offsetTop:y+yOffset-14,offsetLeft:x-34});Element.hide('bx_r_arr');Element.show('bx_l_arr');}
sectionElement.show();}
var firstInput=sectionElement.getElementsBySelector(".tr_f_elem")[0];if(firstInput!=null)firstInput.focus();new Effect.ScrollTo('ut_'+sectionName,{offset:-50});}
this.resizeFrame=function(sectionElement){maxWidth=0;sectionElement.getElementsBySelector(".trk_data").each(function(node){input=node.getElementsBySelector('.tracker_input');unit=node.getElementsBySelector('.fld_anw_unit');if(input.size()>1){node_width=0;for(var i=0;i<input.length;i++){node_width+=input[i].getWidth();}}
else if(unit.size()!=0){node_width=input[0].getWidth()+unit[0].getWidth()+25;}
else{node_width=input[0].getWidth();}
if(maxWidth<node_width){maxWidth=node_width;}});maxWidth=maxWidth+330;sectionElement.getElementsBySelector(".resizable_middle").each(function(node){node.style.width=(maxWidth+30)+'px';;});sectionElement.getElementsBySelector(".resizable").each(function(node){node.style.width=maxWidth+'px';;});}}
function updateMiniMes(){var chart_image=$('chart_image')
var minime1=$('trks_mini_me1');var minime2=$('trks_mini_me2');minime1.src=chart_image.src;minime2.src=chart_image.src;return false;}
function formatDate(date){var retval=date.getFullYear()+'-';var m=date.getMonth()+1;if(m<10){retval=retval+'0';}
retval=retval+m+'-';var d=date.getDate();if(d<10){retval=retval+'0';}
retval=retval+d;return retval;}
function sliderPositionToDate(value){var d=new Date(timeline_start_date.getTime()+24*3600*1000*(parseInt(value)));return d;}
function sliderChange(value){hideDateHover();var d=sliderPositionToDate(value);var formatted_date=formatDate(d);if(tr_form.visible)tr_form.close();$('chart_image').src='/RoR/images/blank.gif';new Ajax.Updater('chart_container','/user_trackers/show/'+utid+'?start_date='+formatted_date,{parameters:{inline:true},evalScripts:true});}
function sliderMove(value){var d=sliderPositionToDate(value);showSliderDateHover(getReadableDate(d));}
function showInputHint(){currentElement=$('lb_gen_tutorial');$('lb_gen_tutorial').style.marginLeft='0px';$('lb_gen_tutorial').style.marginRight='0px';targetElement=$('chart_container');currentElement.style.position='absolute';Position.clone(targetElement,currentElement,{setHeight:false,setWidth:false,offsetTop:43,offsetLeft:395});Position.clone(targetElement,$('lb_trk_tut_bx_r_arr'),{setHeight:false,setWidth:false,offsetTop:50,offsetLeft:672});Element.hide('trk_tut_close');Element.hide('lb_tutorial_n');Element.hide('lb_tutorial_b');$('lb_tutorial_text').innerHTML="Click here to start entering data"
Element.show('gen_tutorial_outer');Element.show('lb_trk_tut_bx_r_arr');new Effect.ScrollTo(targetElement,{offset:0});}
function moveTrackerFields(action){var tracker_fields_included=$('tracker_fields_included');var tracker_fields_excluded=$('tracker_fields_excluded');var movedFields=[];var source;var target;if(action=='remove'){movedFields=findSelectedOptions(tracker_fields_included);source='tracker_fields_included';target='tracker_fields_excluded';}else{movedFields=findSelectedOptions(tracker_fields_excluded);source='tracker_fields_excluded';target='tracker_fields_included';}
for(var i=0;i<movedFields.length;i++){var item=movedFields[i];moveOption(source,target,item);}
var excludedFields=$$('#tracker_fields_excluded option');var excludedFieldNames=[];excludedFields.each(function(field){excludedFieldNames.push(field.value);});$('tracker_setup_field_exclude_tracker_fields').value=excludedFieldNames.toJSON();}
function findSelectedOptions(element){var selectedOptions=[];var len=element.options.length;for(var i=0;i<len;i++){if(element.options[i].selected){selectedOptions.push(element.options[i]);}}
return selectedOptions;}
function moveOption(source,target,item){var groupName=item.parentNode.label;var group=$$('#'+target+' .og_'+groupName)[0];var children=$(group).getElementsByTagName('option');for(var i=0;i<children.length;i++){if(item.text<children[i].text){group.insertBefore(item,children[i]);return;}}
group.appendChild(item);}
function display_suggested_trackers(value){var suggested_keywords=[];value.split(' ').each(function(v){Object.keys(keywords).each(function(k){if(k.toLowerCase().startsWith(v.toLowerCase())&&v.length>=3){suggested_keywords.push(k);}});});suggested_keywords.compact();var tracker_ids=[];suggested_keywords.each(function(keyword){tracker_ids=tracker_ids.concat(keywords[keyword]).uniq();});var suggested_trackers=[];tracker_ids.each(function(id){var newTracker=new Hash();newTracker.set('id',id);newTracker.set('name',keywords_info[id]['name']);newTracker.set('type',keywords_info[id]['type']);newTracker.set('icon_name',keywords_info[id]['icon_name']);newTracker.set('description',keywords_info[id]['description']);suggested_trackers.push(newTracker);});if(suggested_trackers.size()>0){suggested_trackers=suggested_trackers.sortBy(function(s){return s.get('name')});$('tracker_filter_results').innerHTML=update_trackers_filter(value,suggested_trackers);$('tracker_filter_results').show();}else{$('tracker_filter_results').hide();}};function update_trackers_filter(value,trackers){var size=trackers.size();var results='';var count=1;results="<div class='filter'>";trackers.each(function(tracker){results+="<div class='trk_fil_elmt";if(count!==size){results+=" spacer"}
results+="'>";results+="<div class='trk_icon'>";results+="<div class='trk_icon_img "+tracker.get('icon_name')+"_icon'><img src='/RoR/images/blank.gif'></div>";results+="</div>";results+="<div class='trk_info'>";results+="<div class='trk_name'>";results+="<a href='/user_trackers/new?type="+tracker.get('type')+"'>"+tracker.get('name')+"</a>";results+="</div>";results+="<div class='trk_desc'>"+tracker.get('description')+"</div>";results+="</div>";results+="</div>";count+=1;});results+='</div>';return results;};var $trSliders=new Hash();function populateField(field,value){var inputField=$inputFields.find(field.id);if(inputField===null){if(field.type=='checkbox'){field.checked=(value==true);}else{$(field.id).value=value;}}else{inputField.populateField(value);}
return true;}
function inputFieldsStore(){this.inputFieldsHash=new Hash();this.create=function(fieldType,fieldId,rootId,options){if(typeof(rootId)=="undefined"||rootId===null){rootId=fieldId;}
if(typeof(options)=="undefined"||options===null){options={};}
var rootInputField=null;if(rootId!=fieldId){rootInputField=this.find(rootId);}
var fieldObject=new fieldType(fieldId,rootInputField,options);this.inputFieldsHash.set(fieldId,fieldObject);return fieldObject;};this.find=function(fieldId){if(this.inputFieldsHash.get(fieldId)){return this.inputFieldsHash.get(fieldId);}else{return null;}};this.resetFields=function(){this.inputFieldsHash.each(function(pair){if(pair[1].rootInputField.fieldId==pair[1].fieldId){pair[1].resetField();}});};this.deleteField=function(fieldId){this.inputFieldsHash.unset(fieldId);};this.clearStore=function(){this.inputFieldsHash=new Hash();};this.copyField=function(sourceFieldId,destinationFieldId){var sourceField=this.find(sourceFieldId);var rootFieldId=null;if(sourceField.fieldId!=sourceField.rootInputField.fieldId){rootFieldId=sourceField.rootInputField.fieldId;}
var destinationField=sourceField.copy(destinationFieldId,rootFieldId);return destinationField;};}
var $inputFields=new inputFieldsStore();function synthesizeTime(timeValue,useCivilianTime){var twentyFourHours=24*60*60;var twelveHours=12*60*60;while(timeValue>=twentyFourHours){timeValue-=twentyFourHours;}
var minuteValue=timeValue%(60*60);var hourValue=timeValue-minuteValue;var meridianValue=0;if(useCivilianTime){if(hourValue>=twelveHours){hourValue-=twelveHours;meridianValue=twelveHours;}
return[hourValue,minuteValue,meridianValue];}else{return[hourValue,minuteValue];}}
function TimeSelect(fieldId,rootInputField,options){this.useCivilianTime=options['use_12hour'];this.fieldId=fieldId;this.options=options;if(rootInputField===null){this.rootInputField=this;}else{this.rootInputField=rootInputField;}
this.copy=function(newFieldId,rootFieldId){return $inputFields.create(TimeSelect,newFieldId,rootFieldId,this.options);};this.resetField=function(){$(this.fieldId+"_hr").value="";$(this.fieldId+"_min").value="";if(this.useCivilianTime){$(this.fieldId+"_mer").value="";}};this.populateField=function(value){if(value===""){return;}
var timeValues=synthesizeTime(value,this.useCivilianTime);$(this.fieldId+"_hr").value=timeValues[0];$(this.fieldId+"_min").value=timeValues[1];if(this.useCivilianTime){$(this.fieldId+"_mer").value=timeValues[2];}};this.value=function(){this.snapDefaults();var hour=parseInt($(this.fieldId+"_hr").value);var minute=parseInt($(this.fieldId+"_min").value);if(isNaN(hour)||isNaN(minute)){return null;}
if(this.useCivilianTime){var meridian=parseInt($(this.fieldId+"_mer").value);if(isNaN(meridian)){return null;}
hour+=meridian;}
var time=(hour+minute);$(fieldId).value=time.toJSON();return time;};this.validate=function(values,additionalValues){var valuesHash=new Hash();for(var i=0;i<values.length;i++){if(valuesHash.get(values[i])){tr_form.tracker_disable_form(this.rootInputField.fieldId,"Timestamps must not repeat");return false;}
valuesHash.set(values[i],true);}
if(this.rootInputField.id==this.fieldId){tr_form.tracker_enable_form(this.fieldId);}
return true;};this.snapDefaults=function(){var hour_unsel=$(this.fieldId+"_hr").value==="";var min_unsel=$(this.fieldId+"_min").value==="";var mer_unsel=0;if(this.useCivilianTime){mer_unsel=$(this.fieldId+"_mer").value==="";}
if((hour_unsel||min_unsel||mer_unsel)&&!(hour_unsel&&min_unsel&&mer_unsel)){if(this.useCivilianTime&&$(this.fieldId+"_mer").value===""){$(this.fieldId+"_mer").value=0;}
if($(this.fieldId+"_hr").value===""){$(this.fieldId+"_hr").value=0;}
if($(this.fieldId+"_min").value===""){$(this.fieldId+"_min").value=0;}}};$(this.fieldId+"_hr").observe('change',this.rootInputField.validate.bindAsEventListener(this.rootInputField));$(this.fieldId+"_min").observe('change',this.rootInputField.validate.bindAsEventListener(this.rootInputField));if(this.useCivilianTime){$(this.fieldId+"_mer").observe('change',this.rootInputField.validate.bindAsEventListener(this.rootInputField));}}
function TimeRange(fieldId,rootInputField,options){this.fieldId=fieldId;if(rootInputField===null){this.rootInputField=this;}else{this.rootInputField=rootInputField;}
this.startTimeSelectId=this.fieldId+"_start";this.endTimeSelectId=this.fieldId+"_end";this.dayBoundary=options['day_boundary'];this.options=options;this.startTime=function(){return $inputFields.find(this.startTimeSelectId);};this.endTime=function(){return $inputFields.find(this.endTimeSelectId);};this.copy=function(newFieldId,rootFieldId){this.startTime().copy(newFieldId+"_start",rootFieldId);this.endTime().copy(newFieldId+"_end",rootFieldId);return $inputFields.create(TimeRange,newFieldId,rootFieldId,this.options);};this.resetField=function(){this.populateField("");};this.populateField=function(value){if(value===""){this.startTime().resetField();this.endTime().resetField();}else{this.startTime().populateField(value[0]);this.endTime().populateField(value[1]);}};this.value=function(){var startTime=this.startTime().value();var endTime=this.endTime().value();var hours24=24*60*60;if(startTime!==null&&endTime!==null){if(startTime>endTime){endTime+=hours24;}
if(startTime<this.dayBoundary){startTime+=hours24;endTime+=hours24;}
var trValue=[startTime,endTime];$(this.fieldId).value=trValue.toJSON();return trValue;}else{return null;}};this.validate=function(values,valuesByDate){if(this.rootInputField.id==this.fieldId){tr_form.tracker_enable_form(this.fieldId);}
if(typeof(values)=="undefined"||values===null){var fieldValue=this.value();if(fieldValue===null){return true;}
values=[fieldValue];}
var hours24=24*60*60;for(var i=0;i<values.length;i++){if(values[i]===""){continue;}
var startTime=values[i][0];var endTime=values[i][1];if(startTime==endTime){tr_form.tracker_disable_form(this.rootInputField.fieldId,"Start time and End time must not be same");return false;}}
values.sort(function(a,b){if(a[0]<b[0]){return-1;}else if(a[0]>b[0]){return 1;}else{return 0;}});var i;for(var i=0;i<values.length;i++){if(i+1<values.length&&values[i][1]>values[i+1][0]){tr_form.tracker_disable_form(this.rootInputField.fieldId,"Time intervals must not overlap");return false;}}
var tomorrow=dateToString(new Date(tr_form.dateObj.getTime()+24*3600*1000));var yesterday=dateToString(new Date(tr_form.dateObj.getTime()-24*3600*1000));var tomorrowsValue=valuesByDate.get(tomorrow);var yesterdaysValue=valuesByDate.get(yesterday);if(yesterdaysValue){var overlap=0;for(var i=0;i<yesterdaysValue.length;i++){var timeRange=yesterdaysValue[i];if((timeRange[1]-hours24)>this.dayBoundary&&((timeRange[1]-hours24)>values[0][0])){overlap=1;}}
if(overlap==1){tr_form.tracker_disable_form(this.rootInputField.fieldId,"Time intervals must not overlap with previous days intervals");return false;}}
if((values.last()[1]-hours24>this.dayBoundary)&&tomorrowsValue){var overlap=0;for(var i=0;i<tomorrowsValue.length;i++){var timeRange=tomorrowsValue[i];if(timeRange[0]<(values.last()[1]-hours24)){overlap=1;}}
if(overlap==1){tr_form.tracker_disable_form(this.rootInputField.fieldId,"Time intervals must not overlap with next days intervals");return false;}}
return true;};}
function getAdditionalValues(fieldName){var tomorrow=dateToString(new Date(tr_form.dateObj.getTime()+24*3600*1000));var yesterday=dateToString(new Date(tr_form.dateObj.getTime()-24*3600*1000));var tomorrowsValues=new Array();var yesterdaysValues=new Array();if(tr_values[tomorrow]&&tr_values[tomorrow]['data']&&tr_values[tomorrow]['data'][fieldName]){tomorrowsValues=tr_values[tomorrow]['data'][fieldName];}
if(tr_values[yesterday]&&tr_values[yesterday]['data']&&tr_values[yesterday]['data'][fieldName]){yesterdaysValues=tr_values[yesterday]['data'][fieldName];}
var additionalValues=new Hash();additionalValues.set(tomorrow,tomorrowsValues);additionalValues.set(yesterday,yesterdaysValues);return additionalValues;}
function MultiValuedField(fieldId,rootInputField,options){this.fieldId=fieldId;if(rootInputField===null){this.rootInputField=this;}else{this.rootInputField=rootInputField;}
this.templateFieldId=this.field_id+"_mv_tmpl";this.nextFieldNumber=0;this.containedFields=new Array();this.fieldName=options['field_name'];this.updateAddDelLinks=function(values,valid){if(values.length<this.containedFields.length||!valid){$(this.fieldId+"_add_link").hide();}else{$(this.fieldId+"_add_link").show();}};this.value=function(){var values=new Array();var cfValue=null;for(var i=0;i<this.containedFields.length;i++){cfValue=$inputFields.find(this.containedFields[i]).value();if(cfValue!==null){values.push(cfValue);}}
if(values.length>0){$(this.fieldId).value=values.toJSON();}else{$(this.fieldId).value="";}
return values;};this.validate=function(values,additionalValuesHash){tr_form.tracker_enable_form(this.fieldId);var values=this.value();var valid=true;if(values.length>0){var additionalValues=getAdditionalValues(this.fieldName);valid=$inputFields.find(this.containedFields[0]).validate(values,additionalValues);}
this.updateAddDelLinks(values,valid);return valid;};this.deleteField=function(field){var fieldNumber=field.id.match(this.fieldId+"_([0-9]+)_del_btn")[1];var delFieldId=this.fieldId+"_"+fieldNumber;$(delFieldId+"_ctr").remove();this.containedFields=this.containedFields.without(delFieldId);$inputFields.deleteField(delFieldId);this.validate();};this.addField=function(value){var nextFieldId=this.nextFieldNumber;var ifCopy=$(this.fieldId+"_template_ctr").innerHTML.stripScripts();var ifCtr=$(this.fieldId+"_inputs_ctr");ifCtr.insert({'bottom':ifCopy});var ifCtrChildren=ifCtr.childElements();var copiedTemplate=null;for(var i=0;i<ifCtrChildren.length;i++){if(ifCtrChildren[i].id==this.fieldId+"_template"){copiedTemplate=ifCtrChildren[i];break;}}
var newInputFieldId=this.fieldId+"_"+nextFieldId;copiedTemplate.id=newInputFieldId+"_ctr";var tmplDescendants=copiedTemplate.descendants();for(var i=0;i<tmplDescendants.length;i++){var desc=tmplDescendants[i];if(desc.id.match(/mv_tmpl/)){desc.id=desc.id.gsub(/mv_tmpl/,""+nextFieldId);}}
var newField=$inputFields.copyField(this.fieldId+"_mv_tmpl",newInputFieldId);newField.populateField(value);this.containedFields.push(newInputFieldId);this.nextFieldNumber++;this.validate();};this.resetField=function(){this.populateField("");$(this.fieldId).value="";};this.populateField=function(value){this.nextFieldNumber=0;this.containedFields=new Array();$(this.fieldId+"_inputs_ctr").update("");if(value===""||value.length==0){this.addField("");}else{for(var i=0;i<value.length;i++){this.addField(value[i]);}}};}
function MultiField(fieldId,rootInputField,options){this.fieldId=fieldId;if(rootInputField===null){this.rootInputField=this;}else{this.rootInputField=rootInputField;}
this.subFieldFormats=options['sub_fields'];this.require_all_fields=options['require_all_fields'];this.booleanIndex=null;this.containedFields=new Array();for(var i=0;i<this.subFieldFormats.length;i++){this.containedFields.push(this.fieldId+"_mf_"+i);if(this.subFieldFormats[i]=="boolean"){this.booleanIndex=i;}}
this.fieldName=options['field_name'];this.options=options;this.resetField=function(){this.populateField("");};this.populateField=function(value){if(value==""||value.length==0){for(var i=0;i<this.containedFields.length;i++){$inputFields.find(this.containedFields[i]).populateField("");}
$(this.fieldId).value="";}else{for(var i=0;i<this.containedFields.length;i++){$inputFields.find(this.containedFields[i]).populateField(value[i]);}
$(this.fieldId).value=value.toJSON();}};this.value=function(){this.snapDefaults();var mValue=[];var blank=true;var overrideBlank=false;if(this.booleanIndex!==null){if($inputFields.find(this.containedFields[this.booleanIndex]).value()===false){overrideBlank=true;}}
this.containedFields.each(function(containedField){var cValue=$inputFields.find(containedField).value();if(cValue===null||cValue===""||cValue===false){mValue.push("");}else{mValue.push(cValue);blank=false;}}.bind(this));if(blank||overrideBlank){$(this.fieldId).value="";return null;}else{$(this.fieldId).value=mValue.toJSON();return mValue;}};this.snapDefaults=function(){if(this.booleanIndex===null){return;}
var currentValue=$(this.fieldId).value;if(currentValue!==""){currentValue=currentValue.evalJSON();var currentBooleanValue=currentValue[this.booleanIndex];var newBooleanValue=$(this.containedFields[this.booleanIndex]).checked;if(currentBooleanValue==true&&newBooleanValue==false){return;}}
var setBoolean=false;for(var i=0;i<this.containedFields.length;i++){if(i==this.booleanIndex){continue;}
var cValue=$inputFields.find(this.containedFields[i]).value();if(cValue!==""&&cValue!==null){setBoolean=true;}}
if(setBoolean){$inputFields.find(this.containedFields[this.booleanIndex]).populateField("1");}};this.sliceValues=function(values){var slicedValues=[];if(typeof(values)=="undefined"||values===null||values===""){values=[];}
for(var i=0;i<this.containedFields.length;i++){var fieldValues=[];for(var j=0;j<values.length;j++){fieldValues.push(values[j][i]);}
slicedValues.push(fieldValues);}
return slicedValues;};this.validate=function(values,additionalValues){if(this.rootInputField.fieldId==this.fieldId){tr_form.tracker_enable_form(this.fieldId);var sValue=this.value();if(sValue===null){return true;}
values=[sValue];}
if(this.require_all_fields){for(var i=0;i<values.length;i++){for(var j=0;j<values[i].length;j++){if(values[i][j]===""){tr_form.tracker_disable_form(this.rootInputField.fieldId,"All fields are required.");return false;}}}}
var slicedValues=this.sliceValues(values);if(typeof(additionalValues)=="undefined"||additionalValues===null){additionalValues=getAdditionalValues(this.fieldName);}
var slicedAdditionalValues=new Hash();var tomorrow=dateToString(new Date(tr_form.dateObj.getTime()+24*3600*1000));var yesterday=dateToString(new Date(tr_form.dateObj.getTime()-24*3600*1000));slicedAdditionalValues.set(tomorrow,this.sliceValues(additionalValues.get(tomorrow)));slicedAdditionalValues.set(yesterday,this.sliceValues(additionalValues.get(yesterday)));for(var i=0;i<this.containedFields.length;i++){var fieldAdditionalValues=new Hash();fieldAdditionalValues.set(tomorrow,slicedAdditionalValues.get(tomorrow)[i]);fieldAdditionalValues.set(yesterday,slicedAdditionalValues.get(yesterday)[i]);var valid=$inputFields.find(this.containedFields[i]).validate(slicedValues[i],fieldAdditionalValues);if(!valid){return false;}}
return true;};this.copy=function(newFieldId,rootFieldId){for(var i=0;i<this.containedFields.length;i++){$inputFields.find(this.containedFields[i]).copy(newFieldId+"_mf_"+i,rootFieldId);}
return $inputFields.create(MultiField,newFieldId,rootFieldId,this.options);};}
function SimpleSelector(fieldId,rootInputField,options){this.fieldId=fieldId;if(rootInputField===null){this.rootInputField=this;}else{this.rootInputField=rootInputField;}
this.options=options;this.inputType=options['format'];this.min=options['min'];if(typeof(this.min)=='undefined'){this.min=null;}
this.max=options['max'];if(typeof(this.max)=='undefined'){this.max=null;}
this.fieldName=options['field_name'];this.resetField=function(){this.populateField("");};this.populateField=function(value){if(this.inputType=='boolean'){$(this.fieldId).checked=value;}else{$(this.fieldId).value=value;}};this.validate=function(values,additionalValues){for(var i=0;i<values.length;i++){var validator=null;if(this.inputType=='float'){validator=validateFloatValue;}else if(this.inputType=='integer'){validator=validateIntegerValue;}
if(validator!==null&&!validator(values[i],this.min,this.max)){var message="";if(this.min===null){message=this.fieldName+" must be a number";}else{message=this.fieldName+" must be a number between "+this.min+" and "+this.max;}
tr_form.tracker_disable_form(this.rootInputField.fieldId,message);return false;}}
return true;};this.value=function(){if(this.inputType=='boolean'){return($(this.fieldId).checked);}else{return $(this.fieldId).value;}};this.copy=function(newFieldId,rootFieldId){return $inputFields.create(SimpleSelector,newFieldId,rootFieldId,this.options);};$(this.fieldId).observe('change',this.rootInputField.validate.bindAsEventListener(this.rootInputField));if(this.inputType=='float'||this.inputType=='integer'){$(this.fieldId).observe('blur',this.rootInputField.validate.bindAsEventListener(this.rootInputField));}}
function SliderSelector(fieldId,rootInputField,options){this.fieldId=fieldId;if(rootInputField===null){this.rootInputField=this;}else{this.rootInputField=rootInputField;}
this.options=options;this.userChanged=false;this.sliderChange=function(v){this.userChanged=true;this.rootInputField.validate();};$trSliders.set(this.fieldId+'_sldr',new Control.Slider(this.fieldId+'_sldr',this.fieldId+'_ctr',{range:$R(1,5),values:['1','2','3','4','5'],sliderValue:3,onChange:this.sliderChange.bind(this)}));this.resetField=function(){$(this.fieldId).value="";};this.populateField=function(value){if(value!==""){$trSliders.get(this.fieldId+'_sldr').setValue(value);}};this.copy=function(newFieldId,rootFieldId){return $inputFields.create(SliderSelector,newFieldId,rootFieldId,this.options);};this.value=function(){if(this.sliderValue===""){return"";}
var sliderValue=$trSliders.get(this.fieldId+'_sldr').value;$(this.fieldId).value=sliderValue;return sliderValue;};this.validate=function(values,additionalValues){return true;};}
var $fieldGroups=new Hash();function FieldGroup(name,fieldIds,fieldsHash){this.name=name;this.fieldsHash=new Hash(fieldsHash);this.fieldIds=fieldIds;this.availableFieldIds=this.fieldIds;this.selectedFieldId=null;$fieldGroups.set(name,this);this.resetField=function(){this.initializeGroup({});};this.resetInput=function(fieldId){var ctr=$(fieldId+'_input_ctr');if(ctr.descendants().length===0){var ibox=$(fieldId+'_input');ctr.insert({'bottom':ibox});}
ctr.hide();}
this.initializeGroup=function(values){for(var i=0;i<this.fieldIds.length;i++){this.resetInput(this.fieldIds[i]);}
this.availableFieldIds=this.fieldIds;$('fg_'+this.name+'_ibox_ctr').update("");var valuesHash=new Hash(values);for(var i=0;i<this.fieldIds.length;i++){if(valuesHash.get(this.fieldIds[i])!==undefined){this.addField(this.fieldIds[i],valuesHash.get(this.fieldIds[i]));}}
this.showSelector();};this.addField=function(fieldId,value){if(this.availableFieldIds.indexOf(fieldId)<0){return;}
var ibox=$(fieldId+'_input');var ibox_ctr=$('fg_'+this.name+'_ibox_ctr');ibox_ctr.insert({'bottom':ibox});$(fieldId+'_input_ctr').hide();if(value!==""){populateField($(fieldId),value);}
this.availableFieldIds=this.availableFieldIds.without(fieldId);};this.showSelector=function(){var sel_ctr=$('fg_'+this.name+'_sel_ctr');sel_ctr.update("");sel_ctr.hide();this.selectedFieldId=null;if(this.availableFieldIds.length===0){$('fg_'+this.name+'_add_another_link').hide();return;}
var selector="";selector+=("<select class='fg_selector' id='fg_"+this.name+"_sel'>");for(var i=0;i<this.fieldIds.length;i++){if(this.availableFieldIds.indexOf(this.fieldIds[i])>=0){selector+=("<option value='"+this.fieldIds[i]+"'>"+this.fieldsHash.get(this.fieldIds[i])+"</option>");}}
selector+="</select>"
sel_ctr.update(selector);$('fg_'+this.name+'_sel').observe("change",this.changeSelectedField.bindAsEventListener(this));this.moveSelector(this.availableFieldIds[0]);$('fg_'+this.name+'_add_another_link').show();};this.moveSelector=function(fieldId){if(this.availableFieldIds.indexOf(fieldId)<0){return;}
if(this.selectedFieldId!==null){$(this.selectedFieldId+'_input_ctr').hide();}
var sel_ctr=$('fg_'+this.name+'_sel_ctr');var input_ctr=$(fieldId+'_input_ctr');input_ctr.insert({'top':sel_ctr});sel_ctr.show();input_ctr.show();this.selectedFieldId=fieldId;};this.addAnotherField=function(){var fieldId=$('fg_'+this.name+"_sel").value;var fieldValue=$(fieldId).value;if(fieldValue!==""){if($inputFields.find(fieldId)){fieldValue=fieldValue.evalJSON();}}
this.addField(fieldId,fieldValue);this.showSelector();};this.deleteField=function(fieldId){this.resetInput(fieldId);this.availableFieldIds.push(fieldId);this.showSelector();};this.changeSelectedField=function(e){var fieldId=$('fg_'+this.name+"_sel").value;this.moveSelector(fieldId);};}
function QuickAddTabs(){this.selectedGroup=null;this.selectedLocation=null;this.hoversDisabled=false;this.suffixes={};this.openTabHandlers={};this.tid=null;this.hoverGroup=null;this.hoverLocation=null;this.startSelectTab=function(event){if(this.hoversDisabled){return;}
var tabHeader=$A(arguments)[1];var tabName=tabHeader.id.match(/^tab_name_(.*)_(.*)$/);var groupId=parseInt(tabName[1]);var location=tabName[2];if(groupId==this.selectedGroup&&location==this.selectedLocation&&this.tid!==null){if(this.tid!==null){clearTimeout(this.tid);this.tid=null;}
return;}
if(groupId==this.hoverGroup&&location==this.hoverLocation&&this.tid!==null){return;}
if(this.tid!==null){clearTimeout(this.tid);this.tid=null;}
this.hoverLocation=location;this.hoverGroup=groupId;this.tid=setTimeout(this.selectTab.bind(this,location,groupId),400);};this.stopSelectTab=function(event){if(this.tid!==null){clearTimeout(this.tid);this.tid=null;}};this.closeSelectedTab=function(){var tabGroup=$('tab_group_'+this.selectedGroup);var groupId=tabGroup.id.match(/tab_group_(.*)/)[1];tabGroup.removeClassName('tab_group_'+this.selectedLocation+this.suffixes[groupId]);tabGroup.addClassName('tab_group_closed'+this.suffixes[groupId]);tabGroup.getElementsBySelector('.tab_container').each(function(tab){tab.hide();});$('tab_group_'+this.selectedGroup+'_bottom').hide();};this.getTabName=function(tab){var tabClasses=$w(tab.className);for(var i=0;i<tabClasses.length;i++){if(tabClasses[i].match(/tab_container_/)){return tabClasses[i].match(/tab_container_(.*)/)[1];}}
return null;};this.openTab=function(location,groupId){var tabGroup=$('tab_group_'+groupId);tabGroup.removeClassName('tab_group_closed'+this.suffixes[groupId]);tabGroup.addClassName('tab_group_'+location+this.suffixes[groupId]);var tab=$('tab_container_'+groupId+'_'+location);var tabName=this.getTabName(tab);tab.show();tab.show();$('tab_group_'+groupId+'_bottom').show();if(tabName!==null&&this.openTabHandlers[tabName]!==undefined){this.openTabHandlers[tabName](tabName);}
this.selectedGroup=groupId;this.selectedLocation=location;};this.selectTab=function(location,groupId){if(location==this.selectedLocation&&groupId==this.selectedGroup){return false;}
this.closeSelectedTab();this.openTab(location,groupId);return false;};this.addOpenTabHandler=function(tabName,handler){this.openTabHandlers[tabName]=handler;};var tabGroups=$('quick_add_tabs').select(".tab_group");for(var i=0;i<tabGroups.length;i++){var tabGroupId=tabGroups[i].id.match(/tab_group_(.*)/)[1];var tabGroupClasses=$w(tabGroups[i].className);for(var j=0;j<tabGroupClasses.length;j++){var closedClassName=tabGroupClasses[j].match(/tab_group_closed(.*)/);if(closedClassName!==null){this.suffixes[tabGroupId]=closedClassName[1];break;}}}
$('tabs_form').select(".tab_name").each(function(tabHeader){tabHeader.observe('mousemove',this.startSelectTab.bindAsEventListener(this,tabHeader));tabHeader.observe('mouseout',this.stopSelectTab.bindAsEventListener(this,tabHeader));},this);}
function HealthManager(userId,date){this.userId=userId;this.personalPageId=$personalPageId;this.date=date;this.selectedMood=null;this.registeredTabs=new Hash();this.tabNameByFieldId=new Hash();this.formErrors=new Hash();this.initializerValues=new Hash();this.groupInitializerValues=new Hash();this.submitDisabled=false;this.deleteDisabled=false;this.tracker_enable_form=function(fieldId){this.formErrors.unset(fieldId);this.setErrorMessages(this.tabNameByFieldId.get(fieldId));};this.tracker_disable_form=function(fieldId,error){this.formErrors.set(fieldId,error);this.setErrorMessages(this.tabNameByFieldId.get(fieldId));};this.valid=function(fieldNames){for(var i=0;i<fieldNames.length;i++){if(typeof(this.formErrors.get('user_data_'+fieldNames[i]))!='undefined'){return false;}}
return true;};this.dateObj=this.date;this.setGroupInitializerValue=function(name,valueHash){this.groupInitializerValues.set(name,valueHash);};this.setInitializerValue=function(fieldId,value){this.initializerValues.set(fieldId,value);};this.initializeValues=function(){this.initializerValues.each(function(pair){if($(pair.key)){$inputFields.find(pair.key).populateField(pair.value);}});this.groupInitializerValues.each(function(pair){$fieldGroups.get(pair.key).initializeGroup(pair.value);});};this.setErrorMessages=function(tabName){var fieldIds=this.registeredTabs.get(tabName);var errors="";for(var i=0;i<fieldIds.length;i++){if(typeof(this.formErrors.get(fieldIds[i]))!='undefined'){errors+=this.formErrors.get(fieldIds[i])+"<br />";}}
$('tab_errors_'+tabName).update(errors);}
this.registerTab=function(tabName,fieldIds){this.registeredTabs.set(tabName,fieldIds);for(var i=0;i<fieldIds.length;i++){this.tabNameByFieldId.set(fieldIds[i],tabName);}};this.submitForm=function(fieldNames){if(this.valid(fieldNames)){this.updateData(fieldNames,{});}}
this.newNote=function(){$('mmh_links').hide();$('mmh_note').show();};this.cancelNote=function(){$('mmh_note').hide();$('mmh_links').show();};this.deleteNote=function(note_id,datetime){if(this.deleteDisabled){return;}
if(confirm('Delete this note?')){new Effect.Fade(note_id);new Ajax.Request('/user_notes/delete/'+this.uid+'?datetime='+datetime,{asynchronous:true,evalScripts:true});};};this.nextDay=function(){this.date.setDate(this.date.getDate()+1);this.populateDay();};this.previousDay=function(){this.date.setDate(this.date.getDate()-1);this.populateDay();};this.populateDay=function(){new Ajax.Updater('mmh','/widgets/my_home/manage_my_health/'+this.userId+'?date='+this.date.format("yyyy-mm-dd"),{parameters:{inline:true},evalScripts:true});};this.deleteData=function(keys){if(this.deleteDisabled){return;}
this.deleteDisabled=true;var timestamp=this.date;var parameters={inline:true,user_id:this.userId,personal_page_id:this.personalPageId,timestamp:timestamp.format("yyyy-mm-dd HH:MM:ss")};if(keys.length>0){parameters['keys']=keys.toJSON();}else{return false;}
new Ajax.Updater('mmh','/widgets/my_home/quick_destroy',{evalScripts:true,parameters:parameters});}
this.updateData=function(fieldNames,options){if(this.submitDisabled){return;}
this.submitDisabled=true;quickAddTabs.hoversDisabled=true;var timestamp=this.date;if(options['useTime']){var now=new Date();timestamp=new Date(timestamp.getTime()+(now.getSeconds()+(now.getMinutes()*60)+(now.getHours()*3600))*1000);}
var parameters={inline:true,user_id:this.userId,timestamp:timestamp.format("yyyy-mm-dd HH:MM:ss"),personal_page_id:this.personalPageId};var noData=true;fieldNames.each(function(fieldName){var fieldValue=$('user_data_'+fieldName).value;var name=$('user_data_'+fieldName).name;if(fieldValue!==""){parameters[name]=fieldValue;noData=false;}});if(noData){return false;}
new Ajax.Updater('mmh','/widgets/my_home/quick_update',{evalScripts:true,parameters:parameters});}
this.changeMood=function(mood){if(mood===null){return false;}
if(this.selectedMood!==null){var selectedMoodIcon=$('mood_icon_'+this.selectedMood);selectedMoodIcon.removeClassName('mood_icon_'+this.selectedMood+'_sel');selectedMoodIcon.addClassName('mood_icon_'+this.selectedMood);}
var moodIcon=$('mood_icon_'+mood);moodIcon.addClassName('mood_icon_'+mood+'_sel');moodIcon.removeClassName('mood_icon_'+mood);$('user_data_Mood').value=mood;this.selectedMood=mood;return false;}
this.activateCfsFmsSliders=function(tabName){var sliderValues=[0,24,48,72,97,122,146,171,196,221,246];var painLevel=parseInt($('user_data_Pain-Level').value);var fatigueLevel=parseInt($('user_data_Fatigue-Level').value);var $qaCfsFmsPainSlider=new Control.Slider('qa_pain_slider_knob','qa_pain_slider_scale',{sliderValue:sliderValues[painLevel],range:$R(-7,250),values:sliderValues,onChange:function(value){$('user_data_Pain-Level').value=parseInt(value/24);}});var $qaCfsFmsFatigueSlider=new Control.Slider('qa_fatigue_slider_knob','qa_fatigue_slider_scale',{sliderValue:sliderValues[fatigueLevel],range:$R(-7,250),values:sliderValues,onChange:function(value){$('user_data_Fatigue-Level').value=parseInt(value/24);}});}
this.resetPuffs=function(){var puffs=parseInt($('user_data_Puffs').value);this.hoverPuffs(puffs);return false;};this.hoverPuffs=function(puffs){$('asthma_puffs_selector').select('.asthma_puff').each(function(asthmaPuff){var thisPuffs=parseInt(asthmaPuff.id.match(/asthma_puff_(.*)/)[1]);if(thisPuffs<=puffs){asthmaPuff.addClassName('asthma_puff_sel');}else{asthmaPuff.removeClassName('asthma_puff_sel');}});return false;};this.setPuffs=function(puffs){this.hoverPuffs(puffs);$('user_data_Puffs').value=puffs;return false;};this.resetGlasses=function(){var glasses=parseInt($('user_data_Water').value);this.hoverGlasses(glasses);return false;};this.hoverGlasses=function(glasses){$('water_glasses_selector').select('.water_glass').each(function(waterGlass){var thisGlasses=parseInt(waterGlass.id.match(/water_glass_(.*)/)[1]);if(thisGlasses<=glasses){waterGlass.addClassName('water_glass_sel');}else{waterGlass.removeClassName('water_glass_sel');}});return false;};this.setGlasses=function(glasses){this.hoverGlasses(glasses);$('user_data_Water').value=glasses;if(glasses>0){$('glasses_count').update(glasses+" Glasses");}
return false;};}