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
Blog
GURPS 4e
Author:
Langy
Slug:
lmdgurps
System:
GURPS
DST Source Code
HTML Template
<div class="lmdgurps_wrapper"> <div class="lmdgurps_section section_basic"> <div class="lmdgurps_section_header">BASIC INFORMATION</div> <span class="lmdgurps_linefield dsf dsf_name"></span> <span class="lmdgurps_linefield dsf dsf_role"></span> <span class="lmdgurps_label label_name">Character Name</span> <span class="lmdgurps_label label_role">Role/Occupation</span> <span class="lmdgurps_linefield dsf dsf_player"></span> <span class="lmdgurps_linefield dsf dsf_campaign"></span> <span class="lmdgurps_label label_player">Player Name</span> <span class="lmdgurps_label label_campaign">Campaign</span> <span class="lmdgurps_linefield dsf dsf_affiliation"></span> <span class="lmdgurps_linefield dsf dsf_race"></span> <span class="lmdgurps_linefield dsf dsf_gender"></span> <span class="lmdgurps_linefield dsf dsf_age"></span> <span class="lmdgurps_label label_affiliation">Affiliation</span> <span class="lmdgurps_label label_race">Race/Ethnicity</span> <span class="lmdgurps_label label_gender">Gender</span> <span class="lmdgurps_label label_age">Age</span> </div> <div class="lmdgurps_section_no_border section_avatar"> <div class="lmdgurps_section_image"><span class="dsf dsf_avatar_image"></span></div> </div> <div class="lmdgurps_section section_statistics"> <div class="lmdgurps_section_header">STATISTICS BLOCK</div> <table class="lmdgurps_table_basic_main"> <tbody> <tr> <th class="lmdgurps_table_header_horizontal col_1">ST</th> <td class="lmdgurps_table_box_field col_2"><span class="lmdgurps_field lmdgurps_at dsf dsf_st"></span></td> <td class="lmdgurps_table_box_points col_3"><span class="lmdgurps_field lmdgurps_atpoints dsf dsf_st_points"></span></td> <th class="lmdgurps_table_header_horizontal col_4">HP</th> <td class="lmdgurps_table_box_field col_5"><span class="lmdgurps_field lmdgurps_sc dsf dsf_hp"></span></td> <td class="lmdgurps_table_box_points col_6"><span class="lmdgurps_field lmdgurps_scpoints dsf dsf_hp_points"></span></td> <th class="lmdgurps_table_header_horizontal col_7">Speed</th> <td class="lmdgurps_table_box_field col_8"><span class="lmdgurps_field lmdgurps_sc dsf dsf_speed"></span></td> <td class="lmdgurps_table_box_points col_9"><span class="lmdgurps_field lmdgurps_scpoints dsf dsf_speed_points"></span></td> </tr> <tr> <th class="lmdgurps_table_header_horizontal">DX</th> <td class="lmdgurps_table_box_field"><span class="lmdgurps_field lmdgurps_at dsf dsf_dx"></span></td> <td class="lmdgurps_table_box_points"><span class="lmdgurps_field lmdgurps_atpoints dsf dsf_dx_points"></span></td> <th class="lmdgurps_table_header_horizontal">Per</th> <td class="lmdgurps_table_box_field"><span class="lmdgurps_field lmdgurps_sc dsf dsf_per"></span></td> <td class="lmdgurps_table_box_points"><span class="lmdgurps_field lmdgurps_scpoints dsf dsf_per_points"></span></td> <th class="lmdgurps_table_header_horizontal">Move</th> <td class="lmdgurps_table_box_field"><span class="lmdgurps_field lmdgurps_sc dsf dsf_move"></span></td> <td class="lmdgurps_table_box_points"><span class="lmdgurps_field lmdgurps_scpoints dsf dsf_move_points"></span></td> </tr> <tr> <th class="lmdgurps_table_header_horizontal">IQ</th> <td class="lmdgurps_table_box_field"><span class="lmdgurps_field lmdgurps_at dsf dsf_iq"></span></td> <td class="lmdgurps_table_box_points"><span class="lmdgurps_field lmdgurps_atpoints dsf dsf_iq_points"></span></td> <th class="lmdgurps_table_header_horizontal">Will</th> <td class="lmdgurps_table_box_field"><span class="lmdgurps_field lmdgurps_sc dsf dsf_will"></span></td> <td class="lmdgurps_table_box_points"><span class="lmdgurps_field lmdgurps_scpoints dsf dsf_will_points"></span></td> <th class="lmdgurps_table_header_horizontal lmdgurps_secondary_move_one"><span class="lmdgurps_field dsf dsf_secondary_move_type"></span></th> <td class="lmdgurps_table_box_field lmdgurps_secondary_move_two"><span class="lmdgurps_field lmdgurps_sc dsf dsf_secondary_move"></span></td> <td class="lmdgurps_table_box_points lmdgurps_secondary_move_three"><span class="lmdgurps_field lmdgurps_scpoints dsf dsf_secondary_move_points"></span></td> </tr> <tr> <th class="lmdgurps_table_header_horizontal">HT</th> <td class="lmdgurps_table_box_field"><span class="lmdgurps_field lmdgurps_at dsf dsf_ht"></span></td> <td class="lmdgurps_table_box_points"><span class="lmdgurps_field lmdgurps_atpoints dsf dsf_ht_points"></span></td> <th class="lmdgurps_table_header_horizontal">FP</th> <td class="lmdgurps_table_box_field"><span class="lmdgurps_field dsf dsf_fp"></span></td> <td class="lmdgurps_table_box_points"><span class="lmdgurps_field lmdgurps_sc lmdgurps_scpoints dsf dsf_fp_points"></span></td> <th class="lmdgurps_table_header_horizontal">SM</th> <td class="lmdgurps_table_box_field" colspan="2"><span class="lmdgurps_field lmdgurps_sm dsf dsf_sm"></span></td> </tr> </tbody> </table> </div> <div class="lmdgurps_section_no_border section_points"> <table class="lmdgurps_table_basic_main"> <tbody> <tr> <th class="lmdgurps_table_header_horizontal label_total">Total</th> <td class="lmdgurps_table_box_field"><span class="lmdgurps_field readonly dsf dsf_points_total"></span></td> <th class="lmdgurps_table_header_horizontal label_attributes">Attributes</th> <td class="lmdgurps_table_box_points"><span class="lmdgurps_field readonly dsf dsf_points_attributes"></span></td> <th class="lmdgurps_table_header_horizontal label_secchar">Secondary Characteristics</th> <td class="lmdgurps_table_box_points"><span class="lmdgurps_field readonly dsf dsf_points_secondary_characteristics"></span></td> <th class="lmdgurps_table_header_horizontal label_ads">Advantages</th> <td class="lmdgurps_table_box_points"><span class="lmdgurps_field readonly dsf dsf_points_advantages"></span></td> <th class="lmdgurps_table_header_horizontal label_skills">Skills</th> <td class="lmdgurps_table_box_points"><span class="lmdgurps_field readonly dsf dsf_points_skills"></span></td> <th class="lmdgurps_table_header_horizontal label_disads">Disadvantages</th> <td class="lmdgurps_table_box_points"><span class="lmdgurps_field readonly dsf dsf_points_disadvantages"></span></td> <th class="lmdgurps_table_header_horizontal label_unspent">Unspent</th> <td class="lmdgurps_table_box_field"><span class="lmdgurps_field dsf dsf_points_unspent"></span></td> </tr> </tbody> </table> </div> <div class="lmdgurps_section section_combat"> <div class="lmdgurps_section_header">COMBAT STATS</div> <span class="dsf dsf_encumbrance_level readonly" style="display:none"></span> <table class="lmdgurps_table_basic_main"> <tbody> <tr> <th class="lmdgurps_table_header_horizontal col_1">Dodge</th> <td class="lmdgurps_table_box_field col_2"><span class="lmdgurps_field dsf dsf_dodge"></span></td> <th class="lmdgurps_table_header_horizontal col_3">Thr</th> <td class="lmdgurps_table_box_field col_4"><span class="lmdgurps_field dsf dsf_thr"></span></td> <th class="lmdgurps_table_header_horizontal col_5">Enc. Level</th> <th class="lmdgurps_table_header lmdgurps_none col_6"><a class="lmdgurps_highlight_enc" onclick="lmdgurps_highlight('lmdgurps_none',0);">None-0</a></th> <th class="lmdgurps_table_header lmdgurps_light col_7"><a class="lmdgurps_highlight_enc" onclick="lmdgurps_highlight('lmdgurps_light',0);">Light-1</a></th> <th class="lmdgurps_table_header lmdgurps_medium col_8"><a class="lmdgurps_highlight_enc" onclick="lmdgurps_highlight('lmdgurps_medium',0);">Medium-2</a></th> <th class="lmdgurps_table_header lmdgurps_heavy col_9"><a class="lmdgurps_highlight_enc" onclick="lmdgurps_highlight('lmdgurps_heavy',0);">Heavy-3</a></th> <th class="lmdgurps_table_header lmdgurps_xheavy col_10"><a class="lmdgurps_highlight_enc" onclick="lmdgurps_highlight('lmdgurps_xheavy',0);">X-Heavy-4</a></th> </tr> <tr> <th class="lmdgurps_table_header_horizontal">Parry</th> <td class="lmdgurps_table_box_field"><span class="lmdgurps_field dsf dsf_parry"></span></td> <th class="lmdgurps_table_header_horizontal">Sw</th> <td class="lmdgurps_table_box_field"><span class="lmdgurps_field dsf dsf_sw"></span></td> <th class="lmdgurps_table_header_horizontal">Max Load</th> <td class="lmdgurps_table_box_field lmdgurps_none"><span class="lmdgurps_field dsf dsf_max_load_none"></span></td> <td class="lmdgurps_table_box_field lmdgurps_light"><span class="lmdgurps_field dsf dsf_max_load_light"></span></td> <td class="lmdgurps_table_box_field lmdgurps_medium"><span class="lmdgurps_field dsf dsf_max_load_medium"></span></td> <td class="lmdgurps_table_box_field lmdgurps_heavy"><span class="lmdgurps_field dsf dsf_max_load_heavy"></span></td> <td class="lmdgurps_table_box_field lmdgurps_xheavy"><span class="lmdgurps_field dsf dsf_max_load_extra_heavy"></span></td> </tr> <tr> <th class="lmdgurps_table_header_horizontal">Block</th> <td class="lmdgurps_table_box_field"><span class="lmdgurps_field dsf dsf_block"></span></td> <th class="lmdgurps_table_header_horizontal">BL</th> <td class="lmdgurps_table_box_field"><span class="lmdgurps_field dsf dsf_basic_lift"></span></td> <th class="lmdgurps_table_header_horizontal">Move</th> <td class="lmdgurps_table_box_field lmdgurps_none"><span class="lmdgurps_field dsf dsf_move_none"></span></td> <td class="lmdgurps_table_box_field lmdgurps_light"><span class="lmdgurps_field dsf dsf_move_light"></span></td> <td class="lmdgurps_table_box_field lmdgurps_medium"><span class="lmdgurps_field dsf dsf_move_medium"></span></td> <td class="lmdgurps_table_box_field lmdgurps_heavy"><span class="lmdgurps_field dsf dsf_move_heavy"></span></td> <td class="lmdgurps_table_box_field lmdgurps_xheavy"><span class="lmdgurps_field dsf dsf_move_extra_heavy"></span></td> </tr> <tr> <th class="lmdgurps_table_header_horizontal">DR</th> <td colspan="3" class="lmdgurps_table_box_field"><span class="lmdgurps_field dsf dsf_damage_resistance"></span></td> <th class="lmdgurps_table_header_horizontal">Dodge</th> <td class="lmdgurps_table_box_field lmdgurps_none"><span class="lmdgurps_field dsf dsf_dodge_none"></span></td> <td class="lmdgurps_table_box_field lmdgurps_light"><span class="lmdgurps_field dsf dsf_dodge_light"></span></td> <td class="lmdgurps_table_box_field lmdgurps_medium"><span class="lmdgurps_field dsf dsf_dodge_medium"></span></td> <td class="lmdgurps_table_box_field lmdgurps_heavy"><span class="lmdgurps_field dsf dsf_dodge_heavy"></span></td> <td class="lmdgurps_table_box_field lmdgurps_xheavy"><span class="lmdgurps_field dsf dsf_dodge_extra_heavy"></span></td> </tr> </tbody> </table> </div> <div class="lmdgurps_section lmdgurps_social_section"> <div class="lmdgurps_section_header">SOCIAL BACKGROUND</div> <table class="lmdgurps_table_basic_main"> <tbody> <tr> <th class="lmdgurps_table_header_horizontal col_1">Appearance</th> <td class="lmdgurps_table_box_field col_2"><span class="lmdgurps_field dsf dsf_appearance"></span></td> <td class="lmdgurps_table_box_points col_3"><span class="lmdgurps_field lmdgurps_traitpoints dsf dsf_appearance_points"></span></td> <th class="lmdgurps_table_header_horizontal col_4">Wealth</th> <td class="lmdgurps_table_box_field col_5"><span class="lmdgurps_field dsf dsf_wealth"></span></td> <td class="lmdgurps_table_box_points col_6"><span class="lmdgurps_field lmdgurps_traitpoints dsf dsf_wealth_points"></span></td> <th class="lmdgurps_table_header_horizontal col_7">Status</th> <td class="lmdgurps_table_box_field col_8"><span class="lmdgurps_field dsf dsf_status"></span></td> <td class="lmdgurps_table_box_points col_9"><span class="lmdgurps_field lmdgurps_traitpoints dsf dsf_status_points"></span></td> <th class="lmdgurps_table_header_horizontal col_11">TL</th> <td class="lmdgurps_table_box_field col_12"><span class="lmdgurps_field dsf dsf_tech_level"></span></td> <td class="lmdgurps_table_box_points col_13"><span class="lmdgurps_field lmdgurps_traitpoints dsf dsf_tech_level_points"></span></td> </tr> </tbody> </table> <div style="height:5px"></div> </div> <div class="lmdgurps_section_left lmdgurps_social_traits_section"> <div class="lmdgurps_section_header_left">SOCIAL TRAITS<a class="lmdgurps_listAdd lmdgurps_interface" title="Add Trait" onclick="lmdgurps_getElementsByClassName('list_social_traits')[0].addItem();">+</a></div> <table class="lmdgurps_table_basic_main"> <tbody> <tr> <td class="lmdgurps_table_header">Trait</td> <td class="lmdgurps_table_header" style="width:36px">CP</td> </tr> </tbody> </table> <div class="listColumns_1 list_social_traits"> <span class="dsf dsf_num_elements_social_traits" style="display:none"></span> <div class="template"> <div class="lmdgurps_details_parent"> <div class="lmdgurps_invisible"> <span class="dsf dsf_social_trait_popup_on_ lmdgurps_pop_toggle" style="display:none"></span> <span class="lmdgurps_subheader_toggle dsf dsf_social_trait_subheader_on_" style="display:none"></span> <span class="lmdgurps_special_toggle dsf dsf_social_trait_special_on_" style="display:none"></span> </div> <div class="lmdgurps_popup" style="display:none"> <a class="lmdgurps_listDetailsNoPointer"><object><object><div class="lmdgurps_popup_background"></div></object></object></a> <div class="lmdgurps_popup_container"> <div class="lmdgurps_popup_box"> <div class="lmdgurps_section_header">DETAILS</div> <div class="lmdgurps_popup_section"> <table class="lmdgurps_table_basic_main lmdgurps_ed_only_table"> <tbody> <tr> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSubheader">Toggle Header</a></td> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSpecial">Toggle Formatting</a></td> </tr> </tbody> </table> <span class="lmdgurps_area readonly lmdgurps_details dsf dsf_social_trait_desc_"></span> </div> </div> </div> </div> <table class="lmdgurps_table_basic_main lmdgurps_subheader" style="display:none"> <tbody> <tr> <td class="lmdgurps_table_subheader"><span class="lmdgurps_field dsf dsf_social_trait_subheader_"></span></td> </tr> </tbody> </table> <table class="lmdgurps_table_basic_main lmdgurps_table_row"> <tbody> <tr> <td class="interface" style="text-align:right;width:42px"> <a class="lmdgurps_listDelete interface" title="Delete this item">✘</a> <a class="lmdgurps_listPromote interface" title="Move this item up">↑</a> <a class="lmdgurps_listDemote interface" title="Move this item down">↓</a> <a class="lmdgurps_listDetails interface" title="Edit Details">D</a> </td> <td class="lmdgurps_table_field" style="text-align:left;"> <a class="lmdgurps_listDetails_viewer"><span class="lmdgurps_field_wide lmdgurps_entry dsf dsf_social_trait_"></span></a> </td> <td class="lmdgurps_details_notifier" style="width:5px"></td> <td class="lmdgurps_table_points" style="width:32px"> <span class="lmdgurps_field lmdgurps_traitpoints dsf dsf_social_trait_points_"></span> </td> </tr> </tbody> </table> </div> </div> </div> <div style="height:5px"></div> </div> <div class="lmdgurps_section_right lmdgurps_languages_section"> <div class="lmdgurps_section_header_right">LANGUAGES<a class="lmdgurps_listAdd lmdgurps_interface" title="Add Language" onclick="lmdgurps_getElementsByClassName('list_languages')[0].addItem();">+</a></div> <table class="lmdgurps_table_basic_main"> <tbody> <tr> <td class="lmdgurps_table_header">Language</td> <td class="lmdgurps_table_header" style="width:60px">Spoken</td> <td class="lmdgurps_table_header" style="width:60px">Written</td> <td class="lmdgurps_table_header" style="width:36px">CP</td> </tr> </tbody> </table> <div class="listColumns_1 list_languages"> <span class="dsf dsf_num_elements_languages" style="display:none"></span> <div class="template"> <div class="lmdgurps_details_parent"> <span class="dsf dsf_language_popup_on_ lmdgurps_pop_toggle" style="display:none"></span> <div class="lmdgurps_popup" style="display:none"> <a class="lmdgurps_listDetailsNoPointer"><object><div class="lmdgurps_popup_background"></div></object></a> <div class="lmdgurps_popup_container"> <div class="lmdgurps_popup_box"> <div class="lmdgurps_section_header">DETAILS</div> <div class="lmdgurps_popup_section"> <table class="lmdgurps_table_basic_main lmdgurps_ed_only_table"> <tbody> <tr> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSubheader">Toggle Header</a></td> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSpecial">Toggle Formatting</a></td> </tr> </tbody> </table> <span class="lmdgurps_area readonly lmdgurps_details dsf dsf_language_desc_"></span> </div> </div> </div> </div> <span class="lmdgurps_subheader_toggle dsf dsf_language_subheader_on_" style="display:none"></span> <span class="lmdgurps_special_toggle dsf dsf_language_special_on_" style="display:none"></span> <table class="lmdgurps_table_basic_main lmdgurps_subheader" style="display:none"> <tbody> <tr> <td class="lmdgurps_table_subheader"><span class="lmdgurps_field dsf dsf_language_subheader_"></span></td> </tr> </tbody> </table> <table class="lmdgurps_table_basic_main lmdgurps_table_row"> <tbody> <tr> <td class="interface" style="text-align:right;width:42px"> <a class="lmdgurps_listDelete interface" title="Delete this item">✘</a> <a class="lmdgurps_listPromote interface" title="Move this item up">↑</a> <a class="lmdgurps_listDemote interface" title="Move this item down">↓</a> <a class="lmdgurps_listDetails interface" title="Edit Details">D</a> </td> <td class="lmdgurps_table_field" style="text-align:left;"> <a class="lmdgurps_listDetails_viewer"><span class="lmdgurps_field_wide lmdgurps_entry dsf dsf_language_"></span></a> </td> <td class="lmdgurps_details_notifier" style="width:5px"></td> <td class="lmdgurps_table_field" style="width:56px"> <span class="lmdgurps_field dsf dsf_language_written_"></span> </td> <td class="lmdgurps_table_field" style="width:56px"> <span class="lmdgurps_field dsf dsf_language_spoken_"></span> </td> <td class="lmdgurps_table_points" style="width:32px"> <span class="lmdgurps_field lmdgurps_traitpoints dsf dsf_language_points_"></span> </td> </tr> </tbody> </table> </div> </div> </div> <div style="height:5px"></div> </div> <div class="lmdgurps_section_left lmdgurps_advantage_section_one"> <div class="lmdgurps_section_header_left">ADVANTAGES<a class="lmdgurps_listAdd lmdgurps_interface" title="Add Advantage" onclick="lmdgurps_getElementsByClassName('list_advantages_one')[0].addItem();">+</a></div> <table class="lmdgurps_table_basic_main"> <tbody> <tr> <td class="lmdgurps_table_header">Advantage</td> <td class="lmdgurps_table_header" style="width:36px">CP</td> </tr> </tbody> </table> <div class="listColumns_1 list_advantages_one"> <span class="dsf dsf_num_elements_advantages_one" style="display:none"></span> <div class="template"> <div class="lmdgurps_details_parent"> <span class="dsf dsf_advantage_one_popup_on_ lmdgurps_pop_toggle" style="display:none"></span> <div class="lmdgurps_popup" style="display:none"> <a class="lmdgurps_listDetailsNoPointer"><object><div class="lmdgurps_popup_background"></div></object></a> <div class="lmdgurps_popup_container"> <div class="lmdgurps_popup_box"> <div class="lmdgurps_section_header">DETAILS</div> <div class="lmdgurps_popup_section"> <table class="lmdgurps_table_basic_main lmdgurps_ed_only_table"> <tbody> <tr> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSubheader">Toggle Header</a></td> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSpecial">Toggle Formatting</a></td> </tr> </tbody> </table> <span class="lmdgurps_area readonly lmdgurps_details dsf dsf_advantage_one_desc_"></span> </div> </div> </div> </div> <span class="lmdgurps_subheader_toggle dsf dsf_advantage_one_subheader_on_" style="display:none"></span> <span class="lmdgurps_special_toggle dsf dsf_advantage_one_special_on_" style="display:none"></span> <table class="lmdgurps_table_basic_main lmdgurps_subheader" style="display:none"> <tbody> <tr> <td class="lmdgurps_table_subheader"><span class="lmdgurps_field dsf dsf_advantage_one_subheader_"></span></td> </tr> </tbody> </table> <table class="lmdgurps_table_basic_main lmdgurps_table_row"> <tbody> <tr> <td class="interface" style="text-align:right;width:42px"> <a class="lmdgurps_listDelete interface" title="Delete this item">✘</a> <a class="lmdgurps_listPromote interface" title="Move this item up">↑</a> <a class="lmdgurps_listDemote interface" title="Move this item down">↓</a> <a class="lmdgurps_listDetails interface" title="Edit Details">D</a> </td> <td class="lmdgurps_table_field" style="text-align:left;"> <a class="lmdgurps_listDetails_viewer"><span class="lmdgurps_field_wide lmdgurps_entry dsf dsf_advantage_one_"></span></a> </td> <td class="lmdgurps_details_notifier" style="width:5px"></td> <td class="lmdgurps_table_points" style="width:32px"> <span class="lmdgurps_field lmdgurps_adpoints dsf dsf_advantage_one_points_"></span> </td> </tr> </tbody> </table> </div> </div> </div> <div style="height:5px"></div> </div> <div class="lmdgurps_section_right lmdgurps_advantage_section_two"> <div class="lmdgurps_section_header_right">ADVANTAGES<a class="lmdgurps_listAdd lmdgurps_interface" title="Add Advantage" onclick="lmdgurps_getElementsByClassName('list_advantages_two')[0].addItem();">+</a></div> <table class="lmdgurps_table_basic_main"> <tbody> <tr> <td class="lmdgurps_table_header">Advantage</td> <td class="lmdgurps_table_header" style="width:36px">CP</td> </tr> </tbody> </table> <div class="listColumns_1 list_advantages_two"> <span class="dsf dsf_num_elements_advantages_two" style="display:none"></span> <div class="template"> <div class="lmdgurps_details_parent"> <span class="dsf dsf_advantage_two_popup_on_ lmdgurps_pop_toggle" style="display:none"></span> <div class="lmdgurps_popup" style="display:none"> <a class="lmdgurps_listDetailsNoPointer"><object><div class="lmdgurps_popup_background"></div></object></a> <div class="lmdgurps_popup_container"> <div class="lmdgurps_popup_box"> <div class="lmdgurps_section_header">DETAILS</div> <div class="lmdgurps_popup_section"> <table class="lmdgurps_table_basic_main lmdgurps_ed_only_table"> <tbody> <tr> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSubheader">Toggle Header</a></td> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSpecial">Toggle Formatting</a></td> </tr> </tbody> </table> <span class="lmdgurps_area readonly lmdgurps_details dsf dsf_advantage_two_desc_"></span> </div> </div> </div> </div> <span class="lmdgurps_subheader_toggle dsf dsf_advantage_two_subheader_on_" style="display:none"></span> <span class="lmdgurps_special_toggle dsf dsf_advantage_two_special_on_" style="display:none"></span> <table class="lmdgurps_table_basic_main lmdgurps_subheader" style="display:none"> <tbody> <tr> <td class="lmdgurps_table_subheader"><span class="lmdgurps_field dsf dsf_advantage_two_subheader_"></span></td> </tr> </tbody> </table> <table class="lmdgurps_table_basic_main lmdgurps_table_row"> <tbody> <tr> <td class="interface" style="text-align:right;width:42px"> <a class="lmdgurps_listDelete interface" title="Delete this item">✘</a> <a class="lmdgurps_listPromote interface" title="Move this item up">↑</a> <a class="lmdgurps_listDemote interface" title="Move this item down">↓</a> <a class="lmdgurps_listDetails interface" title="Edit Details">D</a> </td> <td class="lmdgurps_table_field" style="text-align:left;"> <a class="lmdgurps_listDetails_viewer"><span class="lmdgurps_field_wide lmdgurps_entry dsf dsf_advantage_two_"></span></a> </td> <td class="lmdgurps_details_notifier" style="width:5px"></td> <td class="lmdgurps_table_points" style="width:32px"> <span class="lmdgurps_field lmdgurps_adpoints dsf dsf_advantage_two_points_"></span> </td> </tr> </tbody> </table> </div> </div> </div> <div style="height:5px"></div> </div> <div class="lmdgurps_section_left lmdgurps_disadvantage_section_one"> <div class="lmdgurps_section_header_left">DISADVANTAGES<a class="lmdgurps_listAdd lmdgurps_interface" title="Add Disadvantage" onclick="lmdgurps_getElementsByClassName('list_disadvantages_one')[0].addItem();">+</a></div> <table class="lmdgurps_table_basic_main"> <tbody> <tr> <td class="lmdgurps_table_header">Disadvantage</td> <td class="lmdgurps_table_header" style="width:36px">CP</td> </tr> </tbody> </table> <div class="listColumns_1 list_disadvantages_one"> <span class="dsf dsf_num_elements_disadvantages_one" style="display:none"></span> <div class="template"> <div class="lmdgurps_details_parent"> <span class="dsf dsf_disadvantage_one_popup_on_ lmdgurps_pop_toggle" style="display:none"></span> <div class="lmdgurps_popup" style="display:none"> <a class="lmdgurps_listDetailsNoPointer"><object><div class="lmdgurps_popup_background"></div></object></a> <div class="lmdgurps_popup_container"> <div class="lmdgurps_popup_box"> <div class="lmdgurps_section_header">DETAILS</div> <div class="lmdgurps_popup_section"> <table class="lmdgurps_table_basic_main lmdgurps_ed_only_table"> <tbody> <tr> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSubheader">Toggle Header</a></td> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSpecial">Toggle Formatting</a></td> </tr> </tbody> </table> <span class="lmdgurps_area readonly lmdgurps_details dsf dsf_disadvantage_one_desc_"></span> </div> </div> </div> </div> <span class="lmdgurps_subheader_toggle dsf dsf_disadvantage_one_subheader_on_" style="display:none"></span> <span class="lmdgurps_special_toggle dsf dsf_disadvantage_one_special_on_" style="display:none"></span> <table class="lmdgurps_table_basic_main lmdgurps_subheader" style="display:none"> <tbody> <tr> <td class="lmdgurps_table_subheader"><span class="lmdgurps_field dsf dsf_disadvantage_one_subheader_"></span></td> </tr> </tbody> </table> <table class="lmdgurps_table_basic_main lmdgurps_table_row"> <tbody> <tr> <td class="interface" style="text-align:right;width:42px"> <a class="lmdgurps_listDelete interface" title="Delete this item">✘</a> <a class="lmdgurps_listPromote interface" title="Move this item up">↑</a> <a class="lmdgurps_listDemote interface" title="Move this item down">↓</a> <a class="lmdgurps_listDetails interface" title="Edit Details">D</a> </td> <td class="lmdgurps_table_field" style="text-align:left;"> <a class="lmdgurps_listDetails_viewer"><span class="lmdgurps_field_wide lmdgurps_entry dsf dsf_disadvantage_one_"></span></a> </td> <td class="lmdgurps_details_notifier" style="width:5px"></td> <td class="lmdgurps_table_points" style="width:32px"> <span class="lmdgurps_field lmdgurps_disadpoints dsf dsf_disadvantage_one_points_"></span> </td> </tr> </tbody> </table> </div> </div> </div> <div style="height:5px"></div> </div> <div class="lmdgurps_section_right lmdgurps_disadvantage_section_two"> <div class="lmdgurps_section_header_right">DISADVANTAGES<a class="lmdgurps_listAdd lmdgurps_interface" title="Add Disadvantage" onclick="lmdgurps_getElementsByClassName('list_disadvantages_two')[0].addItem();">+</a></div> <table class="lmdgurps_table_basic_main"> <tbody> <tr> <td class="lmdgurps_table_header">Disadvantage</td> <td class="lmdgurps_table_header" style="width:36px">CP</td> </tr> </tbody> </table> <div class="listColumns_1 list_disadvantages_two"> <span class="dsf dsf_num_elements_disadvantages_two" style="display:none"></span> <div class="template"> <div class="lmdgurps_details_parent"> <span class="dsf dsf_disadvantage_two_popup_on_ lmdgurps_pop_toggle" style="display:none"></span> <div class="lmdgurps_popup" style="display:none"> <a class="lmdgurps_listDetailsNoPointer"><object><div class="lmdgurps_popup_background"></div></object></a> <div class="lmdgurps_popup_container"> <div class="lmdgurps_popup_box"> <div class="lmdgurps_section_header">DETAILS</div> <div class="lmdgurps_popup_section"> <table class="lmdgurps_table_basic_main lmdgurps_ed_only_table"> <tbody> <tr> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSubheader">Toggle Header</a></td> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSpecial">Toggle Formatting</a></td> </tr> </tbody> </table> <span class="lmdgurps_area readonly lmdgurps_details dsf dsf_disadvantage_two_desc_"></span> </div> </div> </div> </div> <span class="lmdgurps_subheader_toggle dsf dsf_disadvantage_two_subheader_on_" style="display:none"></span> <span class="lmdgurps_special_toggle dsf dsf_disadvantage_two_special_on_" style="display:none"></span> <table class="lmdgurps_table_basic_main lmdgurps_subheader" style="display:none"> <tbody> <tr> <td class="lmdgurps_table_subheader"><span class="lmdgurps_field dsf dsf_disadvantage_two_subheader_"></span></td> </tr> </tbody> </table> <table class="lmdgurps_table_basic_main lmdgurps_table_row"> <tbody> <tr> <td class="interface" style="text-align:right;width:42px"> <a class="lmdgurps_listDelete interface" title="Delete this item">✘</a> <a class="lmdgurps_listPromote interface" title="Move this item up">↑</a> <a class="lmdgurps_listDemote interface" title="Move this item down">↓</a> <a class="lmdgurps_listDetails interface" title="Edit Details">D</a> </td> <td class="lmdgurps_table_field" style="text-align:left;"> <a class="lmdgurps_listDetails_viewer"><span class="lmdgurps_field_wide lmdgurps_entry dsf dsf_disadvantage_two_"></span></a> </td> <td class="lmdgurps_details_notifier" style="width:5px"></td> <td class="lmdgurps_table_points" style="width:32px"> <span class="lmdgurps_field lmdgurps_disadpoints dsf dsf_disadvantage_two_points_"></span> </td> </tr> </tbody> </table> </div> </div> </div> <div style="height:5px"></div> </div> <div class="lmdgurps_section_left lmdgurps_skill_section_one"> <div class="lmdgurps_section_header_left">SKILLS<a class="lmdgurps_listAdd lmdgurps_interface" title="Add Skills" onclick="lmdgurps_getElementsByClassName('list_skills_one')[0].addItem();">+</a></div> <table class="lmdgurps_table_basic_main"> <tbody> <tr> <td class="lmdgurps_table_header">Skill</td> <td class="lmdgurps_table_header" style="width:60px">Diff</td> <td class="lmdgurps_table_header" style="width:45px">RLVL</td> <td class="lmdgurps_table_header" style="width:30px">LVL</td> <td class="lmdgurps_table_header" style="width:36px">CP</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="lmdgurps_details_parent"> <span class="dsf dsf_skill_one_popup_on_ lmdgurps_pop_toggle" style="display:none"></span> <div class="lmdgurps_popup" style="display:none"> <a class="lmdgurps_listDetailsNoPointer"><object><div class="lmdgurps_popup_background"></div></object></a> <div class="lmdgurps_popup_container"> <div class="lmdgurps_popup_box"> <div class="lmdgurps_section_header">DETAILS</div> <div class="lmdgurps_popup_section"> <table class="lmdgurps_table_basic_main lmdgurps_ed_only_table"> <tbody> <tr> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSubheader">Toggle Header</a></td> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSpecial">Toggle Formatting</a></td> </tr> </tbody> </table> <span class="lmdgurps_area readonly lmdgurps_details dsf dsf_skill_one_desc_"></span> </div> </div> </div> </div> <span class="lmdgurps_subheader_toggle lmdgurps_field dsf dsf_skill_one_subheader_on_" style="display:none"></span> <span class="lmdgurps_special_toggle lmdgurps_field dsf dsf_skill_one_special_on_" style="display:none"></span> <table class="lmdgurps_table_basic_main lmdgurps_subheader" style="display:none"> <tbody> <tr> <td class="lmdgurps_table_subheader"><span class="lmdgurps_field dsf dsf_skill_one_subheader_"></span></td> </tr> </tbody> </table> <table class="lmdgurps_table_basic_main lmdgurps_table_row"> <tbody> <tr> <td class="interface" style="text-align:right;width:42px"> <a class="lmdgurps_listDelete interface" title="Delete this item">✘</a> <a class="lmdgurps_listPromote interface" title="Move this item up">↑</a> <a class="lmdgurps_listDemote interface" title="Move this item down">↓</a> <a class="lmdgurps_listDetails interface" title="Toggle Details">D</a> </td> <td class="lmdgurps_table_field" style="text-align:left;"> <a class="lmdgurps_listDetails_viewer"><span class="lmdgurps_field lmdgurps_entry dsf dsf_skill_one_" style="text-align:left;"></span></a> </td> <td class="lmdgurps_details_notifier" style="width:5px"></td> <td class="lmdgurps_table_field" style="width:56px"> <span class="lmdgurps_field dsf dsf_skill_one_diff_"></span> </td> <td class="lmdgurps_table_field" style="width:41px"> <span class="lmdgurps_field dsf dsf_skill_one_result_level_"></span> </td> <td class="lmdgurps_table_field" style="width:26px"> <span class="lmdgurps_field dsf dsf_skill_one_level_"></span> </td> <td class="lmdgurps_table_points" style="width:32px"> <span class="lmdgurps_field lmdgurps_skillpoints dsf dsf_skill_one_points_"></span> </td> </tr> </tbody> </table> </div> </div> </div> <div style="height:5px"></div> </div> <div class="lmdgurps_section_right lmdgurps_skill_section_two"> <div class="lmdgurps_section_header_right">SKILLS<a class="lmdgurps_listAdd lmdgurps_interface" title="Add Skills" onclick="lmdgurps_getElementsByClassName('list_skills_two')[0].addItem();">+</a></div> <table class="lmdgurps_table_basic_main"> <tbody> <tr> <td class="lmdgurps_table_header">Skill</td> <td class="lmdgurps_table_header" style="width:60px">Diff</td> <td class="lmdgurps_table_header" style="width:45px">RLVL</td> <td class="lmdgurps_table_header" style="width:30px">LVL</td> <td class="lmdgurps_table_header" style="width:36px">CP</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="lmdgurps_details_parent"> <span class="dsf dsf_skill_two_popup_on_ lmdgurps_pop_toggle" style="display:none"></span> <div class="lmdgurps_popup" style="display:none"> <a class="lmdgurps_listDetailsNoPointer"><object><div class="lmdgurps_popup_background"></div></object></a> <div class="lmdgurps_popup_container"> <div class="lmdgurps_popup_box"> <div class="lmdgurps_section_header">DETAILS</div> <div class="lmdgurps_popup_section"> <table class="lmdgurps_table_basic_main lmdgurps_ed_only_table"> <tbody> <tr> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSubheader">Toggle Header</a></td> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSpecial">Toggle Formatting</a></td> </tr> </tbody> </table> <span class="lmdgurps_area readonly lmdgurps_details dsf dsf_skill_two_desc_"></span> </div> </div> </div> </div> <span class="lmdgurps_subheader_toggle lmdgurps_field dsf dsf_skill_two_subheader_on_" style="display:none"></span> <span class="lmdgurps_special_toggle lmdgurps_field dsf dsf_skill_two_special_on_" style="display:none"></span> <table class="lmdgurps_table_basic_main lmdgurps_subheader" style="display:none"> <tbody> <tr> <td class="lmdgurps_table_subheader"><span class="lmdgurps_field dsf dsf_skill_two_subheader_"></span></td> </tr> </tbody> </table> <table class="lmdgurps_table_basic_main lmdgurps_table_row"> <tbody> <tr> <td class="interface" style="text-align:right;width:42px"> <a class="lmdgurps_listDelete interface" title="Delete this item">✘</a> <a class="lmdgurps_listPromote interface" title="Move this item up">↑</a> <a class="lmdgurps_listDemote interface" title="Move this item down">↓</a> <a class="lmdgurps_listDetails interface" title="Toggle Details">D</a> </td> <td class="lmdgurps_table_field" style="text-align:left;"> <a class="lmdgurps_listDetails_viewer"><span class="lmdgurps_field lmdgurps_entry dsf dsf_skill_two_" style="text-align:left;"></span></a> </td> <td class="lmdgurps_details_notifier" style="width:5px"></td> <td class="lmdgurps_table_field" style="width:56px"> <span class="lmdgurps_field dsf dsf_skill_two_diff_"></span> </td> <td class="lmdgurps_table_field" style="width:41px"> <span class="lmdgurps_field dsf dsf_skill_two_result_level_"></span> </td> <td class="lmdgurps_table_field" style="width:26px"> <span class="lmdgurps_field dsf dsf_skill_two_level_"></span> </td> <td class="lmdgurps_table_points" style="width:32px"> <span class="lmdgurps_field lmdgurps_skillpoints dsf dsf_skill_two_points_"></span> </td> </tr> </tbody> </table> </div> </div> </div> <div style="height:5px"></div> </div> <div class="lmdgurps_section_left lmdgurps_gear_section_one"> <div class="lmdgurps_section_header_left">EQUIPMENT<a class="lmdgurps_listAdd lmdgurps_interface" title="Add Item" onclick="lmdgurps_getElementsByClassName('list_gear_one')[0].addItem();">+</a></div> <table class="lmdgurps_table_basic_main"> <tbody> <tr> <td class="lmdgurps_table_header">Item</td> <td class="lmdgurps_table_header" style="width:80px">Location</td> <td class="lmdgurps_table_header" style="width:50px">Weight</td> <td class="lmdgurps_table_header" style="width:50px">Cost</td> </tr> </tbody> </table> <div class="listColumns_1 list_gear_one"> <span class="dsf dsf_num_elements_gear_one" style="display:none"></span> <div class="template"> <div class="lmdgurps_details_parent"> <span class="dsf dsf_gear_one_popup_on_ lmdgurps_pop_toggle" style="display:none"></span> <div class="lmdgurps_popup" style="display:none"> <a class="lmdgurps_listDetailsNoPointer"><object><div class="lmdgurps_popup_background"></div></object></a> <div class="lmdgurps_popup_container"> <div class="lmdgurps_popup_box"> <div class="lmdgurps_section_header">DETAILS</div> <div class="lmdgurps_popup_section"> <table class="lmdgurps_table_basic_main lmdgurps_ed_only_table"> <tbody> <tr> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSubheader">Toggle Header</a></td> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSpecial">Toggle Formatting</a></td> </tr> </tbody> </table> <span class="lmdgurps_area readonly lmdgurps_details dsf dsf_gear_one_desc_"></span> </div> </div> </div> </div> <span class="lmdgurps_subheader_toggle lmdgurps_field dsf dsf_gear_one_subheader_on_" style="display:none"></span> <span class="lmdgurps_special_toggle lmdgurps_field dsf dsf_gear_one_special_on_" style="display:none"></span> <table class="lmdgurps_table_basic_main lmdgurps_subheader" style="display:none"> <tbody> <tr> <td class="lmdgurps_table_subheader"><span class="lmdgurps_field dsf dsf_gear_one_subheader_"></span></td> </tr> </tbody> </table> <table class="lmdgurps_table_basic_main lmdgurps_table_row"> <tbody> <tr> <td class="interface" style="text-align:right;width:42px"> <a class="lmdgurps_listDelete interface" title="Delete this item">✘</a> <a class="lmdgurps_listPromote interface" title="Move this item up">↑</a> <a class="lmdgurps_listDemote interface" title="Move this item down">↓</a> <a class="lmdgurps_listDetails interface" title="Toggle Details">D</a> </td> <td class="lmdgurps_table_field" style="text-align:left;"> <a class="lmdgurps_listDetails_viewer"><span class="lmdgurps_field_wide lmdgurps_entry dsf dsf_gear_one_"></span></a> </td> <td class="lmdgurps_details_notifier" style="width:5px"></td> <td class="lmdgurps_table_field" style="width:76px"> <span class="lmdgurps_field dsf dsf_gear_one_location_"></span> </td> <td class="lmdgurps_table_field" style="width:46px"> <span class="lmdgurps_field dsf dsf_gear_one_weight_"></span> </td> <td class="lmdgurps_table_field" style="width:46px"> <span class="lmdgurps_field dsf dsf_gear_one_cost_"></span> </td> </tr> </tbody> </table> </div> </div> </div> <div style="height:5px"></div> </div> <div class="lmdgurps_section_right lmdgurps_gear_section_two"> <div class="lmdgurps_section_header_right">EQUIPMENT<a class="lmdgurps_listAdd lmdgurps_interface" title="Add Item" onclick="lmdgurps_getElementsByClassName('list_gear_two')[0].addItem();">+</a></div> <table class="lmdgurps_table_basic_main"> <tbody> <tr> <td class="lmdgurps_table_header">Item</td> <td class="lmdgurps_table_header" style="width:80px">Location</td> <td class="lmdgurps_table_header" style="width:50px">Weight</td> <td class="lmdgurps_table_header" style="width:50px">Cost</td> </tr> </tbody> </table> <div class="listColumns_1 list_gear_two"> <span class="dsf dsf_num_elements_gear_two" style="display:none"></span> <div class="template"> <div class="lmdgurps_details_parent"> <span class="dsf dsf_gear_two_popup_on_ lmdgurps_pop_toggle" style="display:none"></span> <div class="lmdgurps_popup" style="display:none"> <a class="lmdgurps_listDetailsNoPointer"><object><div class="lmdgurps_popup_background"></div></object></a> <div class="lmdgurps_popup_container"> <div class="lmdgurps_popup_box"> <div class="lmdgurps_section_header">DETAILS</div> <div class="lmdgurps_popup_section"> <table class="lmdgurps_table_basic_main lmdgurps_ed_only_table"> <tbody> <tr> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSubheader">Toggle Header</a></td> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSpecial">Toggle Formatting</a></td> </tr> </tbody> </table> <span class="lmdgurps_area readonly lmdgurps_details dsf dsf_gear_two_desc_"></span> </div> </div> </div> </div> <span class="lmdgurps_subheader_toggle lmdgurps_field dsf dsf_gear_two_subheader_on_" style="display:none"></span> <span class="lmdgurps_special_toggle lmdgurps_field dsf dsf_gear_two_special_on_" style="display:none"></span> <table class="lmdgurps_table_basic_main lmdgurps_subheader" style="display:none"> <tbody> <tr> <td class="lmdgurps_table_subheader"><span class="lmdgurps_field dsf dsf_gear_two_subheader_"></span></td> </tr> </tbody> </table> <table class="lmdgurps_table_basic_main lmdgurps_table_row"> <tbody> <tr> <td class="interface" style="text-align:right;width:42px"> <a class="lmdgurps_listDelete interface" title="Delete this item">✘</a> <a class="lmdgurps_listPromote interface" title="Move this item up">↑</a> <a class="lmdgurps_listDemote interface" title="Move this item down">↓</a> <a class="lmdgurps_listDetails interface" title="Toggle Details">D</a> </td> <td class="lmdgurps_table_field" style="text-align:left;"> <a class="lmdgurps_listDetails_viewer"><span class="lmdgurps_field_wide lmdgurps_entry dsf dsf_gear_two_"></span></a> </td> <td class="lmdgurps_details_notifier" style="width:5px"></td> <td class="lmdgurps_table_field" style="width:76px"> <span class="lmdgurps_field dsf dsf_gear_two_location_"></span> </td> <td class="lmdgurps_table_field" style="width:46px"> <span class="lmdgurps_field dsf dsf_gear_two_weight_"></span> </td> <td class="lmdgurps_table_field" style="width:46px"> <span class="lmdgurps_field dsf dsf_gear_two_cost_"></span> </td> </tr> </tbody> </table> </div> </div> </div> <div style="height:5px"></div> </div> <div class="lmdgurps_section lmdgurps_armor_section"> <div class="lmdgurps_section_header">ARMOR AND APPAREL<a class="lmdgurps_listAdd lmdgurps_interface" title="Add Item" onclick="lmdgurps_getElementsByClassName('list_armor')[0].addItem();">+</a></div> <table class="lmdgurps_table_basic_main"> <tbody> <tr> <td class="lmdgurps_table_header">Armor</td> <td class="lmdgurps_table_header" style="width:115px">Location</td> <td class="lmdgurps_table_header" style="width:60px">Penalty</td> <td class="lmdgurps_table_header" style="width:60px">DR</td> <td class="lmdgurps_table_header" style="width:60px">Don</td> <td class="lmdgurps_table_header" style="width:60px">Holdout</td> </tr> </tbody> </table> <div class="listColumns_1 list_armor"> <span class="dsf dsf_num_elements_armor" style="display:none"></span> <div class="template"> <div class="lmdgurps_details_parent"> <span class="dsf dsf_armor_popup_on_ lmdgurps_pop_toggle" style="display:none"></span> <div class="lmdgurps_popup" style="display:none"> <a class="lmdgurps_listDetailsNoPointer"><object><div class="lmdgurps_popup_background"></div></object></a> <div class="lmdgurps_popup_container"> <div class="lmdgurps_popup_box"> <div class="lmdgurps_section_header">DETAILS</div> <div class="lmdgurps_popup_section"> <table class="lmdgurps_table_basic_main lmdgurps_ed_only_table"> <tbody> <tr> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSubheader">Toggle Header</a></td> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSpecial">Toggle Subarmor</a></td> </tr> </tbody> </table> <span class="lmdgurps_area readonly lmdgurps_details dsf dsf_armor_desc_"></span> </div> </div> </div> </div> <span class="lmdgurps_subheader_toggle lmdgurps_field dsf dsf_armor_subheader_on_" style="display:none"></span> <span class="lmdgurps_special_toggle lmdgurps_field dsf dsf_armor_special_on_" style="display:none"></span> <table class="lmdgurps_table_basic_main lmdgurps_subheader" style="display:none"> <tbody> <tr> <td class="lmdgurps_table_subheader"><span class="lmdgurps_field dsf dsf_armor_subheader_"></span></td> </tr> </tbody> </table> <table class="lmdgurps_table_basic_main lmdgurps_table_row"> <tbody> <tr> <td class="interface" style="text-align:right;width:42px"> <a class="lmdgurps_listDelete interface" title="Delete this item">✘</a> <a class="lmdgurps_listPromote interface" title="Move this item up">↑</a> <a class="lmdgurps_listDemote interface" title="Move this item down">↓</a> <a class="lmdgurps_listDetails interface" title="Toggle Details">D</a> </td> <td class="lmdgurps_table_field" style="text-align:left;"> <a class="lmdgurps_listDetails_viewer"><span class="lmdgurps_field_wide lmdgurps_entry dsf dsf_armor_name_"></span></a> </td> <td class="lmdgurps_details_notifier" style="width:5px"></td> <td class="lmdgurps_table_field" style="width:111px"> <span class="lmdgurps_field dsf dsf_armor_location_"></span> </td> <td class="lmdgurps_table_field" style="width:56px"> <span class="lmdgurps_field dsf dsf_armor_location_penalty_"></span> </td> <td class="lmdgurps_table_field" style="width:56px"> <span class="lmdgurps_field dsf dsf_armor_damage_resistance_"></span> </td> <td class="lmdgurps_table_field" style="width:56px"> <span class="lmdgurps_field dsf dsf_armor_don_"></span> </td> <td class="lmdgurps_table_field" style="width:56px"> <span class="lmdgurps_field dsf dsf_armor_holdout_"></span> </td> </tr> </tbody> </table> </div> </div> </div> <div style="height:5px"></div> </div> <div class="lmdgurps_section lmdgurps_melee_section"> <div class="lmdgurps_section_header">MELEE ATTACKS<a class="lmdgurps_listAdd lmdgurps_interface" title="Add Item" onclick="lmdgurps_getElementsByClassName('list_melee_attacks')[0].addItem();">+</a></div> <table class="lmdgurps_table_basic_main"> <tbody> <tr> <td class="lmdgurps_table_header">Attack</td> <td class="lmdgurps_table_header" style="width:60px">Skill</td> <td class="lmdgurps_table_header" style="width:115px">Damage</td> <td class="lmdgurps_table_header" style="width:60px">Reach</td> <td class="lmdgurps_table_header" style="width:60px">Parry</td> <td class="lmdgurps_table_header" style="width:60px">ST</td> </tr> </tbody> </table> <div class="listColumns_1 list_melee_attacks"> <span class="dsf dsf_num_elements_melee_attacks" style="display:none"></span> <div class="template"> <div class="lmdgurps_details_parent"> <span class="dsf dsf_melee_attack_popup_on_ lmdgurps_pop_toggle" style="display:none"></span> <div class="lmdgurps_popup" style="display:none"> <a class="lmdgurps_listDetailsNoPointer"><object><div class="lmdgurps_popup_background"></div></object></a> <div class="lmdgurps_popup_container"> <div class="lmdgurps_popup_box"> <div class="lmdgurps_section_header">DETAILS</div> <div class="lmdgurps_popup_section"> <table class="lmdgurps_table_basic_main lmdgurps_ed_only_table"> <tbody> <tr> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSubheader">Toggle Header</a></td> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSpecial">Toggle Attack Mode</a></td> </tr> </tbody> </table> <span class="lmdgurps_area readonly lmdgurps_details dsf dsf_melee_attack_desc_"></span> </div> </div> </div> </div> <span class="lmdgurps_subheader_toggle lmdgurps_field dsf dsf_melee_attack_subheader_on_" style="display:none"></span> <span class="lmdgurps_special_toggle lmdgurps_field dsf dsf_melee_attack_special_on_" style="display:none"></span> <table class="lmdgurps_table_basic_main lmdgurps_subheader" style="display:none"> <tbody> <tr> <td class="lmdgurps_table_subheader"><span class="lmdgurps_field dsf dsf_melee_attack_subheader_"></span></td> </tr> </tbody> </table> <table class="lmdgurps_table_basic_main lmdgurps_table_row"> <tbody> <tr> <td class="interface" style="text-align:right;width:42px"> <a class="lmdgurps_listDelete interface" title="Delete this item">✘</a> <a class="lmdgurps_listPromote interface" title="Move this item up">↑</a> <a class="lmdgurps_listDemote interface" title="Move this item down">↓</a> <a class="lmdgurps_listDetails interface" title="Toggle Details">D</a> </td> <td class="lmdgurps_table_field" style="text-align:left;"> <a class="lmdgurps_listDetails_viewer"><span class="lmdgurps_field_wide lmdgurps_entry dsf dsf_melee_attack_name_"></span></a> </td> <td class="lmdgurps_details_notifier" style="width:5px"></td> <td class="lmdgurps_table_field" style="width:56px"> <span class="lmdgurps_field dsf dsf_melee_attack_skill_"></span> </td> <td class="lmdgurps_table_field" style="width:111px"> <span class="lmdgurps_field dsf dsf_melee_attack_damage_"></span> </td> <td class="lmdgurps_table_field" style="width:56px"> <span class="lmdgurps_field dsf dsf_melee_attack_reach_"></span> </td> <td class="lmdgurps_table_field" style="width:56px"> <span class="lmdgurps_field dsf dsf_melee_attack_parry_"></span> </td> <td class="lmdgurps_table_field" style="width:56px"> <span class="lmdgurps_field dsf dsf_melee_attack_st_"></span> </td> </tr> </tbody> </table> </div> </div> </div> <div style="height:5px"></div> </div> <div class="lmdgurps_section lmdgurps_ranged_section"> <div class="lmdgurps_section_header">RANGED ATTACKS<a class="lmdgurps_listAdd lmdgurps_interface" title="Add Item" onclick="lmdgurps_getElementsByClassName('list_ranged_attacks')[0].addItem();">+</a></div> <table class="lmdgurps_table_basic_main"> <tbody> <tr> <td class="lmdgurps_table_header">Attack</td> <td class="lmdgurps_table_header" style="width:60px">Skill</td> <td class="lmdgurps_table_header" style="width:120px">Damage</td> <td class="lmdgurps_table_header" style="width:50px">Acc</td> <td class="lmdgurps_table_header" style="width:80px">Range</td> <td class="lmdgurps_table_header" style="width:40px">RoF</td> <td class="lmdgurps_table_header" style="width:60px">Shots</td> <td class="lmdgurps_table_header" style="width:40px">Rcl</td> <td class="lmdgurps_table_header" style="width:40px">Bulk</td> <td class="lmdgurps_table_header" style="width:40px">ST</td> </tr> </tbody> </table> <div class="listColumns_1 list_ranged_attacks"> <span class="dsf dsf_num_elements_ranged_attacks" style="display:none"></span> <div class="template"> <div class="lmdgurps_details_parent"> <span class="dsf dsf_ranged_attack_popup_on_ lmdgurps_pop_toggle" style="display:none"></span> <div class="lmdgurps_popup" style="display:none"> <a class="lmdgurps_listDetailsNoPointer"><object><div class="lmdgurps_popup_background"></div></object></a> <div class="lmdgurps_popup_container"> <div class="lmdgurps_popup_box"> <div class="lmdgurps_section_header">DETAILS</div> <div class="lmdgurps_popup_section"> <table class="lmdgurps_table_basic_main lmdgurps_ed_only_table"> <tbody> <tr> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSubheader">Toggle Header</a></td> <td class="lmdgurps_table_basic_cell"><a class="lmdgurps_listSpecial">Toggle Attack Mode</a></td> </tr> </tbody> </table> <span class="lmdgurps_area readonly lmdgurps_details dsf dsf_ranged_attack_desc_"></span> </div> </div> </div> </div> <span class="lmdgurps_subheader_toggle lmdgurps_field dsf dsf_ranged_attack_subheader_on_" style="display:none"></span> <span class="lmdgurps_special_toggle lmdgurps_field dsf dsf_ranged_attack_special_on_" style="display:none"></span> <table class="lmdgurps_table_basic_main lmdgurps_subheader" style="display:none"> <tbody> <tr> <td class="lmdgurps_table_subheader"><span class="lmdgurps_field dsf dsf_ranged_attack_subheader_"></span></td> </tr> </tbody> </table> <table class="lmdgurps_table_basic_main lmdgurps_table_row"> <tbody> <tr> <td class="interface" style="text-align:right;width:42px"> <a class="lmdgurps_listDelete interface" title="Delete this item">✘</a> <a class="lmdgurps_listPromote interface" title="Move this item up">↑</a> <a class="lmdgurps_listDemote interface" title="Move this item down">↓</a> <a class="lmdgurps_listDetails interface" title="Toggle Details">D</a> </td> <td class="lmdgurps_table_field" style="text-align:left;"> <a class="lmdgurps_listDetails_viewer"><span class="lmdgurps_field_wide lmdgurps_entry dsf dsf_ranged_attack_name_"></span></a> </td> <td class="lmdgurps_details_notifier" style="width:5px"></td> <td class="lmdgurps_table_field" style="width:56px"> <span class="lmdgurps_field dsf dsf_ranged_attack_skill_"></span> </td> <td class="lmdgurps_table_field" style="width:116px"> <span class="lmdgurps_field dsf dsf_ranged_attack_damage_"></span> </td> <td class="lmdgurps_table_field" style="width:46px"> <span class="lmdgurps_field dsf dsf_ranged_attack_acc_"></span> </td> <td class="lmdgurps_table_field" style="width:76px"> <span class="lmdgurps_field dsf dsf_ranged_attack_range_"></span> </td> <td class="lmdgurps_table_field" style="width:36px"> <span class="lmdgurps_field dsf dsf_ranged_attack_rate_of_fire_"></span> </td> <td class="lmdgurps_table_field" style="width:56px"> <span class="lmdgurps_field dsf dsf_ranged_attack_shots_"></span> </td> <td class="lmdgurps_table_field" style="width:36px"> <span class="lmdgurps_field dsf dsf_ranged_attack_recoil_"></span> </td> <td class="lmdgurps_table_field" style="width:36px"> <span class="lmdgurps_field dsf dsf_ranged_attack_bulk_"></span> </td> <td class="lmdgurps_table_field" style="width:36px"> <span class="lmdgurps_field dsf dsf_ranged_attack_st_"></span> </td> </tr> </tbody> </table> </div> </div> </div> <div style="height:5px"></div> </div> <div class="lmdgurps_section lmdgurps_traits_section" style="min-height:50px"> <div class="lmdgurps_section_header">NOTES</div> <span class="lmdgurps_area readonly dsf dsf_traits"></span> <div style="height:5px"></div> </div> <div class="lmdgurps_section lmdgurps_description_section" style="min-height:50px"> <div class="lmdgurps_section_header">DESCRIPTION</div> <span class="lmdgurps_area readonly dsf dsf_desc"></span> <div style="height:5px"></div> </div> <div class="lmdgurps_section lmdgurps_bio_section" style="min-height:50px;"> <div class="lmdgurps_section_header">BIOGRAPHY</div> <span class="readonly lmdgurps_bio dsf dsf_bio"></span> <div style="height:5px"></div> </div> <div class="lmdgurps_section lmdgurps_credits" style="text-align:center;min-height:50px"> <div class="lmdgurps_section_header">CREDITS</div> <span>GURPS is a trademark of Steve Jackson Games, and its rules and art are copyrighted by Steve Jackson Games. All rights are reserved by Steve Jackson Games. This game aid is the original creation of Jeffrey Head (<span class="dsf dsf_dst_author"></span>) and is released for free distribution, and not for resale, under the permissions granted in the <a href="http://www.sjgames.com/general/online_policy.html">Steve Jackson Games Online Policy</a>.</span> <div style="height:5px"></div> </div> </div>
CSS
/* Page Style */ div.dynamic_sheet_container { overflow: visible; } div .ds_lmdgurps .lmdgurps_wrapper{ font-family:palatino; font-size:13px; color:black; min-width:730px; 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_lmdgurps a{ color:inherit; text-decoration:none; } div .lmdgurps_ed_only{ display:none; } div .editable .lmdgurps_ed_only { display:inline; } div .lmdgurps_ed_only_table{ display:none; } div .editable .lmdgurps_ed_only_table { display:table; } div .ds_lmdgurps table{ margin:0px; border-collapse: separate; border-spacing: 2px; } div .ds_lmdgurps table td{ font-size: inherit; padding: inherit; background-image:none; } div .ds_lmdgurps table th{ font-size: inherit; padding: inherit; background-image:none; } div .lmdgurps_bio a{ text-decoration:none; color:#006699; } div .lmdgurps_area a{ text-decoration:none; color:#006699; } div .lmdgurps_credits a{ text-decoration:none; color:#006699; } 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 .lmdgurps_popup_background { position:fixed; width:100%; height:100%; top:0px; left:0px; z-index:5; background-color:#000000; opacity:0.5; } div .lmdgurps_popup_container { position:fixed; z-index:5; width:0px; height:0px; top:50%; left:50%; background-color:#FFFFFF; overflow:visible; } div .lmdgurps_popup_box { position:fixed; z-index:10; width:50%; height:50%; left:25%; top:25%; background-color:#FFFFFF; border: 1px solid #303; border-radius: 8px; } div .lmdgurps_popup_section { position:relative; padding: 0; margin: 0px; display: inline-block; vertical-align: top; overflow-y:auto; overflow-x:hidden; height:80%; height:-moz-calc(100% - 17px); height:-webkit-calc(100% - 17px); height:calc(100% - 17px); width:100%; } div .lmdgurps_popup_section span.lmdgurps_area { width:90%; width:-moz-calc(100% - 10px); width:-webkit-calc(100% - 10px); width:calc(100% - 10px); height:80% height:-moz-calc(100% - 20px); height:-webkit-calc(100% - 20px); height:calc(100% - 20px); } div .lmdgurps_highlight_enc{ text-decoration:none; color:#FFFFFF; } div .editable .lmdgurps_highlight_enc{ text-decoration:none; color:#FFFFFF; cursor:pointer; } /* List Styles */ div .ds_lmdgurps .lmdgurps_listAdd{ float:right; cursor:pointer; text-decoration:none; color:#FFFFFF; position:relative; right:5px; } div .lmdgurps_listAdd:hover{ color:#CCCC99; } div .ds_lmdgurps .lmdgurps_listDelete{ color:#660000; cursor:pointer; letter-spacing:-1px; text-decoration:none; } div .ds_lmdgurps .lmdgurps_listDetails{ color:#660000; cursor:pointer; letter-spacing:-1px; text-decoration:none; } div .lmdgurps_listDetails_viewer { color:#000000; cursor:text; text-decoration:none; } div .lmdgurps_listDetails_view { color:#000000; cursor:pointer; text-decoration:none; } div .lmdgurps_listDetails_view:hover { color:#cc0000; cursor:pointer; text-decoration:none; } div .editable .lmdgurps_listDetails_view { color:#000000; cursor:text; text-decoration:none; } div .lmdgurps_details_notifier { font-weight:bold; } div .ds_lmdgurps .lmdgurps_listDelete:hover{ color:#cc0000; } div .ds_lmdgurps .lmdgurps_listPromote{ cursor:pointer; letter-spacing:-1px; text-decoration:none; color:#554220; } div .ds_lmdgurps .lmdgurps_listPromote:hover{ color:#957438; } div .ds_lmdgurps .lmdgurps_listDemote{ cursor:pointer; text-decoration:none; color:#554220; } div .ds_lmdgurps .lmdgurps_listDemote:hover{ color:#957438; } div .ds_lmdgurps .lmdgurps_listSpecial{ cursor:pointer; text-decoration:none; color:#554220; } div .ds_lmdgurps .lmdgurps_listSpecial:hover{ color:#957438; } div .ds_lmdgurps .lmdgurps_listSubheader{ cursor:pointer; text-decoration:none; color:#554220; height:22px; } div .ds_lmdgurps .lmdgurps_listSubheader:hover{ color:#957438; } div .lmdgurps_template{ display:none; } table .lmdgurps_table_row{ min-height:24px; } /* Edit Field Styles */ div .ds_lmdgurps .lmdgurps_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_lmdgurps .lmdgurps_field{ position:relative; display:inline-block; min-height:16px; text-align:center; font-size:13px; width:100%; color:inherit; line-height:16px; } div .ds_lmdgurps .lmdgurps_field_wide{ position:relative; display:inline-block; min-height:16px; text-align:left; font-size:13px; width:100%; color:inherit; line-height:16px; } div .ds_lmdgurps .lmdgurps_interface_small{ position:relative; width:5%; } div .ds_lmdgurps .lmdgurps_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_lmdgurps .editable .lmdgurps_linefield_2{ display:inline-block; margin:0px 0px 1px 0px; min-height:16px; border-width:1px; border-color:#000000; border-bottom-style:solid; width:290px; position:relative; } div .ds_lmdgurps .lmdgurps_field_points{ display:inline-block; position:relative; border-bottom: 1px solid #330000; min-height:16px; vertical-align: middle; font-size:13px; text-align:center; left:10px; } div .ds_lmdgurps .editable .lmdgurps_field_points{ display:inline-block; position:relative; border-bottom: 1px solid #330000; min-height:16px; vertical-align: middle; font-size:13px; text-align:center; left:5px; width:100%; } div .ds_lmdgurps .lmdgurps_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_lmdgurps .lmdgurps_label{ position:absolute; font-size:11px; color:#333333; font-variant:small-caps; white-space:nowrap; } div .ds_lmdgurps .lmdgurps_area{ font-family:palatino; font-size:13px; position:relative; display:inline-block; padding:2px 4px 0px 4px; } div .ds_lmdgurps .lmdgurps_bio{ font-family:palatino; font-size:13px; position:relative; display:inline-block; padding:2px 4px 0px 4px; } div .ds_lmdgurps .lmdgurps_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_lmdgurps .lmdgurps_section{ position:relative; padding: 0; margin: 5px 0 0 0; border: 1px solid #303; border-radius: 8px; display: inline-block; background-color:#FFFFFF; width:100%; width: -moz-calc(100% - 5px); width: -webkit-calc(100% - 5px); width: calc(100% - 5px); } div .ds_lmdgurps .lmdgurps_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; width:361px; width:-moz-calc(50% - 5px); width:-webkit-calc(50% - 5px); width:calc(50% - 5px); } div .ds_lmdgurps .lmdgurps_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; width:361px; width:-moz-calc(50% - 5px); width:-webkit-calc(50% - 5px); width:calc(50% - 5px); } div .ds_lmdgurps .lmdgurps_section_no_border{ position:relative; padding: 0; margin: 5px 0 0 0; display: inline-block; } div .ds_lmdgurps .lmdgurps_section_image{ position:absolute; padding: 0; border: 1px solid #303; border-radius: 8px; display: inline-block; vertical-align: top; background-color:#006699; width:256px; height:256px; overflow:hidden; text-align:center; display: table-cell; vertical-align: middle; } div .ds_lmdgurps .lmdgurps_section_header{ width: 100%; font-weight:bold; background-color: #006699; color: #FFF; text-align: center; margin: 0; padding: 2px 0; border-top-left-radius: 8px; border-top-right-radius: 8px; } div .ds_lmdgurps .lmdgurps_section_header_left{ width: 100%; font-weight:bold; background-color: #006699; color: #FFF; text-align: center; margin: 0; padding: 2px 0; border-top-left-radius: 8px; } div .ds_lmdgurps .lmdgurps_section_header_right{ width: 100%; font-weight:bold; background-color: #006699; color: #FFF; text-align: center; margin: 0; padding: 2px 0; border-top-right-radius: 8px; } div .ds_lmdgurps .lmdgurps_field_header{ display: inline-block; font-weight:bold; background-color: #330000; color: #FFF; text-align: center; margin: 0; padding: 2px 0; border: 1px solid white; } /* Table Styles */ div .ds_lmdgurps .lmdgurps_table_basic_main{ text-align:center; width:100%; } div .lmdgurps_table_header.lmdgurps_highlight{ background-color:#003366 !important; } div .lmdgurps_table_box_field.lmdgurps_highlight{ font-weight:bold; border-color:#003366 !important; } div .ds_lmdgurps .lmdgurps_table_basic_cell{ text-align:center; } div .ds_lmdgurps .lmdgurps_table_special{ font-style:italic; background-color:#DDDDDD; } div .ds_lmdgurps .lmdgurps_table_field{ border-bottom-style:solid; border-color:#330000; border-width:2px; /*border: 2px solid #330000;*/ vertical-align: middle; padding: 0px 2px; } div .ds_lmdgurps .lmdgurps_table_box_field{ border: 2px solid #330000; vertical-align: middle; background-color:#FFFFFF; } div .ds_lmdgurps .lmdgurps_table_points{ border: 2px solid #330000; vertical-align: middle; } div .ds_lmdgurps .lmdgurps_table_box_points{ border: 2px solid #330000; vertical-align: middle; background-color: #ffffcc; } div .ds_lmdgurps .lmdgurps_table_main{ text-align:center; width:350px; } div .ds_lmdgurps .lmdgurps_table_header_horizontal{ font-weight:bold; background-color: #330000; color: #FFF; text-align: center; margin: 0; padding: 2px 0; border-top-left-radius: 8px; border-bottom-left-radius: 8px; } div .ds_lmdgurps .lmdgurps_table_subheader{ font-weight:bold; background-color: #000033; color: #FFF; text-align: center; margin: 0; padding: 2px 0; } div .ds_lmdgurps .lmdgurps_table_header{ font-weight:bold; background-color: #330000; color: #FFF; text-align: center; margin: 0; padding: 2px 0; } div .ds_lmdgurps .lmdgurps_table_cell_regular{ border: thin solid black; } /* Specific Section Styles */ /* Basic Section */ div.ds_lmdgurps div.section_basic { height:137px; width: 466px; width: -moz-calc(100% - 266px); width: -webkit-calc(100% - 266px); width: calc(100% - 266px); } div.ds_lmdgurps span.lmdgurps_linefield.dsf_name { left:2px; top:24px; width:200px; width: -moz-calc(50% - 5px); width: -webkit-calc(50% - 5px); width: calc(50% - 5px); } div.ds_lmdgurps span.lmdgurps_linefield.dsf_role { left:207px; left: -moz-calc(50% + 5px); left: -webkit-calc(50% + 5px); left: calc(50% + 5px); top:24px; width:250px; width: -moz-calc(50% - 10px); width: -webkit-calc(50% - 10px); width: calc(50% - 10px); } div.ds_lmdgurps span.lmdgurps_label.label_name { left:5px; top:42px; } div.ds_lmdgurps span.lmdgurps_label.label_role { left:210px; left: -moz-calc(50% + 8px); left: -webkit-calc(50% + 8px); left: calc(50% + 8px); top:42px; } div.ds_lmdgurps span.lmdgurps_linefield.dsf_player { left:2px; top:63px; width:200px; width: -moz-calc(50% - 5px); width: -webkit-calc(50% - 5px); width: calc(50% - 5px); } div.ds_lmdgurps span.lmdgurps_linefield.dsf_campaign { left:207px; left: -moz-calc(50% + 5px); left: -webkit-calc(50% + 5px); left: calc(50% + 5px); top:63px; width:250px; width: -moz-calc(50% - 10px); width: -webkit-calc(50% - 10px); width: calc(50% - 10px); } div.ds_lmdgurps span.lmdgurps_label.label_player { left:5px; top:81px; } div.ds_lmdgurps span.lmdgurps_label.label_campaign { left:210px; left: -moz-calc(50% + 8px); left: -webkit-calc(50% + 8px); left: calc(50% + 8px); top:81px; } div.ds_lmdgurps span.lmdgurps_linefield.dsf_affiliation { left:2px; top:102px; width:135px; width: -moz-calc(30% - 5px); width: -webkit-calc(30% - 5px); width: calc(30% - 5px); } div.ds_lmdgurps span.lmdgurps_linefield.dsf_race { left:142px; left: -moz-calc(30% + 5px); left: -webkit-calc(30% + 5px); left: calc(30% + 5px); top:102px; width:140px; width: -moz-calc(35% - 10px); width: -webkit-calc(35% - 10px); width: calc(35% - 10px); } div.ds_lmdgurps span.lmdgurps_linefield.dsf_gender { left:287px; left: -moz-calc(65% + 5px); left: -webkit-calc(65% + 5px); left: calc(65% + 5px); top:102px; width:100px; width: -moz-calc(20% - 10px); width: -webkit-calc(20% - 10px); width: calc(20% - 10px); } div.ds_lmdgurps span.lmdgurps_linefield.dsf_age { left:392px; left: -moz-calc(85% + 5px); left: -webkit-calc(85% + 5px); left: calc(85% + 5px); top:102px; width:65px; width: -moz-calc(15% - 10px); width: -webkit-calc(15% - 10px); width: calc(15% - 10px); } div.ds_lmdgurps span.lmdgurps_label.label_affiliation { left:5px; top:120px; } div.ds_lmdgurps span.lmdgurps_label.label_race { left:210px; left: -moz-calc(30% + 8px); left: -webkit-calc(30% + 8px); left: calc(30% + 8px); top:120px; } div.ds_lmdgurps span.lmdgurps_label.label_gender { left:210px; left: -moz-calc(65% + 8px); left: -webkit-calc(65% + 8px); left: calc(65% + 8px); top:120px; } div.ds_lmdgurps span.lmdgurps_label.label_age { left:210px; left: -moz-calc(85% + 8px); left: -webkit-calc(85% + 8px); left: calc(85% + 8px); top:120px; } /* Avatar */ div.ds_lmdgurps div.section_avatar { width:256px; top:-14px; } div.ds_lmdgurps div.section_statistics { height:112px; } div.ds_lmdgurps div.section_staistics table { width:466px; width:100%; } /* Statistics Block */ div.ds_lmdgurps div.section_statistics { width:466px; width: -moz-calc(100% - 266px); width: -webkit-calc(100% - 266px); width: calc(100% - 266px); } div.ds_lmdgurps div.section_statistics th { width:10%; } div.ds_lmdgurps div.section_statistics td { width:10%; } div.ds_lmdgurps div.section_statistics th.col_7 { width:20%; } /* Points Block */ div.ds_lmdgurps div.section_points { width:100%; width: -moz-calc(100% - 3px); width: -webkit-calc(100% - 3px); width: calc(100% - 3px); } div.ds_lmdgurps div.section_points table tbody tr { font-size:8pt; } div.ds_lmdgurps div.section_points td { min-width: 30px; } div.ds_lmdgurps div.section_points th.label_skills { min-width: 45px; } div.ds_lmdgurps div.section_points th.label_total { background-color:#006699; min-width: 40px; } div.ds_lmdgurps div.section_points th.label_unspent { background-color:#006699; } div.ds_lmdgurps div.section_points td.lmdgurps_table_box_field { width:40px; } /* Combat Block */ div.ds_lmdgurps div.section_combat { height:112px; } div.ds_lmdgurps div.section_combat th { width:9%; } div.ds_lmdgurps div.section_combat td { width:9%; } div.ds_lmdgurps div.section_combat th.col_5 { width:19%; } /* Social Block */ div.ds_lmdgurps div.lmdgurps_social_section th { width:5%; } div.ds_lmdgurps div.lmdgurps_social_section td { width:5%; } div.ds_lmdgurps div.lmdgurps_social_section th.col_1 { width:8%; } div.ds_lmdgurps div.lmdgurps_social_section td.col_2 { width:15%; } div.ds_lmdgurps div.lmdgurps_social_section th.col_4 { width:8%; } div.ds_lmdgurps div.lmdgurps_social_section td.col_5 { width:20%; } div.ds_lmdgurps div.lmdgurps_social_section th.col_7 { width:9%; } /* Area Blocks */ div.ds_lmdgurps div.lmdgurps_traits_section span.lmdgurps_area, div.ds_lmdgurps div.lmdgurps_description_section span.lmdgurps_area, div.ds_lmdgurps div.lmdgurps_bio_section span.lmdgurps_area { width:720px; width:-moz-calc(100% - 5px); width:-webkit-calc(100% - 5px); width: calc(100% - 5px); } /* Input */ div.ds_lmdgurps form.jeditable_input input { border: none !important; padding: 0 0 0 0; text-align: inherit; font:inherit; } div.ds_lmdgurps form.jeditable_input { margin: 0 0 0; } div.ds_lmdgurps form.jeditable_input input[style] { width: 100% !important; } div.ds_lmdgurps textarea, div.ds_lmdgurps textarea input { border:none !important; background:inherit !important; font:inherit !important; padding: 0 0 0; margin: 0 0 0; color:inherit !important; }
Javascript
// Global Storage lmdgurps_context = {}; var $ = jQuery; ////////////////////////////////////////// // Event Hooks :: Credit to ChainsawXIV // ////////////////////////////////////////// // Called immediately before the script fills the Span fields with data function lmdgurps_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 = { "st":"10", "dx":"10", "iq":"10", "ht":"10", "st_points":"0", "dx_points":"0", "iq_points":"0", "ht_points":"0", "hp":"10", "per":"10", "will":"10", "fp":"10", "hp_points":"0", "per_points":"0", "will_points":"0", "fp_points":"0", "speed":"5", "move":"5", "sm":"0", "speed_points":"0", "move_points":"0", "dodge":"8", "parry":"8", "block":"N/A", "damage_resistance":"0", "thr":"1d-2", "sw":"1d", "basic_lift":"20", "points_attributes":"0", "points_advantages":"0", "points_skills":"0", "points_secondary_characteristics":"0", "points_disadvantages":"0", "points_total_spent":"0", "points_total":"0", "points_unspent":"0", "max_load_none":"20", "move_none":"5", "dodge_none":"9", "max_load_light":"40", "move_light":"4", "dodge_light":"8", "max_load_medium":"60", "move_medium":"3", "dodge_medium":"7", "max_load_heavy":"120", "move_heavy":"3", "dodge_heavy":"6", "max_load_extra_heavy":"200", "move_extra_heavy":"1", "dodge_extra_heavy":"5", } dynamic_sheet_attrs = $.extend(defaults, dynamic_sheet_attrs); if(dynamic_sheet_attrs["encumbrance_level"] != 'undefined'){ lmdgurps_highlight(dynamic_sheet_attrs["encumbrance_level"],1); } 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 lmdgurps_dataChange(opts){ //Add up the point totals var attribTotal = 0; var advantTotal = 0; var disadsTotal = 0; var skillsTotal = 0; var secChaTotal = 0; var unspenTotal = 0; var pointsTotal = 0; //Add Attributes to Total $('[class*="lmdgurps_atpoints"]').each(function(index,element) { if (!isNaN(Number($(element).text()))) attribTotal = attribTotal + Number($(element).text()); }); $('[class*="points_attributes"]').text(attribTotal); //Add Secondary Characteristics to Total $('[class*="lmdgurps_scpoints"]').each(function(index,element) { if (!isNaN(Number($(element).text()))) secChaTotal = secChaTotal + Number($(element).text()); }); $('[class*="points_secondary_characteristics"]').text(secChaTotal); //Add Advantages to Total $('.lmdgurps_adpoints').each(function(index,element) { if (!isNaN(Number($(element).text()))) advantTotal = advantTotal + Number($(element).text()); }); //Add Traits to Advantages $('[class*="lmdgurps_traitpoints"]').each(function(index,element) { if (!isNaN(Number($(element).text()))){ if(Number($(element).text()) > 0) advantTotal = advantTotal + Number($(element).text()); } }); $('[class*="points_advantages"]').text(advantTotal); //Add Disadvantages to Total $('[class*="lmdgurps_disadpoints"]').each(function(index,element) { if (!isNaN(Number($(element).text()))) disadsTotal = disadsTotal + Number($(element).text()); }); //Add Traits to Disadvantages $('[class*="lmdgurps_traitpoints"]').each(function(index,element) { if (!isNaN(Number($(element).text()))){ if(Number($(element).text()) < 0) disadsTotal = disadsTotal + Number($(element).text()); } }); $('[class*="points_disadvantages"]').text(disadsTotal); //Add Skills to Total $('[class*="lmdgurps_skillpoints"]').each(function(index,element) { if (!isNaN(Number($(element).text()))) skillsTotal = skillsTotal + Number($(element).text()); }); $('[class*="points_skills"]').text(skillsTotal); if (!isNaN(Number($('[class*="points_unspent"]').text()))) unspenTotal = Number($('[class*="points_unspent"]').text()); pointsTotal = attribTotal + advantTotal + disadsTotal + skillsTotal + secChaTotal + unspenTotal; $('[class*="points_total"]').text(pointsTotal); /* // Identify a data change within a tooltip area and unlock the tooltip oParent = lmdgurps_getElementsByClassName("dsf_" + opts['fieldName'],'span')[0].parentNode; if (oParent.className.match('has_tooltip')){ oParent.setAttribute("editLock","unlocked"); oParent.mouseOut(); } */ } // Called immediately after the script fills the Span fields with data, before jeditable attachement function lmdgurps_dataPostLoad(opts){ /* var str = '<xmp>'; for(var key in dynamic_sheet_attrs){ str = str + '"' + key + '":"' + dynamic_sheet_attrs[key] + '",\n'; }; str = str + '"exported":"1"</xmp>' console.log(str); */ var containerId = "#" + opts['containerId']; /* //Add up the point totals var attribTotal = 0; var advantTotal = 0; var disadsTotal = 0; var skillsTotal = 0; var secChaTotal = 0; var unspenTotal = 0; var pointsTotal = 0; //Add Attributes to Total $('[class*="lmdgurps_atpoints"]').each(function(index,element) { if (!isNaN(Number($(element).text()))) attribTotal = attribTotal + Number($(element).text()); }); $('[class*="points_attributes"]').text(attribTotal); //Add Secondary Characteristics to Total $('[class*="lmdgurps_scpoints"]').each(function(index,element) { if (!isNaN(Number($(element).text()))) secChaTotal = secChaTotal + Number($(element).text()); }); $('[class*="points_secondary_characteristics"]').text(secChaTotal); //Add Advantages to Total $('[class*="lmdgurps_adpoints"]').each(function(index,element) { if (!isNaN(Number($(element).text()))) advantTotal = advantTotal + Number($(element).text()); }); //Add Traits to Advantages $('[class*="lmdgurps_traitpoints"]').each(function(index,element) { if (!isNaN(Number($(element).text()))){ if(Number($(element).text()) > 0) advantTotal = advantTotal + Number($(element).text()); } }); $('[class*="points_advantages"]').text(advantTotal); //Add Disadvantages to Total $('[class*="lmdgurps_disadpoints"]').each(function(index,element) { if (!isNaN(Number($(element).text()))) disadsTotal = disadsTotal + Number($(element).text()); }); //Add Traits to Disadvantages $('[class*="lmdgurps_traitpoints"]').each(function(index,element) { if (!isNaN(Number($(element).text()))){ if(Number($(element).text()) < 0) disadsTotal = disadsTotal + Number($(element).text()); } }); $('[class*="points_disadvantages"]').text(disadsTotal); //Add Skills to Total $('[class*="lmdgurps_skillpoints"]').each(function(index,element) { if (!isNaN(Number($(element).text()))) skillsTotal = skillsTotal + Number($(element).text()); }); $('[class*="points_skills"]').text(skillsTotal); if (!isNaN(Number($('[class*="points_unspent"]').text()))) unspenTotal = Number($('[class*="points_unspent"]').text()); pointsTotal = attribTotal + advantTotal + disadsTotal + skillsTotal + secChaTotal + unspenTotal; $('[class*="points_total"]').text(pointsTotal); */ // Store global context for search by class name lmdgurps_context = document.getElementById(opts['containerId']); // Set additional options opts['imagePath'] = 'http://omnichron.net/external/op/src/solar/'; opts['context'] = document.getElementById(opts['containerId']); opts['debugThreshold'] = -1; //Convert interface elements lmdgurps_convertLists(opts); //lmdgurps_convertPips(opts); //lmdgurps_convertChecks(opts); lmdgurps_convertAreas(opts); //lmdgurps_convertTips(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_appearance").length == 0)) { //No social background, so hide that section $(containerId + " .lmdgurps_social_section").hide(); } if (($(containerId + " .dsf_social_trait_00").length == 0)) { //No social traits, so hide that section $(containerId + " .lmdgurps_social_traits_section").hide(); } if (($(containerId + " .dsf_language_00").length == 0)) { //No languages, so hide that section $(containerId + " .lmdgurps_languages_section").hide(); } if (($(containerId + " .dsf_advantage_one_00").length == 0)) { //No advantages, so hide that section $(containerId + " .lmdgurps_advantage_section_one").hide(); } if (($(containerId + " .dsf_advantage_two_00").length == 0)) { //No advantages, so hide that section $(containerId + " .lmdgurps_advantage_section_two").hide(); } if (($(containerId + " .dsf_disadvantage_one_00").length == 0)) { //No disadvantages, so hide that section $(containerId + " .lmdgurps_disadvantage_section_one").hide(); } if (($(containerId + " .dsf_disadvantage_two_00").length == 0)) { //No disadvantages, so hide that section $(containerId + " .lmdgurps_disadvantage_section_two").hide(); } if (($(containerId + " .dsf_skill_one_00").length == 0)) { //No skills, so hide that section $(containerId + " .lmdgurps_skill_section_one").hide(); } if (($(containerId + " .dsf_skill_two_00").length == 0)) { //No skills, so hide that section $(containerId + " .lmdgurps_skill_section_two").hide(); } if (($(containerId + " .dsf_gear_one_00").length == 0)) { //No gear, so hide that section $(containerId + " .lmdgurps_gear_section_one").hide(); } if (($(containerId + " .dsf_gear_two_00").length == 0)) { //No gear, so hide that section $(containerId + " .lmdgurps_gear_section_two").hide(); } if (($(containerId + " .dsf_armor_name_00").length == 0)) { //No armor, so hide that section $(containerId + " .lmdgurps_armor_section").hide(); } if (($(containerId + " .dsf_melee_attack_name_00").length == 0)) { //No melee attacks, so hide that section $(containerId + " .lmdgurps_melee_section").hide(); } if (($(containerId + " .dsf_ranged_attack_name_00").length == 0)) { //No ranged attacks, so hide that section $(containerId + " .lmdgurps_ranged_section").hide(); } if (($(containerId + " .dsf_traits").text().length <= 2)) { //No traits, so hide that section $(containerId + " .lmdgurps_traits_section").hide(); } if (($(containerId + " .dsf_desc").text().length <= 2)) { //No description, so hide that section $(containerId + " .lmdgurps_description_section").hide(); } if (($(containerId + " .dsf_bio").text().length <= 2)) { //No biography, so hide that section $(containerId + " .lmdgurps_bio_section").hide(); } if (($(containerId + " .dsf_secondary_move_one").text().length <= 2)) { //No secondary move type, so hide that section $(containerId + " .lmdgurps_secondary_move_one").hide(); $(containerId + " .lmdgurps_secondary_move_two").hide(); $(containerId + " .lmdgurps_secondary_move_three").hide(); } } lmdgurps_update_inputbox(); } // Called immediately before the sheet's data is saved function lmdgurps_dataPreSave(opts){ // Set additional options opts['context'] = document.getElementById(opts['containerId']); //lmdgurps_unconvertPips(opts); //lmdgurps_unconvertChecks(opts); lmdgurps_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('.lmdgurps_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 lmdgurps_update_inputbox() { var multiple = 24; $(lmdgurps_context).find('table').filter('[class*="table_row"]').each(function(){ if($(this).innerHeight() > 20){ $(this).removeAttr('height'); $(this).css({height: "" });; } }); $(lmdgurps_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)); } } }); } ////////////////////////////////////////////// // Encumbrance Highlight :: Credit to Langy // ////////////////////////////////////////////// function lmdgurps_highlight(sClass,ignoreEditable){ if(ignoreEditable > 0){ if($("." + sClass + ".lmdgurps_highlight").length > 0){ $(".dsf_encumbrance_level").text(""); $('[class*="lmdgurps_highlight"]').removeClass("lmdgurps_highlight"); } else{ $(".dsf_encumbrance_level").text(sClass); $('[class*="lmdgurps_highlight"]').removeClass("lmdgurps_highlight"); $('[class*="' + sClass + '"]').addClass("lmdgurps_highlight"); } } else if($(".editable").length > 0){ if($("." + sClass + ".lmdgurps_highlight").length > 0){ $(".dsf_encumbrance_level").text(""); $('[class*="lmdgurps_highlight"]').removeClass("lmdgurps_highlight"); } else{ $(".dsf_encumbrance_level").text(sClass); $('[class*="lmdgurps_highlight"]').removeClass("lmdgurps_highlight"); $('[class*="' + sClass + '"]').addClass("lmdgurps_highlight"); } } } ///////////////////////////////////////////////////// // Text Area Edit Control :: Credit to ChainsawXIV // ///////////////////////////////////////////////////// // Core Textarea Class function lmdgurps_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 = lmdgurps_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')) + 0; var sClasses = this.getAttribute('areaClasses'); // Convert content into form with button //this.innerHTML = '<textarea class=lmdgurps_textarea "' + sClasses + '" style="width:' + iWidth + 'px;height:' + iHeight + 'px;">' + sText + '</textarea>'; this.innerHTML = '<textarea class=lmdgurps_textarea "' + sClasses + '" style="min-width:' + iWidth + 'px;min-height:' + iHeight + 'px;">' + sText + '</textarea>'; //this.innerHTML += '<button class="submit_button area_submit" onClick="this.parentNode.submit();"><div class="area_submit_text">✓</div></button>'; // Set the user's focus to the textarea and set it to save on loss-of-focus //var focusRef = function(){oElement.getElementsByTagName('textarea')[0].focus();}; var focusRef = function(){$('.lmdgurps_textarea').focus();}; var submitRef = function(){$('.lmdgurps_textarea').parent().submit();}; var unfocusRef = function(){$('.lmdgurps_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 lmdgurps_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 = lmdgurps_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 lmdgurps_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 = ''; } } } ////////////////////////////////////////////////////////////////////////////////// // List Interface Control :: Credit to ChainsawXIV / Massively altered by Langy // ////////////////////////////////////////////////////////////////////////////////// // Applies a bunch of list functionality to the specified element function lmdgurps_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-persistant 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 dissacoiated 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++){ //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)]; 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; }); /* for (var n = 0; n < this.fields().length; n++){ //oData[i][n] = this.rows()[i].getElementsByTagName('span')[n].innerHTML; oData[i][n] = $(this.rows()[i].getElementsByTagName('span')[n]).text(); }*/ } // 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 = this.fields()[x].className.replace(/dsf_[\w\d]+/,sClass.substring(0,sClass.length - 2)); 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 + '_listDetails_viewer').click(this.toggleDetails); $(this).find('.' + slug + '_listDetailsNoPointer').click(this.toggleDetails); /* // Look through all the anchor elements in the list and activate by class name var aButtons = this.getElementsByTagName('a'); for (var y = 0; y < aButtons.length;y++){ if(aButtons[y].className.match(/listDelete/)) aButtons[y].onclick = this.deleteItem; //else if(aButtons[y].className.match(/listPromote/)) aButtons[y].onclick = this.promoteItem; else if(aButtons[y].className.match(/listDemote/)) aButtons[y].onclick = this.demoteItem; else if(aButtons[y].className.match(/listSubheader/)) aButtons[y].onclick = this.toggleSubheader; else if(aButtons[y].className.match(/listSpecial/)) aButtons[y].onclick = this.toggleSpecial; else if(aButtons[y].className.match(/listDetails/)) if($('.editable')){ if (!aButtons[y].className.match(/listDetails_viewer/)) aButtons[y].onclick = this.toggleDetails; } else { aButtons[y].onclick = this.toggleDetails; } else if(aButtons[y].className.match(/listDetailsNoPointer/)) aButtons[y].onclick = this.toggleDetails; } */ } // Hide them if not else{ $(this).find('.' + slug + '_listDetails_viewer').click(this.toggleDetails); $(this).find('.' + slug + '_listDetailsNoPointer').click(this.toggleDetails); /* // Look through all the anchor elements in the list and activate by class name var aButtons = this.getElementsByTagName('a'); for (var y = 0; y < aButtons.length;y++){ if(aButtons[y].className.match(/listDetails_view/)) aButtons[y].onclick = this.toggleDetails; else if(aButtons[y].className.match(/listDetailsNoPointer/)) aButtons[y].onclick = this.toggleDetails; } // Look through all the anchor elements in the list and hide by class name var oContext = document.getElementById(this.getAttribute('optsContainerId')); if (oContext) var aButtons = oContext.getElementsByTagName('a'); else{ this.error(2,'No context specified in options for list element (Element Class: ' + this.className + ')'); var aButtons = document.getElementsByTagName('a'); } for (var y = 0; y < aButtons.length; y++){ if(aButtons[y].className.match(/interface/)) aButtons[y].style.display = 'none'; } //Look through td elements and remove if interface if (oContext) var tdInterface = oContext.getElementsByTagName('td'); else{ this.error(2,'No context specified in options for list element (Element Class: ' + this.className + ')'); var aButtons = document.getElementsByTagName('td'); } for (var y = 0; y < tdInterface.length; y++){ if(tdInterface[y].className.match(/interface/)) tdInterface[y].style.display = 'none'; } */ } //Show skill subheaders $(this).find('[class*="subheader_on_"]').each(function(index,element) { if($(element).text() === "1"){ $(element).siblings(".lmdgurps_subheader").show(); } }); //Show special $(this).find('[class*="special_on_"]').each(function(index,element) { if($(element).text() === "1"){ $(element).siblings(".lmdgurps_table_row").addClass("lmdgurps_table_special"); } }); /* //Show popup $(this).find('[class*="popup_on_"]').each(function(index,element) { if($(element).text() === "1"){ $(element).siblings(".lmdgurps_popup").show(); } }); */ //Show details notifier $(this).find('[class="lmdgurps_details_parent"]').each(function(index,element){ if($(element).find('.lmdgurps_details').text().length >= 2){ if($(element).find('.lmdgurps_details').text() != aisleten.characters.jeditablePlaceholder){ $(element).find('.lmdgurps_details_notifier').text('†'); $(element).find('.lmdgurps_listDetails_viewer').addClass('lmdgurps_listDetails_view'); $(element).find('.lmdgurps_listDetails_viewer').removeClass('lmdgurps_listDetails_viewer'); } } }); // Triger the list's onUpdate event //this.onUpdate(); }; // Adds a blank element to the list oElement.addItem = function(){ /* // Get the latest data from the list this.parseData(); // Add a new row to the data, full of blank values var aRow = new Array(); for (var i = 0; i < this.fields().length; i++){ aRow[i] = ''; } this.data[this.data.length] = aRow; this.data.length++; // Re-render the list this.render(); */ 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); //$(this).find('.' + slug + '_listDetails_viewer').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 = 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; lmdgurps_convertAreas(opts); }; // Deletes the specified element from the list oElement.deleteItem = 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; } //console.log(oItem,lList); //if (oItem.parentNode.className.match(/list/)) var lList = oItem.parentNode; //else var lList = oItem.parentNode.parentNode; // Stop here if we're editing things //if (oItem.innerHTML.match(/input/)) return; // Delete the item from the DOM var oPlease = oItem.parentNode.removeChild(oItem); // Refresh the list to renew numbering lList.parseData(); lList.render(); */ 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('.lmdgurps_subheader_toggle').text() === "1") { $(oItem).find('.lmdgurps_subheader_toggle').text(aisleten.characters.jeditablePlaceholder); $(oItem).find(".lmdgurps_subheader").hide(); } else { $(oItem).find('.lmdgurps_subheader_toggle').text("1"); $(oItem).find(".lmdgurps_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('.lmdgurps_special_toggle').text() === "1") { $(oItem).find('.lmdgurps_special_toggle').text(aisleten.characters.jeditablePlaceholder); //Hide special $(oItem).find(".lmdgurps_table_row").removeClass("lmdgurps_table_special"); } else { $(oItem).find('.lmdgurps_special_toggle').text("1"); //Show special $(oItem).find(".lmdgurps_table_row").addClass("lmdgurps_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('.lmdgurps_details_parent').find('.lmdgurps_details').text().length >= 2) { if ($(this).closest('.lmdgurps_details_parent').find('.lmdgurps_details').text() != aisleten.characters.jeditablePlaceholder){ if($(oItem).find('.lmdgurps_pop_toggle').text() === "1") { $(oItem).find('.lmdgurps_pop_toggle').text(aisleten.characters.jeditablePlaceholder); //Hide popup $(oItem).find('.lmdgurps_popup').hide() } else { $(oItem).find('.lmdgurps_pop_toggle').text("1"); //Show popup $(oItem).find('.lmdgurps_popup').show(); } } } } else{ if($(oItem).find('.lmdgurps_pop_toggle').text() === "1") { $(oItem).find('.lmdgurps_pop_toggle').text(aisleten.characters.jeditablePlaceholder); //Hide popup $(oItem).find('.lmdgurps_popup').hide() } else { $(oItem).find('.lmdgurps_pop_toggle').text("1"); //Show popup $(oItem).find('.lmdgurps_popup').show(); } } var element = $(this).parents('.list_element'); //Show details notifier if(element.find('.lmdgurps_details').text().length >= 2){ if($(element).find('.lmdgurps_details').text() != aisleten.characters.jeditablePlaceholder){ $(element).find('.lmdgurps_details_notifier').text('†'); $(element).find('.lmdgurps_listDetails_viewer').addClass('lmdgurps_listDetails_view'); $(element).find('.lmdgurps_listDetails_viewer').removeClass('lmdgurps_listDetails_viewer'); } } }; // Moves the specified element up the list one place oElement.promoteItem = 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; } // Stop here if we're editing things //if (oItem.innerHTML.match(/input/)) return; // Get the latest data from the list lList.parseData(); // Figure out what row number was clicked var sFieldClass = oItem.getElementsByTagName('span')[0].className.match(/dsf_[\w\d]+/)[0]; var sIndexString = sFieldClass.substring(sFieldClass.length - 2).replace(/^[0]+/,''); var iIndex = parseInt(sIndexString); // Stop right here if the clicked item is already at the top if (iIndex == 0) return; if (isNaN(iIndex)) return; // Swap the row data with the one above it var aRowA = lList.data[iIndex]; var aRowB = lList.data[iIndex - 1]; lList.data[iIndex] = aRowB; lList.data[iIndex - 1] = aRowA; // Re-render the data lList.render(); */ 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(){ /* // 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; } // Stop here if we're editing things //if (oItem.innerHTML.match(/input/)) return; // Get the latest data from the list lList.parseData(); // Figure out what row number was clicked var sFieldClass = oItem.getElementsByTagName('span')[0].className.match(/dsf_[\w\d]+/)[0]; var sIndexString = sFieldClass.substring(sFieldClass.length - 2).replace(/^[0]+/,''); var iIndex = parseInt(sIndexString,10); // Stop right here if the clicked item is alreayd on the bottom if (iIndex == (lList.data.length - 1)) return; if (isNaN(iIndex)) iIndex = 0; //console.log(iIndex); // Swap the row data with the one below it var aRowA = lList.data[iIndex]; var aRowB = lList.data[iIndex + 1]; //console.log(aRowA,aRowB); lList.data[iIndex] = aRowB; lList.data[iIndex + 1] = aRowA; // Re-render the data lList.render(); */ 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; //name = name.substring(name.indexOf("dsf_") + 4).split(/\s+/)[0]; for (var i = 0; i < lList.length; i++){ listFields = $(lList[i]).find(".dsf"); /* name = listFields[0].className.substring(listFields[0].className.indexOf("dsf_") + 4).split(/\s+/)[0]; if(i >= 100){ numDigits = 3; } else if(i >= 1000){ numDigits = 4; } index = name.substring(name.length - numDigits); */ 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, typicaly overriden oElement.onUpdate = function(){ } // Return the origenal element now that it's fully equipped return oElement; } // Converts all properly classed divs in the context to lists function lmdgurps_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 = lmdgurps_list(aDivs[i],opts); // Populate the list from the data variable lTemp.loadData(); lTemp.render(); // Assign the onUpdate function lTemp.onUpdate = function(){ //lmdgurps_convertPips(opts); //lmdgurps_convertChecks(opts); //lmdgurps_convertTips(opts); lmdgurps_convertAreas(opts); aisleten.characters.bindAllFields(opts['slug'],opts['containerId']); //dst_devkit.bindDynamicAttributes(); } } } } } //////////////////////////////////////////////////////// // General Utility Functions :: Credit to ChainsawXIV // //////////////////////////////////////////////////////// // Gets an array of elements with a particular class from the context function lmdgurps_getElementsByClassName(sClassName,sElementType){ // Provide default element type if (!sElementType) sElementType = 'div'; var aList = new Array(); var aDivs = lmdgurps_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
I'm sorry, but we no longer support this web browser. Please
upgrade your browser
or install
Chrome
or
Firefox
to enjoy the full functionality of this site.