Obsidian Portal
Menu
Sign In / Create Account
JavaScript is currently disabled. Obsidian Portal has a lot of really cool features that use JavaScript. You should check them out. We think you'll have a much more enjoyable experience.
Home
Campaigns
Games Nearby
Plans
Community
Help
Resources
Laundry Personnel Record
Author:
markspace
Slug:
laundry
Type:
GameCharacter
System:
The Laundry
DST Source Code
HTML Template
<div class="content"> <div class="laundry_page1_split"> <div class="laundry_character_info laundry_main_box"> <span class="laundry_mast">LAUNDRY</span> <span class="laundry_mast_right">PERSONNEL RECORD</span> <div class="laundry_main_page_column"> <div class="laundry_column_left"> <div class="name"> <span class="laundry_title">Name:</span> <span class="dsf dsf_name"></span> </div> <div class="player"> <span class="laundry_title">Player:</span> <span class="dsf dsf_player"></span> </div> <div class="position"> <span class="laundry_title">Position:</span> <span class="dsf dsf_position"></span> </div> <div class="assignment"> <span class="laundry_title">Assignment:</span> <span class="dsf dsf_assignment"></span> </div> <div class="personality"> <span class="laundry_title">Personality:</span> <span class="dsf dsf_personality"></span> </div> <div class="profession"> <span class="laundry_title">Profession:</span> <span class="dsf dsf_profession"></span> </div> <div class="line_manager"> <span class="laundry_title">Line Manager:</span> <span class="dsf dsf_line_manager"></span> </div> <div class="supervisors"> <span class="laundry_title">Supervisor(s):</span> <span class="dsf dsf_supervisors"></span> </div> <div class="wealth"> <span class="laundry_title">Wealth:</span> <span class="dsf dsf_wealth"></span> </div> </div> </div> <div class="laundry_main_page_column"> <div class="laundry_column_right"> <div class="laundry_age"> <span class="laundry_title">Age:</span> <span class="dsf dsf_age"></span> </div> <div class="laundry_grade"> <span class="laundry_title">Grade:</span> <span class="dsf dsf_grade"></span> </div> <div class="laundry_sex"> <span class="laundry_title">Gender:</span> <span class="dsf dsf_sex"></span> </div> <div class="laundry_born"> <span class="laundry_title">Born:</span> <span class="dsf dsf_born"></span> </div> <div class="laundry_deceased"> <span class="laundry_title">Deceased:</span> <span class="dsf dsf_deceased"></span> </div> <div class="laundry_weight"> <span class="laundry_title">Weight:</span> <span class="dsf dsf_weight"></span> </div> <div class="laundry_height"> <span class="laundry_title">Height:</span> <span class="dsf dsf_height"></span> </div> <div class="laundry_mov"> <span class="laundry_title">MOV:</span> <span class="dsf dsf_mov"></span> </div> <div class="laundry_exp_bonus"> <span class="laundry_title">Exp Bonus:</span> <span class="dsf dsf_exp_bonus readonly"></span> </div> </div> </div> </div> <div class="rolls_and_points"> <div class="laundry_main_page_column"> <div class="laundry_column_left"> <div class="characteristics_rolls laundry_main_box"> <span class="laundry_header">Characteristics and Rolls</span> <div class="row"> <div class="col"> <span class="laundry_title">STR</span> <span class="laundry_stat dsf dsf_str"></span> </div> <div class="widecol"> <span class="laundry_title">Effort</span> <span class="dsf dsf_effort readonly"></span> </div> </div> <div class="row"> <div class="col"> <span class="laundry_title">CON</span> <span class="laundry_stat dsf dsf_con"></span> </div> <div class="widecol"> <span class="laundry_title">Endurance</span> <span class="dsf dsf_endurance readonly"></span> </div> </div> <div class="row"> <div class="col"> <span class="laundry_title">SIZ</span> <span class="laundry_stat dsf dsf_siz"></span> </div> <div class="widecol"> <span class="laundry_title">Damage Bonus</span> <span class="dsf dsf_damage_bonus readonly"></span> </div> </div> <div class="row"> <div class="col"> <span class="laundry_title">INT</span> <span class="laundry_stat dsf dsf_int"></span> </div> <div class="widecol"> <span class="laundry_title">Idea</span> <span class="dsf dsf_idea readonly"></span> </div> </div> <div class="row"> <div class="col"> <span class="laundry_title">DEX</span> <span class="laundry_stat dsf dsf_dex"></span> </div> <div class="widecol"> <span class="laundry_title">Agility</span> <span class="dsf dsf_agility readonly"></span> </div> </div> <div class="row"> <div class="col"> <span class="laundry_title">POW</span> <span class="laundry_stat dsf dsf_pow"></span> </div> <div class="widecol"> <span class="laundry_title">Luck</span> <span class="dsf dsf_luck readonly"></span> </div> </div> <div class="row"> <div class="col"> <span class="laundry_title">CHA</span> <span class="laundry_stat dsf dsf_cha"></span> </div> <div class="widecol"> <span class="laundry_title">Influence</span> <span class="dsf dsf_influence readonly"></span> </div> </div> <div class="row"> <div class="col"> <span class="laundry_title">EDU</span> <span class="laundry_stat dsf dsf_edu"></span> </div> <div class="widecol"> <span class="laundry_title">Know</span> <span class="dsf dsf_know readonly"></span> </div> </div> </div> </div> </div> <div class="laundry_main_page_column"> <div class="laundry_column_right"> <div class="points laundry_main_box"> <span class="laundry_header">Sanity and Hit Points</span> <div class="initial"> <span class="laundry_title">Initial SAN</span> <span class="laundry_stat dsf dsf_initial_sanity"></span> </div> <div class="maximum"> <span class="laundry_title">Max SAN</span> <span class="dsf dsf_maximum_sanity readonly"></span> </div> <div class="madness"> <span class="laundry_title">Madness Threshold</span> <span class="laundry_stat dsf dsf_madness_threshold"></span> </div> <div class="current"> <span class="laundry_title">Current SAN</span> <span class="laundry_stat dsf dsf_current_sanity"></span> </div> <div class="maximum"> <span class="laundry_title">Max HP</span> <span class="dsf dsf_maximum_hitpoints readonly"></span> </div> <div class="major"> <span class="laundry_title">Major Wound</span> <span class="dsf dsf_major_wound readonly"></span> </div> <div class="dead"> <span class="laundry_title">Dead</span> <span class="dsf dsf_dead checkbox"></span> </div> <div class="current"> <span class="laundry_title">Current HP</span> <span class="laundry_stat dsf dsf_current_hitpoints"></span> </div> </div> </div> </div> </div> <div class="agent_skills laundry_main_box"> <span class="laundry_header">Investigator Skills</span> <div class="column"> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_appraise_check checkbox"></span> <span class="skill_name">appraise</span> <span class="skill_value dsf dsf_skill_appraise"></span> </div> <div class="laundry_skill_item"> <span class="skill_check"> </span> <span class="skill_section">art</span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_art1_check checkbox"></span> <span class="skill_name dsf dsf_skill_art1_name"></span> <span class="skill_value dsf dsf_skill_art1"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_art2_check checkbox"></span> <span class="skill_name dsf dsf_skill_art2_name"></span> <span class="skill_value dsf dsf_skill_art2"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_athletics_check checkbox"></span> <span class="skill_name">athletics</span> <span class="skill_value dsf dsf_skill_athletics"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_bargain_check checkbox"></span> <span class="skill_name">bargain</span> <span class="skill_value dsf dsf_skill_bargain"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_brawl_check checkbox"></span> <span class="skill_name">brawl</span> <span class="skill_value dsf dsf_skill_brawl"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_bureaucracy_check checkbox"></span> <span class="skill_name">bureaucracy</span> <span class="skill_value dsf dsf_skill_bureaucracy"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_climb_check checkbox"></span> <span class="skill_name">climb</span> <span class="skill_value dsf dsf_skill_climb"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_command_check checkbox"></span> <span class="skill_name">command</span> <span class="skill_value dsf dsf_skill_command"></span> </div> <div class="laundry_skill_item"> <span class="skill_check"> </span> <span class="skill_section">computer use</span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_computer_use1_check checkbox"></span> <span class="skill_name dsf dsf_skill_computer_use1_name"></span> <span class="skill_value dsf dsf_skill_computer_use1"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_computer_use2_check checkbox"></span> <span class="skill_name dsf dsf_skill_computer_use2_name"></span> <span class="skill_value dsf dsf_skill_computer_use2"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_computer_use3_check checkbox"></span> <span class="skill_name dsf dsf_skill_computer_use3_name"></span> <span class="skill_value dsf dsf_skill_computer_use3"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_computer_use4_check checkbox"></span> <span class="skill_name dsf dsf_skill_computer_use4_name"></span> <span class="skill_value dsf dsf_skill_computer_use4"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_computer_use5_check checkbox"></span> <span class="skill_name dsf dsf_skill_computer_use5_name"></span> <span class="skill_value dsf dsf_skill_computer_use5"></span> </div> <div class="laundry_skill_item"> <span class="skill_check"> </span> <span class="skill_section">craft</span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_craft1_check checkbox"></span> <span class="skill_name dsf dsf_skill_craf1_name"></span> <span class="skill_value dsf dsf_skill_craft1"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_craft2_check checkbox"></span> <span class="skill_name dsf dsf_skill_craft2_name"></span> <span class="skill_value dsf dsf_skill_craft2"></span> </div> <div class="laundry_skill_item"> <span class="skill_check"> </span> <span class="skill_name">cthulhu mythos</span> <span class="skill_value dsf dsf_skill_cthulhu_mythos"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_demolition_check checkbox"></span> <span class="skill_name">demolition</span> <span class="skill_value dsf dsf_skill_demolition"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_disguise_check checkbox"></span> <span class="skill_name">disguise</span> <span class="skill_value dsf dsf_skill_disguise"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_dodge_check checkbox"></span> <span class="skill_name">dodge</span> <span class="skill_value dsf dsf_skill_dodge"></span> </div> <div class="laundry_skill_item"> <span class="skill_check"> </span> <span class="skill_section">drive</span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_drive1_check checkbox"></span> <span class="skill_name dsf dsf_skill_drive1_name"></span> <span class="skill_value dsf dsf_skill_drive1"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_drive2_check checkbox"></span> <span class="skill_name dsf dsf_skill_drive2_name"></span> <span class="skill_value dsf dsf_skill_drive2"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_etiquette_check checkbox"></span> <span class="skill_name">etiquette</span> <span class="skill_value dsf dsf_skill_etiquette"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_fast_talk_check checkbox"></span> <span class="skill_name">fast talk</span> <span class="skill_value dsf dsf_skill_fast_talk"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_fine_manipulation_check checkbox"></span> <span class="skill_name">fine manip.</span> <span class="skill_value dsf dsf_skill_fine_manipulation"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_first_aid_check checkbox"></span> <span class="skill_name">first aid</span> <span class="skill_value dsf dsf_skill_first_aid"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_gaming_check checkbox"></span> <span class="skill_name">gaming</span> <span class="skill_value dsf dsf_skill_gaming"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_grapple_check checkbox"></span> <span class="skill_name">grapple</span> <span class="skill_value dsf dsf_skill_grapple"></span> </div> </div> <div class="column"> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_heavy_machinery_check checkbox"></span> <span class="skill_name">heavy machinery</span> <span class="skill_value dsf dsf_skill_heavy_machinery"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_hide_check checkbox"></span> <span class="skill_name">hide</span> <span class="skill_value dsf dsf_skill_hide"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_insight_check checkbox"></span> <span class="skill_name">insight</span> <span class="skill_value dsf dsf_skill_insight"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_jump_check checkbox"></span> <span class="skill_name">jump</span> <span class="skill_value dsf dsf_skill_jump"></span> </div> <div class="laundry_skill_item"> <span class="skill_check"> </span> <span class="skill_section">knowledge</span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_knowledge_accounting_check checkbox"></span> <span class="skill_name">accounting</span> <span class="skill_value dsf dsf_skill_knowledge_accounting"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_knowledge_espionage_check checkbox"></span> <span class="skill_name">espionage</span> <span class="skill_value dsf dsf_skill_knowledge_espionage"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_knowledge_law_check checkbox"></span> <span class="skill_name">law</span> <span class="skill_value dsf dsf_skill_knowledge_law"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_knowledge_occult_check checkbox"></span> <span class="skill_name">occult</span> <span class="skill_value dsf dsf_skill_knowledge_occult"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_knowledge_politics_check checkbox"></span> <span class="skill_name">politics</span> <span class="skill_value dsf dsf_skill_knowledge_politics"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_knowledge1_check checkbox"></span> <span class="skill_name dsf dsf_skill_knowledge1_name"></span> <span class="skill_value dsf dsf_skill_knowledge1"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_knowledge2_check checkbox"></span> <span class="skill_name dsf dsf_skill_knowledge2_name"></span> <span class="skill_value dsf dsf_skill_knowledge2"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_knowledge3_check checkbox"></span> <span class="skill_name dsf dsf_skill_knowledge3_name"></span> <span class="skill_value dsf dsf_skill_knowledge3"></span> </div> <div class="laundry_skill_item"> <span class="skill_check"> </span> <span class="skill_section">own language</span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_own_language_check checkbox"></span> <span class="skill_name dsf dsf_skill_own_language_name"></span> <span class="skill_value dsf dsf_skill_own_language"></span> </div> <div class="laundry_skill_item"> <span class="skill_check"> </span> <span class="skill_section">other language</span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_other_language1_check checkbox"></span> <span class="skill_name dsf dsf_skill_other_language1_name"></span> <span class="skill_value dsf dsf_skill_other_language1"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_other_language2_check checkbox"></span> <span class="skill_name dsf dsf_skill_other_language2_name"></span> <span class="skill_value dsf dsf_skill_other_language2"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_other_language3_check checkbox"></span> <span class="skill_name dsf dsf_skill_other_language3_name"></span> <span class="skill_value dsf dsf_skill_other_language3"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_listen_check checkbox"></span> <span class="skill_name">listen</span> <span class="skill_value dsf dsf_skill_listen"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_medicine_check checkbox"></span> <span class="skill_name">medicine</span> <span class="skill_value dsf dsf_skill_medicine"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_navigate_check checkbox"></span> <span class="skill_name">navigate</span> <span class="skill_value dsf dsf_skill_navigate"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_perform_check checkbox"></span> <span class="skill_name">perform</span> <span class="skill_value dsf dsf_skill_perform"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_persuade_check checkbox"></span> <span class="skill_name">persuade</span> <span class="skill_value dsf dsf_skill_persuade"></span> </div> <div class="laundry_skill_item"> <span class="skill_check"> </span> <span class="skill_section">pilot</span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_pilot1_check checkbox"></span> <span class="skill_name dsf dsf_skill_pilot1_name"></span> <span class="skill_value dsf dsf_skill_pilot1"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_pilot2_check checkbox"></span> <span class="skill_name dsf dsf_skill_pilot2_name"></span> <span class="skill_value dsf dsf_skill_pilot2"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_psychotherapy_check checkbox"></span> <span class="skill_name">psychotherapy</span> <span class="skill_value dsf dsf_skill_psychotherapy"></span> </div> <div class="laundry_skill_item"> <span class="skill_check"> </span> <span class="skill_section">repair</span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_repair1_check checkbox"></span> <span class="skill_name dsf dsf_skill_repair1_name"></span> <span class="skill_value dsf dsf_skill_repair1"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_repair2_check checkbox"></span> <span class="skill_name dsf dsf_skill_repair2_name"></span> <span class="skill_value dsf dsf_skill_repair2"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_repair3_check checkbox"></span> <span class="skill_name dsf dsf_skill_repair3_name"></span> <span class="skill_value dsf dsf_skill_repair3"></span> </div> </div> <div class="column"> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_research_check checkbox"></span> <span class="skill_name">research</span> <span class="skill_value dsf dsf_skill_research"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_ride_check checkbox"></span> <span class="skill_name">ride</span> <span class="skill_value dsf dsf_skill_ride"></span> </div> <div class="laundry_skill_item"> <span class="skill_check"> </span> <span class="skill_section">science</span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_science1_check checkbox"></span> <span class="skill_name dsf dsf_skill_science1_name"></span> <span class="skill_value dsf dsf_skill_science1"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_science2_check checkbox"></span> <span class="skill_name dsf dsf_skill_science2_name"></span> <span class="skill_value dsf dsf_skill_science2"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_science3_check checkbox"></span> <span class="skill_name dsf dsf_skill_science3_name"></span> <span class="skill_value dsf dsf_skill_science3"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_science4_check checkbox"></span> <span class="skill_name dsf dsf_skill_science4_name"></span> <span class="skill_value dsf dsf_skill_science4"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_science5_check checkbox"></span> <span class="skill_name dsf dsf_skill_science5_name"></span> <span class="skill_value dsf dsf_skill_science5"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_sense_check checkbox"></span> <span class="skill_name">sense</span> <span class="skill_value dsf dsf_skill_sense"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_sleight_of_hand_check checkbox"></span> <span class="skill_name">sleight of hand</span> <span class="skill_value dsf dsf_skill_sleight_of_hand"></span> </div> <div class="laundry_skill_item"> <span class="skill_check"> </span> <span class="skill_name">sorcery</span> <span class="skill_value dsf dsf_skill_sorcery"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_spot_check checkbox"></span> <span class="skill_name">spot</span> <span class="skill_value dsf dsf_skill_spot"></span> </div> <div class="laundry_skill_item"> <span class="skill_check"> </span> <span class="skill_name">status</span> <span class="skill_value dsf dsf_skill_status"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_stealth_check checkbox"></span> <span class="skill_name">stealth</span> <span class="skill_value dsf dsf_skill_stealth"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_strategy_check checkbox"></span> <span class="skill_name">strategy</span> <span class="skill_value dsf dsf_skill_strategy"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_swim_check checkbox"></span> <span class="skill_name">swim</span> <span class="skill_value dsf dsf_skill_swim"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_teach_check checkbox"></span> <span class="skill_name">teach</span> <span class="skill_value dsf dsf_skill_teach"></span> </div> <div class="laundry_skill_item"> <span class="skill_check"> </span> <span class="skill_section">technology use</span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_technology_use1_check checkbox"></span> <span class="skill_name dsf dsf_skill_technology_use1_name"></span> <span class="skill_value dsf dsf_skill_technology_use1"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_technology_use2_check checkbox"></span> <span class="skill_name dsf dsf_skill_technology_use2_name"></span> <span class="skill_value dsf dsf_skill_technology_use2"></span> </div> <div class="laundry_sub_skill_item"> <span class="skill_check dsf dsf_skill_technology_use3_check checkbox"></span> <span class="skill_name dsf dsf_skill_technology_use3_name"></span> <span class="skill_value dsf dsf_skill_technology_use3"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_throw_check checkbox"></span> <span class="skill_name">throw</span> <span class="skill_value dsf dsf_skill_throw"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_track_check checkbox"></span> <span class="skill_name">track</span> <span class="skill_value dsf dsf_skill_track"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_custom1_check checkbox"></span> <span class="skill_name dsf dsf_skill_custom1_name"></span> <span class="skill_value dsf dsf_skill_custom1"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_custom2_check checkbox"></span> <span class="skill_name dsf dsf_skill_custom2_name"></span> <span class="skill_value dsf dsf_skill_custom2"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_custom3_check checkbox"></span> <span class="skill_name dsf dsf_skill_custom3_name"></span> <span class="skill_value dsf dsf_skill_custom3"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_custom4_check checkbox"></span> <span class="skill_name dsf dsf_skill_custom4_name"></span> <span class="skill_value dsf dsf_skill_custom4"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_custom5_check checkbox"></span> <span class="skill_name dsf dsf_skill_custom5_name"></span> <span class="skill_value dsf dsf_skill_custom5"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_custom6_check checkbox"></span> <span class="skill_name dsf dsf_skill_custom6_name"></span> <span class="skill_value dsf dsf_skill_custom6"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_custom7_check checkbox"></span> <span class="skill_name dsf dsf_skill_custom7_name"></span> <span class="skill_value dsf dsf_skill_custom7"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_custom8_check checkbox"></span> <span class="skill_name dsf dsf_skill_custom8_name"></span> <span class="skill_value dsf dsf_skill_custom8"></span> </div> <div class="laundry_skill_item"> <span class="skill_check dsf dsf_skill_custom9_check checkbox"></span> <span class="skill_name dsf dsf_skill_custom9_name"></span> <span class="skill_value dsf dsf_skill_custom9"></span> </div> </div> </div> </div> <div class="laundry_combat laundry_main_box"> <span class="laundry_header">Combat Skills</span> <div class="laundry_combat_item"> <span class="laundry_combat_check laundry_combat_header"> </span> <span class="laundry_combat_name laundry_combat_header">Skill</span> <span class="laundry_combat_percent laundry_combat_header">%</span> <span class="laundry_combat_weapon laundry_combat_header">Weapon Details</span> </div> <div class="laundry_laundry_combat_item"> <span class="laundry_combat_check dsf dsf_combat1_check checkbox"></span> <span class="laundry_combat_name dsf dsf_combat1_skill"></span> <span class="laundry_combat_percent dsf dsf_combat1_percent"></span> <span class="laundry_combat_weapon dsf dsf_combat1_weapon"></span> </div> <div class="laundry_laundry_combat_item"> <span class="laundry_combat_check dsf dsf_combat2_check checkbox"></span> <span class="laundry_combat_name dsf dsf_combat2_skill"></span> <span class="laundry_combat_percent dsf dsf_combat2_percent"></span> <span class="laundry_combat_weapon dsf dsf_combat2_weapon"></span> </div> <div class="laundry_laundry_combat_item"> <span class="laundry_combat_check dsf dsf_combat3_check checkbox"></span> <span class="laundry_combat_name dsf dsf_combat3_skill"></span> <span class="laundry_combat_percent dsf dsf_combat3_percent"></span> <span class="laundry_combat_weapon dsf dsf_combat3_weapon"></span> </div> <div class="laundry_laundry_combat_item"> <span class="laundry_combat_check dsf dsf_combat4_check checkbox"></span> <span class="laundry_combat_name dsf dsf_combat4_skill"></span> <span class="laundry_combat_percent dsf dsf_combat4_percent"></span> <span class="laundry_combat_weapon dsf dsf_combat4_weapon"></span> </div> <div class="laundry_laundry_combat_item"> <span class="laundry_combat_check dsf dsf_combat5_check checkbox"></span> <span class="laundry_combat_name dsf dsf_combat5_skill"></span> <span class="laundry_combat_percent dsf dsf_combat5_percent"></span> <span class="laundry_combat_weapon dsf dsf_combat5_weapon"></span> </div> <div class="laundry_laundry_combat_item"> <span class="laundry_combat_check dsf dsf_combat6_check checkbox"></span> <span class="laundry_combat_name dsf dsf_combat6_skill"></span> <span class="laundry_combat_percent dsf dsf_combat6_percent"></span> <span class="laundry_combat_weapon dsf dsf_combat6_weapon"></span> </div> <div class="laundry_laundry_combat_item"> <span class="laundry_combat_check dsf dsf_combat7_check checkbox"></span> <span class="laundry_combat_name dsf dsf_combat7_skill"></span> <span class="laundry_combat_percent dsf dsf_combat7_percent"></span> <span class="laundry_combat_weapon dsf dsf_combat7_weapon"></span> </div> <div class="laundry_laundry_combat_item"> <span class="laundry_combat_check dsf dsf_combat8_check checkbox"></span> <span class="laundry_combat_name dsf dsf_combat8_skill"></span> <span class="laundry_combat_percent dsf dsf_combat8_percent"></span> <span class="laundry_combat_weapon dsf dsf_combat8_weapon"></span> </div> <div class="laundry_laundry_combat_item"> <span class="laundry_combat_check dsf dsf_combat9_check checkbox"></span> <span class="laundry_combat_name dsf dsf_combat9_skill"></span> <span class="laundry_combat_percent dsf dsf_combat9_percent"></span> <span class="laundry_combat_weapon dsf dsf_combat9_weapon"></span> </div> <div class="laundry_laundry_combat_item"> <span class="laundry_combat_check dsf dsf_combat10_check checkbox"></span> <span class="laundry_combat_name dsf dsf_combat10_skill"></span> <span class="laundry_combat_percent dsf dsf_combat10_percent"></span> <span class="laundry_combat_weapon dsf dsf_combat10_weapon"></span> </div> <div class="laundry_laundry_combat_item"> <span class="laundry_combat_check dsf dsf_combat11_check checkbox"></span> <span class="laundry_combat_name dsf dsf_combat11_skill"></span> <span class="laundry_combat_percent dsf dsf_combat11_percent"></span> <span class="laundry_combat_weapon dsf dsf_combat11_weapon"></span> </div> </div> <div class="laundry_page_marker"> <hr /> </div> <div class="laundry_top_page_2"> <div class="laundry_main_page_column"> <div class="laundry_column_left"> <div class="laundry_posessions laundry_main_box"> <span class="laundry_header">Posessions</span> <span class="laundry_area readonly laundry_posessions dsf dsf_laundry_posessions"></span> </div> <div class="laundry_disciplinary laundry_main_box"> <span class="laundry_header">Disciplinary record</span> <span class="laundry_area readonly laundry_disciplinary dsf dsf_laundry_disciplinary"></span> </div> <div class="laundry_psychiatric_history laundry_main_box"> <span class="laundry_header">Psychiatric history</span> <span class="laundry_area readonly laundry_psychiatric dsf dsf_laundry_psychiatric"></span> </div> </div> </div> <div class="laundry_main_page_column"> <div class="laundry_column_right"> <div class="laundry_training_courses laundry_main_box"> <span class="laundry_header">Training courses attended</span> <span class="laundry_area readonly laundry_training dsf dsf_laundry_training"></span> </div> <div class="laundry_certification laundry_main_box"> <span class="laundry_header">Certification</span> <span class="laundry_area readonly laundry_certification dsf dsf_laundry_certification"></span> </div> </div> </div> </div> <div class="laundry_security laundry_main_box"> <span class="laundry_header">Security Clearances</span> <span class="laundry_area readonly dsf dsf_laundry_security"></span> </div> <div class="laundry_it_equipment laundry_main_box"> <span class="laundry_header">IT equipment</span> <span class="laundry_area readonly dsf dsf_laundry_it_equipment"></span> </div> <div class="laundry_spells laundry_main_box"> <span class="laundry_header">Spells</span> <span class="laundry_area readonly dsf dsf_laundry_spells"></span> </div> <div class="laundry_notes laundry_main_box"> <span class="laundry_header">Notes</span> <span class="laundry_area readonly dsf dsf_laundry_notes"></span> </div> <div class="laundry_page_marker"> <hr /> </div> <div class="laundry_bio laundry_main_box"> <span class="laundry_header">Biography</span> <span class="dsf dsf_bio"></span> </div> </div>
CSS
/**************************** * This is the CSS for the laundry *****************************/ @media print { body * { visibility: hidden; } div.dynamic_sheet_container * { visibility: visible; } div.dynamic_sheet_container { position: absolute; left: 0; top: 0; } .ds_laundry { width: 1000px; font-family: "Lucida Console", Monaco, monospace; font-size:16px; line-height:normal; } } @media screen { .ds_laundry { width: 700px; font-family: "Lucida Console", Monaco, monospace; font-size:16px; line-height:normal; } } .ds_laundry .laundry_main_box { border-width: 1px; border-color: black; border-style: solid; overflow: auto; padding-bottom: .5em; margin-bottom: 6px; clear: left; } .ds_laundry .laundry_title { font-weight: bold; clear: left; } .ds_laundry .laundry_mast { width: 40%; font-size: 200%; font-weight: bold; background-color: #E0E0E0; color: black; float: left; text-align: left; margin-bottom: .25em; } .ds_laundry .laundry_mast_right { width: 60%; font-size: 200%; font-weight: bold; background-color: #E0E0E0; color: black; float: right; text-align: right; margin-bottom: .25em; } .ds_laundry .laundry_header { width: 100%; font-size: 125%; font-weight: bold; background-color: #E0E0E0; color: black; float: left; text-align: left; margin-bottom: .25em; } .ds_laundry .laundry_hidden { display: none; visibility: hidden; } @media screen { .ds_laundry .laundry_page_marker { margin-top: 1em; margin-bottom: 1em; } } @media print { .ds_laundry .laundry_page_marker { page-break-after:always; } } .ds_laundry .laundry_main_page_column { width: 50%; float: left !important; } .ds_laundry .laundry_column_left { padding-right: 3px; } .ds_laundry .laundry_column_right { padding-left: 3px; } .ds_laundry .laundry_top_page_2 { overflow: auto; } /**************************** * Character Info *****************************/ .ds_laundry .laundry_character_info .laundry_title { float: left; padding-right: 6px; } .ds_laundry .laundry_character_info .dsf { float: left; min-width: 50%; } .ds_laundry .laundry_sex { float: left; width: 50%; } .ds_laundry .laundry_sex .dsf { float: left; min-width: 25%; } .ds_laundry .laundry_age { float: left; width: 50%; } .ds_laundry .laundry_age .dsf { float: left; min-width: 25%; } /**************************** * Characteristics and Rolls *****************************/ .ds_laundry .laundry_rolls_and_points { overflow: auto; } .ds_laundry .characteristics_rolls .row { clear: left; } .ds_laundry .characteristics_rolls .col { float: left; width: 30%; } .ds_laundry .characteristics_rolls .laundry_title { float: left; width: 3.1em; } .ds_laundry .laundry_stat { position:relative; display:inline-block; text-align:left; width: 2em; color:inherit; } .ds_laundry .characteristics_rolls .widecol .laundry_title { float: left; width: 10em; } .ds_laundry .characteristics_rolls .widecol { float: left; width: 70%; } .ds_laundry .dsf_cthulhu_sanity { float: left; min-width: 20px; } .ds_laundry .dsf_damage_bonus { float: left; min-width: 40px; } /**************************** * Points *****************************/ .ds_laundry .points .current { clear: left; } .ds_laundry .points .maximum { clear: left; } .ds_laundry .points .sanity { float: left; width: 33.33%; } .ds_laundry .points .magic { float: left; width: 33.33%; } .ds_laundry .points .hit { float: left; width: 33.33%; } .ds_laundry .points .laundry_title { float: left; width: 75%; } /**************************** * Agent Skills *****************************/ .ds_laundry .agent_skills .column { float: left !important; width: 33.33%; position: relative; } .ds_laundry .agent_skills .laundry_skill_item { clear: left; } .ds_laundry .agent_skills .laundry_sub_skill_item { clear: left; } .ds_laundry .agent_skills .skill_check { float: left; width: 25px; clear: left; } .ds_laundry .agent_skills .skill_name { text-transform: capitalize; float: left; width: 10em; } .ds_laundry .agent_skills .skill_section { text-transform: capitalize; float: left; width: 10em; font-weight: bold; } .ds_laundry .agent_skills .laundry_sub_skill_item .skill_name { text-transform: capitalize; float: left; width: 9em; margin-left: 1em; } .ds_laundry .agent_skills .skill_value { float: left; position:relative; display:inline-block; text-align:left; width: 2em; color:inherit; } .ds_laundry .skill_section_header { float: left; font-weight: bold; position: relative; left: -5px; text-transform: capitalize; } /**************************** * Combat Skills *****************************/ .ds_laundry .laundry_combat_item { clear: left; } .ds_laundry .laundry_combat_header { font-weight: bold; } .ds_laundry .laundry_combat_check { float: left; clear: left; width: 25px; } .ds_laundry .laundry_combat_name { float: left; width: 250px; } .ds_laundry .laundry_combat_percent { float: left; width: 50px; } .ds_laundry .laundry_combat_weapon { float: left; position:relative; display:inline-block; text-align:left; width: 20em; color:inherit; } .ds_laundry .laundry_area { float: left; position:relative; display:inline-block; text-align:left; width: 100%; color:inherit; }
JavaScript
/* * This is the javascript specific to the laundry DST * by Mark Davidson * * Lots of ideas from Langy and ChainsawXIV */ // Global Storage laundry_context = {}; var $ = jQuery var laundry_default_values = { "cthulhu_sanity": "99", "skill_appraise": "15", "skill_athletics": "10", "skill_bargain": "5", "skill_brawl": "25", "skill_bureaucracy": "5", "skill_climb": "40", "skill_command": "5", "skill_cthulhu_mythos": "0", "skill_demolition": "1", "skill_disguise": "5", "skill_etiquette": "5", "skill_fast_talk": "5", "skill_fine_manipulation": "5", "skill_first_aid": "30", "skill_gaming": "10", "skill_grapple": "25", "skill_heavy_machine": "5", "skill_hide": "10", "skill_insight": "5", "skill_jump": "25", "skill_knowledge_accounting": "10", "skill_knowledge_espionage": "0", "skill_knowledge_law": "5", "skill_knowledge_occult": "5", "skill_knowledge_politics": "5", "skill_listen": "25", "skill_medicine": "5", "skill_navigate": "10", "skill_perform": "5", "skill_persuade": "15", "skill_psychotherapy": "0", "skill_research": "25", "skill_ride": "5", "skill_sense": "10", "skill_skill_sleight_of_hand": "5", "skill_skill_sorcery": "0", "skill_spot": "25", "skill_status": "15", "skill_stealth": "10", "skill_strategy": "0", "skill_swim": "25", "skill_teach": "10", "skill_throw": "25", "skill_track": "10", "combat1_skill": "Artillery", "combat1_percent": "0", "combat1_weapon": "", "combat2_skill": "Firearm (Assault Rifle)", "combat2_percent": "15", "combat2_weapon": "", "combat3_skill": "Firearm (Esoteric)", "combat3_percent": "0", "combat3_weapon": "", "combat4_skill": "Firearm (Exotic)", "combat4_percent": "5", "combat4_weapon": "", "combat5_skill": "Firearm (Pistol)", "combat5_percent": "20", "combat5_weapon": "", "combat6_skill": "Firearm (Rifle)", "combat6_percent": "25", "combat6_weapon": "", "combat7_skill": "Firearm (Shotgun)", "combat7_percent": "30", "combat7_weapon": "", "combat8_skill": "Firearm (SMG)", "combat8_percent": "15", "combat8_weapon": "", "combat9_skill": "Heavy Weapon", "combat9_percent": "0", "combat9_weapon": "", "combat10_skill": "Melee Weapon", "combat10_percent": "0", "combat10_weapon": "", "combat11_skill": "Missile Weapon", "combat11_percent": "0", "combat11_weapon": "", }; function laundry_dataPreLoad(opts) { $.fn.editable.defaults['onblur'] = 'submit'; aisleten.characters.jeditablePlaceholder = "__"; aisleten.characters.jeditableSubmit = ''; // Called just before the data is loaded. var tempData = {}; for (var val in laundry_default_values) { tempData[val] = laundry_default_values[val]; } for (var val in dynamic_sheet_attrs) { tempData[val] = dynamic_sheet_attrs[val]; } dynamic_sheet_attrs = tempData; } function laundry_dataPostLoad(opts) { var containerId = "#" + opts['containerId']; laundry_context = document.getElementById(opts['containerId']); opts['context'] = document.getElementById(opts['containerId']); //Convert interface elements laundry_convertAreas(opts); // Modify the image attributes so that it is scaled to fit inside // the pre-allocated space on the character sheet var avatarImgActual = '.avatar_image'; var avatarImg = jQuery(avatarImgActual); var width = avatarImg.width(); var height = avatarImg.height(); if (width > height) { jQuery(avatarImgActual).css("width", "100%"); } else { jQuery(avatarImgActual).css("height", "100%"); } laundry_derivedStats(); laundry_calculateSanity(); } function laundry_dataChange(opts) { var field = opts['fieldName']; var val = opts['fieldValue']; if (field.indexOf("skill") != -1) { if (field == 'skill_cthulhu_mythos') { laundry_calculateSanity(val); } } else { laundry_derivedStats(); } } function laundry_dataPreSave(opts) { opts['context'] = document.getElementById(opts['containerId']); laundry_unconvertAreas(opts); var containerId = "#" + opts['containerId']; } function laundry_derivedStats() { laundry_calculateDamageBonus(); laundry_calculateHP(); var strength = laundry_getInt(jQuery('.dsf_str').html()); var constitution = laundry_getInt(jQuery('.dsf_con').html()); var size = laundry_getInt(jQuery('.dsf_siz').html()); var intelligence = laundry_getInt(jQuery('.dsf_int').html()); var dexterity = laundry_getInt(jQuery('.dsf_dex').html()); var power = laundry_getInt(jQuery('.dsf_pow').html()); var charisma = laundry_getInt(jQuery('.dsf_cha').html()); var education = laundry_getInt(jQuery('.dsf_edu').html()); var effort = Math.min(strength * 5, 99); jQuery('.dsf_effort').html(effort); var endurance = Math.min(constitution * 5, 99); jQuery('.dsf_endurance').html(endurance); var idea = Math.min(intelligence * 5, 99); jQuery('.dsf_idea').html(idea); var exp_bonus = Math.ceil(intelligence/2); jQuery('.dsf_exp_bonus').html(exp_bonus); var agility = Math.min(dexterity * 5, 99); jQuery('.dsf_agility').html(agility); var dodge = parseInt(jQuery('.dsf_skill_dodge').html()); if (isNaN(dodge) || dodge < (dexterity * 2)) { dodge = dexterity * 2; jQuery('.dsf_skill_dodge').html(dodge); } var luck = Math.min(power * 5, 99); jQuery('.dsf_luck').html(luck); var influence = Math.min(charisma * 5, 99); jQuery('.dsf_influence').html(influence); var know = Math.min(education * 5, 99); jQuery('.dsf_know').html(know); var ownLanguage = parseInt(jQuery('.dsf_skill_own_language').html()); if (isNaN(ownLanguage) || ownLanguage < idea) { ownLanguage = idea; jQuery('.dsf_skill_own_language').html(ownLanguage); } laundry_calculateSanity(); } function laundry_getInt(val) { var score = parseInt(val); if (isNaN(score)) score = 0; return score; } function laundry_calculateDamageBonus() { var str = parseInt(jQuery('.dsf_str').html()); var siz = parseInt(jQuery('.dsf_siz').html()); var dmgBonus = str + siz; var bonusText; if (isNaN(dmgBonus)) { bonusText = '0'; } else if (dmgBonus <= 12) { bonusText = '-1D6'; } else if (dmgBonus <= 16) { bonusText = '-1D4'; } else if (dmgBonus <= 24) { bonusText = '0'; } else if (dmgBonus <= 32) { bonusText = '+1D4'; } else { var total = dmgBonus - 24; total /= 16; total = Math.ceil(total); bonusText = '+' + total + 'D6'; } jQuery('.dsf_damage_bonus').html(bonusText); } function laundry_calculateSanity() { var score = laundry_getInt(jQuery('.dsf_skill_cthulhu_mythos').html()); var cthulhuSanity = 99 - score; var luck = Math.min(parseInt(jQuery('.dsf_pow').html()) * 5, 99); var maxSanity = Math.min(cthulhuSanity, luck); if (!isNaN(maxSanity)) { jQuery('.dsf_maximum_sanity').html(maxSanity); var initialSanity = parseInt(jQuery('.dsf_initial_sanity').html()); if (isNaN(initialSanity)) { jQuery('.dsf_initial_sanity').html(luck); } var currentSanity = parseInt(jQuery('.dsf_current_sanity').html()); if (isNaN(currentSanity)) { jQuery('.dsf_current_sanity').html(maxSanity); } } } function laundry_calculateHP() { var con = parseInt(jQuery('.dsf_con').html()); var siz = parseInt(jQuery('.dsf_siz').html()); var hp = Math.ceil((con + siz) / 2); var majorwound = Math.ceil(hp / 2); if (!isNaN(hp)) { jQuery('.dsf_maximum_hitpoints').html(hp); jQuery('.dsf_major_wound').html(majorwound); var currentHP = parseInt(jQuery('.dsf_current_hitpoints').html()); if (isNaN(currentHP)) { jQuery('.dsf_current_hitpoints').html(hp); } } } function laundry_area(oElement,opts){ // Store opts oElement.setAttribute('optsIsEditable',opts['isEditable']); oElement.setAttribute('optsDebugThreshold',opts['debugThreshold']); // Attaches edit events to area text oElement.activate = function(){ // Don't activate the element if we're not in edit mode if (this.getAttribute('optsIsEditable') != 'true') return; // Activate the element oElement.onclick = this.edit; // Add default value if (this.innerHTML == '') this.innerHTML = aisleten.characters.jeditablePlaceholder; // Set the element's alt text this.title = 'Edit'; // Set the cursor for the item this.style.cursor = 'pointer'; }; // Converts the element to an editable area oElement.edit = function(){ // Abort click function if we just clicked submit if(this.getAttribute('eventLock') == 'locked'){ this.setAttribute('eventLock',null); return; } // Force submit any other area in the context var aAreas = laundry_getElementsByClassName('area','span'); for (var i = 0; i < aAreas.length; i++){ if (aAreas[i].getAttribute('status') == 'editing') aAreas[i].submit(); } // Set the editing flag this.setAttribute('status','editing'); // Disable click functionality this.onclick = null; // Set cursor this.style.cursor = 'text'; // Remove default if (this.innerHTML == aisleten.characters.jeditablePlaceholder) this.innerHTML = ''; // Convert <br /> tags to line breaks var sText = this.innerHTML.replace(/<br>/g,'\n'); // Select dimensions and classes var iWidth = this.offsetWidth + parseInt(this.getAttribute('widthMod')); var iHeight = this.offsetHeight + parseInt(this.getAttribute('heightMod')) + 60; var sClasses = this.getAttribute('areaClasses'); // Convert content into form with button this.innerHTML = '<textarea class=laundry_textarea "' + sClasses + '" style="width:' + iWidth + 'px;height:' + iHeight + 'px;">' + sText + '</textarea>'; var focusRef = function(){$('.laundry_textarea').focus();}; var submitRef = function(){$('.laundry_textarea').parent().submit();}; var unfocusRef = function(){$('.laundry_textarea').blur(submitRef)}; this.focusTimeout = setTimeout(focusRef,50); this.unfocusTimeout = setTimeout(unfocusRef,60); }; // Converts the edit box back into regular text form oElement.submit = function(){ // Get the data from the edit box var sContent = this.getElementsByTagName('textarea')[0].value.replace(/\n/g,'<br>'); // Remove the form elements this.innerHTML = sContent; // Reapply the default value if needed if (this.innerHTML == '') this.innerHTML = aisleten.characters.jeditablePlaceholder; // Lock out the click event until we're done this.setAttribute('eventLock','locked'); // Automatically unlock after a twentieth of a second var submitRef = function(){oElement.setAttribute('eventLock',null);}; this.timeout = setTimeout(submitRef,50); // Set pointer this.style.cursor = 'pointer'; // Reattach the click functionality this.onclick = this.edit; // Reset the editing flag this.setAttribute('status',null); // Call the onUpdate event this.onUpdate(); }; // On Update event function, typicaly overriden oElement.onUpdate = function(){ } // Error handling function - alerts on errors if bug reporting is on oElement.error = function(iImportance,sText){ if (this.getAttribute('optsDebugThreshold')) var iThreshold = this.getAttribute('debugThreshold'); else iThreshold = 0; if (iImportance < iThreshold){ alert(sText); } } // Return the element for ease of refference return oElement; } // Converts all properly classed divs in the context to areas function laundry_convertAreas(opts){ // Find all the spans on the page with "area" in their class name if (opts['context']) var aSpans = opts['context'].getElementsByTagName('span'); else var aSpans = document.getElementsByTagName('span'); var taTemp = {}; for (var i = 0; i < aSpans.length; i++){ if (aSpans[i].className.match(/area/)){ // Convert each element to a full featured area object taTemp = laundry_area(aSpans[i],opts); taTemp.activate(); // Load up custom parameters and such depending on class if (aSpans[i].className.match('is_tooltip')){ taTemp.setAttribute('widthMod',-9); taTemp.setAttribute('heightMod',-9); taTemp.setAttribute('areaClasses','area tip_area'); taTemp.onUpdate = function(){ oParent = this.parentNode; oParent.setAttribute("editLock","unlocked"); oParent.mouseOut(); }; } else{ taTemp.setAttribute('widthMod',-23); taTemp.setAttribute('heightMod',-6); taTemp.setAttribute('areaClasses','area'); } } } } // Sets the necesary class name on areas for them to be saved function laundry_unconvertAreas(opts){ // Find all the spans on the page with "area" in their class name if (opts['context']) var aSpans = opts['context'].getElementsByTagName('span'); else var aSpans = document.getElementsByTagName('span'); // Add the necesary save key to the class name // Also close out any active edit boxes for (var i = 0; i < aSpans.length; i++){ if (aSpans[i].className.match(/area/)){ //if (aSpans[i].innerHTML.match(/textarea/)) aSpans[i].submit(); if (aSpans[i].innerHTML == aisleten.characters.jeditablePlaceholder) aSpans[i].innerHTML = ''; } } } //////////////////////////////////////////////////////// // General Utility Functions :: Credit to ChainsawXIV // //////////////////////////////////////////////////////// // Gets an array of elements with a particular class from the context function laundry_getElementsByClassName(sClassName,sElementType){ // Provide default element type if (!sElementType) sElementType = 'div'; var aList = new Array(); var aDivs = laundry_context.getElementsByTagName(sElementType); for (var i = 0; i < aDivs.length; i++){ if (aDivs[i].className.match(sClassName)) aList[aList.length] = aDivs[i]; } return aList; }
Submit Notes
Back