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
All Flesh ADH
Author:
dawnhawk
Slug:
all_flesh_adh
Type:
GameCharacter
System:
All Flesh Must Be Eaten
DST Source Code
HTML Template
<div class="all_flesh_adh_wrapper"> <div class="all_flesh_adh_section" style="width:450px;height:137px;"> <div class="all_flesh_adh_section_header" style="width:100%">BASIC INFORMATION</div> <span class="all_flesh_adh_linefield dsf dsf_name" style="left:2px;top:24px;width:200px;"></span> <span class="all_flesh_adh_linefield dsf dsf_charType" style="left:207px;top:24px;width:240px;"></span> <span class="all_flesh_adh_label" style="left:5px;top:42px;">Character Name</span> <span class="all_flesh_adh_label" style="left:210px;top:42px;">Character Type</span> <span class="all_flesh_adh_linefield dsf dsf_player" style="left:2px;top:63px;width:200px;"></span> <span class="all_flesh_adh_linefield dsf dsf_campaign" style="left:207px;top:63px;width:240px;"></span> <span class="all_flesh_adh_label" style="left:5px;top:81px;">Player Name</span> <span class="all_flesh_adh_label" style="left:210px;top:81px;">Campaign</span> <span class="all_flesh_adh_linefield dsf dsf_hair" style="left:2px;top:102px;width:70px;"></span> <span class="all_flesh_adh_linefield dsf dsf_eyes" style="left:75px;top:102px;width:70px;"></span> <span class="all_flesh_adh_linefield dsf dsf_height" style="left:150px;top:102px;width:70px;"></span> <span class="all_flesh_adh_linefield dsf dsf_weight" style="left:225px;top:102px;width:70px"></span> <span class="all_flesh_adh_linefield dsf dsf_gender" style="left:300px;top:102px;width:70px;"></span> <span class="all_flesh_adh_linefield dsf dsf_age" style="left:375px;top:102px;width:70px"></span> <span class="all_flesh_adh_label" style="left:5px;top:120px;">Hair</span> <span class="all_flesh_adh_label" style="left:78px;top:120px;">Eyes</span> <span class="all_flesh_adh_label" style="left:153px;top:120px;">Height</span> <span class="all_flesh_adh_label" style="left:228px;top:120px;">Weight</span> <span class="all_flesh_adh_label" style="left:303px;top:120px;">Gender</span> <span class="all_flesh_adh_label" style="left:378px;top:120px;">Age</span> </div> <div class="all_flesh_adh_section_no_border" style="width:250px;top:-14px;"> <div class="all_flesh_adh_section_image"><span class="dsf dsf_avatar_image"></span></div> <span class="all_flesh_adh_linefield dsf dsf_quote rippers_adh_quote" style="left:2px;top:252px;width:250px;"></span> <span class="all_flesh_adh_quote_label" style="left:5px;top:270px;">Quote</span> </div> <div class="all_flesh_adh_section" style="width:450px;"> <div class="all_flesh_adh_section_header" style="width:100%">CHARACTER POINTS</div> <table class="all_flesh_adh_table_basic_main" style="width:450px;"> <tbody> <tr> <th class="all_flesh_adh_table_header_horizontal" style="width:175px;">SPENT</th> <td class="all_flesh_adh_table_box_points" style="width:50px;"><span class="all_flesh_adh_field all_flesh_adh_cppoints dsf dsf_cp_spent"></span></td> <th class="all_flesh_adh_table_header_horizontal" style="width:175px;">UNSPENT</th> <td class="all_flesh_adh_table_box_points" style="width:50px;"><span class="all_flesh_adh_field all_flesh_adh_cppoints dsf dsf_cp_unspent"></span></td> </tr> </tbody> </table> <div style="height:5px"></div> </div> <div style="height:5px"></div> <div class="all_flesh_adh_section" style="width:222px;"> <div class="all_flesh_adh_section_header" style="width:100%">PRIMARY ATTRIBUTES</div> <table class="all_flesh_adh_table_basic_main" style="width:222px;"> <tbody> <tr> <th class="all_flesh_adh_table_header_horizontal" style="width:50px;">STR</th> <td class="all_flesh_adh_table_box_field" style="width:40px;"><span class="all_flesh_adh_field all_flesh_adh_at dsf dsf_str_points"></span></td> <th class="all_flesh_adh_table_header_horizontal" style="width:50px;">INT</th> <td class="all_flesh_adh_table_box_field" style="width:40px;"><span class="all_flesh_adh_field all_flesh_adh_sc dsf dsf_int_points"></span></td> </tr> <tr> <th class="all_flesh_adh_table_header_horizontal">DEX</th> <td class="all_flesh_adh_table_box_field"><span class="all_flesh_adh_field all_flesh_adh_at dsf dsf_dex_points"></span></td> <th class="all_flesh_adh_table_header_horizontal">PERC</th> <td class="all_flesh_adh_table_box_field"><span class="all_flesh_adh_field all_flesh_adh_sc dsf dsf_perception_points"></span></td> </tr> <tr> <th class="all_flesh_adh_table_header_horizontal">CONST</th> <td class="all_flesh_adh_table_box_field"><span class="all_flesh_adh_field all_flesh_adh_at dsf dsf_constitution_points"></span></td> <th class="all_flesh_adh_table_header_horizontal">WILL</th> <td class="all_flesh_adh_table_box_field"><span class="all_flesh_adh_field all_flesh_adh_sc dsf dsf_willpower_points"></span></td> </tr> </tbody> </table> <div style="height:5px"></div> </div> <div class="all_flesh_adh_section" style="width:222px;"> <div class="all_flesh_adh_section_header" style="width:100%">SECONDARY ATTRIBUTES</div> <table class="all_flesh_adh_table_basic_main" style="width:222px;"> <tbody> <tr> <th class="all_flesh_adh_table_header_horizontal" style="width:150px;">LIFE POINTS</th> <td class="all_flesh_adh_table_box_field" style="width:40px;"><span class="all_flesh_adh_field all_flesh_adh_at dsf dsf_life_points"></span></td> </tr> <tr> <th class="all_flesh_adh_table_header_horizontal" style="width:150px;">ENDURANCE POINTS</th> <td class="all_flesh_adh_table_box_field" style="width:40px;"><span class="all_flesh_adh_field all_flesh_adh_sc dsf dsf_endurance_points"></span></td> </tr> <tr> <th class="all_flesh_adh_table_header_horizontal" style="width:150px;">SPEED</th> <td class="all_flesh_adh_table_box_field" style="width:40px;"><span class="all_flesh_adh_field all_flesh_adh_at dsf dsf_speed_points"></span></td> </tr> <tr> <th class="all_flesh_adh_table_header_horizontal" style="width:150px;">ESSENCE POOL</th> <td class="all_flesh_adh_table_box_field" style="width:40px;"><span class="all_flesh_adh_field all_flesh_adh_sc dsf dsf_essence_points"></span></td> </tr> </tbody> </table> <div style="height:5px"></div> </div> <div style="height:15px"></div> <div> <div class="all_flesh_adh_section_left all_flesh_adh_qualities_section" style="width:353px;"> <div class="all_flesh_adh_section_header_left">QUALITIES<a class="all_flesh_adh_listAdd all_flesh_adh_interface" title="Add Quality" onclick="all_flesh_adh_getElementsByClassName('list_qualities')[0].addItem();">+</a></div> <table class="all_flesh_adh_table_basic_main"> <tbody> <tr> <td class="all_flesh_adh_table_header">Qualities</td> <td class="all_flesh_adh_table_header" style="width:45px">Points</td> </tr> </tbody> </table> <div class="listColumns_1 list_qualities"> <span class="dsf dsf_num_elements_qualities" style="display:none"></span> <div class="template"> <div class="all_flesh_adh_details_parent"> <span class="dsf dsf_qualities_popup_on_ all_flesh_adh_pop_toggle" style="display:none"></span> <div class="all_flesh_adh_popup" style="display:none"> <a class="all_flesh_adh_listDetailsNoPointer"><object><div class="all_flesh_adh_popup_background"></div></object></a> <div class="all_flesh_adh_popup_container"> <div class="all_flesh_adh_popup_box"> <div class="all_flesh_adh_section_header">DETAILS</div> <div class="all_flesh_adh_popup_section"> <table class="all_flesh_adh_table_basic_main all_flesh_adh_ed_only_table"> <tbody> <tr> <td class="all_flesh_adh_table_basic_cell"><a class="all_flesh_adh_listSubheader">Toggle Header</a></td> <td class="all_flesh_adh_table_basic_cell"><a class="all_flesh_adh_listSpecial">Toggle Formatting</a></td> </tr> </tbody> </table> <span class="all_flesh_adh_area readonly all_flesh_adh_details dsf dsf_qualities_desc_" style="position:relative;left:10px;width:450px;height:175px;"></span> </div> </div> </div> </div> <span class="all_flesh_adh_subheader_toggle all_flesh_adh_field dsf dsf_qualities_subheader_on_" style="display:none"></span> <span class="all_flesh_adh_special_toggle all_flesh_adh_field dsf dsf_qualities_special_on_" style="display:none"></span> <table class="all_flesh_adh_table_basic_main all_flesh_adh_subheader" style="display:none"> <tbody> <tr> <td class="all_flesh_adh_table_subheader"><span class="all_flesh_adh_field dsf dsf_qualities_subheader_"></span></td> </tr> </tbody> </table> <table class="all_flesh_adh_table_basic_main all_flesh_adh_table_row"> <tbody> <tr> <td class="interface" style="text-align:right;width:42px"> <a class="all_flesh_adh_listDelete interface" title="Delete this item">✘</a> <a class="all_flesh_adh_listPromote interface" title="Move this item up">↑</a> <a class="all_flesh_adh_listDemote interface" title="Move this item down">↓</a> <a class="all_flesh_adh_listDetails interface" title="Toggle Details">D</a> </td> <td class="all_flesh_adh_table_field" style="text-align:left;"> <a class="all_flesh_adh_listDetails_viewer"><span class="all_flesh_adh_field all_flesh_adh_entry dsf dsf_qualities_" style="text-align:left;"></span></a> </td> <td class="all_flesh_adh_details_notifier" style="width:5px"></td> <td class="all_flesh_adh_table_field" style="width:56px"> <span class="all_flesh_adh_field dsf dsf_qualities_points_"></span> </td> </tr> </tbody> </table> </div> </div> </div> <div style="height:5px"></div> </div> <div class="all_flesh_adh_section_right all_flesh_adh_drawbacks_section" style="width:353px"> <div class="all_flesh_adh_section_header_right">DRAWBACKS<a class="all_flesh_adh_listAdd all_flesh_adh_interface" title="Add Drawback" onclick="all_flesh_adh_getElementsByClassName('list_drawbacks')[0].addItem();">+</a></div> <table class="all_flesh_adh_table_basic_main"> <tbody> <tr> <td class="all_flesh_adh_table_header">Drawback</td> <td class="all_flesh_adh_table_header" style="width:60px">Points</td> </tr> </tbody> </table> <div class="listColumns_1 list_drawbacks"> <span class="dsf dsf_num_elements_drawbacks" style="display:none"></span> <div class="template"> <div class="all_flesh_adh_details_parent"> <span class="dsf dsf_drawbacks_popup_on_ all_flesh_adh_pop_toggle" style="display:none"></span> <div class="all_flesh_adh_popup" style="display:none"> <a class="all_flesh_adh_listDetailsNoPointer"><object><div class="all_flesh_adh_popup_background"></div></object></a> <div class="all_flesh_adh_popup_container"> <div class="all_flesh_adh_popup_box"> <div class="all_flesh_adh_section_header">DETAILS</div> <div class="all_flesh_adh_popup_section"> <table class="all_flesh_adh_table_basic_main all_flesh_adh_ed_only_table"> <tbody> <tr> <td class="all_flesh_adh_table_basic_cell"><a class="all_flesh_adh_listSubheader">Toggle Header</a></td> <td class="all_flesh_adh_table_basic_cell"><a class="all_flesh_adh_listSpecial">Toggle Formatting</a></td> </tr> </tbody> </table> <span class="all_flesh_adh_area readonly all_flesh_adh_details dsf dsf_drawbacks_desc_" style="position:relative;left:10px;width:450px;height:175px;"></span> </div> </div> </div> </div> <span class="all_flesh_adh_subheader_toggle all_flesh_adh_field dsf dsf_drawbacks_subheader_on_" style="display:none"></span> <span class="all_flesh_adh_special_toggle all_flesh_adh_field dsf dsf_drawbacks_special_on_" style="display:none"></span> <table class="all_flesh_adh_table_basic_main all_flesh_adh_subheader" style="display:none"> <tbody> <tr> <td class="all_flesh_adh_table_subheader"><span class="all_flesh_adh_field dsf dsf_drawbacks_subheader_"></span></td> </tr> </tbody> </table> <table class="all_flesh_adh_table_basic_main all_flesh_adh_table_row"> <tbody> <tr> <td class="interface" style="text-align:right;width:42px"> <a class="all_flesh_adh_listDelete interface" title="Delete this item">✘</a> <a class="all_flesh_adh_listPromote interface" title="Move this item up">↑</a> <a class="all_flesh_adh_listDemote interface" title="Move this item down">↓</a> <a class="all_flesh_adh_listDetails interface" title="Toggle Details">D</a> </td> <td class="all_flesh_adh_table_field" style="text-align:left;"> <a class="all_flesh_adh_listDetails_viewer"><span class="all_flesh_adh_field all_flesh_adh_entry dsf dsf_drawbacks_" style="text-align:left;"></span></a> </td> <td class="all_flesh_adh_details_notifier" style="width:5px"></td> <td class="all_flesh_adh_table_field" style="width:56px"> <span class="all_flesh_adh_field dsf dsf_drawbacks_points_"></span> </td> </tr> </tbody> </table> </div> </div> </div> <div style="height:5px"></div> </div> </div> <div> <div class="all_flesh_adh_section_left all_flesh_adh_skills_one_section" style="width:353px;"> <div class="all_flesh_adh_section_header_left">SKILLS<a class="all_flesh_adh_listAdd all_flesh_adh_interface" title="Add Skill" onclick="all_flesh_adh_getElementsByClassName('list_skills_one')[0].addItem();">+</a></div> <table class="all_flesh_adh_table_basic_main"> <tbody> <tr> <td class="all_flesh_adh_table_header">Skill</td> <td class="all_flesh_adh_table_header" style="width:45px">Level</td> </tr> </tbody> </table> <div class="listColumns_1 list_skills_one"> <span class="dsf dsf_num_elements_skills_one" style="display:none"></span> <div class="template"> <div class="all_flesh_adh_details_parent"> <span class="dsf dsf_skills_one_popup_on_ all_flesh_adh_pop_toggle" style="display:none"></span> <div class="all_flesh_adh_popup" style="display:none"> <a class="all_flesh_adh_listDetailsNoPointer"><object><div class="all_flesh_adh_popup_background"></div></object></a> <div class="all_flesh_adh_popup_container"> <div class="all_flesh_adh_popup_box"> <div class="all_flesh_adh_section_header">DETAILS</div> <div class="all_flesh_adh_popup_section"> <table class="all_flesh_adh_table_basic_main all_flesh_adh_ed_only_table"> <tbody> <tr> <td class="all_flesh_adh_table_basic_cell"><a class="all_flesh_adh_listSubheader">Toggle Header</a></td> <td class="all_flesh_adh_table_basic_cell"><a class="all_flesh_adh_listSpecial">Toggle Formatting</a></td> </tr> </tbody> </table> <span class="all_flesh_adh_area readonly all_flesh_adh_details dsf dsf_skills_one_desc_" style="position:relative;left:10px;width:450px;height:175px;"></span> </div> </div> </div> </div> <span class="all_flesh_adh_subheader_toggle all_flesh_adh_field dsf dsf_skills_one_subheader_on_" style="display:none"></span> <span class="all_flesh_adh_special_toggle all_flesh_adh_field dsf dsf_skills_one_special_on_" style="display:none"></span> <table class="all_flesh_adh_table_basic_main all_flesh_adh_subheader" style="display:none"> <tbody> <tr> <td class="all_flesh_adh_table_subheader"><span class="all_flesh_adh_field dsf dsf_skills_one_subheader_"></span></td> </tr> </tbody> </table> <table class="all_flesh_adh_table_basic_main all_flesh_adh_table_row"> <tbody> <tr> <td class="interface" style="text-align:right;width:42px"> <a class="all_flesh_adh_listDelete interface" title="Delete this item">✘</a> <a class="all_flesh_adh_listPromote interface" title="Move this item up">↑</a> <a class="all_flesh_adh_listDemote interface" title="Move this item down">↓</a> <a class="all_flesh_adh_listDetails interface" title="Toggle Details">D</a> </td> <td class="all_flesh_adh_table_field" style="text-align:left;"> <a class="all_flesh_adh_listDetails_viewer"><span class="all_flesh_adh_field all_flesh_adh_entry dsf dsf_skills_one_" style="text-align:left;"></span></a> </td> <td class="all_flesh_adh_details_notifier" style="width:5px"></td> <td class="all_flesh_adh_table_field" style="width:56px"> <span class="all_flesh_adh_field dsf dsf_skills_one_level_"></span> </td> </tr> </tbody> </table> </div> </div> </div> <div style="height:5px"></div> </div> <div class="all_flesh_adh_section_right all_flesh_adh_skills_two_section" style="width:353px"> <div class="all_flesh_adh_section_header_right">SKILLS<a class="all_flesh_adh_listAdd all_flesh_adh_interface" title="Add Skill" onclick="all_flesh_adh_getElementsByClassName('list_skills_two')[0].addItem();">+</a></div> <table class="all_flesh_adh_table_basic_main"> <tbody> <tr> <td class="all_flesh_adh_table_header">Skill</td> <td class="all_flesh_adh_table_header" style="width:60px">Level</td> </tr> </tbody> </table> <div class="listColumns_1 list_skills_two"> <span class="dsf dsf_num_elements_skills_two" style="display:none"></span> <div class="template"> <div class="all_flesh_adh_details_parent"> <span class="dsf dsf_skills_two_popup_on_ all_flesh_adh_pop_toggle" style="display:none"></span> <div class="all_flesh_adh_popup" style="display:none"> <a class="all_flesh_adh_listDetailsNoPointer"><object><div class="all_flesh_adh_popup_background"></div></object></a> <div class="all_flesh_adh_popup_container"> <div class="all_flesh_adh_popup_box"> <div class="all_flesh_adh_section_header">DETAILS</div> <div class="all_flesh_adh_popup_section"> <table class="all_flesh_adh_table_basic_main all_flesh_adh_ed_only_table"> <tbody> <tr> <td class="all_flesh_adh_table_basic_cell"><a class="all_flesh_adh_listSubheader">Toggle Header</a></td> <td class="all_flesh_adh_table_basic_cell"><a class="all_flesh_adh_listSpecial">Toggle Formatting</a></td> </tr> </tbody> </table> <span class="all_flesh_adh_area readonly all_flesh_adh_details dsf dsf_skills_two_desc_" style="position:relative;left:10px;width:450px;height:175px;"></span> </div> </div> </div> </div> <span class="all_flesh_adh_subheader_toggle all_flesh_adh_field dsf dsf_skills_two_subheader_on_" style="display:none"></span> <span class="all_flesh_adh_special_toggle all_flesh_adh_field dsf dsf_skills_two_special_on_" style="display:none"></span> <table class="all_flesh_adh_table_basic_main all_flesh_adh_subheader" style="display:none"> <tbody> <tr> <td class="all_flesh_adh_table_subheader"><span class="all_flesh_adh_field dsf dsf_skills_two_subheader_"></span></td> </tr> </tbody> </table> <table class="all_flesh_adh_table_basic_main all_flesh_adh_table_row"> <tbody> <tr> <td class="interface" style="text-align:right;width:42px"> <a class="all_flesh_adh_listDelete interface" title="Delete this item">✘</a> <a class="all_flesh_adh_listPromote interface" title="Move this item up">↑</a> <a class="all_flesh_adh_listDemote interface" title="Move this item down">↓</a> <a class="all_flesh_adh_listDetails interface" title="Toggle Details">D</a> </td> <td class="all_flesh_adh_table_field" style="text-align:left;"> <a class="all_flesh_adh_listDetails_viewer"><span class="all_flesh_adh_field all_flesh_adh_entry dsf dsf_skills_two_" style="text-align:left;"></span></a> </td> <td class="all_flesh_adh_details_notifier" style="width:5px"></td> <td class="all_flesh_adh_table_field" style="width:56px"> <span class="all_flesh_adh_field dsf dsf_skills_two_level_"></span> </td> </tr> </tbody> </table> </div> </div> </div> <div style="height:5px"></div> </div> </div> <div> <div class="all_flesh_adh_section_left all_flesh_adh_powers_one_section" style="width:353px;"> <div class="all_flesh_adh_section_header_left">POWERS<a class="all_flesh_adh_listAdd all_flesh_adh_interface" title="Add power" onclick="all_flesh_adh_getElementsByClassName('list_powers_one')[0].addItem();">+</a></div> <table class="all_flesh_adh_table_basic_main"> <tbody> <tr> <td class="all_flesh_adh_table_header">Power</td> <td class="all_flesh_adh_table_header" style="width:45px">Level</td> </tr> </tbody> </table> <div class="listColumns_1 list_powers_one"> <span class="dsf dsf_num_elements_powers_one" style="display:none"></span> <div class="template"> <div class="all_flesh_adh_details_parent"> <span class="dsf dsf_powers_one_popup_on_ all_flesh_adh_pop_toggle" style="display:none"></span> <div class="all_flesh_adh_popup" style="display:none"> <a class="all_flesh_adh_listDetailsNoPointer"><object><div class="all_flesh_adh_popup_background"></div></object></a> <div class="all_flesh_adh_popup_container"> <div class="all_flesh_adh_popup_box"> <div class="all_flesh_adh_section_header">DETAILS</div> <div class="all_flesh_adh_popup_section"> <table class="all_flesh_adh_table_basic_main all_flesh_adh_ed_only_table"> <tbody> <tr> <td class="all_flesh_adh_table_basic_cell"><a class="all_flesh_adh_listSubheader">Toggle Header</a></td> <td class="all_flesh_adh_table_basic_cell"><a class="all_flesh_adh_listSpecial">Toggle Formatting</a></td> </tr> </tbody> </table> <span class="all_flesh_adh_area readonly all_flesh_adh_details dsf dsf_powers_one_desc_" style="position:relative;left:10px;width:450px;height:175px;"></span> </div> </div> </div> </div> <span class="all_flesh_adh_subheader_toggle all_flesh_adh_field dsf dsf_powers_one_subheader_on_" style="display:none"></span> <span class="all_flesh_adh_special_toggle all_flesh_adh_field dsf dsf_powers_one_special_on_" style="display:none"></span> <table class="all_flesh_adh_table_basic_main all_flesh_adh_subheader" style="display:none"> <tbody> <tr> <td class="all_flesh_adh_table_subheader"><span class="all_flesh_adh_field dsf dsf_powers_one_subheader_"></span></td> </tr> </tbody> </table> <table class="all_flesh_adh_table_basic_main all_flesh_adh_table_row"> <tbody> <tr> <td class="interface" style="text-align:right;width:42px"> <a class="all_flesh_adh_listDelete interface" title="Delete this item">✘</a> <a class="all_flesh_adh_listPromote interface" title="Move this item up">↑</a> <a class="all_flesh_adh_listDemote interface" title="Move this item down">↓</a> <a class="all_flesh_adh_listDetails interface" title="Toggle Details">D</a> </td> <td class="all_flesh_adh_table_field" style="text-align:left;"> <a class="all_flesh_adh_listDetails_viewer"><span class="all_flesh_adh_field all_flesh_adh_entry dsf dsf_powers_one_" style="text-align:left;"></span></a> </td> <td class="all_flesh_adh_details_notifier" style="width:5px"></td> <td class="all_flesh_adh_table_field" style="width:56px"> <span class="all_flesh_adh_field dsf dsf_powers_one_level_"></span> </td> </tr> </tbody> </table> </div> </div> </div> <div style="height:5px"></div> </div> <div class="all_flesh_adh_section_right all_flesh_adh_powers_two_section" style="width:353px"> <div class="all_flesh_adh_section_header_right">POWERS<a class="all_flesh_adh_listAdd all_flesh_adh_interface" title="Add power" onclick="all_flesh_adh_getElementsByClassName('list_powers_two')[0].addItem();">+</a></div> <table class="all_flesh_adh_table_basic_main"> <tbody> <tr> <td class="all_flesh_adh_table_header">Power</td> <td class="all_flesh_adh_table_header" style="width:60px">Level</td> </tr> </tbody> </table> <div class="listColumns_1 list_powers_two"> <span class="dsf dsf_num_elements_powers_two" style="display:none"></span> <div class="template"> <div class="all_flesh_adh_details_parent"> <span class="dsf dsf_powers_two_popup_on_ all_flesh_adh_pop_toggle" style="display:none"></span> <div class="all_flesh_adh_popup" style="display:none"> <a class="all_flesh_adh_listDetailsNoPointer"><object><div class="all_flesh_adh_popup_background"></div></object></a> <div class="all_flesh_adh_popup_container"> <div class="all_flesh_adh_popup_box"> <div class="all_flesh_adh_section_header">DETAILS</div> <div class="all_flesh_adh_popup_section"> <table class="all_flesh_adh_table_basic_main all_flesh_adh_ed_only_table"> <tbody> <tr> <td class="all_flesh_adh_table_basic_cell"><a class="all_flesh_adh_listSubheader">Toggle Header</a></td> <td class="all_flesh_adh_table_basic_cell"><a class="all_flesh_adh_listSpecial">Toggle Formatting</a></td> </tr> </tbody> </table> <span class="all_flesh_adh_area readonly all_flesh_adh_details dsf dsf_powers_two_desc_" style="position:relative;left:10px;width:450px;height:175px;"></span> </div> </div> </div> </div> <span class="all_flesh_adh_subheader_toggle all_flesh_adh_field dsf dsf_powers_two_subheader_on_" style="display:none"></span> <span class="all_flesh_adh_special_toggle all_flesh_adh_field dsf dsf_powers_two_special_on_" style="display:none"></span> <table class="all_flesh_adh_table_basic_main all_flesh_adh_subheader" style="display:none"> <tbody> <tr> <td class="all_flesh_adh_table_subheader"><span class="all_flesh_adh_field dsf dsf_powers_two_subheader_"></span></td> </tr> </tbody> </table> <table class="all_flesh_adh_table_basic_main all_flesh_adh_table_row"> <tbody> <tr> <td class="interface" style="text-align:right;width:42px"> <a class="all_flesh_adh_listDelete interface" title="Delete this item">✘</a> <a class="all_flesh_adh_listPromote interface" title="Move this item up">↑</a> <a class="all_flesh_adh_listDemote interface" title="Move this item down">↓</a> <a class="all_flesh_adh_listDetails interface" title="Toggle Details">D</a> </td> <td class="all_flesh_adh_table_field" style="text-align:left;"> <a class="all_flesh_adh_listDetails_viewer"><span class="all_flesh_adh_field all_flesh_adh_entry dsf dsf_powers_two_" style="text-align:left;"></span></a> </td> <td class="all_flesh_adh_details_notifier" style="width:5px"></td> <td class="all_flesh_adh_table_field" style="width:56px"> <span class="all_flesh_adh_field dsf dsf_powers_two_level_"></span> </td> </tr> </tbody> </table> </div> </div> </div> <div style="height:5px"></div> </div> </div> <div style="height:15px"></div> <div class="all_flesh_adh_section all_flesh_adh_weapons_section" style="width:710px"> <div class="all_flesh_adh_section_header">WEAPONS/HAND TO HAND<a class="all_flesh_adh_listAdd all_flesh_adh_interface" title="Add Weapon" onclick="all_flesh_adh_getElementsByClassName('list_weapons')[0].addItem();">+</a></div> <table class="all_flesh_adh_table_basic_main"> <tbody> <tr> <td class="all_flesh_adh_table_header">Weapon</td> <td class="all_flesh_adh_table_header" style="width:75px">Rate of Fire / # of Attacks</td> <td class="all_flesh_adh_table_header" style="width:75px">Attack Bonus</td> <td class="all_flesh_adh_table_header" style="width:75px">Damage</td> <td class="all_flesh_adh_table_header" style="width:75px">Damage Bonus</td> </tr> </tbody> </table> <div class="listColumns_1 list_weapons"> <span class="dsf dsf_num_elements_weapons" style="display:none"></span> <div class="template"> <div class="all_flesh_adh_details_parent"> <span class="dsf dsf_weapons_popup_on_ all_flesh_adh_pop_toggle" style="display:none"></span> <div class="all_flesh_adh_popup" style="display:none"> <a class="all_flesh_adh_listDetailsNoPointer"><object><div class="all_flesh_adh_popup_background"></div></object></a> <div class="all_flesh_adh_popup_container"> <div class="all_flesh_adh_popup_box"> <div class="all_flesh_adh_section_header">DETAILS</div> <div class="all_flesh_adh_popup_section"> <table class="all_flesh_adh_table_basic_main all_flesh_adh_ed_only_table"> <tbody> <tr> <td class="all_flesh_adh_table_basic_cell"><a class="all_flesh_adh_listSubheader">Toggle Header</a></td> <td class="all_flesh_adh_table_basic_cell"><a class="all_flesh_adh_listSpecial">Toggle Formatting</a></td> </tr> </tbody> </table> <span class="all_flesh_adh_area readonly all_flesh_adh_details dsf dsf_weapons_desc_" style="position:relative;left:10px;width:450px;height:175px;"></span> </div> </div> </div> </div> <span class="all_flesh_adh_subheader_toggle all_flesh_adh_field dsf dsf_weapons_subheader_on_" style="display:none"></span> <span class="all_flesh_adh_special_toggle all_flesh_adh_field dsf dsf_weapons_special_on_" style="display:none"></span> <table class="all_flesh_adh_table_basic_main all_flesh_adh_subheader" style="display:none"> <tbody> <tr> <td class="all_flesh_adh_table_subheader"><span class="all_flesh_adh_field dsf dsf_weapons_subheader_"></span></td> </tr> </tbody> </table> <table class="all_flesh_adh_table_basic_main all_flesh_adh_table_row"> <tbody> <tr> <td class="interface" style="text-align:right;width:42px"> <a class="all_flesh_adh_listDelete interface" title="Delete this item">✘</a> <a class="all_flesh_adh_listPromote interface" title="Move this item up">↑</a> <a class="all_flesh_adh_listDemote interface" title="Move this item down">↓</a> <a class="all_flesh_adh_listDetails interface" title="Toggle Details">D</a> </td> <td class="all_flesh_adh_table_field" style="text-align:left;"> <a class="all_flesh_adh_listDetails_viewer"><span class="all_flesh_adh_field_wide all_flesh_adh_entry dsf dsf_weapons_name_"></span></a> </td> <td class="all_flesh_adh_details_notifier" style="width:5px"></td> <td class="all_flesh_adh_table_field" style="width:70px"> <span class="all_flesh_adh_field dsf dsf_weapons_rate_"></span> </td> <td class="all_flesh_adh_table_field" style="width:70px"> <span class="all_flesh_adh_field dsf dsf_weapons_atbonus_"></span> </td> <td class="all_flesh_adh_table_field" style="width:70px"> <span class="all_flesh_adh_field dsf dsf_weapons_damage_"></span> </td> <td class="all_flesh_adh_table_field" style="width:70px"> <span class="all_flesh_adh_field dsf dsf_weapons_dmbonus_"></span> </td> </tr> </tbody> </table> </div> </div> </div> <div style="height:5px"></div> </div> <div style="height:15px"></div> <div class="all_flesh_adh_section all_flesh_adh_possessions_section" style="width:353px"> <div class="all_flesh_adh_section_header">POSSESSIONS</div> <span class="all_flesh_adh_area readonly dsf dsf_possessions" style="width:353px;"></span> <div style="height:5px"></div> </div> <div class="all_flesh_adh_section all_flesh_adh_allies_section" style="width:353px; float:right;"> <div class="all_flesh_adh_section_header">ALLIES / CONTACTS</div> <span class="all_flesh_adh_area readonly dsf dsf_allies" style="width:353px;"></span> <div style="height:5px"></div> </div> <div style="height:15px"></div> <div class="all_flesh_adh_section all_flesh_adh_traits_section" style="min-height:50px;width:710px"> <div class="all_flesh_adh_section_header">NOTES</div> <span class="all_flesh_adh_area readonly dsf dsf_traits" style="width:720px;"></span> <div style="height:5px"></div> </div> <div class="all_flesh_adh_section all_flesh_adh_description_section" style="min-height:50px;width:710px"> <div class="all_flesh_adh_section_header">DESCRIPTION</div> <span class="all_flesh_adh_area readonly dsf dsf_desc" style="width:720px;"></span> <div style="height:5px"></div> </div> <div class="all_flesh_adh_section all_flesh_adh_bio_section" style="min-height:50px;width:710px"> <div class="all_flesh_adh_section_header">CHARACTER HISTORY / BIO</div> <span class="readonly all_flesh_adh_bio dsf dsf_bio"></span> <div style="height:5px"></div> </div> <div class="all_flesh_adh_section all_flesh_adh_credits" style="text-align:left;min-height:50px;width:710px"> <div class="all_flesh_adh_section_header">CREDITS</div> <span>This gaming aid references All Flesh Must Be Eaten game system, available from Eden Studios at <a href="http://www.edenstudios.net/">http://www.edenstudios.net/</a>. Eden Studios, All Flesh Must Be Eaten and all associated logos and trademarks are copyrights of Eden Studios.</span> <div style="height:5px"></div> </div> </div>
CSS
/* Page Style */ div .ds_all_flesh_adh .all_flesh_adh_wrapper{ font-family:palatino; font-size:13px; color:black; width:715px; margin: 0; padding: 0; border: 0; vertical-align: middle; display: block; line-height: 1; list-style: none; quotes: none; content: ''; content: none; margin-bottom: 0em; background-image:none; } div .ds_all_flesh_adh a{ color:inherit; text-decoration:none; } div .all_flesh_adh_ed_only{ display:none; } div .editable .all_flesh_adh_ed_only { display:inline; } div .all_flesh_adh_ed_only_table{ display:none; } div .editable .all_flesh_adh_ed_only_table { display:table; } div .ds_all_flesh_adh table{ margin:0px; border-collapse: separate; border-spacing: 2px; } div .ds_all_flesh_adh table td{ font-size: inherit; padding: inherit; background-image:none; } div .ds_all_flesh_adh table th{ font-size: inherit; padding: inherit; background-image:none; } div .all_flesh_adh_bio a{ text-decoration:none; color:#000; } div .all_flesh_adh_area a{ text-decoration:none; color:#000; } div .all_flesh_adh_credits a{ text-decoration:none; color:#000; } div .all_flesh_adh_quote{ text-decoration:none; color:#000; } div .all_flesh_adh_quote_label{ position:absolute; font-size:11px; color:#000; font-variant:small-caps; white-space:nowrap; } div form{ position:relative; } div field { padding:0px 0px 0px 0px; margin:-1px 0px 0px -1px; font-family:palatino; font-size:10px; color:#554220; } div .template{ display:none; } div .jeditable_submit{ display:none; } div .jeditable_submit_text { display:none; } /* Popup Box Styles */ div .all_flesh_adh_popup_background { position:fixed; width:100%; height:100%; top:0px; left:0px; z-index:5; background-color:#000000; opacity:0.5; } div .all_flesh_adh_popup_container { position:fixed; z-index:5; width:0px; height:0px; top:50%; left:50%; background-color:#FFFFFF; overflow:visible; } div .all_flesh_adh_popup_box { position:fixed; z-index:10; width:500px; height:300px; margin-left:-250px; margin-top:-150px; background-color:#FFFFFF; border: 1px solid #303; border-radius: 8px; } div .all_flesh_adh_popup_section { position:relative; padding: 0; margin: 0px; display: inline-block; vertical-align: top; overflow-y:auto; overflow-x:hidden; height:275px; width:500px; } div .all_flesh_adh_highlight_enc{ text-decoration:none; color:#FFFFFF; } div .editable .all_flesh_adh_highlight_enc{ text-decoration:none; color:#FFFFFF; cursor:pointer; } /* List Styles */ div .ds_all_flesh_adh .all_flesh_adh_listAdd{ float:right; cursor:pointer; text-decoration:none; color:#FFFFFF; position:relative; right:5px; } div .all_flesh_adh_listAdd:hover{ color:#CCCC99; } div .ds_all_flesh_adh .all_flesh_adh_listDelete{ color:#999; cursor:pointer; letter-spacing:-1px; text-decoration:none; } div .ds_all_flesh_adh .all_flesh_adh_listDetails{ color:#999; cursor:pointer; letter-spacing:-1px; text-decoration:none; } div .all_flesh_adh_listDetails_viewer { color:#000000; cursor:text; text-decoration:none; } div .all_flesh_adh_listDetails_view { color:#000000; cursor:pointer; text-decoration:none; } div .all_flesh_adh_listDetails_view:hover { color:#cc0000; cursor:pointer; text-decoration:none; } div .editable .all_flesh_adh_listDetails_view { color:#000000; cursor:text; text-decoration:none; } div .all_flesh_adh_details_notifier { font-weight:bold; } div .ds_all_flesh_adh .all_flesh_adh_listDelete:hover{ color:#cc0000; } div .ds_all_flesh_adh .all_flesh_adh_listPromote{ cursor:pointer; letter-spacing:-1px; text-decoration:none; color:#554220; } div .ds_all_flesh_adh .all_flesh_adh_listPromote:hover{ color:#957438; } div .ds_all_flesh_adh .all_flesh_adh_listDemote{ cursor:pointer; text-decoration:none; color:#554220; } div .ds_all_flesh_adh .all_flesh_adh_listDemote:hover{ color:#957438; } div .ds_all_flesh_adh .all_flesh_adh_listSpecial{ cursor:pointer; text-decoration:none; color:#554220; } div .ds_all_flesh_adh .all_flesh_adh_listSpecial:hover{ color:#957438; } div .ds_all_flesh_adh .all_flesh_adh_listSubheader{ cursor:pointer; text-decoration:none; color:#554220; height:22px; } div .ds_all_flesh_adh .all_flesh_adh_listSubheader:hover{ color:#957438; } div .all_flesh_adh_template{ display:none; } table .all_flesh_adh_table_row{ min-height:24px; } /* Edit Field Styles */ div .ds_all_flesh_adh .all_flesh_adh_linefield{ position:absolute; display:inline-block; min-height:16px; border-width:1px; border-color:#000000; border-bottom-style:solid; text-align:left; font-size:13px; line-height:16px; } div .ds_all_flesh_adh .all_flesh_adh_field{ position:relative; display:inline-block; min-height:16px; text-align:center; font-size:13px; width:100%; color:inherit; line-height:16px; } div .ds_all_flesh_adh .all_flesh_adh_field_wide{ position:relative; display:inline-block; min-height:16px; text-align:left; font-size:13px; width:100%; color:inherit; } div .ds_all_flesh_adh .all_flesh_adh_interface_small{ position:relative; width:5%; } div .ds_all_flesh_adh .all_flesh_adh_linefield_2{ display:inline-block; margin:0px 0px 1px 0px; min-height:16px; border-width:1px; border-color:#000000; border-bottom-style:solid; left:5px; width:75%; position:relative; } div .ds_all_flesh_adh .editable .all_flesh_adh_linefield_2{ display:inline-block; margin:0px 0px 1px 0px; min-height:16px; border-width:1px; border-color:#000000; border-bottom-style:solid; width:280px; position:relative; } div .ds_all_flesh_adh .all_flesh_adh_field_points{ display:inline-block; position:relative; border-bottom: 1px solid #777; min-height:16px; vertical-align: middle; font-size:13px; text-align:center; left:10px; } div .ds_all_flesh_adh .editable .all_flesh_adh_field_points{ display:inline-block; position:relative; border-bottom: 1px solid #777; min-height:16px; vertical-align: middle; font-size:13px; text-align:center; left:5px; width:100%; } div .ds_all_flesh_adh .all_flesh_adh_boxfield{ position:absolute; display:inline-block; width:24px; min-height:15px; vertical-align:middle; padding:0px 0px 0px 0px; text-align:center; font-weight:normal; border-width:1px; border-style:solid; border-color:#AAAAAA; font-size:13px; } div .ds_all_flesh_adh .all_flesh_adh_label{ position:absolute; font-size:11px; color:#333333; font-variant:small-caps; white-space:nowrap; } div .ds_all_flesh_adh .all_flesh_adh_area{ font-family:palatino; font-size:13px; position:relative; display:inline-block; padding:2px 4px 0px 4px; } div .ds_all_flesh_adh .all_flesh_adh_bio{ font-family:palatino; font-size:13px; position:relative; display:inline-block; padding:2px 4px 0px 4px; } div .ds_all_flesh_adh .all_flesh_adh_border_line{ border-bottom:black solid thin; position:absolute; font-size:13px; } div .area_submit{ display:none; } div .area_submit_text { display:none; } div.editable .area:hover{ color:#957438; } /* Section Styles */ div .ds_all_flesh_adh .all_flesh_adh_section{ position:relative; padding: 0; margin: 5px 0 0 0; border: 1px solid #303; border-radius: 8px; display: inline-block; background-color:#FFFFFF; } div .ds_all_flesh_adh .all_flesh_adh_section_left{ position:relative; padding: 0; margin: 5px 0 0 0; border: 1px solid #303; border-top-left-radius: 8px; border-bottom-left-radius: 8px; display: inline-block; background-color:#FFFFFF; } div .ds_all_flesh_adh .all_flesh_adh_section_right{ position:relative; padding: 0; margin: 5px 0 0 0; border: 1px solid #303; border-top-right-radius: 8px; border-bottom-right-radius: 8px; display: inline-block; background-color:#FFFFFF; } div .ds_all_flesh_adh .all_flesh_adh_section_no_border{ position:relative; padding: 0; margin: 5px 0 0 0; display: inline-block; } div .ds_all_flesh_adh .all_flesh_adh_section_image{ position:absolute; padding: 0; border: 1px solid #303; border-radius: 8px; display: inline-block; vertical-align: top; background-color:#000; width:250px; height:250px; overflow:hidden; text-align:center; display: table-cell; vertical-align: middle; } div .ds_all_flesh_adh .all_flesh_adh_section_header{ width: 100%; font-weight:bold; background-color: #000; color: #FFF; text-align: center; margin: 0; padding: 2px 0; border-top-left-radius: 8px; border-top-right-radius: 8px; } div .ds_all_flesh_adh .all_flesh_adh_section_header_left{ width: 100%; font-weight:bold; background-color: #000; color: #FFF; text-align: center; margin: 0; padding: 2px 0; border-top-left-radius: 8px; } div .ds_all_flesh_adh .all_flesh_adh_section_header_right{ width: 100%; font-weight:bold; background-color: #000; color: #FFF; text-align: center; margin: 0; padding: 2px 0; border-top-right-radius: 8px; } div .ds_all_flesh_adh .all_flesh_adh_field_header{ display: inline-block; font-weight:bold; background-color: #777; color: #FFF; text-align: center; margin: 0; padding: 2px 0; border: 1px solid white; } /* Table Styles */ div .ds_all_flesh_adh .all_flesh_adh_table_basic_main{ text-align:center; width:100%; } div .all_flesh_adh_table_header.all_flesh_adh_highlight{ background-color:#003366 !important; } div .all_flesh_adh_table_box_field.all_flesh_adh_highlight{ font-weight:bold; border-color:#003366 !important; } div .ds_all_flesh_adh .all_flesh_adh_table_basic_cell{ text-align:center; } div .ds_all_flesh_adh .all_flesh_adh_table_special{ font-style:italic; background-color:#DDDDDD; } div .ds_all_flesh_adh .all_flesh_adh_table_field{ border-bottom-style:solid; border-color:#777; border-width:2px; /*border: 2px solid #777;*/ vertical-align: middle; padding: 0px 2px; } div .ds_all_flesh_adh .all_flesh_adh_table_box_field{ border: 2px solid #777; vertical-align: middle; background-color:#FFFFFF; } div .ds_all_flesh_adh .all_flesh_adh_table_points{ border: 2px solid #777; vertical-align: middle; } div .ds_all_flesh_adh .all_flesh_adh_table_box_points{ border: 2px solid #777; vertical-align: middle; background-color: #ffffcc; } div .ds_all_flesh_adh .all_flesh_adh_table_main{ text-align:center; width:340px; } div .ds_all_flesh_adh .all_flesh_adh_table_header_horizontal{ font-weight:bold; background-color: #777; color: #FFF; text-align: center; margin: 0; padding: 2px 0; border-top-left-radius: 8px; border-bottom-left-radius: 8px; } div .ds_all_flesh_adh .all_flesh_adh_table_subheader{ font-weight:bold; background-color: #000033; color: #FFF; text-align: center; margin: 0; padding: 2px 0; } div .ds_all_flesh_adh .all_flesh_adh_table_header{ font-weight:bold; background-color: #777; color: #FFF; text-align: center; margin: 0; padding: 2px 0; } div .ds_all_flesh_adh .all_flesh_adh_table_cell_regular{ border: thin solid black; }
JavaScript
// Global Storage all_flesh_adh_context = {}; var $ = jQuery; ////////////////////////////////////////// // Event Hooks :: Credit to ChainsawXIV // ////////////////////////////////////////// // Called immediately before the script fills the Span fields with data function all_flesh_adh_dataPreLoad(opts){ $.fn.editable.defaults['onblur'] = 'submit'; // Set the jeditable button aisleten.characters.jeditableSubmit = ''; aisleten.characters.jeditablePlaceholder = "Edit"; if(typeof dynamic_sheet_attrs == "undefined") dynamic_sheet_attrs = {}; //Set defaults to keep the editing fields from making the form gross var defaults = { "cp_spent":"0", "cp_unspent":"0", "str_points":"0", "int_points":"0", "dex_points":"0", "perception_points":"0", "constitution_points":"0", "willpower_points":"0", "life_points":"0", "endurance_points":"0", "speed_points":"0", "essence_points":"0", } dynamic_sheet_attrs = $.extend(defaults, dynamic_sheet_attrs); if (opts.isEditable){ //Replace fake-nbsp with real-nbsp for(var key in dynamic_sheet_attrs){ if (dynamic_sheet_attrs[key] === '&nbsp;') { // text was fake nbsp dynamic_sheet_attrs[key] = aisleten.characters.jeditablePlaceholder; } if (dynamic_sheet_attrs[key] === 'undefined') { // text was fake nbsp dynamic_sheet_attrs[key] = aisleten.characters.jeditablePlaceholder; } }; } else{ for(var key in dynamic_sheet_attrs){ if (dynamic_sheet_attrs[key] === '&nbsp;') { // text was fake nbsp dynamic_sheet_attrs[key] = " "; } if (dynamic_sheet_attrs[key] === 'undefined') { // text was fake nbsp dynamic_sheet_attrs[key] = " "; } }; } } function all_flesh_adh_dataChange(opts){ //calculate secondary attributes based on primary var lifePoints = 0; var endurancePoints = 0; var speedPoints = 0; var essencePoints = 0; var strPoints = 0; var constPoints = 0; var willPoints = 0; var dexPoints = 0; var intPoints = 0; var percPoints = 0; //get str $('[class*="str_points"]').each(function(index,element) { strPoints = Number($(element).text()); }); //get const $('[class*="constitution_points"]').each(function(index,element) { constPoints = Number($(element).text()); }); //get will $('[class*="willpower_points"]').each(function(index,element) { willPoints = Number($(element).text()); }); //get dex $('[class*="dex_points"]').each(function(index,element) { dexPoints = Number($(element).text()); }); //get int $('[class*="int_points"]').each(function(index,element) { intPoints = Number($(element).text()); }); //get perc $('[class*="perception_points"]').each(function(index,element) { percPoints = Number($(element).text()); }); //Calculate Life Points: ((Constitution + Strength) x 4) + 10 lifePoints = ((strPoints+constPoints)*4)+10; $('[class*="life_points"]').text(lifePoints); //Calculate Endurance Points: ((Constitution + Strength + Willpower) x 3) + 5 endurancePoints = ((constPoints+strPoints+willPoints)*3)+5; $('[class*="endurance_points"]').text(endurancePoints); //Calculate Speed: (Constitution + Dexterity) x 2 speedPoints = (constPoints+dexPoints)*2; $('[class*="speed_points"]').text(speedPoints); //Calculate Essence Pool: Add the character's Primary Attributes together essencePoints = constPoints+strPoints+dexPoints+intPoints+percPoints+willPoints; $('[class*="essence_points"]').text(essencePoints); } // Called immediately after the script fills the Span fields with data, before jeditable attachement function all_flesh_adh_dataPostLoad(opts){ var containerId = "#" + opts['containerId']; // Store global context for search by class name all_flesh_adh_context = document.getElementById(opts['containerId']); // Set additional options opts['imagePath'] = 'https://chainsawxiv.github.io/DST/sheets/chainsawxiv_exalted/images/'; opts['context'] = document.getElementById(opts['containerId']); opts['debugThreshold'] = -1; //Convert interface elements all_flesh_adh_convertLists(opts); all_flesh_adh_convertAreas(opts); if (!opts.isEditable) { //We're in read-only mode, so alter the sheet a little to make it more useful $('[class*="interface"]').hide(); if (($(containerId + " .dsf_traits").text().length <= 2)) { //No notes, so hide that section $(containerId + " .all_flesh_adh_traits_section").hide(); } if (($(containerId + " .dsf_allies").text().length <= 2)) { //No allies, so hide that section $(containerId + " .all_flesh_adh_allies_section").hide(); } if (($(containerId + " .dsf_desc").text().length <= 2)) { //No description, so hide that section $(containerId + " .all_flesh_adh_description_section").hide(); } if (($(containerId + " .dsf_bio").text().length <= 2)) { //No biography, so hide that section $(containerId + " .all_flesh_adh_bio_section").hide(); } if (($(containerId + " .dsf_possessions").text().length <= 2)) { //No possessions, so hide that section $(containerId + " .all_flesh_adh_possessions_section").hide(); } if (($(containerId + " .dsf_powers_one_00").length == 0)) { //No powers, so hide that section $(containerId + " .all_flesh_adh_powers_one_section").hide(); } if (($(containerId + " .dsf_powers_two_00").length == 0)) { //No powers, so hide that section $(containerId + " .all_flesh_adh_powers_two_section").hide(); } if (($(containerId + " .dsf_weapons_name_00").length == 0)) { //No weapons, so hide that section $(containerId + " .all_flesh_adh_weapons_section").hide(); } } all_flesh_adh_update_inputbox(); } // Called immediately before the sheet's data is saved function all_flesh_adh_dataPreSave(opts){ // Set additional options opts['context'] = document.getElementById(opts['containerId']); all_flesh_adh_unconvertAreas(opts); var containerId = "#" + opts['containerId']; //Save whitespaced areas in order to preserve table structures $(containerId + " .dsf").each(function(index,element) { var tester = $(element).text().replace(/^\s+/, '').replace(/\s+$/, ''); if($(element).filter('.all_flesh_adh_entry').length > 0){ if (tester === '') { // text was all whitespace $(element).text(" "); } if ($(element).text() === aisleten.characters.jeditablePlaceholder) { // text was default $(element).text(" "); } } else{ if (tester === '') { // text was all whitespace $(element).remove(); } if ($(element).text() === aisleten.characters.jeditablePlaceholder) { // text was default $(element).remove(); } } }); } //////////////////////////////////////////// // Rationalize Heights :: Credit to Langy // //////////////////////////////////////////// function all_flesh_adh_update_inputbox() { var multiple = 24; $(all_flesh_adh_context).find('table').filter('[class*="table_row"]').each(function(){ if($(this).innerHeight() > 20){ $(this).removeAttr('height'); $(this).css({height: "" });; } }); $(all_flesh_adh_context).find('table').filter('[class*="table_row"]').each(function(){ if($(this).innerHeight() > 20){ if($(this).innerHeight()%multiple >= 1){ $(this).height(parseInt($(this).height())+(multiple-$(this).innerHeight()%multiple)); } } }); } ///////////////////////////////////////////////////// // Text Area Edit Control :: Credit to ChainsawXIV // ///////////////////////////////////////////////////// // Core Textarea Class function all_flesh_adh_area(oElement,opts){ // Store options 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 = all_flesh_adh_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=all_flesh_adh_textarea "' + sClasses + '" style="width:' + iWidth + 'px;height:' + iHeight + 'px;">' + sText + '</textarea>'; // Set the user's focus to the textarea and set it to save on loss-of-focus var focusRef = function(){$('.all_flesh_adh_textarea').focus();}; var submitRef = function(){$('.all_flesh_adh_textarea').parent().submit();}; var unfocusRef = function(){$('.all_flesh_adh_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 all_flesh_adh_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 = all_flesh_adh_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 all_flesh_adh_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 == aisleten.characters.jeditablePlaceholder) aSpans[i].innerHTML = ''; } } } ////////////////////////////////////////////////////////////////////////////////// // List Interface Control :: Credit to ChainsawXIV / Massively altered by Langy // ////////////////////////////////////////////////////////////////////////////////// // Applies a bunch of list functionality to the specified element function all_flesh_adh_list(oElement,opts){ // Store options oElement.setAttribute('optsContainerId',opts['containerId']); oElement.setAttribute('optsIsEditable',opts['isEditable']); oElement.setAttribute('optsDebugThreshold',opts['debugThreshold']); var slug = $(oElement).parents('.dynamic_sheet').find('.dst_slug').text(); // Parses the number of columns the list has from its class name oElement.columns = function(){ // Get the column count from the element's class name var iColumns = this.className.match(/listColumns_[\d]+/)[0].substring(12); // Default if needed, and return if (isNaN(iColumns) || iColumns < 1){ this.error(1,"Invalid column count specification in List Element (Element Class: " + this.className + ")"); return 1; } else return iColumns; }; // Gets the list's list item template from the element based on class oElement.template = function(){ if ($(this).find(".template").length > 0) { return $(this).find(".template")[0]; } // Create a semi-persistent default row template if needed if (!this.defaultTemplate){ this.defaultTemplate = document.createElement('div'); this.defaultTemplate.innerHTML = '<span class="dsf"></span>'; } // If we got here, there wasn't a template in the list, default and return this.error(1,"No template row found in List Element (Element Class: " + this.className + ")"); return this.defaultTemplate; }; // Gets an array of the fields in the template row oElement.fields = function(){ // This is easy assuming all the fields are span tags, and all the spans are fields return $(this.template()).find(".dsf"); } // Gets an array of the rows in the list, excluding the template oElement.rows = function(){ // Initialize the list of rows var aRows = new Array(); // Getting the divs in the list the hard way to avoid nested divs making the cut var aElements = this.childNodes; var aDivs = new Array(); var iCounter = 0; for (var n = 0; n < aElements.length; n++){ if (aElements[n].tagName == 'DIV'){ aDivs[iCounter] = aElements[n]; iCounter++; } } // If we have multiple columns, then get the rows from inside each one if (this.columns() > 1){ var aTemp = new Array(); for (var x = 0; x < aDivs.length; x++){ if (!aDivs[x].className.match(/template/)){ aTemp = aDivs[x].getElementsByTagName('div'); for (var y = 0; y < aTemp.length; y++){ aRows[aRows.length] = aTemp[y]; } } } } // Otherwise just get them all from the main div else{ for (var i = 1; i < aDivs.length; i++){ aRows[aRows.length] = aDivs[i]; } } // Return the array of rows // This may have been disassociated by the splices, not sure yet return aRows; } // Generates a structure containing the list's data from the save object oElement.loadData = function(){ // Pattern match on the first field for simplicity's sake var iCounter = 0; var oData = {}; // Get the fields in order (doesn't allow missing fields) // Allow missing fields, bitch! // Add items-in-list storage var numRows = parseInt($(this).find("[class*='dsf_num_elements']").text()); if(isNaN(numRows)){ var sClassPattern = this.fields()[0].className.match(/dsf_[\w\d]+/)[0].substring(4); while (dynamic_sheet_attrs[sClassPattern + this.padDigits(iCounter,2)] != undefined){ oData[iCounter] = new Array(); for (var i = 0; i < this.fields().length; i++){ oData[iCounter][i] = dynamic_sheet_attrs[this.fields()[i].className.match(/dsf_[\w\d]+/)[0].substring(4) + this.padDigits(iCounter,2)]; } iCounter++; } } else{ var sClassPattern = this.fields()[0].className.match(/dsf_[\w\d]+/)[0].substring(4); for(iCounter = 0; iCounter < numRows; iCounter++){ oData[iCounter] = new Array(); for (var i = 0; i < this.fields().length; i++){ oData[iCounter][i] = dynamic_sheet_attrs[this.fields()[i].className.match(/dsf_[\w\d]+/)[0].substring(4) + this.padDigits(iCounter,2)]; if(oData[iCounter][i] == undefined){ if($(this).parents(".editable").length > 0){ oData[iCounter][i] = aisleten.characters.jeditablePlaceholder; } else{ oData[iCounter][i] = ' '; } } } } } // Write the length oData.length = iCounter; // Write the completed data structure to the object this.data = oData; } // Generates a structure contianing the list's data form the list itself oElement.parseData = function(){ // Go through each row of each field and populate the structure var oData = {}; oData.length = 0; for (var i = 0; i < this.rows().length; i++){ oData[i] = new Array(); $(this.rows()[i]).find(".dsf").each(function(index,element){ oData[i][index] = $(element).html(); oData.length = i + 1; }); } // Write the completed data structure to the object this.data = oData; } // Renders out the code for the list and puts it into the list element oElement.render = function(){ var sTemp = ''; var iCurrentColumn = 1; var iBreak = 0; var sClass = ''; var fieldNames = {}; // Reset the template if it was used for (var x = 0; x < this.fields().length; x++){ fieldNames[x] = this.fields()[x].className; } // Add the first column opener if multiple columns, and calc first col break if (this.columns() > 1){ sTemp = '\n<div class="column column_spacing">'; iBreak += Math.floor(this.data.length / this.columns()) - 1; if (iCurrentColumn <= (this.data.length % this.columns())) iBreak++; } // Accumulate the list code for each row for (var i = 0; i < this.data.length; i++){ // Populate and class the fields for (var n = 0; n < this.fields().length; n++){ this.fields()[n].className = this.fields()[n].className.replace(/dsf_[\w\d]+/,this.fields()[n].className.match(/dsf_[\w\d]+/)[0] + this.padDigits(i,2)); this.fields()[n].innerHTML = this.data[i][n]; } // Add the list item to the code sTemp += "<div class='list_element list_index_" + this.padDigits(i,2) + "'>" + this.template().innerHTML + "</div>" // Reset the template if it was used for (var x = 0; x < this.fields().length; x++){ sClass = this.fields()[x].className.match(/dsf_[\w\d]+/)[0]; this.fields()[x].className = fieldNames[x]; this.fields()[x].innerHTML = ''; } // Add column breaks where needed if (this.columns() > 1 && (i == iBreak)){ // Add the column opener for the last column if (iCurrentColumn == (this.columns() - 1)) sTemp += '</div>\n<div class="column">'; // Add the final column's column closer else if (i == (this.data.length - 1)) sTemp += '</div>'; // Add the column openers for other columns else sTemp += '</div>\n<div class="column column_spacing">'; // Update the column break and current column iCurrentColumn++; iBreak += Math.floor(this.data.length / this.columns()); if (iCurrentColumn <= (this.data.length % this.columns())) iBreak++; } } // Prepend the template to the list code sTemp = '<div class="template">' + this.template().innerHTML + '</div>' + sTemp; var listName = $(this)[0].className; listName = listName.substring(listName.indexOf("list_") + 5).split(/\s+/)[0]; // Prepend the element count sTemp = '<span class="dsf dsf_num_elements_' + listName + '" style="display:none">' + this.data.length + '</span>\n' + sTemp; // Purge jquery expandos in explorer sTemp = sTemp.replace(/jQuery[\d]+="[\d]+"/g,''); // Put the code in the list this.innerHTML = sTemp; // Activate the interface if in edit mode if (this.getAttribute('optsIsEditable') == 'true'){ $(this).find('.' + slug + '_listDelete').click(this.deleteItem); $(this).find('.' + slug + '_listPromote').click(this.promoteItem); $(this).find('.' + slug + '_listDemote').click(this.demoteItem); $(this).find('.' + slug + '_listSubheader').click(this.toggleSubheader); $(this).find('.' + slug + '_listSpecial').click(this.toggleSpecial); $(this).find('.' + slug + '_listDetails').click(this.toggleDetails); $(this).find('.' + slug + '_listDetailsNoPointer').click(this.toggleDetails); } // Hide them if not else{ $(this).find('.' + slug + '_listDetails_viewer').click(this.toggleDetails); $(this).find('.' + slug + '_listDetailsNoPointer').click(this.toggleDetails); } //Show skill subheaders $(this).find('[class*="subheader_on_"]').each(function(index,element) { if($(element).text() === "1"){ $(element).siblings(".all_flesh_adh_subheader").show(); } }); //Show special $(this).find('[class*="special_on_"]').each(function(index,element) { if($(element).text() === "1"){ $(element).siblings(".all_flesh_adh_table_row").addClass("all_flesh_adh_table_special"); } }); //Show details notifier $(this).find('[class="all_flesh_adh_details_parent"]').each(function(index,element){ if($(element).find('.all_flesh_adh_details').text().length >= 2){ if($(element).find('.all_flesh_adh_details').text() != aisleten.characters.jeditablePlaceholder){ $(element).find('.all_flesh_adh_details_notifier').text('†'); $(element).find('.all_flesh_adh_listDetails_viewer').addClass('all_flesh_adh_listDetails_view'); $(element).find('.all_flesh_adh_listDetails_viewer').removeClass('all_flesh_adh_listDetails_viewer'); } } }); }; // Adds a blank element to the list oElement.addItem = function(){ var elNum = $(this).find('.list_element').length; $(this).append("<div class='list_element list_index_" + this.padDigits(elNum,2) + "'>" + this.template().innerHTML + "</div>"); var newbie = $(this).find('.list_element')[elNum]; $(newbie).find('.' + slug + '_listDelete').click(this.deleteItem); $(newbie).find('.' + slug + '_listPromote').click(this.promoteItem); $(newbie).find('.' + slug + '_listDemote').click(this.demoteItem); $(newbie).find('.' + slug + '_listSubheader').click(this.toggleSubheader); $(newbie).find('.' + slug + '_listSpecial').click(this.toggleSpecial); $(newbie).find('.' + slug + '_listDetails').click(this.toggleDetails); $(newbie).find('.' + slug + '_listDetailsNoPointer').click(this.toggleDetails); for (var n = 0; n < $(newbie).find('.dsf').length; n++){ var name = this.fields()[n].className.replace(/dsf_[\w\d]+/,this.fields()[n].className.match(/dsf_[\w\d]+/)[0] + this.padDigits(elNum,2)); $(newbie).find('.dsf')[n].className = name; if(this.fields()[n].className.indexOf("readonly") == -1) { name = name.substring(name.indexOf("dsf_") + 4).split(/\s+/)[0]; aisleten.characters.bindField(name,$(this).attr('optsContainerId'),slug); } } $(this).find("[class*='dsf_num_elements']").text(elNum+1); this.length = elNum + 1; all_flesh_adh_convertAreas(opts); }; // Deletes the specified element from the list oElement.deleteItem = function(){ var lList = $(this).parents('[class*="listCol"]')[0]; var elNum = $(lList).find('.list_element').length; $(lList).find("[class*='dsf_num_elements']").text(elNum-1); lList.length = elNum - 1; $(this).parents('.list_element').remove(); lList.renumberRows(); }; // Shows or hides the row's subheader oElement.toggleSubheader = function(){ // Activate the list the item belongs to var oItem = this; var lList; while(oItem.parentNode){ if (oItem.parentNode.className.match(/list/)){ lList = oItem.parentNode; break; } else oItem = oItem.parentNode; } //The header showing/hiding element *must* be the first span in the row template! if($(oItem).find('.all_flesh_adh_subheader_toggle').text() === "1") { $(oItem).find('.all_flesh_adh_subheader_toggle').text(aisleten.characters.jeditablePlaceholder); $(oItem).find(".all_flesh_adh_subheader").hide(); } else { $(oItem).find('.all_flesh_adh_subheader_toggle').text("1"); $(oItem).find(".all_flesh_adh_subheader").show(); } }; // Shows or hides the row's special formating oElement.toggleSpecial = function(){ // Activate the list the item belongs to var oItem = this; var lList; while(oItem.parentNode){ if (oItem.parentNode.className.match(/list/)){ lList = oItem.parentNode; break; } else oItem = oItem.parentNode; } if($(oItem).find('.all_flesh_adh_special_toggle').text() === "1") { $(oItem).find('.all_flesh_adh_special_toggle').text(aisleten.characters.jeditablePlaceholder); //Hide special $(oItem).find(".all_flesh_adh_table_row").removeClass("all_flesh_adh_table_special"); } else { $(oItem).find('.all_flesh_adh_special_toggle').text("1"); //Show special $(oItem).find(".all_flesh_adh_table_row").addClass("all_flesh_adh_table_special"); } }; // Shows or hides the row's popup oElement.toggleDetails = function(){ // Activate the list the item belongs to var oItem = this; var lList; while(oItem.parentNode){ if (oItem.parentNode.className.match(/list/)){ lList = oItem.parentNode; break; } else oItem = oItem.parentNode; } if($(this).parents(".editable").length == 0){ if ($(this).closest('.all_flesh_adh_details_parent').find('.all_flesh_adh_details').text().length >= 2) { if ($(this).closest('.all_flesh_adh_details_parent').find('.all_flesh_adh_details').text() != aisleten.characters.jeditablePlaceholder){ if($(oItem).find('.all_flesh_adh_pop_toggle').text() === "1") { $(oItem).find('.all_flesh_adh_pop_toggle').text(aisleten.characters.jeditablePlaceholder); //Hide popup $(oItem).find('.all_flesh_adh_popup').hide() } else { $(oItem).find('.all_flesh_adh_pop_toggle').text("1"); //Show popup $(oItem).find('.all_flesh_adh_popup').show(); } } } } else{ if($(oItem).find('.all_flesh_adh_pop_toggle').text() === "1") { $(oItem).find('.all_flesh_adh_pop_toggle').text(aisleten.characters.jeditablePlaceholder); //Hide popup $(oItem).find('.all_flesh_adh_popup').hide() } else { $(oItem).find('.all_flesh_adh_pop_toggle').text("1"); //Show popup $(oItem).find('.all_flesh_adh_popup').show(); } } var element = $(this).parents('.list_element'); //Show details notifier if(element.find('.all_flesh_adh_details').text().length >= 2){ if($(element).find('.all_flesh_adh_details').text() != aisleten.characters.jeditablePlaceholder){ $(element).find('.all_flesh_adh_details_notifier').text('†'); $(element).find('.all_flesh_adh_listDetails_viewer').addClass('all_flesh_adh_listDetails_view'); $(element).find('.all_flesh_adh_listDetails_viewer').removeClass('all_flesh_adh_listDetails_viewer'); } } }; // Moves the specified element up the list one place oElement.promoteItem = function(){ var cur = $(this).parents('.list_element'); if($(this).parents('.list_element').prev('.list_element').length > 0){ var prev = $(this).parents('.list_element').prev('.list_element'); $(cur).after($(prev)); } $(this).parents('[class*="listCol"]')[0].renumberRows(); }; // Moves the specified element down the list one place oElement.demoteItem = function(){ var cur = $(this).parents('.list_element'); if($(this).parents('.list_element').next('.list_element').length > 0){ var next = $(this).parents('.list_element').next('.list_element'); $(next).after($(cur)); } $(this).parents('[class*="listCol"]')[0].renumberRows(); }; // Moves the specified element down the list one place oElement.renumberRows = function(){ var lList = $(this).find(".list_element"); var listFields; var name; var numDigits = 2; for (var i = 0; i < lList.length; i++){ listFields = $(lList[i]).find(".dsf"); name = this.fields()[0].className; name = name.substring(name.indexOf("dsf_")).split(/\s+/)[0]; index = listFields[0].className.substring(listFields[0].className.indexOf("dsf_")).split(/\s+/)[0].substring(name.length); for (var j = 0; j < listFields.length; j++){ listFields[j].className = listFields[j].className.replace(index,this.padDigits(i,2)); lList[i].className = lList[i].className.replace(index,this.padDigits(i,2)); } } }; // Error handling function - alerts on errors if bug reporting is on oElement.error = function(iImportance,sText){ if (this.getAttribute('optsDebugThreshold')) var iThreshold = this.getAttribute('optsDebugThreshold'); else iThreshold = 0; if (iImportance < iThreshold){ alert(sText); } } // Converts a number to a string with prepended zeros to the specified character length oElement.padDigits = function(iNumber,iDigits){ var sNumber = iNumber.toString(); var sTemp = ''; if (iDigits > sNumber.length){ for (var i = 0; i < (iDigits - sNumber.length); i++){ sTemp += '0'; } } return sTemp + sNumber; } // On Update event function, typically overridden oElement.onUpdate = function(){ } // Return the original element now that it's fully equipped return oElement; } // Converts all properly classed divs in the context to lists function all_flesh_adh_convertLists(opts){ // Find all the divs on the page with "list" in their class name if (opts['context']) var aDivs = opts['context'].getElementsByTagName('div'); else var aDivs = document.getElementsByTagName('div'); var lTemp = {}; for (var i = 0; i < aDivs.length; i++){ if (aDivs[i].className.match(/list/)){ if (!aDivs[i].className.match(/list_element/)){ // Convert each element to a full featured list object lTemp = all_flesh_adh_list(aDivs[i],opts); // Populate the list from the data variable lTemp.loadData(); lTemp.render(); // Assign the onUpdate function lTemp.onUpdate = function(){ all_flesh_adh_convertAreas(opts); aisleten.characters.bindAllFields(opts['slug'],opts['containerId']); } } } } } //////////////////////////////////////////////////////// // General Utility Functions :: Credit to ChainsawXIV // //////////////////////////////////////////////////////// // Gets an array of elements with a particular class from the context function all_flesh_adh_getElementsByClassName(sClassName,sElementType){ // Provide default element type if (!sElementType) sElementType = 'div'; var aList = new Array(); var aDivs = all_flesh_adh_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