├── .gitignore ├── states.json ├── img ├── del-active.png └── del-not-active.png ├── fonts ├── FontAwesome.otf ├── fontawesome-webfont.eot ├── fontawesome-webfont.ttf ├── fontawesome-webfont.woff ├── fontawesome-webfont.woff2 ├── glyphicons-halflings-regular.woff └── glyphicons-halflings-regular.woff2 ├── images ├── goal_unknown.png ├── focus_jap_zero.png ├── focus_research.png ├── focus_research2.png ├── focus_rocketry.png ├── focus_rom_coup.png ├── focus_yug_zmaj.png ├── goal_anschluss.png ├── goal_rhineland.png ├── focus_prc_maoism.png ├── focus_yug_ikarus.png ├── goal_generic_CAS.png ├── goal_poland_goal.png ├── focus_AST_war_japan.png ├── focus_generic_china1.png ├── focus_generic_rubber.png ├── focus_generic_steel.png ├── focus_generic_treaty.png ├── focus_jap_zaibatsu.png ├── focus_rom_abdicate.png ├── focus_wonderweapons.png ├── focus_yug_rogozarski.png ├── goal_generic_cavalry.png ├── goal_generic_defence.png ├── goal_generic_radar.png ├── goal_generic_trade.png ├── goal_tripartite_pact.png ├── focus_AST_rats_tobruk.png ├── focus_AST_squander_bug.png ├── focus_SAF_german_coup.png ├── focus_chi_army_reform.png ├── focus_chi_united_front.png ├── focus_generic_aluminum.png ├── focus_generic_tungsten.png ├── focus_hun_elect_a_king.png ├── focus_jap_cast_the_die.png ├── focus_jap_strike_south.png ├── focus_prc_infiltration.png ├── focus_rom_handle_king.png ├── focus_rom_parties_end.png ├── goal_generic_alliance.png ├── goal_generic_build_nay.png ├── goal_generic_major_war.png ├── goal_generic_wolf_pack.png ├── focus_AST_never_gallipoli.png ├── focus_NZL_bob_semple_tank.png ├── focus_RAJ_indian_gurkhas.png ├── focus_SAF_secure_africa.png ├── focus_chi_flying_tigers.png ├── focus_cze_german_puppet.png ├── focus_generic_air_defense.png ├── focus_generic_concessions.png ├── focus_generic_italy_first.png ├── focus_generic_paratrooper.png ├── focus_generic_polish_deal.png ├── focus_ger_oppose_hitler.png ├── focus_secret_rearmament.png ├── goal_anti_comintern_pact.png ├── goal_continuous_research.png ├── goal_demand_sudetenland.png ├── goal_generic_air_bomber.png ├── goal_generic_air_doctrine.png ├── goal_generic_air_fighter.png ├── goal_generic_air_fighter2.png ├── goal_generic_army_tanks.png ├── goal_generic_build_tank.png ├── goal_generic_construction.png ├── goal_generic_fortify_city.png ├── goal_generic_navy_carrier.png ├── goal_generic_navy_cruiser.png ├── goal_generic_oil_refinery.png ├── goal_generic_production.png ├── goal_generic_production2.png ├── goal_generic_propaganda.png ├── goal_generic_small_arms.png ├── goal_support_fourth_int.png ├── goal_tfv_smiling_buddha.png ├── focus_RAJ_british_investors.png ├── focus_RAJ_two_nation_theory.png ├── focus_chi_examination_yuan.png ├── focus_chi_legislative_yuan.png ├── focus_chi_mission_to_the_us.png ├── focus_chi_one_china_policy.png ├── focus_generic_coastal_fort.png ├── focus_generic_home_defense.png ├── focus_ger_great_red_menace.png ├── focus_jap_pacific_guardian.png ├── focus_jap_showa_restoration.png ├── focus_prc_social_democracy.png ├── focus_rom_preserve_romania.png ├── goal_continuous_increase_nu.png ├── goal_continuous_repairments.png ├── goal_continuous_suppression.png ├── goal_generic_air_production.png ├── goal_generic_army_artillery.png ├── goal_generic_army_doctrines.png ├── goal_generic_army_motorized.png ├── goal_generic_attack_allies.png ├── goal_generic_build_airforce.png ├── goal_generic_construction2.png ├── goal_generic_consumer_goods.png ├── goal_generic_dangerous_deal.png ├── goal_generic_major_alliance.png ├── goal_generic_military_deal.png ├── goal_generic_national_unity.png ├── goal_generic_navy_submarine.png ├── goal_generic_secret_weapon.png ├── goal_generic_special_forces.png ├── goal_tfv_sever_ties_with_uk.png ├── focus_SAF_colonialist_crusade.png ├── focus_chi_british_cooperation.png ├── focus_chi_mission_to_germany.png ├── focus_chi_reach_out_to_france.png ├── focus_generic_cryptologic_bomb.png ├── focus_generic_join_comintern.png ├── focus_generic_little_entente.png ├── focus_generic_military_academy.png ├── focus_generic_military_mission.png ├── focus_generic_self_management.png ├── focus_generic_soviet_politics.png ├── focus_generic_the_giant_wakes.png ├── focus_ger_reichskommisariats.png ├── focus_ger_return_of_the_kaiser.png ├── focus_ger_revive_kaiserreich.png ├── focus_ger_strike_at_the_source.png ├── focus_hun_assassinate_horthy.png ├── focus_jap_manchurian_project.png ├── focus_prc_agrarian_socialism.png ├── focus_rom_royal_dictatorship.png ├── focus_yug_banovina_of_croatia.png ├── focus_yug_pan_slavic_congress.png ├── goal_continuous_air_production.png ├── goal_continuous_boost_freedom.png ├── goal_generic_air_naval_bomber.png ├── goal_generic_army_artillery2.png ├── goal_generic_demand_territory.png ├── goal_generic_forceful_treaty.png ├── goal_generic_improve_relations.png ├── goal_generic_military_sphere.png ├── goal_generic_navy_battleship.png ├── goal_generic_neutrality_focus.png ├── goal_generic_occypy_start_war.png ├── goal_generic_position_armies.png ├── goal_generic_support_communism.png ├── goal_generic_support_democracy.png ├── goal_generic_support_fascism.png ├── goal_generic_territory_or_war.png ├── goal_molotov_ribbentrop_pact.png ├── goal_tfv_generic_tech_sharing.png ├── focus_RAJ_all_india_forward_bloc.png ├── focus_RAJ_indianisation_of_army.png ├── focus_RAJ_lions_of_the_great_war.png ├── focus_RAJ_seek_help_from_germany.png ├── focus_RAJ_seek_help_from_soviet.png ├── focus_SAF_support_ossewabrandwag.png ├── focus_generic_diplomatic_treaty.png ├── focus_generic_license_production.png ├── focus_generic_socialist_science.png ├── focus_ger_assassinate_mussolini.png ├── focus_jap_spiritual_mobilization.png ├── focus_prc_remove_chiang_kai_shek.png ├── goal_continuous_armor_production.png ├── goal_continuous_naval_production.png ├── goal_continuous_restrict_freedom.png ├── goal_generic_amphibious_assault.png ├── goal_generic_axis_build_infantry.png ├── goal_generic_construct_civilian.png ├── goal_generic_construct_military.png ├── goal_generic_navy_anti_submarine.png ├── goal_generic_political_pressure.png ├── goal_generic_scientific_exchange.png ├── goal_generic_soviet_construction.png ├── goal_generic_war_with_comintern.png ├── focus_RAJ_clamp_down_on_corruption.png ├── focus_RAJ_indian_gentlemen_offcers.png ├── focus_chi_proclaim_rival_government.png ├── focus_chi_whampoa_military_academy.png ├── focus_generic_strike_at_democracy1.png ├── focus_generic_strike_at_democracy2.png ├── focus_generic_strike_at_democracy3.png ├── goal_generic_allies_build_infantry.png ├── goal_generic_construct_civ_factory.png ├── goal_generic_construct_mil_factory.png ├── goal_generic_intelligence_exchange.png ├── goal_generic_navy_doctrines_tactics.png ├── goal_generic_occypy_states_coastal.png ├── goal_tfv_burn_the_royal_portraits.png ├── goal_tfv_can_compromise_with_quebec.png ├── focus_chi_mission_to_the_soviet_union.png ├── focus_cze_military_research_institute.png ├── focus_generic_anti_fascist_diplomacy.png ├── focus_generic_japanese_imperial_glory.png ├── focus_generic_provoke_border_clashes.png ├── focus_generic_support_the_left_right.png ├── focus_ger_bulwark_against_bolshevism.png ├── focus_man_claim_the_mandate_of_heaven.png ├── focus_renounce_the_treaty_of_triannon.png ├── goal_continuous_def_against_influence.png ├── goal_continuous_non_factory_construct.png ├── goal_continuous_reduce_training_time.png ├── goal_generic_construct_infrastructure.png ├── goal_generic_construct_naval_dockyard.png ├── goal_generic_more_territorial_claims.png ├── goal_generic_positive_trade_relations.png ├── goal_tfv_strengthen_commonwealth_ties.png ├── focus_ger_accept_british_naval_dominance.png ├── focus_prc_proclaim_the_peoples_republic.png ├── goal_generic_occypy_states_ongoing_war.png ├── goal_tfv_can_forced_quebec_conscription.png ├── focus_chi_collaboration_with_the_japanese.png ├── focus_chi_cooperation_with_the_communists.png ├── focus_cze_military_aeronautical_institute.png ├── focus_generic_commonwealth_build_infantry.png ├── focus_chi_cooperation_with_the_nationalists.png ├── focus_ger_break_anglo_french_colonial_hegemony.png └── focus_proclaim_the_restauration_of_austria_hungary.png ├── search_outputs.php ├── test.php ├── README.md ├── import.php ├── upload.php ├── tags.json ├── css ├── icon-font.min.css ├── style.css └── font-awesome.css ├── js ├── tree-to-json.js ├── ui-elements.js └── script.js ├── zip.php └── index.php /.gitignore: -------------------------------------------------------------------------------- 1 | php/* 2 | 3 | 4 | -------------------------------------------------------------------------------- /states.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/states.json -------------------------------------------------------------------------------- /img/del-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/img/del-active.png -------------------------------------------------------------------------------- /fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /images/goal_unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_unknown.png -------------------------------------------------------------------------------- /img/del-not-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/img/del-not-active.png -------------------------------------------------------------------------------- /images/focus_jap_zero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_jap_zero.png -------------------------------------------------------------------------------- /images/focus_research.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_research.png -------------------------------------------------------------------------------- /images/focus_research2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_research2.png -------------------------------------------------------------------------------- /images/focus_rocketry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_rocketry.png -------------------------------------------------------------------------------- /images/focus_rom_coup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_rom_coup.png -------------------------------------------------------------------------------- /images/focus_yug_zmaj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_yug_zmaj.png -------------------------------------------------------------------------------- /images/goal_anschluss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_anschluss.png -------------------------------------------------------------------------------- /images/goal_rhineland.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_rhineland.png -------------------------------------------------------------------------------- /images/focus_prc_maoism.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_prc_maoism.png -------------------------------------------------------------------------------- /images/focus_yug_ikarus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_yug_ikarus.png -------------------------------------------------------------------------------- /images/goal_generic_CAS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_CAS.png -------------------------------------------------------------------------------- /images/goal_poland_goal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_poland_goal.png -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /images/focus_AST_war_japan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_AST_war_japan.png -------------------------------------------------------------------------------- /images/focus_generic_china1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_china1.png -------------------------------------------------------------------------------- /images/focus_generic_rubber.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_rubber.png -------------------------------------------------------------------------------- /images/focus_generic_steel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_steel.png -------------------------------------------------------------------------------- /images/focus_generic_treaty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_treaty.png -------------------------------------------------------------------------------- /images/focus_jap_zaibatsu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_jap_zaibatsu.png -------------------------------------------------------------------------------- /images/focus_rom_abdicate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_rom_abdicate.png -------------------------------------------------------------------------------- /images/focus_wonderweapons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_wonderweapons.png -------------------------------------------------------------------------------- /images/focus_yug_rogozarski.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_yug_rogozarski.png -------------------------------------------------------------------------------- /images/goal_generic_cavalry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_cavalry.png -------------------------------------------------------------------------------- /images/goal_generic_defence.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_defence.png -------------------------------------------------------------------------------- /images/goal_generic_radar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_radar.png -------------------------------------------------------------------------------- /images/goal_generic_trade.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_trade.png -------------------------------------------------------------------------------- /images/goal_tripartite_pact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_tripartite_pact.png -------------------------------------------------------------------------------- /images/focus_AST_rats_tobruk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_AST_rats_tobruk.png -------------------------------------------------------------------------------- /images/focus_AST_squander_bug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_AST_squander_bug.png -------------------------------------------------------------------------------- /images/focus_SAF_german_coup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_SAF_german_coup.png -------------------------------------------------------------------------------- /images/focus_chi_army_reform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_chi_army_reform.png -------------------------------------------------------------------------------- /images/focus_chi_united_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_chi_united_front.png -------------------------------------------------------------------------------- /images/focus_generic_aluminum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_aluminum.png -------------------------------------------------------------------------------- /images/focus_generic_tungsten.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_tungsten.png -------------------------------------------------------------------------------- /images/focus_hun_elect_a_king.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_hun_elect_a_king.png -------------------------------------------------------------------------------- /images/focus_jap_cast_the_die.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_jap_cast_the_die.png -------------------------------------------------------------------------------- /images/focus_jap_strike_south.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_jap_strike_south.png -------------------------------------------------------------------------------- /images/focus_prc_infiltration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_prc_infiltration.png -------------------------------------------------------------------------------- /images/focus_rom_handle_king.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_rom_handle_king.png -------------------------------------------------------------------------------- /images/focus_rom_parties_end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_rom_parties_end.png -------------------------------------------------------------------------------- /images/goal_generic_alliance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_alliance.png -------------------------------------------------------------------------------- /images/goal_generic_build_nay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_build_nay.png -------------------------------------------------------------------------------- /images/goal_generic_major_war.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_major_war.png -------------------------------------------------------------------------------- /images/goal_generic_wolf_pack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_wolf_pack.png -------------------------------------------------------------------------------- /images/focus_AST_never_gallipoli.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_AST_never_gallipoli.png -------------------------------------------------------------------------------- /images/focus_NZL_bob_semple_tank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_NZL_bob_semple_tank.png -------------------------------------------------------------------------------- /images/focus_RAJ_indian_gurkhas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_RAJ_indian_gurkhas.png -------------------------------------------------------------------------------- /images/focus_SAF_secure_africa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_SAF_secure_africa.png -------------------------------------------------------------------------------- /images/focus_chi_flying_tigers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_chi_flying_tigers.png -------------------------------------------------------------------------------- /images/focus_cze_german_puppet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_cze_german_puppet.png -------------------------------------------------------------------------------- /images/focus_generic_air_defense.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_air_defense.png -------------------------------------------------------------------------------- /images/focus_generic_concessions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_concessions.png -------------------------------------------------------------------------------- /images/focus_generic_italy_first.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_italy_first.png -------------------------------------------------------------------------------- /images/focus_generic_paratrooper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_paratrooper.png -------------------------------------------------------------------------------- /images/focus_generic_polish_deal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_polish_deal.png -------------------------------------------------------------------------------- /images/focus_ger_oppose_hitler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_ger_oppose_hitler.png -------------------------------------------------------------------------------- /images/focus_secret_rearmament.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_secret_rearmament.png -------------------------------------------------------------------------------- /images/goal_anti_comintern_pact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_anti_comintern_pact.png -------------------------------------------------------------------------------- /images/goal_continuous_research.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_continuous_research.png -------------------------------------------------------------------------------- /images/goal_demand_sudetenland.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_demand_sudetenland.png -------------------------------------------------------------------------------- /images/goal_generic_air_bomber.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_air_bomber.png -------------------------------------------------------------------------------- /images/goal_generic_air_doctrine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_air_doctrine.png -------------------------------------------------------------------------------- /images/goal_generic_air_fighter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_air_fighter.png -------------------------------------------------------------------------------- /images/goal_generic_air_fighter2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_air_fighter2.png -------------------------------------------------------------------------------- /images/goal_generic_army_tanks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_army_tanks.png -------------------------------------------------------------------------------- /images/goal_generic_build_tank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_build_tank.png -------------------------------------------------------------------------------- /images/goal_generic_construction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_construction.png -------------------------------------------------------------------------------- /images/goal_generic_fortify_city.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_fortify_city.png -------------------------------------------------------------------------------- /images/goal_generic_navy_carrier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_navy_carrier.png -------------------------------------------------------------------------------- /images/goal_generic_navy_cruiser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_navy_cruiser.png -------------------------------------------------------------------------------- /images/goal_generic_oil_refinery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_oil_refinery.png -------------------------------------------------------------------------------- /images/goal_generic_production.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_production.png -------------------------------------------------------------------------------- /images/goal_generic_production2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_production2.png -------------------------------------------------------------------------------- /images/goal_generic_propaganda.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_propaganda.png -------------------------------------------------------------------------------- /images/goal_generic_small_arms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_small_arms.png -------------------------------------------------------------------------------- /images/goal_support_fourth_int.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_support_fourth_int.png -------------------------------------------------------------------------------- /images/goal_tfv_smiling_buddha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_tfv_smiling_buddha.png -------------------------------------------------------------------------------- /images/focus_RAJ_british_investors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_RAJ_british_investors.png -------------------------------------------------------------------------------- /images/focus_RAJ_two_nation_theory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_RAJ_two_nation_theory.png -------------------------------------------------------------------------------- /images/focus_chi_examination_yuan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_chi_examination_yuan.png -------------------------------------------------------------------------------- /images/focus_chi_legislative_yuan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_chi_legislative_yuan.png -------------------------------------------------------------------------------- /images/focus_chi_mission_to_the_us.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_chi_mission_to_the_us.png -------------------------------------------------------------------------------- /images/focus_chi_one_china_policy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_chi_one_china_policy.png -------------------------------------------------------------------------------- /images/focus_generic_coastal_fort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_coastal_fort.png -------------------------------------------------------------------------------- /images/focus_generic_home_defense.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_home_defense.png -------------------------------------------------------------------------------- /images/focus_ger_great_red_menace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_ger_great_red_menace.png -------------------------------------------------------------------------------- /images/focus_jap_pacific_guardian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_jap_pacific_guardian.png -------------------------------------------------------------------------------- /images/focus_jap_showa_restoration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_jap_showa_restoration.png -------------------------------------------------------------------------------- /images/focus_prc_social_democracy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_prc_social_democracy.png -------------------------------------------------------------------------------- /images/focus_rom_preserve_romania.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_rom_preserve_romania.png -------------------------------------------------------------------------------- /images/goal_continuous_increase_nu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_continuous_increase_nu.png -------------------------------------------------------------------------------- /images/goal_continuous_repairments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_continuous_repairments.png -------------------------------------------------------------------------------- /images/goal_continuous_suppression.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_continuous_suppression.png -------------------------------------------------------------------------------- /images/goal_generic_air_production.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_air_production.png -------------------------------------------------------------------------------- /images/goal_generic_army_artillery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_army_artillery.png -------------------------------------------------------------------------------- /images/goal_generic_army_doctrines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_army_doctrines.png -------------------------------------------------------------------------------- /images/goal_generic_army_motorized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_army_motorized.png -------------------------------------------------------------------------------- /images/goal_generic_attack_allies.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_attack_allies.png -------------------------------------------------------------------------------- /images/goal_generic_build_airforce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_build_airforce.png -------------------------------------------------------------------------------- /images/goal_generic_construction2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_construction2.png -------------------------------------------------------------------------------- /images/goal_generic_consumer_goods.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_consumer_goods.png -------------------------------------------------------------------------------- /images/goal_generic_dangerous_deal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_dangerous_deal.png -------------------------------------------------------------------------------- /images/goal_generic_major_alliance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_major_alliance.png -------------------------------------------------------------------------------- /images/goal_generic_military_deal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_military_deal.png -------------------------------------------------------------------------------- /images/goal_generic_national_unity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_national_unity.png -------------------------------------------------------------------------------- /images/goal_generic_navy_submarine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_navy_submarine.png -------------------------------------------------------------------------------- /images/goal_generic_secret_weapon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_secret_weapon.png -------------------------------------------------------------------------------- /images/goal_generic_special_forces.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_special_forces.png -------------------------------------------------------------------------------- /images/goal_tfv_sever_ties_with_uk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_tfv_sever_ties_with_uk.png -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /images/focus_SAF_colonialist_crusade.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_SAF_colonialist_crusade.png -------------------------------------------------------------------------------- /images/focus_chi_british_cooperation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_chi_british_cooperation.png -------------------------------------------------------------------------------- /images/focus_chi_mission_to_germany.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_chi_mission_to_germany.png -------------------------------------------------------------------------------- /images/focus_chi_reach_out_to_france.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_chi_reach_out_to_france.png -------------------------------------------------------------------------------- /images/focus_generic_cryptologic_bomb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_cryptologic_bomb.png -------------------------------------------------------------------------------- /images/focus_generic_join_comintern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_join_comintern.png -------------------------------------------------------------------------------- /images/focus_generic_little_entente.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_little_entente.png -------------------------------------------------------------------------------- /images/focus_generic_military_academy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_military_academy.png -------------------------------------------------------------------------------- /images/focus_generic_military_mission.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_military_mission.png -------------------------------------------------------------------------------- /images/focus_generic_self_management.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_self_management.png -------------------------------------------------------------------------------- /images/focus_generic_soviet_politics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_soviet_politics.png -------------------------------------------------------------------------------- /images/focus_generic_the_giant_wakes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_the_giant_wakes.png -------------------------------------------------------------------------------- /images/focus_ger_reichskommisariats.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_ger_reichskommisariats.png -------------------------------------------------------------------------------- /images/focus_ger_return_of_the_kaiser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_ger_return_of_the_kaiser.png -------------------------------------------------------------------------------- /images/focus_ger_revive_kaiserreich.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_ger_revive_kaiserreich.png -------------------------------------------------------------------------------- /images/focus_ger_strike_at_the_source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_ger_strike_at_the_source.png -------------------------------------------------------------------------------- /images/focus_hun_assassinate_horthy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_hun_assassinate_horthy.png -------------------------------------------------------------------------------- /images/focus_jap_manchurian_project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_jap_manchurian_project.png -------------------------------------------------------------------------------- /images/focus_prc_agrarian_socialism.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_prc_agrarian_socialism.png -------------------------------------------------------------------------------- /images/focus_rom_royal_dictatorship.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_rom_royal_dictatorship.png -------------------------------------------------------------------------------- /images/focus_yug_banovina_of_croatia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_yug_banovina_of_croatia.png -------------------------------------------------------------------------------- /images/focus_yug_pan_slavic_congress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_yug_pan_slavic_congress.png -------------------------------------------------------------------------------- /images/goal_continuous_air_production.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_continuous_air_production.png -------------------------------------------------------------------------------- /images/goal_continuous_boost_freedom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_continuous_boost_freedom.png -------------------------------------------------------------------------------- /images/goal_generic_air_naval_bomber.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_air_naval_bomber.png -------------------------------------------------------------------------------- /images/goal_generic_army_artillery2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_army_artillery2.png -------------------------------------------------------------------------------- /images/goal_generic_demand_territory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_demand_territory.png -------------------------------------------------------------------------------- /images/goal_generic_forceful_treaty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_forceful_treaty.png -------------------------------------------------------------------------------- /images/goal_generic_improve_relations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_improve_relations.png -------------------------------------------------------------------------------- /images/goal_generic_military_sphere.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_military_sphere.png -------------------------------------------------------------------------------- /images/goal_generic_navy_battleship.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_navy_battleship.png -------------------------------------------------------------------------------- /images/goal_generic_neutrality_focus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_neutrality_focus.png -------------------------------------------------------------------------------- /images/goal_generic_occypy_start_war.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_occypy_start_war.png -------------------------------------------------------------------------------- /images/goal_generic_position_armies.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_position_armies.png -------------------------------------------------------------------------------- /images/goal_generic_support_communism.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_support_communism.png -------------------------------------------------------------------------------- /images/goal_generic_support_democracy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_support_democracy.png -------------------------------------------------------------------------------- /images/goal_generic_support_fascism.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_support_fascism.png -------------------------------------------------------------------------------- /images/goal_generic_territory_or_war.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_territory_or_war.png -------------------------------------------------------------------------------- /images/goal_molotov_ribbentrop_pact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_molotov_ribbentrop_pact.png -------------------------------------------------------------------------------- /images/goal_tfv_generic_tech_sharing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_tfv_generic_tech_sharing.png -------------------------------------------------------------------------------- /images/focus_RAJ_all_india_forward_bloc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_RAJ_all_india_forward_bloc.png -------------------------------------------------------------------------------- /images/focus_RAJ_indianisation_of_army.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_RAJ_indianisation_of_army.png -------------------------------------------------------------------------------- /images/focus_RAJ_lions_of_the_great_war.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_RAJ_lions_of_the_great_war.png -------------------------------------------------------------------------------- /images/focus_RAJ_seek_help_from_germany.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_RAJ_seek_help_from_germany.png -------------------------------------------------------------------------------- /images/focus_RAJ_seek_help_from_soviet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_RAJ_seek_help_from_soviet.png -------------------------------------------------------------------------------- /images/focus_SAF_support_ossewabrandwag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_SAF_support_ossewabrandwag.png -------------------------------------------------------------------------------- /images/focus_generic_diplomatic_treaty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_diplomatic_treaty.png -------------------------------------------------------------------------------- /images/focus_generic_license_production.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_license_production.png -------------------------------------------------------------------------------- /images/focus_generic_socialist_science.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_socialist_science.png -------------------------------------------------------------------------------- /images/focus_ger_assassinate_mussolini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_ger_assassinate_mussolini.png -------------------------------------------------------------------------------- /images/focus_jap_spiritual_mobilization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_jap_spiritual_mobilization.png -------------------------------------------------------------------------------- /images/focus_prc_remove_chiang_kai_shek.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_prc_remove_chiang_kai_shek.png -------------------------------------------------------------------------------- /images/goal_continuous_armor_production.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_continuous_armor_production.png -------------------------------------------------------------------------------- /images/goal_continuous_naval_production.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_continuous_naval_production.png -------------------------------------------------------------------------------- /images/goal_continuous_restrict_freedom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_continuous_restrict_freedom.png -------------------------------------------------------------------------------- /images/goal_generic_amphibious_assault.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_amphibious_assault.png -------------------------------------------------------------------------------- /images/goal_generic_axis_build_infantry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_axis_build_infantry.png -------------------------------------------------------------------------------- /images/goal_generic_construct_civilian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_construct_civilian.png -------------------------------------------------------------------------------- /images/goal_generic_construct_military.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_construct_military.png -------------------------------------------------------------------------------- /images/goal_generic_navy_anti_submarine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_navy_anti_submarine.png -------------------------------------------------------------------------------- /images/goal_generic_political_pressure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_political_pressure.png -------------------------------------------------------------------------------- /images/goal_generic_scientific_exchange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_scientific_exchange.png -------------------------------------------------------------------------------- /images/goal_generic_soviet_construction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_soviet_construction.png -------------------------------------------------------------------------------- /images/goal_generic_war_with_comintern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_war_with_comintern.png -------------------------------------------------------------------------------- /images/focus_RAJ_clamp_down_on_corruption.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_RAJ_clamp_down_on_corruption.png -------------------------------------------------------------------------------- /images/focus_RAJ_indian_gentlemen_offcers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_RAJ_indian_gentlemen_offcers.png -------------------------------------------------------------------------------- /images/focus_chi_proclaim_rival_government.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_chi_proclaim_rival_government.png -------------------------------------------------------------------------------- /images/focus_chi_whampoa_military_academy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_chi_whampoa_military_academy.png -------------------------------------------------------------------------------- /images/focus_generic_strike_at_democracy1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_strike_at_democracy1.png -------------------------------------------------------------------------------- /images/focus_generic_strike_at_democracy2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_strike_at_democracy2.png -------------------------------------------------------------------------------- /images/focus_generic_strike_at_democracy3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_strike_at_democracy3.png -------------------------------------------------------------------------------- /images/goal_generic_allies_build_infantry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_allies_build_infantry.png -------------------------------------------------------------------------------- /images/goal_generic_construct_civ_factory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_construct_civ_factory.png -------------------------------------------------------------------------------- /images/goal_generic_construct_mil_factory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_construct_mil_factory.png -------------------------------------------------------------------------------- /images/goal_generic_intelligence_exchange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_intelligence_exchange.png -------------------------------------------------------------------------------- /images/goal_generic_navy_doctrines_tactics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_navy_doctrines_tactics.png -------------------------------------------------------------------------------- /images/goal_generic_occypy_states_coastal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_occypy_states_coastal.png -------------------------------------------------------------------------------- /images/goal_tfv_burn_the_royal_portraits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_tfv_burn_the_royal_portraits.png -------------------------------------------------------------------------------- /images/goal_tfv_can_compromise_with_quebec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_tfv_can_compromise_with_quebec.png -------------------------------------------------------------------------------- /images/focus_chi_mission_to_the_soviet_union.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_chi_mission_to_the_soviet_union.png -------------------------------------------------------------------------------- /images/focus_cze_military_research_institute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_cze_military_research_institute.png -------------------------------------------------------------------------------- /images/focus_generic_anti_fascist_diplomacy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_anti_fascist_diplomacy.png -------------------------------------------------------------------------------- /images/focus_generic_japanese_imperial_glory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_japanese_imperial_glory.png -------------------------------------------------------------------------------- /images/focus_generic_provoke_border_clashes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_provoke_border_clashes.png -------------------------------------------------------------------------------- /images/focus_generic_support_the_left_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_support_the_left_right.png -------------------------------------------------------------------------------- /images/focus_ger_bulwark_against_bolshevism.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_ger_bulwark_against_bolshevism.png -------------------------------------------------------------------------------- /images/focus_man_claim_the_mandate_of_heaven.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_man_claim_the_mandate_of_heaven.png -------------------------------------------------------------------------------- /images/focus_renounce_the_treaty_of_triannon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_renounce_the_treaty_of_triannon.png -------------------------------------------------------------------------------- /images/goal_continuous_def_against_influence.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_continuous_def_against_influence.png -------------------------------------------------------------------------------- /images/goal_continuous_non_factory_construct.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_continuous_non_factory_construct.png -------------------------------------------------------------------------------- /images/goal_continuous_reduce_training_time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_continuous_reduce_training_time.png -------------------------------------------------------------------------------- /images/goal_generic_construct_infrastructure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_construct_infrastructure.png -------------------------------------------------------------------------------- /images/goal_generic_construct_naval_dockyard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_construct_naval_dockyard.png -------------------------------------------------------------------------------- /images/goal_generic_more_territorial_claims.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_more_territorial_claims.png -------------------------------------------------------------------------------- /images/goal_generic_positive_trade_relations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_positive_trade_relations.png -------------------------------------------------------------------------------- /images/goal_tfv_strengthen_commonwealth_ties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_tfv_strengthen_commonwealth_ties.png -------------------------------------------------------------------------------- /images/focus_ger_accept_british_naval_dominance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_ger_accept_british_naval_dominance.png -------------------------------------------------------------------------------- /images/focus_prc_proclaim_the_peoples_republic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_prc_proclaim_the_peoples_republic.png -------------------------------------------------------------------------------- /images/goal_generic_occypy_states_ongoing_war.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_generic_occypy_states_ongoing_war.png -------------------------------------------------------------------------------- /images/goal_tfv_can_forced_quebec_conscription.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/goal_tfv_can_forced_quebec_conscription.png -------------------------------------------------------------------------------- /images/focus_chi_collaboration_with_the_japanese.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_chi_collaboration_with_the_japanese.png -------------------------------------------------------------------------------- /images/focus_chi_cooperation_with_the_communists.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_chi_cooperation_with_the_communists.png -------------------------------------------------------------------------------- /images/focus_cze_military_aeronautical_institute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_cze_military_aeronautical_institute.png -------------------------------------------------------------------------------- /images/focus_generic_commonwealth_build_infantry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_generic_commonwealth_build_infantry.png -------------------------------------------------------------------------------- /images/focus_chi_cooperation_with_the_nationalists.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_chi_cooperation_with_the_nationalists.png -------------------------------------------------------------------------------- /images/focus_ger_break_anglo_french_colonial_hegemony.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_ger_break_anglo_french_colonial_hegemony.png -------------------------------------------------------------------------------- /images/focus_proclaim_the_restauration_of_austria_hungary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordsta95/hoi4-national-focus-maker/HEAD/images/focus_proclaim_the_restauration_of_austria_hungary.png -------------------------------------------------------------------------------- /search_outputs.php: -------------------------------------------------------------------------------- 1 | close(); 11 | // Create connection 12 | $conn = new mysqli($servername, $username, $password, $dbname); 13 | // Check connection 14 | if ($conn->connect_error) { 15 | die("Connection failed: " . $conn->connect_error); 16 | } 17 | $search = $search.'%'; 18 | $checkpass = "SELECT * FROM output WHERE list_id LIKE '$search'"; 19 | $result = $conn->query($checkpass); 20 | //If there's at least 1 result from query 21 | if ($result->num_rows > 0) { 22 | $rows = array(); 23 | while($r = mysqli_fetch_array($result)) { 24 | $rows[] = $r; 25 | } 26 | echo json_encode($rows); 27 | }else{ 28 | echo ""; 29 | } 30 | $conn->close(); 31 | ?> 32 | -------------------------------------------------------------------------------- /test.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Parser 6 | 11 | 12 | 13 | 17 |
19 | 20 | 21 | '; 22 | }else{ 23 | $unedited_focus = $_POST['focustree']; 24 | $strings = array('default = no','default = yes','default=no','default=yes'); 25 | $remove_pre_default = $unedited_focus; 26 | foreach($strings as $replacestring){ 27 | $remove_pre_default = str_replace($replacestring,"SPLITSTRINGHEREANDREMOVE0",$remove_pre_default); 28 | } 29 | $explodefocus = explode("SPLITSTRINGHEREANDREMOVE0",$remove_pre_default); 30 | //echo $explodefocus[1]; 31 | $rem_last_brace = rtrim($explodefocus[1],"}"); 32 | $array = explode("\n",$rem_last_brace); 33 | foreach($array as $arr) { 34 | if(substr( $arr, 0, 1 ) !== "#") { 35 | $output[] = $arr; 36 | } 37 | } 38 | $out = implode("\n",$output); 39 | $focuses = explode("focus = {",$out); 40 | $num = 0; 41 | foreach($focuses as $focus){ 42 | if (strpos($focus, 'id = ') !== false || strpos($focus, 'id =') !== false || strpos($focus, 'id= ') !== false || strpos($focus, 'id=') !== false) { 43 | $rem_brace = ltrim($focus,"}"); 44 | $out = implode("\n",$output); 45 | echo '

'.$num.'

'.$rem_brace.'
'; 46 | $num++; 47 | } 48 | } 49 | } 50 | ?> 51 | 52 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Hearts of Iron 4 National Focus Maker 2 | ## A web-based tool to create national focus trees for your own mods in HOI4 3 | 4 | This repo is to serve as a way for backups, improvements, and for people to be able to make pull requests when Paradox create new functions for modding. 5 | 6 | This tool is not created by, or on behalf of, Paradox Interactive. The tool will be provided free of charge at [hoi4modding.com](http://hoi4modding.com). The tool does not modify game files, and any issues with the tool will not affect the main game. 7 | 8 | 9 | ### Planned features 10 | * Localisation Support 11 | 12 | 13 | #### Contribution info 14 | Your contributions to the project will be greatly appreciated, whether that is a bug report or a pull request. 15 | 16 | When creating a bug report please state the bug it the title, the steps to reproduce/steps taken before bug occured, and the web browser (and version, if known) used in the description, e.g: 17 | Title: Duplicate focus appears on screen 18 | Description: When I edit a focus and press save a new focus shows, using Internet Explorer 6. 19 | (If you use IE6 all bugs come from within your chair) 20 | 21 | If you are wondering how you can help make this tool easily accessible for all, and know either CSS or another language, you could help! 22 | 23 | Themes can be requested to be added immediately, as the architecture of the site will remain pretty much the same now. 24 | Translators will be asked to hold off until the site has become dynamic (available via the web) as all information will then be stored on one file, which will be much easier for translators to work with. 25 | -------------------------------------------------------------------------------- /import.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Upload 6 | 9 | 10 | 11 |
12 | close(); 22 | if($importpassword !== ""){ 23 | $where = "password = '$importpassword'"; 24 | }else{ 25 | $where = "public_private = '0'"; 26 | } 27 | // Create connection 28 | $conn = new mysqli($servername, $username, $password, $dbname); 29 | // Check connection 30 | if ($conn->connect_error) { 31 | die("Connection failed: " . $conn->connect_error); 32 | } 33 | $checkpass = "SELECT * FROM focuses WHERE $where"; 34 | $result = $conn->query($checkpass); 35 | //If there's at least 1 result from query 36 | if ($result->num_rows > 0) { 37 | echo '

Click the focuses below to add them to your focus tree

38 | 39 | 40 | 41 | 42 | '; 43 | //Run the following code for each result 44 | while($row = $result->fetch_assoc()) { 45 | echo ''; 46 | echo ''; 47 | echo ''; 48 | echo ''; 57 | echo ''; 58 | } 59 | echo '
Focus TitleIntended CountryReward
'.$row['focus_name'].''.$row['country_affected'].'
'.$row['focus_reward']; 49 | //All info we need 50 | $xpos = (int)$row['focus_x']*150; 51 | $ypos = (int)$row['focus_y']*180; 52 | echo ' 53 | 56 |
'; 60 | }else{ 61 | echo "

No focuses found.
If using a password, ensure the password is correct and try again.

"; 62 | } 63 | $conn->close(); 64 | ?> 65 |
66 | 67 | -------------------------------------------------------------------------------- /upload.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Upload 6 | 7 | 8 | connect_error) { 37 | die("Connection failed: " . $conn->connect_error); 38 | } 39 | $successfulpassword = 0; 40 | do{ 41 | // Make a password 42 | function gen_uid($l=10){ 43 | $str = ""; 44 | for ($x=0;$x<$l;$x++) 45 | $str .= substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyz"), 0, 1); 46 | return $str; 47 | } 48 | $createpass = gen_uid($l=10); 49 | $checkpass = "SELECT id FROM focuses WHERE password = '$createpass'"; 50 | $result = $conn->query($checkpass); 51 | //If there's at least 1 result from query 52 | if ($result->num_rows > 0) { 53 | //Run the following code for each result 54 | while($row = $result->fetch_assoc()) { 55 | } 56 | }else{ 57 | $successfulpassword++; 58 | } 59 | } while ($successfulpassword !== 1); 60 | foreach ($ids as $key => $value) { 61 | 62 | 63 | $sql = "INSERT INTO focuses ( 64 | focus_id, 65 | focus_name, 66 | focus_description, 67 | focus_x, 68 | focus_y, 69 | focus_bypass, 70 | focus_mutual, 71 | focus_available, 72 | focus_ai, 73 | focus_gfx, 74 | focus_prefocus, 75 | focus_reward, 76 | focus_ttc, 77 | focus_tooltip, 78 | country_affected, 79 | public_private, 80 | password, 81 | tags, 82 | notes 83 | ) VALUES ( 84 | '".mysqli_real_escape_string($con,$ids[$key])."', 85 | '".mysqli_real_escape_string($con,$names[$key])."', 86 | '".mysqli_real_escape_string($con,$descs[$key])."', 87 | ".mysqli_real_escape_string($con,$xs[$key]).", 88 | ".mysqli_real_escape_string($con,$ys[$key]).", 89 | '".mysqli_real_escape_string($con,$bypasses[$key])."', 90 | '".mysqli_real_escape_string($con,$mutuals[$key])."', 91 | '".mysqli_real_escape_string($con,$availables[$key])."', 92 | '".mysqli_real_escape_string($con,$ai[$key])."', 93 | '".mysqli_real_escape_string($con,$imgs[$key])."', 94 | '".mysqli_real_escape_string($con,$prefocuses[$key])."', 95 | '".mysqli_real_escape_string($con,$rewards[$key])."', 96 | '".mysqli_real_escape_string($con,$ttcs[$key])."', 97 | '".mysqli_real_escape_string($con,$tooltips[$key])."', 98 | '".mysqli_real_escape_string($con,$country_tags)."', 99 | '".mysqli_real_escape_string($con,$public_private)."', 100 | '".mysqli_real_escape_string($con,$createpass)."', 101 | '', 102 | '', 103 | )"; 104 | //$sql = "INSERT INTO focuses (focus_id) VALUES ($ids[$key])"; 105 | if ($conn->query($sql) === TRUE) { 106 | echo "New record created successfully"; 107 | } else { 108 | echo "Error: " . $sql . "
" . $conn->error; 109 | } 110 | 111 | } 112 | $con->close(); 113 | $conn->close(); 114 | ?> 115 |
116 | 117 | -------------------------------------------------------------------------------- /tags.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "country": "France", 3 | "tag": "FRA" 4 | }, 5 | { 6 | "country": "Italy", 7 | "tag": "ITA" 8 | }, 9 | { 10 | "country": "Switzerland", 11 | "tag": "SWI" 12 | }, 13 | { 14 | "country": "Austria", 15 | "tag": "AUS" 16 | }, 17 | { 18 | "country": "German Reich", 19 | "tag": "GER" 20 | }, 21 | { 22 | "country": "Belgium", 23 | "tag": "BEL" 24 | }, 25 | { 26 | "country": "Netherlands", 27 | "tag": "HOL" 28 | }, 29 | { 30 | "country": "Luxembourg", 31 | "tag": "LUX" 32 | }, 33 | { 34 | "country": "Czechoslovakia", 35 | "tag": "CZE" 36 | }, 37 | { 38 | "country": "Poland", 39 | "tag": "POL" 40 | }, 41 | { 42 | "country": "Lithuania", 43 | "tag": "LIT" 44 | }, 45 | { 46 | "country": "Latvia", 47 | "tag": "LAT" 48 | }, 49 | { 50 | "country": "Estonia", 51 | "tag": "EST" 52 | }, 53 | { 54 | "country": "Denmark", 55 | "tag": "DEN" 56 | }, 57 | { 58 | "country": "Sweden", 59 | "tag": "SWE" 60 | }, 61 | { 62 | "country": "Soviet Union", 63 | "tag": "SOV" 64 | }, 65 | { 66 | "country": "Spain", 67 | "tag": "SPR" 68 | }, 69 | { 70 | "country": "Hungary", 71 | "tag": "HUN" 72 | }, 73 | { 74 | "country": "Albania", 75 | "tag": "ALB" 76 | }, 77 | { 78 | "country": "Yugoslavia", 79 | "tag": "YUG" 80 | }, 81 | { 82 | "country": "Romania", 83 | "tag": "ROM" 84 | }, 85 | { 86 | "country": "Greece", 87 | "tag": "GRE" 88 | }, 89 | { 90 | "country": "Bulgaria", 91 | "tag": "BUL" 92 | }, 93 | { 94 | "country": "Turkey", 95 | "tag": "TUR" 96 | }, 97 | { 98 | "country": "Norway", 99 | "tag": "NOR" 100 | }, 101 | { 102 | "country": "Finland", 103 | "tag": "FIN" 104 | }, 105 | { 106 | "country": "Portugal", 107 | "tag": "POR" 108 | }, 109 | { 110 | "country": "Ireland", 111 | "tag": "IRE" 112 | }, 113 | { 114 | "country": "United Kingdom", 115 | "tag": "ENG" 116 | }, 117 | { 118 | "country": "United States", 119 | "tag": "USA" 120 | }, 121 | { 122 | "country": "Iran", 123 | "tag": "PER" 124 | }, 125 | { 126 | "country": "Afghanistan", 127 | "tag": "AFG" 128 | }, 129 | { 130 | "country": "Ethiopia", 131 | "tag": "ETH" 132 | }, 133 | { 134 | "country": "South Africa", 135 | "tag": "SAF" 136 | }, 137 | { 138 | "country": "Canada", 139 | "tag": "CAN" 140 | }, 141 | { 142 | "country": "Mexico", 143 | "tag": "MEX" 144 | }, 145 | { 146 | "country": "Argentina", 147 | "tag": "ARG" 148 | }, 149 | { 150 | "country": "Chile", 151 | "tag": "CHL" 152 | }, 153 | { 154 | "country": "Brazil", 155 | "tag": "BRA" 156 | }, 157 | { 158 | "country": "Japan", 159 | "tag": "JAP" 160 | }, 161 | { 162 | "country": "Xibei San Ma", 163 | "tag": "XSM" 164 | }, 165 | { 166 | "country": "New Zealand", 167 | "tag": "NZL" 168 | }, 169 | { 170 | "country": "Australia", 171 | "tag": "AST" 172 | }, 173 | { 174 | "country": "Sinkiang", 175 | "tag": "SIK" 176 | }, 177 | { 178 | "country": "India", 179 | "tag": "RAJ" 180 | }, 181 | { 182 | "country": "Siam", 183 | "tag": "SIA" 184 | }, 185 | { 186 | "country": "Iraq", 187 | "tag": "IRQ" 188 | }, 189 | { 190 | "country": "Saudi Arabia", 191 | "tag": "SAU" 192 | }, 193 | { 194 | "country": "Yemen", 195 | "tag": "YEM" 196 | }, 197 | { 198 | "country": "Oman", 199 | "tag": "OMA" 200 | }, 201 | { 202 | "country": "Liberia", 203 | "tag": "LIB" 204 | }, 205 | { 206 | "country": "Uruguay", 207 | "tag": "URG" 208 | }, 209 | { 210 | "country": "Paraguay", 211 | "tag": "PAR" 212 | }, 213 | { 214 | "country": "Bolivia", 215 | "tag": "BOL" 216 | }, 217 | { 218 | "country": "Peru", 219 | "tag": "PRU" 220 | }, 221 | { 222 | "country": "Panama", 223 | "tag": "PAN" 224 | }, 225 | { 226 | "country": "Ecuador", 227 | "tag": "ECU" 228 | }, 229 | { 230 | "country": "Colombia", 231 | "tag": "COL" 232 | }, 233 | { 234 | "country": "Venezuela", 235 | "tag": "VEN" 236 | }, 237 | { 238 | "country": "Honduras", 239 | "tag": "HON" 240 | }, 241 | { 242 | "country": "Guatemala", 243 | "tag": "GUA" 244 | }, 245 | { 246 | "country": "El Salvador", 247 | "tag": "ELS" 248 | }, 249 | { 250 | "country": "Cuba", 251 | "tag": "CUB" 252 | }, 253 | { 254 | "country": "Costa Rica", 255 | "tag": "COS" 256 | }, 257 | { 258 | "country": "Nicaragua", 259 | "tag": "NIC" 260 | }, 261 | { 262 | "country": "Haiti", 263 | "tag": "HAI" 264 | }, 265 | { 266 | "country": "Dominican Republic", 267 | "tag": "DOM" 268 | }, 269 | { 270 | "country": "Tibet", 271 | "tag": "TIB" 272 | }, 273 | { 274 | "country": "Nepal", 275 | "tag": "NEP" 276 | }, 277 | { 278 | "country": "Bhutan", 279 | "tag": "BHU" 280 | }, 281 | { 282 | "country": "Yunnan", 283 | "tag": "YUN" 284 | }, 285 | { 286 | "country": "Philippines", 287 | "tag": "PHI" 288 | }, 289 | { 290 | "country": "Manchukuo", 291 | "tag": "MAN" 292 | }, 293 | { 294 | "country": "Tannu Tuva", 295 | "tag": "TAN" 296 | }, 297 | { 298 | "country": "Mongolia", 299 | "tag": "MON" 300 | }, 301 | { 302 | "country": "Republic of Malaysia", 303 | "tag": "MAL" 304 | }, 305 | { 306 | "country": "Indonesia", 307 | "tag": "INS" 308 | }, 309 | { 310 | "country": "Guangxi Clique", 311 | "tag": "GXC" 312 | }, 313 | { 314 | "country": "China", 315 | "tag": "CHI" 316 | }, 317 | { 318 | "country": "Mengkukuo", 319 | "tag": "MEN" 320 | }, 321 | { 322 | "country": "Shanxi", 323 | "tag": "SHX" 324 | }, 325 | { 326 | "country": "People's Republic of China", 327 | "tag": "PRC" 328 | } 329 | ] -------------------------------------------------------------------------------- /css/icon-font.min.css: -------------------------------------------------------------------------------- 1 | /* 2 | Linearicons Free v1.0.0 - https://linearicons.com/free 3 | By Perxis - https://perxis.com 4 | (c) 2014-2015 Perxis.com 5 | License: https://linearicons.com/free/license 6 | */ 7 | @font-face{font-family:Linearicons-Free;src:url(https://cdn.linearicons.com/free/1.0.0/Linearicons-Free.eot);src:url(https://cdn.linearicons.com/free/1.0.0/Linearicons-Free.eot?#iefix) format('embedded-opentype'),url(https://cdn.linearicons.com/free/1.0.0/Linearicons-Free.woff2) format('woff2'),url(https://cdn.linearicons.com/free/1.0.0/Linearicons-Free.ttf) format('truetype'),url(https://cdn.linearicons.com/free/1.0.0/Linearicons-Free.woff) format('woff'),url(https://cdn.linearicons.com/free/1.0.0/Linearicons-Free.svg#Linearicons-Free) format('svg');font-weight:400;font-style:normal}.lnr{font-family:Linearicons-Free;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lnr-home:before{content:"\e800"}.lnr-apartment:before{content:"\e801"}.lnr-pencil:before{content:"\e802"}.lnr-magic-wand:before{content:"\e803"}.lnr-drop:before{content:"\e804"}.lnr-lighter:before{content:"\e805"}.lnr-poop:before{content:"\e806"}.lnr-sun:before{content:"\e807"}.lnr-moon:before{content:"\e808"}.lnr-cloud:before{content:"\e809"}.lnr-cloud-upload:before{content:"\e80a"}.lnr-cloud-download:before{content:"\e80b"}.lnr-cloud-sync:before{content:"\e80c"}.lnr-cloud-check:before{content:"\e80d"}.lnr-database:before{content:"\e80e"}.lnr-lock:before{content:"\e80f"}.lnr-cog:before{content:"\e810"}.lnr-trash:before{content:"\e811"}.lnr-dice:before{content:"\e812"}.lnr-heart:before{content:"\e813"}.lnr-star:before{content:"\e814"}.lnr-star-half:before{content:"\e815"}.lnr-star-empty:before{content:"\e816"}.lnr-flag:before{content:"\e817"}.lnr-envelope:before{content:"\e818"}.lnr-paperclip:before{content:"\e819"}.lnr-inbox:before{content:"\e81a"}.lnr-eye:before{content:"\e81b"}.lnr-printer:before{content:"\e81c"}.lnr-file-empty:before{content:"\e81d"}.lnr-file-add:before{content:"\e81e"}.lnr-enter:before{content:"\e81f"}.lnr-exit:before{content:"\e820"}.lnr-graduation-hat:before{content:"\e821"}.lnr-license:before{content:"\e822"}.lnr-music-note:before{content:"\e823"}.lnr-film-play:before{content:"\e824"}.lnr-camera-video:before{content:"\e825"}.lnr-camera:before{content:"\e826"}.lnr-picture:before{content:"\e827"}.lnr-book:before{content:"\e828"}.lnr-bookmark:before{content:"\e829"}.lnr-user:before{content:"\e82a"}.lnr-users:before{content:"\e82b"}.lnr-shirt:before{content:"\e82c"}.lnr-store:before{content:"\e82d"}.lnr-cart:before{content:"\e82e"}.lnr-tag:before{content:"\e82f"}.lnr-phone-handset:before{content:"\e830"}.lnr-phone:before{content:"\e831"}.lnr-pushpin:before{content:"\e832"}.lnr-map-marker:before{content:"\e833"}.lnr-map:before{content:"\e834"}.lnr-location:before{content:"\e835"}.lnr-calendar-full:before{content:"\e836"}.lnr-keyboard:before{content:"\e837"}.lnr-spell-check:before{content:"\e838"}.lnr-screen:before{content:"\e839"}.lnr-smartphone:before{content:"\e83a"}.lnr-tablet:before{content:"\e83b"}.lnr-laptop:before{content:"\e83c"}.lnr-laptop-phone:before{content:"\e83d"}.lnr-power-switch:before{content:"\e83e"}.lnr-bubble:before{content:"\e83f"}.lnr-heart-pulse:before{content:"\e840"}.lnr-construction:before{content:"\e841"}.lnr-pie-chart:before{content:"\e842"}.lnr-chart-bars:before{content:"\e843"}.lnr-gift:before{content:"\e844"}.lnr-diamond:before{content:"\e845"}.lnr-linearicons:before{content:"\e846"}.lnr-dinner:before{content:"\e847"}.lnr-coffee-cup:before{content:"\e848"}.lnr-leaf:before{content:"\e849"}.lnr-paw:before{content:"\e84a"}.lnr-rocket:before{content:"\e84b"}.lnr-briefcase:before{content:"\e84c"}.lnr-bus:before{content:"\e84d"}.lnr-car:before{content:"\e84e"}.lnr-train:before{content:"\e84f"}.lnr-bicycle:before{content:"\e850"}.lnr-wheelchair:before{content:"\e851"}.lnr-select:before{content:"\e852"}.lnr-earth:before{content:"\e853"}.lnr-smile:before{content:"\e854"}.lnr-sad:before{content:"\e855"}.lnr-neutral:before{content:"\e856"}.lnr-mustache:before{content:"\e857"}.lnr-alarm:before{content:"\e858"}.lnr-bullhorn:before{content:"\e859"}.lnr-volume-high:before{content:"\e85a"}.lnr-volume-medium:before{content:"\e85b"}.lnr-volume-low:before{content:"\e85c"}.lnr-volume:before{content:"\e85d"}.lnr-mic:before{content:"\e85e"}.lnr-hourglass:before{content:"\e85f"}.lnr-undo:before{content:"\e860"}.lnr-redo:before{content:"\e861"}.lnr-sync:before{content:"\e862"}.lnr-history:before{content:"\e863"}.lnr-clock:before{content:"\e864"}.lnr-download:before{content:"\e865"}.lnr-upload:before{content:"\e866"}.lnr-enter-down:before{content:"\e867"}.lnr-exit-up:before{content:"\e868"}.lnr-bug:before{content:"\e869"}.lnr-code:before{content:"\e86a"}.lnr-link:before{content:"\e86b"}.lnr-unlink:before{content:"\e86c"}.lnr-thumbs-up:before{content:"\e86d"}.lnr-thumbs-down:before{content:"\e86e"}.lnr-magnifier:before{content:"\e86f"}.lnr-cross:before{content:"\e870"}.lnr-menu:before{content:"\e871"}.lnr-list:before{content:"\e872"}.lnr-chevron-up:before{content:"\e873"}.lnr-chevron-down:before{content:"\e874"}.lnr-chevron-left:before{content:"\e875"}.lnr-chevron-right:before{content:"\e876"}.lnr-arrow-up:before{content:"\e877"}.lnr-arrow-down:before{content:"\e878"}.lnr-arrow-left:before{content:"\e879"}.lnr-arrow-right:before{content:"\e87a"}.lnr-move:before{content:"\e87b"}.lnr-warning:before{content:"\e87c"}.lnr-question-circle:before{content:"\e87d"}.lnr-menu-circle:before{content:"\e87e"}.lnr-checkmark-circle:before{content:"\e87f"}.lnr-cross-circle:before{content:"\e880"}.lnr-plus-circle:before{content:"\e881"}.lnr-circle-minus:before{content:"\e882"}.lnr-arrow-up-circle:before{content:"\e883"}.lnr-arrow-down-circle:before{content:"\e884"}.lnr-arrow-left-circle:before{content:"\e885"}.lnr-arrow-right-circle:before{content:"\e886"}.lnr-chevron-up-circle:before{content:"\e887"}.lnr-chevron-down-circle:before{content:"\e888"}.lnr-chevron-left-circle:before{content:"\e889"}.lnr-chevron-right-circle:before{content:"\e88a"}.lnr-crop:before{content:"\e88b"}.lnr-frame-expand:before{content:"\e88c"}.lnr-frame-contract:before{content:"\e88d"}.lnr-layers:before{content:"\e88e"}.lnr-funnel:before{content:"\e88f"}.lnr-text-format:before{content:"\e890"}.lnr-text-format-remove:before{content:"\e891"}.lnr-text-size:before{content:"\e892"}.lnr-bold:before{content:"\e893"}.lnr-italic:before{content:"\e894"}.lnr-underline:before{content:"\e895"}.lnr-strikethrough:before{content:"\e896"}.lnr-highlight:before{content:"\e897"}.lnr-text-align-left:before{content:"\e898"}.lnr-text-align-center:before{content:"\e899"}.lnr-text-align-right:before{content:"\e89a"}.lnr-text-align-justify:before{content:"\e89b"}.lnr-line-spacing:before{content:"\e89c"}.lnr-indent-increase:before{content:"\e89d"}.lnr-indent-decrease:before{content:"\e89e"}.lnr-pilcrow:before{content:"\e89f"}.lnr-direction-ltr:before{content:"\e8a0"}.lnr-direction-rtl:before{content:"\e8a1"}.lnr-page-break:before{content:"\e8a2"}.lnr-sort-alpha-asc:before{content:"\e8a3"}.lnr-sort-amount-asc:before{content:"\e8a4"}.lnr-hand:before{content:"\e8a5"}.lnr-pointer-up:before{content:"\e8a6"}.lnr-pointer-right:before{content:"\e8a7"}.lnr-pointer-down:before{content:"\e8a8"}.lnr-pointer-left:before{content:"\e8a9"} -------------------------------------------------------------------------------- /js/tree-to-json.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function(){ 2 | // === NF to JSON 3 | $("#treetojson").click(function(){ 4 | $("#show-output").append('

Click the focuses below to add them to your focus tree

'); 5 | toJSON($("#existing-focus-tree").val().replace(/\t/g,""),0); 6 | }); 7 | //Just trims lines to remove #comments. 8 | //Doesn't handle cases where # characters appear inside strings 9 | function preprocess(s) { 10 | lines = s.split(/\r?\n/); 11 | result = ""; 12 | for(var i = 0; i < lines.length; ++i) { 13 | var line = lines[i]; 14 | var index = line.indexOf("#"); 15 | if(index != -1) { 16 | line = line.substring(0, index); 17 | } 18 | result += line + "\n"; 19 | } 20 | return result; 21 | } 22 | 23 | //Probably doesn't handle strings that contain {} or # characters 24 | function toJSON(s, level) { 25 | let maxLevel = 2; 26 | s = preprocess(s); 27 | var key = ""; 28 | var value = ""; 29 | var buildingKey = true; 30 | var braceCount = 0; 31 | var hadBraces = false; 32 | var json = {}; 33 | for(var i = 0; i < s.length; ++i) { 34 | let c = s.charAt(i); 35 | 36 | //If the parser is currently expecting a key 37 | if(buildingKey) { 38 | //Ignore these characters because they won't be part of a key 39 | if(c === "{" || c === "}") { 40 | continue; 41 | } 42 | 43 | //As long as we don't hit the = character, we are still building a key. 44 | //The assumption here is that keys can contain space characters 45 | if(c !== '=') { 46 | key += c; 47 | } 48 | else { 49 | buildingKey = false; 50 | key = key.trim(); 51 | } 52 | } 53 | //The parser is expecting a value 54 | else { 55 | value += c; 56 | //if only whitespace 57 | // continue 58 | if(c === "{") { 59 | ++braceCount; 60 | hadBraces = true; 61 | } 62 | else if(c === "}") { 63 | --braceCount; 64 | } 65 | 66 | //If the braces are evenly matched, 67 | //and our value string is not just whitespace characters 68 | //and the next character to add is whitespace, 69 | //then we are done building the value string 70 | if(braceCount === 0 && /\S/.test(value) && /\s/.test(c)) { 71 | value = value.trim(); 72 | 73 | //In the stupid format, the same key can appear multiple times. 74 | //If this happens, then what we really want is to treat that key 75 | //as an array 76 | if(key in json) { 77 | 78 | //Convert value stored at that key to 79 | //an array if it isn't already one 80 | if(!Array.isArray(json[key])) { 81 | var obj = json[key]; 82 | json[key] = [obj]; 83 | } 84 | 85 | //If the value had {} characters, then 86 | //it will consist of other key/value pairs. 87 | if(hadBraces && level < maxLevel) { 88 | json[key] = json[key].concat(toJSON(value, level+1)); 89 | hadBraces = false; 90 | } 91 | else { 92 | json[key] = json[key].concat(value); 93 | } 94 | } 95 | 96 | else { 97 | if(hadBraces && level < maxLevel) { 98 | json[key] = toJSON(value, level+1); 99 | hadBraces = false; 100 | } 101 | else { 102 | json[key] = value; 103 | } 104 | } 105 | 106 | 107 | buildingKey = true; 108 | key = ""; 109 | value = ""; 110 | } 111 | } 112 | } 113 | $("#existing-focus-tree-output").val(JSON.stringify(json)); 114 | //console.log(json); 115 | //$("#show-output").append(JSON.stringify(json)); 116 | var obj = JSON.parse($("#existing-focus-tree-output").val()); 117 | 118 | var focus = obj.focus; 119 | for(var i in focus){ 120 | if(focus[i].hasOwnProperty('id')){ 121 | var id = focus[i].id; 122 | var name = "undefined"; 123 | var desc = "undefined"; 124 | var text = focus[i].id; 125 | if(focus[i].hasOwnProperty('text')){ 126 | text = focus[i].text; 127 | } 128 | var localisation = $("#existing-localisation").val().split(/\n/); 129 | $.each(localisation,function(u, i) { 130 | if(i.indexOf(":") !== -1){ 131 | var splitid = i.split(/:(.+)/); 132 | if(splitid[0].replace(/\s+/g, "") == text){ 133 | name = splitid[1].replace("0 ","").slice(1, -1); 134 | } 135 | if(splitid[0].replace(/\s+/g, "") == text+"_desc"){ 136 | desc = splitid[1].replace("0 ","").slice(1, -1); 137 | } 138 | } 139 | }); 140 | if(focus[i].hasOwnProperty('mutually_exclusive')){ 141 | var me = focus[i].mutually_exclusive; 142 | }else{ 143 | var me = ""; 144 | } 145 | if(focus[i].hasOwnProperty('prerequisite')){ 146 | var pr = focus[i].prerequisite; 147 | }else{ 148 | var pr = ""; 149 | } 150 | if(focus[i].hasOwnProperty('ai_will_do')){ 151 | var ai = focus[i].ai_will_do; 152 | }else{ 153 | var ai = ""; 154 | } 155 | if(focus[i].hasOwnProperty('completion_reward')){ 156 | var completion_reward = focus[i].completion_reward; 157 | }else{ 158 | var completion_reward = ""; 159 | } 160 | if(focus[i].hasOwnProperty('available')){ 161 | var available = focus[i].available; 162 | }else{ 163 | var available = ""; 164 | } 165 | if(focus[i].hasOwnProperty('bypass')){ 166 | var bypass = focus[i].bypass; 167 | }else{ 168 | var bypass = ""; 169 | } 170 | if(focus[i].hasOwnProperty('completion_tooltip')){ 171 | var completion_tooltip = focus[i].completion_tooltip; 172 | }else{ 173 | var completion_tooltip = ""; 174 | } 175 | if(focus[i].hasOwnProperty('cost')){ 176 | var cost = focus[i].cost; 177 | }else{ 178 | var cost = "10"; 179 | } 180 | $("#table").append(''+name+'
'+focus[i].completion_reward+'
'); 181 | } 182 | } 183 | return json; 184 | 185 | } 186 | }); -------------------------------------------------------------------------------- /zip.php: -------------------------------------------------------------------------------- 1 | treeid){ 11 | $folder = $json->treeid."-".date('Ymdgis'); 12 | //Create directory 13 | mkdir($folder); 14 | mkdir($folder.'/gfx'); 15 | mkdir($folder.'/gfx/interface'); 16 | mkdir($folder.'/gfx/interface/goals'); 17 | mkdir($folder.'/interface'); 18 | }else{ 19 | $errors[] = 'You tried submitting a focus tree without setting a focus tree ID'; 20 | } 21 | 22 | $tree = ""; 23 | $tree .= str_replace("
","\r\n",$json->start); 24 | $customGFX = "spriteTypes = { \r\n"; 25 | 26 | foreach($json->focuses as $focus){ 27 | if($focus->name !== "" && $focus->name !== "undefined" && !in_array($focus->id, $added)){ 28 | $added[] = $focus->id; 29 | $fortree = ''; 30 | $fortree .= '#Focus for '.$focus->name.' 31 | '; 32 | $fortree .= 'focus = { 33 | '; 34 | if(strpos($focus->icon,"data:image/png;") !== false){ 35 | $image = base64_decode(str_replace("data:image/png;base64,","",$focus->icon)); 36 | file_put_contents($folder.'/gfx/interface/goals/'.$focus->id.'.png',$image); 37 | $img = new Imagick($folder.'/gfx/interface/goals/'.$focus->id.'.png'); //Load the uploaded image 38 | $img->setformat('tga'); //Set the format to tga 39 | $img->writeimage($folder.'/gfx/interface/goals/GFX_'.$focus->id.'.tga'); //Write/save the dds texture 40 | $icon = 'GFX_'.$focus->id; 41 | $customGFX .= '##Icon For: '.$focus->id.' \r\n SpriteType = { \r\n name = "'.$icon.'" \r\n texturefile = "gfx/interface/goals/'.$icon.'.tga" \r\n }'; 42 | }else{ 43 | $rem_png = str_replace(".png","",$focus->icon); 44 | $icon = str_replace("images/","GFX_",$rem_png); 45 | } 46 | $fortree .= 'id = '.$focus->id.' 47 | '; 48 | $fortree .= 'icon = '.$icon.' 49 | '; 50 | $fortree .= str_replace("
"," \r\n ",str_replace("'",'"',$focus->everythingelse)); 51 | $fortree .= '}'; 52 | $opening = substr_count($fortree, '{'); 53 | $closing = substr_count($fortree, '}'); 54 | if($opening !== $closing){ 55 | $errors[] = $focus->name.' has inconsistent braces: '.$opening.'x { & '.$closing.'x }
This issue will be found in the one of the following: rewards, available, and bypass sections
To resolve this issue, you will need to count how many opening/closing braces you have in each of the previously stated text boxes, and add the missing opening/closing braces where it is missing.'; 56 | } 57 | $tree .= $fortree; 58 | } 59 | } 60 | $tree .= '#End of focuses 61 | }'; 62 | if($errors){ 63 | ?> 64 | 69 |

Your file could not be exported as it contains at least 1 common error

'; 71 | echo '
'; 72 | foreach ($errors as $error) { 73 | echo '- '.$error.'
'; 74 | } 75 | echo '
Please report these errors on Github and make reference to what caused the error.'; 76 | echo '
'; 77 | array_map('unlink', glob("$folder/gfx/interface/goals/*.*"));usleep(100); 78 | array_map('unlink', glob("$folder/gfx/interface/*.*"));usleep(100); 79 | array_map('unlink', glob("$folder/gfx/*.*"));usleep(100); 80 | array_map('unlink', glob("$folder/interface/*.*"));usleep(100); 81 | rmdir($folder.'/gfx/interface/goals');usleep(100); 82 | rmdir($folder.'/gfx/interface');usleep(100); 83 | rmdir($folder.'/gfx');usleep(100); 84 | rmdir($folder.'/interface');usleep(100); 85 | rmdir($folder); 86 | die(); 87 | } 88 | 89 | mkdir($folder.'/common'); 90 | mkdir($folder.'/common/national_focus'); 91 | $focustreefile = './'.$folder.'/common/national_focus/'.$json->treeid.".txt"; 92 | $focustreecontent = $tree; 93 | if (file_put_contents($focustreefile, $focustreecontent) !== false) { 94 | echo "File created (" . basename($focustreefile) . ")"; 95 | } else { 96 | echo "Cannot create file (" . basename($focustreefile) . ")"; 97 | } 98 | mkdir($folder.'/localisation'); 99 | 100 | $langfile = './'.$folder.'/localisation/'.$json->treeid."_l_".$lan.".yml"; 101 | $langfilecontent = chr(239) . chr(187) . chr(191) . str_replace("
","\r\n",$lang); 102 | if (file_put_contents($langfile, $langfilecontent) !== false) { 103 | echo "File created (" . basename($langfile) . ")"; 104 | } else { 105 | echo "Cannot create file (" . basename($langfile) . ")"; 106 | } 107 | $customGFX .= " \r\n }"; 108 | $customgfxfile = $folder.'/interface/customicons.gfx'; 109 | if (file_put_contents($customgfxfile, $customGFX) !== false) { 110 | echo "File created (" . basename($langfile) . ")"; 111 | } else { 112 | echo "Cannot create file (" . basename($langfile) . ")"; 113 | } 114 | 115 | 116 | if(isset($json->treeid)){ 117 | $zip_file_name = $json->treeid.'.zip'; 118 | }else{ 119 | $zip_file_name = 'unnamed.zip'; 120 | } 121 | $download_file = true; 122 | //$delete_file_after_download= true; doesnt work!! 123 | class FlxZipArchive extends ZipArchive{ 124 | /** Add a Dir with Files and Subdirs to the archive;;;;; @param string $location Real Location;;;; @param string $name Name in Archive;;; @author Nicolas Heimann;;;; @access private **/ 125 | public function addDir($location, $name){ 126 | $this->addEmptyDir($name); 127 | $this->addDirDo($location, $name); 128 | } // EO addDir; 129 | /** Add Files & Dirs to archive;;;; @param string $location Real Location; @param string $name Name in Archive;;;;;; @author Nicolas Heimann 130 | * @access private **/ 131 | private function addDirDo($location, $name){ 132 | $name .= '/'; 133 | $location .= '/'; 134 | // Read all Files in Dir 135 | $dir = opendir ($location); 136 | while ($file = readdir($dir)) 137 | { 138 | if ($file == '.' || $file == '..') continue; 139 | // Rekursiv, If dir: FlxZipArchive::addDir(), else ::File(); 140 | $do = (filetype( $location . $file) == 'dir') ? 'addDir' : 'addFile'; 141 | $this->$do($location . $file, $name . $file); 142 | } 143 | } // EO addDirDo(); 144 | } 145 | $za = new FlxZipArchive; 146 | $res = $za->open($zip_file_name, ZipArchive::CREATE); 147 | if($res === TRUE) { 148 | $za->addDir($folder, basename($folder)); 149 | $za->close(); 150 | } 151 | else { echo 'Could not create a zip archive';} 152 | 153 | if ($download_file){ 154 | ob_get_clean(); 155 | header("Pragma: public"); 156 | header("Expires: 0"); 157 | header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 158 | header("Cache-Control: private", false); 159 | header("Content-Type: application/zip"); 160 | header("Content-Disposition: attachment; filename=" . basename($zip_file_name) . ";" ); 161 | header("Content-Transfer-Encoding: binary"); 162 | header("Content-Length: " . filesize($zip_file_name)); 163 | readfile($zip_file_name); 164 | 165 | //deletes file when its done... 166 | //if ($delete_file_after_download) 167 | //{ unlink($zip_file_name); } 168 | } 169 | 170 | //Delete directory 171 | $dir = $folder; 172 | unlink($zip_file_name);usleep(100); 173 | array_map('unlink', glob("$folder/gfx/interface/goals/*.*"));usleep(100); 174 | array_map('unlink', glob("$folder/gfx/interface/*.*"));usleep(100); 175 | array_map('unlink', glob("$folder/gfx/*.*"));usleep(100); 176 | array_map('unlink', glob("$folder/common/national_focus/*.*"));usleep(100); 177 | array_map('unlink', glob("$folder/common/*.*"));usleep(100); 178 | array_map('unlink', glob("$folder/localisation/*.*"));usleep(100); 179 | array_map('unlink', glob("$folder/interface/*.*"));usleep(100); 180 | array_map('unlink', glob("$folder/*.*"));usleep(100); 181 | rmdir($folder.'/common/national_focus');usleep(100); 182 | rmdir($folder.'/common');usleep(100); 183 | rmdir($folder.'/localisation');usleep(100); 184 | rmdir($folder.'/gfx/interface/goals');usleep(100); 185 | rmdir($folder.'/gfx/interface');usleep(100); 186 | rmdir($folder.'/gfx');usleep(100); 187 | rmdir($folder.'/interface');usleep(100); 188 | rmdir($folder); 189 | } 190 | ?> 191 | -------------------------------------------------------------------------------- /js/ui-elements.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function(){ 2 | 3 | //Classes 4 | 5 | //IDs 6 | $('.open-closeable[id*="-close"]').on('click', function(){ 7 | $('#'+$(this).attr('id').replace('-close','')).slideUp(); 8 | }); 9 | $('.open-closeable[id*="-open"]').on('click', function(){ 10 | var id = $(this).attr('id').replace('-open',''); 11 | $('#'+id).slideDown(); 12 | }); 13 | 14 | 15 | 16 | //Edit GFX 17 | $("#open-gfx").click(function(){ 18 | $("#choosegfx").toggle(); 19 | }); 20 | 21 | //Close stuff 22 | $("#close-selector").click(function(){ 23 | $("#selectfocusarea").hide(); 24 | }); 25 | 26 | $(document).on('click', "#close-pw", function() { 27 | $( "#display-password" ).hide(); 28 | }); 29 | 30 | $("#available").click(function(){ 31 | //if($("#predictive_available").prop("checked") == false){ 32 | $("#builder").show(); 33 | $("#submit-build").attr("build","available"); 34 | //} 35 | }); 36 | $("#bypass").click(function(){ 37 | //if($("#predictive_bypass").prop("checked") == false){ 38 | $("#builder").show(); 39 | $("#submit-build").attr("build","bypass"); 40 | //} 41 | }); 42 | $("#reward").click(function(){ 43 | if($("#predictive_reward").prop("checked") == false){ 44 | $("#builder").show(); 45 | $("#submit-build").attr("build","reward"); 46 | } 47 | }); 48 | 49 | //JSON 50 | $('#searchjson').keyup(function(){ 51 | var searchField = $('#searchjson').val(); 52 | var regex = new RegExp(searchField, "i"); 53 | var count = 1; 54 | var output = ""; 55 | $.getJSON("output.json", function(data) { 56 | $.each(data, function(key, val){ 57 | if ((val.description.search(regex) != -1)) { 58 | output += '

'+val.description+'

'; 59 | output += '
'+val.default_outcome+'
'; 60 | output += '
'+val.example+'
'; 61 | } 62 | }); 63 | $('#searchoutput').html(output); 64 | }); 65 | }); 66 | 67 | $(document).on('click', ".build-description", function() { 68 | var buildid = $(this).attr("id"); 69 | $("#"+buildid+"_hover").toggle(); 70 | }); 71 | 72 | $(document).on('click', ".build-hover", function() { 73 | var id = $(this).attr("id").replace("_hover",""); 74 | if($("#"+id).attr("tag") == "yes"){ 75 | $("#tag-box").show(); 76 | } 77 | if($("#"+id).attr("state") == "yes"){ 78 | $("#state-box").show(); 79 | } 80 | if($("#"+id+"_defaultoutcome").attr("iscustom") !== "yes"){ 81 | if($("#"+id+"_defaultoutcome").text() == "new-level"){ 82 | $(".current-build-add-location").removeClass("current-build-add-location").append(id+' = {

}'); 83 | }else{ 84 | $(".current-build-add-location").append(id+''); 85 | } 86 | }else{ 87 | $(".current-build-add-location").append(''); 88 | } 89 | $("#submit-build").show(); 90 | }); 91 | 92 | //TAG search 93 | $('#searchtags').keyup(function(){ 94 | var searchField = $('#searchtags').val(); 95 | var regex = new RegExp(searchField, "i"); 96 | var count = 1; 97 | var output = ""; 98 | $.getJSON("tags.json", function(data) { 99 | $.each(data, function(key, val){ 100 | if ((val.country.search(regex) != -1) || (val.tag.search(regex) != -1)) { 101 | output += '

'+val.country+'

'; 102 | } 103 | }); 104 | $('#tagsearchoutput').html(output); 105 | }); 106 | }); 107 | 108 | $(document).on('click', ".searched_tags", function() { 109 | var tagid = $(this).attr("id"); 110 | $("#build-preview").html($("#build-preview").html().replace("TAG",tagid)); 111 | if ( $( "#add-build" ).length ) { 112 | $("#add-build").val($("#add-build").val().replace("TAG",tagid)); 113 | } 114 | $("#tag-box").hide(); 115 | }); 116 | 117 | //State search 118 | $('#searchstates').keyup(function(){ 119 | var searchField = $('#searchstates').val(); 120 | var regex = new RegExp(searchField, "i"); 121 | var count = 1; 122 | var output = ""; 123 | $.getJSON("states.json", function(data) { 124 | $.each(data, function(key, val){ 125 | if ((val.id.search(regex) != -1) || (val.name.search(regex) != -1)) { 126 | output += '

'+val.name+'

'; 127 | } 128 | }); 129 | $('#statesearchoutput').html(output); 130 | }); 131 | }); 132 | 133 | $(document).on('click', ".searched_states", function() { 134 | var tagid = $(this).attr("id").replace("state_",""); 135 | $("#build-preview").html($("#build-preview").html().replace("STATEID",tagid)); 136 | $("#build-preview").html($("#build-preview").html().replace("state_id",tagid)); 137 | if ( $( "#add-build" ).length ) { 138 | $("#add-build").val($("#add-build").val().replace("STATEID",tagid)); 139 | $("#add-build").val($("#add-build").val().replace("state_id",tagid)); 140 | } 141 | $("#state-box").hide(); 142 | }); 143 | 144 | 145 | //Submit 146 | $("#submit-build").click(function(){ 147 | //#build-preview 148 | var buildvalue = $("#add-build").val(); 149 | $("#add-build").after(buildvalue); 150 | $("#add-build").remove(); 151 | $("#"+$(this).attr("build")).val($("#"+$(this).attr("build")).val()+$("#build-preview").text()); 152 | $("#build-preview").empty(); 153 | $("#build-preview").addClass("current-build-add-location"); 154 | $(this).attr("build","null"); 155 | $("#builder").hide(); 156 | $(this).hide(); 157 | }); 158 | 159 | /** 160 | === 161 | For textarea sync: 162 | === 163 | **/ 164 | $('textarea').scroll(function() { 165 | var id = "#"+$(this).attr('id'); 166 | if($(id+'_underlay').length > -1){ 167 | $($(id+'_underlay').scrollTop($(id).scrollTop())); 168 | } 169 | }); 170 | var textareaResize = function(source, dest) { 171 | var resizeInt = null; 172 | 173 | var resizeEvent = function() { 174 | dest.outerWidth( source.outerWidth() ); 175 | dest.outerHeight(source.outerHeight()); 176 | $("."+source.attr("id")+'_wrapper').outerHeight(source.outerHeight() + 16); 177 | }; 178 | 179 | source.on("mousedown", function(e) { 180 | resizeInt = setInterval(resizeEvent, 1000/30); 181 | }); 182 | 183 | $(window).on("mouseup", function(e) { 184 | if (resizeInt !== null) { 185 | clearInterval(resizeInt); 186 | } 187 | resizeEvent(); 188 | }); 189 | }; 190 | 191 | textareaResize($("#reward"), $("#reward_underlay")); 192 | 193 | $("#edit-focus-open").on('click', function(){ 194 | $("#reward_underlay").outerWidth( $("#reward").outerWidth() ); 195 | $("#reward_underlay").outerHeight($("#reward").outerHeight()); 196 | $("."+$("#reward").attr("id")+'_wrapper').outerHeight($("#reward").outerHeight() + 16); 197 | }); 198 | var pressedkeys = {}; 199 | $("textarea").on('keydown', function(e){ 200 | var id = $(this).attr("id"); 201 | if($("#"+id+'_underlay').length && $("#predictive_"+id).prop("checked") == true){ 202 | textareaSync(id, id+'_underlay'); 203 | } 204 | }); 205 | 206 | function textareaSync(source, dest){ 207 | if($("#predictive_"+source).prop("checked") == true){ 208 | source = $("#"+source); 209 | dest = $("#"+dest); 210 | 211 | source.one("keyup",function(e){ 212 | if(source.val().indexOf(' ') > -1){ 213 | doSearch(e,'split'); 214 | }else{ 215 | doSearch(e,'nosplit'); 216 | } 217 | if(source.val()[source.val().length - 1] == ' '){ 218 | source.val(source.val()+'\n'); 219 | } 220 | 221 | }); 222 | source.keyup(function(e){ 223 | pressedkeys[e.which] = '0'; 224 | }); 225 | 226 | function doSearch(e,split){ 227 | if(split == 'nosplit'){ 228 | var searchField = source.val(); 229 | }else{ 230 | var split = source.val().split(' '); 231 | var searchField = split[split.length - 1]; 232 | var allFinishedFoci = source.val().replace(searchField,''); 233 | } 234 | var regex = new RegExp(searchField, "i"); 235 | var count = 1; 236 | var output = ""; 237 | var keys = [16,8]; 238 | if(keys.indexOf(e.which) == -1){ 239 | $.getJSON("/national-focus/search_outputs.php?search="+searchField, function(data) { 240 | if(split == 'nosplit'){ 241 | dest.val(data[0].list_id); 242 | }else{ 243 | dest.val(allFinishedFoci+data[0].list_id); 244 | } 245 | var autocomplete = [13,9,39]; 246 | if(autocomplete.indexOf(e.which) != -1){ 247 | 248 | var specialOutcomes = ['new-level', 'TAG', 'STATEID']; 249 | var outcome = data[0].list_default_outcome; 250 | 251 | if(specialOutcomes.indexOf(outcome) != - 1){ 252 | 253 | }else{ 254 | var newUnderlay = dest.val(); 255 | newUnderlay += outcome; 256 | dest.val(newUnderlay+' '); 257 | } 258 | } 259 | }); 260 | } 261 | } 262 | 263 | function syncCartSearch(){ 264 | source.val(dest.val().replace(/ /g,' \n')); 265 | } 266 | $(source,dest).one("keydown",function(e) { 267 | //Keys they should press to auto-complete form 268 | //Enter, Tab, Right Arrow 269 | pressedkeys[e.which] = e.which; 270 | var keys = [13,9,39]; 271 | if(keys.indexOf(e.which) != -1 && source.val().length < dest.val().length) { 272 | e.preventDefault(); 273 | if(pressedkeys[16] > 1){ 274 | if(pressedkeys[9] > 1){ 275 | var $txt = source; 276 | var caretPos = $txt[0].selectionStart; 277 | var textAreaTxt = $txt.val(); 278 | var txtToAdd = " "; 279 | $txt.val(textAreaTxt.substring(0, caretPos) + txtToAdd + textAreaTxt.substring(caretPos) ); 280 | } 281 | if(pressedkeys[13]){ 282 | source.val(source.val()+' '+'\n'); 283 | } 284 | }else{ 285 | syncCartSearch(); 286 | } 287 | }else{ 288 | if(e.which == 13){ 289 | e.preventDefault(); 290 | source.val(source.val()+' '+'\n'); 291 | } 292 | } 293 | }); 294 | } 295 | } 296 | 297 | 298 | 299 | }); -------------------------------------------------------------------------------- /css/style.css: -------------------------------------------------------------------------------- 1 | html, body{ 2 | font-family: 'Poppins', sans-serif; 3 | font-size: 100%; 4 | overflow-x: hidden; 5 | background-color: #edecec; 6 | } 7 | body a{ 8 | transition:0.5s all; 9 | -webkit-transition:0.5s all; 10 | -moz-transition:0.5s all; 11 | -o-transition:0.5s all; 12 | -ms-transition:0.5s all; 13 | background:#011D4A!mportant; 14 | } 15 | a:focus, a:active, a:hover ,a.dropdown-toggle{ 16 | outline: none; 17 | -webkit-transition: all 0.3s; 18 | -moz-transition: all 0.3s; 19 | transition: all 0.3s; 20 | text-decoration:none; 21 | } 22 | a { 23 | background-color:none; 24 | } 25 | body p{ 26 | font-family: 'Poppins', sans-serif; 27 | } 28 | h1, h2, h3, h4, h5 { 29 | font-family: 'Poppins', sans-serif; 30 | } 31 | a { 32 | color: #008DE7; 33 | font-weight:400; 34 | } 35 | a:hover { transition: all 200ms ease-in-out; } 36 | 37 | .page-container { 38 | min-width: 1260px; 39 | position: relative; 40 | top: 0; 41 | left: 0; 42 | right: 0; 43 | bottom: 0; 44 | width: 100%; 45 | height: 100%; 46 | margin: 0px auto; 47 | } 48 | .left-content { 49 | float: right; 50 | width: 87%; 51 | } 52 | a.sidebar-icon:hover{ 53 | color:#1b93e1; 54 | } 55 | .page-container.sidebar-collapsed { 56 | transition: all 100ms linear; 57 | transition-delay: 300ms; 58 | } 59 | .page-container.sidebar-collapsed .left-content { 60 | float: right; 61 | width: 95%; 62 | } 63 | .page-container.sidebar-collapsed-back { 64 | transition: all 100ms linear; 65 | } 66 | .page-container.sidebar-collapsed-back .left-content { 67 | transition: all 100ms linear; 68 | -webkit-transition: all 0.3s ease; 69 | -moz-transition: all 0.3s ease; 70 | transition: all 0.3s ease; 71 | float: right; 72 | width:87%; 73 | padding: 0 2em; 74 | } 75 | .left-content { 76 | width:87%; 77 | padding: 0 2em; 78 | } 79 | .page-container.sidebar-collapsed .sidebar-menu { 80 | width: 65px; 81 | transition: all 100ms ease-in-out; 82 | transition-delay: 300ms; 83 | } 84 | .page-container.sidebar-collapsed-back .sidebar-menu { 85 | width: 230px; 86 | transition: all 100ms ease-in-out; 87 | } 88 | .page-container.sidebar-collapsed .sidebar-icon { 89 | transform: rotate(90deg); 90 | transition: all 300ms ease-in-out; 91 | margin-right: 0em; 92 | margin-top: -8px; 93 | color: #fff; 94 | background: #1b93e1; 95 | border-radius: 0; 96 | } 97 | .page-container.sidebar-collapsed .sidebar-icon:after { 98 | content: ''; 99 | transition:0.2s; 100 | } 101 | .page-container.sidebar-collapsed-back .sidebar-icon { 102 | transform: rotate(0deg); 103 | transition: all 300ms ease-in-out; 104 | } 105 | .page-container.sidebar-collapsed .logo { 106 | padding: 21px 0; 107 | height: 63px; 108 | box-sizing: border-box; 109 | transition: all 100ms ease-in-out; 110 | transition-delay: 300ms; 111 | } 112 | .page-container.sidebar-collapsed #logo { 113 | opacity: 0; 114 | transition: all 200ms ease-in-out; 115 | display: none; 116 | } 117 | .page-container.sidebar-collapsed-back #logo { 118 | opacity: 1; 119 | transition: all 200ms ease-in-out; 120 | transition-delay: 300ms;; 121 | } 122 | .page-container.sidebar-collapsed #menu span { 123 | opacity: 0; 124 | transition: all 50ms linear; 125 | } 126 | .page-container.sidebar-collapsed-back #menu span { 127 | opacity: 1; 128 | transition: all 200ms linear; 129 | transition-delay: 300ms; 130 | } 131 | .sidebar-menu { 132 | position: fixed; 133 | float: left; 134 | width: 230px; 135 | top: 0; 136 | left: 0; 137 | bottom: 0; 138 | background-color:#333333; 139 | color: #aaabae; 140 | box-shadow: 0px 0px 10px 0px rgb(58, 41, 31); 141 | -o-box-shadow: 0px 0px 10px 0px rgb(58, 41, 31); 142 | -webkit-box-shadow: 0px 0px 10px 0px rgb(58, 41, 31); 143 | -moz-box-shadow: 0px 0px 10px 0px rgb(58, 41, 31); 144 | z-index: 999; 145 | } 146 | label.col-sm-2.control-label { 147 | font-size: 16px; 148 | margin-top: 0px; 149 | } 150 | #menu { 151 | list-style: none; 152 | margin: 0; 153 | padding: 0; 154 | margin-bottom: 20px; 155 | } 156 | #menu li { 157 | position: relative; 158 | margin: 0; 159 | border-bottom:1px ridge rgba(255, 255, 255, 0.04); 160 | padding: 0; 161 | padding: 0; 162 | } 163 | #menu li ul { 164 | opacity: 0; 165 | height: 0px; 166 | } 167 | #menu li p { 168 | margin:0; 169 | font-style: normal; 170 | font-weight: 400; 171 | position: relative; 172 | display: block; 173 | padding: 13px 20px; 174 | color: #fff; 175 | white-space: nowrap; 176 | z-index: 2; 177 | background-color: #333333; 178 | font-size:0.9em; 179 | font-family: font-family: 'Poppins', sans-serif; 180 | border:none; 181 | border-left: 4px solid #333333; 182 | } 183 | #menu li p:hover { 184 | color: #ffffff; 185 | background-color:#1b93e1; 186 | transition: color 250ms ease-in-out, background-color 250ms ease-in-out; 187 | border-left: 4px solid #4A4A4A; 188 | } 189 | #menu li.active > a { 190 | background-color: #2b303a; 191 | color: #ffffff; 192 | } 193 | #menu ul li { 194 | background-color: #333333; 195 | } 196 | #menu ul { 197 | list-style-type: none; 198 | margin: 0; 199 | padding: 0; 200 | } 201 | #menu li ul { 202 | position: absolute; 203 | visibility: hidden; 204 | left: 100%; 205 | top: -1px; 206 | background-color: #2b303a; 207 | box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.5); 208 | opacity: 0; 209 | transition: opacity 0.1s linear; 210 | border-top: 1px solid rgba(69, 74, 84, 0.7); 211 | } 212 | #menu li:hover > ul { 213 | visibility: visible; 214 | opacity: 1; 215 | } 216 | li#menu-mensagens,li#menu-arquivos { 217 | background-color:#00C6D7!important; 218 | } 219 | #menu li li ul { 220 | right: 100%; 221 | visibility: hidden; 222 | top: -1px; 223 | opacity: 0; 224 | transition: opacity 0.1s linear; 225 | } 226 | #menu li li:hover ul { 227 | visibility: visible; 228 | opacity: 1; 229 | } 230 | 231 | #menu .fa { margin-right: 5px; } 232 | 233 | .logo1 { 234 | width: 100%; 235 | padding: 15px 14px 15px; 236 | height:52px; 237 | box-sizing: border-box; 238 | background: #1b93e1; 239 | text-align: center; 240 | } 241 | .sidebar-icon { 242 | margin-top: -2px; 243 | border: 1px solid #1b93e1; 244 | text-align: right; 245 | line-height: 1; 246 | font-size: 19px; 247 | padding: 5px 10px; 248 | border-radius: 0px; 249 | color: #fff; 250 | background: #1b93e1; 251 | float: none; 252 | } 253 | .sidebar-icon:after{ 254 | content:' Close'; 255 | } 256 | ul#menu i { 257 | font-size: 1.1em; 258 | margin-right: 6px; 259 | width: 10%; 260 | padding-top: 2px; 261 | } 262 | ul.sub-menu { 263 | z-index: 999; 264 | } 265 | li.sub-menu{ 266 | z-index: 999; 267 | } 268 | .panel-body.ont { 269 | padding: 14px; 270 | } 271 | 272 | .menu { 273 | text-align: left; 274 | } 275 | /*----*/ 276 | /*--header --*/ 277 | .header-main { 278 | padding:1em; 279 | background:#22211d; 280 | box-shadow: 0 1px 1px rgba(0,0,0,.05); 281 | -o-box-shadow: 0 1px 1px rgba(0,0,0,.05); 282 | -webkit-box-shadow: 0 1px 1px rgba(0,0,0,.05); 283 | -moz-box-shadow: 0 1px 1px rgba(0,0,0,.05); 284 | } 285 | 286 | .scope,.condition,.command{ 287 | margin:0; 288 | word-wrap: break-word; 289 | overflow-wrap: break-word; 290 | } 291 | .scope:before,.condition:before,.command:before{ 292 | content:'> '; 293 | } 294 | .scope:nth-child(odd),.condition:nth-child(odd),.command:nth-child(odd){ 295 | background:rgba(204,204,204,0.1) 296 | } 297 | .condition-info,.scope-info,.command-info,#build-scopes-area,#build-conditions-area,#submit-build,#build-commands-area{ 298 | display:none; 299 | word-wrap: break-word; 300 | overflow-wrap: break-word; 301 | } 302 | .condition-info,.scope-info,.command-info{ 303 | font-size:1.5rem; 304 | } 305 | .eigthyvh{ 306 | height:80vh; 307 | overflow-y:scroll; 308 | } 309 | .header-main{ 310 | height:100vh; 311 | width:100%; 312 | overflow:scroll; 313 | } 314 | .name > p{ 315 | margin:0.05rem; 316 | font-size:0.75em; 317 | } 318 | .mover{ 319 | float:left; 320 | width:49%; 321 | color:#666; 322 | font-size:1.1rem; 323 | font-weight:700; 324 | transform: scale(1,1.5); 325 | -webkit-transform: scale(1,1.5); 326 | -moz-transform: scale(1,1.5); 327 | -ms-transform: scale(1,1.5); 328 | -o-transform: scale(1,1.5); 329 | } 330 | .up,.down{ 331 | transform: scale(1,0.5); 332 | -webkit-transform: scale(1,0.5); 333 | -moz-transform: scale(1,0.5); 334 | -ms-transform: scale(1,0.5); 335 | -o-transform: scale(1,0.5); 336 | } 337 | .tail{ 338 | position:absolute; 339 | border-left:1px solid #fff; 340 | border-right:1px solid #fff; 341 | height:27px; 342 | margin-left:59px; 343 | } 344 | .connector-norm{ 345 | border-top:1px solid white; 346 | border-bottom:1px solid white; 347 | position:absolute; 348 | } 349 | .connector-norm-vert{ 350 | border-left:1px solid white; 351 | border-right:1px solid white; 352 | position:absolute; 353 | } 354 | .connector-or{ 355 | border-top:1px dashed white; 356 | border-bottom:1px dashed white; 357 | position:absolute; 358 | } 359 | .connector-or-vert{ 360 | border-left:1px dashed white; 361 | border-right:1px dashed white; 362 | position:absolute; 363 | } 364 | .connector-mutual{ 365 | border-top:1px solid red; 366 | border-bottom:1px solid red; 367 | position:absolute; 368 | } 369 | .all-info{ 370 | display:none; 371 | } 372 | .name{ 373 | background:#2d2220; 374 | padding:10px 8px; 375 | border:2px double #43423d; 376 | border-radius:10px; 377 | color:#fff; 378 | width:120px; 379 | word-wrap:break-word; 380 | } 381 | #choosegfx{ 382 | max-height:200px; 383 | display:none; 384 | overflow-y:scroll; 385 | margin:-0.25rem; 386 | } 387 | .focus{ 388 | position:absolute; 389 | text-align:center; 390 | width:120px; 391 | } 392 | .focus > img{ 393 | margin-bottom:-30px; 394 | } 395 | /*.panel{ 396 | height:100vh; 397 | width:40vw; 398 | position:fixed; 399 | z-index:10; 400 | border:0; 401 | } 402 | .panel2{ 403 | height:100vh; 404 | width:40vw; 405 | position:fixed; 406 | z-index:15; 407 | border:0; 408 | top:0; 409 | left:calc(40vw + 80px); 410 | }*/ 411 | .secondbox-extra{ 412 | height:100vh; 413 | width:40vw; 414 | position:fixed; 415 | z-index:16; 416 | border:0; 417 | top:0; 418 | left:calc(40vw + 80px); 419 | } 420 | 421 | .page-container.sidebar-collapsed-back .panel2,.page-container.sidebar-collapsed-back .panel2-extra{ 422 | left:calc(40vw + 270px); 423 | } 424 | /*.panel-body{ 425 | background:#fff; 426 | height:calc(100vh - 57px); 427 | width:100%; 428 | padding:1.5rem 0.5rem; 429 | overflow-y:scroll; 430 | }*/ 431 | #edit-focus,#export-box,#export-help-box,#server-box,#help-box,#import-box,#selectfocusarea,#jsondata,#builder,#tag-box,#state-box,#help-out-box,#editing{ 432 | display:none; 433 | } 434 | input,textarea{ 435 | width:100%; 436 | } 437 | #x,#y{ 438 | width:1.5rem; 439 | } 440 | .nficon{ 441 | width:75px; 442 | } 443 | .close-button{ 444 | float:right; 445 | cursor: pointer; 446 | margin-right:1.5rem; 447 | top:0.25rem; 448 | color:#fff; 449 | } 450 | #menu li, sidebar-icon{ 451 | cursor: pointer; 452 | } 453 | .alert{ 454 | background:#96281B; 455 | padding:10px; 456 | color:#fff; 457 | } 458 | small{font-size:0.65em;} 459 | #display-password{ 460 | display:none; 461 | width:300px; 462 | background:#96281B; 463 | color:#fff; 464 | padding:0.5rem; 465 | border:1px solid #fff; 466 | margin:0 auto; 467 | position:fixed; 468 | z-index:9999999; 469 | font-size:1.4rem; 470 | } 471 | .default-outcome,.build-hover{ 472 | display:none; 473 | border-top: 1px solid black; 474 | border-bottom: 1px solid black; 475 | margin: 0.25rem; 476 | padding: 0.25rem; 477 | } 478 | #searchoutput{ 479 | max-height:35vh; 480 | overflow-y:scroll; 481 | } 482 | .focus-reward { 483 | height: 3rem; 484 | overflow-y: scroll; 485 | width: 60%; 486 | margin-bottom:1rem; 487 | } 488 | .page-container.sidebar-collapsed #menu #help-out { 489 | opacity: 0; 490 | transition: all 50ms linear; 491 | } 492 | .donate{ 493 | background:#009; 494 | color:#fff; 495 | padding:0.5rem 1rem; 496 | border-radius:20px; 497 | transition:0.25s; 498 | } 499 | .donate:hover{ 500 | background:#ccc; 501 | color:#009; 502 | padding:0.5rem 1rem; 503 | border-radius:0; 504 | } 505 | 506 | .reward_wrapper{ 507 | position: relative; 508 | } 509 | .reward_wrapper textarea{ 510 | position: absolute; 511 | color:rgba(0,0,0,0.5); 512 | } 513 | 514 | #reward{ 515 | z-index:5; 516 | background: none; 517 | color:#000; 518 | } 519 | #reward_underlay{ 520 | resize: none; 521 | overflow-y: scroll; 522 | } 523 | 524 | input[type=checkbox]{ 525 | width:1rem; 526 | } 527 | 528 | /*@media(max-width:600px){ 529 | .panel{ 530 | height:100vh; 531 | width:calc(100vw - 66px); 532 | position:fixed; 533 | z-index:10; 534 | border:0; 535 | } 536 | .panel2{ 537 | height:100vh; 538 | width:calc(100vw - 66px); 539 | position:fixed; 540 | z-index:15; 541 | border:0; 542 | } 543 | .panel2-extra{ 544 | height:100vh; 545 | width:calc(100vw - 66px); 546 | position:fixed; 547 | z-index:16; 548 | border:0; 549 | } 550 | }*/ 551 | 552 | .panel{ 553 | overflow-y: scroll; 554 | border: none; 555 | border-radius: 0; 556 | max-width:32vw; 557 | } 558 | .panel-head{ 559 | background:#1b93e1; 560 | height:55px; 561 | } 562 | .panel-head > h3{ 563 | margin: 0; 564 | text-align: center; 565 | padding-top: 1rem; 566 | color:#fff; 567 | } 568 | .popup_container_wrapper{ 569 | position: fixed; 570 | z-index: 9999; 571 | left:1vw; 572 | top:0; 573 | width: 98vw; 574 | } 575 | .popup_container{ 576 | display: flex; 577 | } 578 | .popup_container .panel{ 579 | width:calc(50vw - ( 35px + 2vh )); 580 | height:98vh; 581 | margin: 1vh; 582 | display: block; 583 | position: static; 584 | } 585 | .popup_container .panel-body{ 586 | height:100%; 587 | } 588 | 589 | @media screen and (max-width: 780px){ 590 | .panel{ 591 | max-width:100vw; 592 | max-height:45vh; 593 | } 594 | .popup_container .panel{ 595 | width:95vw; 596 | } 597 | .popup_container{ 598 | flex-wrap: wrap; 599 | } 600 | #tag-box{ 601 | margin-top: -47vh; 602 | } 603 | } 604 | 605 | .errors{ 606 | background:red; 607 | color:white; 608 | display: none; 609 | position: absolute; 610 | z-index: 99999; 611 | display: none; 612 | top: 0; 613 | right: 0; 614 | cursor: pointer; 615 | } 616 | .errors .numbers{ 617 | width: 20px; 618 | height: 20px; 619 | font-size: 14px; 620 | display: block; 621 | text-align: center; 622 | border-radius: 50%; 623 | } 624 | .errors.inactive:hover{ 625 | animation-play-state: paused; 626 | } 627 | .errors.inactive{ 628 | border-radius: 50%; 629 | animation-name: bounce; 630 | animation-duration: 2s; 631 | animation-iteration-count: infinite; 632 | } 633 | .errors.inactive .message{ 634 | display: none; 635 | } 636 | .errors.active .message{ 637 | display: block; 638 | } 639 | 640 | @keyframes bounce { 641 | 0%, 20%, 50%, 80%, 100% {top: 0;} 642 | 10% {top: 10px;} 643 | 30% {top: 5px;} 644 | } -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | HOI4 National Focus Tool 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 |
29 |
30 | 31 | 32 |
33 |
34 | 404 | 405 |
406 |
407 | 408 |
409 |
410 |
411 |
412 |
413 |
414 | 415 | 416 | 417 | 431 | 432 | 433 |
434 | 435 |
436 | 437 |
438 |
439 | 440 | 441 | 469 |
470 | 471 | 492 | 493 | 494 | 495 | -------------------------------------------------------------------------------- /css/font-awesome.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.6.3');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.6.3') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.6.3') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.6.3') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} -------------------------------------------------------------------------------- /js/script.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function(){ 2 | 3 | //Choose NF icon 4 | $(".nficon").click(function(){ 5 | var gfxid = $(this).attr("id"); 6 | var gfxsrc = $(this).attr("src"); 7 | $("#display-gfx").attr("src",gfxsrc); 8 | $("#choosegfx").hide(); 9 | $("#chosen-gfx").val(gfxid); 10 | }); 11 | var focuscount = 0; 12 | //Add focus to view area, and clear form when done 13 | $("#submit-focus").click(function(){ 14 | $("#edit").hide(); 15 | $("#builder").hide(); 16 | 17 | if($("#editing").text().length !== 0){ 18 | var previousedited = $("#editing").text(); 19 | $("#"+previousedited).remove(); 20 | $("#"+previousedited+"-all-info").remove(); 21 | //Remove connectors too 22 | $("*[id*="+previousedited+"-]").each(function() { 23 | $(this).remove(); 24 | }); 25 | $("*[id*=-"+previousedited+"]").each(function() { 26 | $(this).remove(); 27 | }); 28 | $("#editing").text(""); 29 | } 30 | if($("#name").val() !== ""){ 31 | var name = $("#name").val(); 32 | }else{ 33 | var name = "generic_name_"+focuscount; 34 | } 35 | var desc = $("#desc").val(); 36 | var available = $("#available").val(); 37 | var reward = $("#reward").val(); 38 | var time = $("#time").val(); 39 | if($("#prefocus").val().substr($("#prefocus").val().length - 2) == "&&" || $("#prefocus").val().substr($("#prefocus").val().length - 2) == "||"){ 40 | var prefocus = $("#prefocus").val().slice(0,-2); 41 | }else{ 42 | var prefocus = $("#prefocus").val(); 43 | } 44 | if($("#mutual").val().substr($("#mutual").val().length - 2) == "&&" || $("#mutual").val().substr($("#mutual").val().length - 2) == "||"){ 45 | var mutual = $("#mutual").val().slice(0,-2); 46 | }else{ 47 | var mutual = $("#mutual").val(); 48 | } 49 | var bypass = $("#bypass").val(); 50 | var tooltip = $("#tooltip").val(); 51 | var ai = $("#ai").val(); 52 | var x = parseInt($("#x").val()); 53 | var y = parseInt($("#y").val()); 54 | if($("#chosen-gfx").val().substring(0,15) == "data:image/png;"){ 55 | var getgfx = $("#chosen-gfx").val(); 56 | }else{ 57 | var gfx = $("#chosen-gfx").val(); 58 | var getgfx = $("#"+gfx).attr("src"); 59 | } 60 | var id = name.replace(/\s+/g, '').replace(/[^a-zA-Z_0-9]/g, '').toLowerCase(); 61 | var xpos = x*150; 62 | var ypos = y*180; 63 | var allinfo = '
'+name+'
'+desc+'
'+available+'
'+reward+'
'+time+'
'+bypass+'
'+tooltip+'
'+prefocus+'
'+mutual+'
'+ai+'
'+getgfx+'
'; 64 | $("#display").append('
^  
  v
'+'

'+name+'

<  
  >
'+allinfo); 65 | 66 | //Connector - && 67 | //Multiple 68 | if(prefocus.length > 1){ 69 | if(prefocus.indexOf("&&") != -1){ 70 | var prefocusarray = prefocus.split("&&"); 71 | $.each(prefocusarray, function( index, value ) { 72 | var top = parseInt($("#"+value).css("top").replace("px",""))+parseInt($("#"+value).css("height").replace("px","")); 73 | if(top.toString().charAt(0) == "-"){ 74 | var topcalc = top.toString().replace("-",""); 75 | }else{ 76 | var topcalc = top; 77 | } 78 | var verttop = topcalc; 79 | var vertical = topcalc-ypos; 80 | if(vertical.toString().charAt(0) == "-"){ 81 | var verticalcalc = vertical.toString().replace("-",""); 82 | }else{ 83 | var verticalcalc = vertical; 84 | } 85 | var width = parseInt($("#"+value).css("left").replace("px",""))-xpos; 86 | if(width.toString().charAt(0) == "-"){ 87 | var widthcalc = width.toString().replace("-",""); 88 | }else{ 89 | var widthcalc = width; 90 | } 91 | if(parseInt($("#"+value).css("left").replace("px","")) < xpos){ 92 | var left = parseInt($("#"+value).css("left").replace("px",""))+59; 93 | var leftvert = parseInt(left)+parseInt(widthcalc); 94 | }else{ 95 | var left = xpos+59; 96 | var leftvert = left; 97 | } 98 | $("#display").append('
'); 99 | $("#display").append('
'); 100 | }); 101 | } 102 | //Single 103 | if(prefocus.indexOf("&&") == -1 && prefocus.indexOf("||") == -1){ 104 | var top = parseInt($("#"+prefocus).css("top").replace("px",""))+parseInt($("#"+prefocus).css("height").replace("px","")); 105 | if(top.toString().charAt(0) == "-"){ 106 | var topcalc = top.toString().replace("-",""); 107 | }else{ 108 | var topcalc = top; 109 | } 110 | var verttop = topcalc; 111 | var vertical = topcalc-ypos; 112 | if(vertical.toString().charAt(0) == "-"){ 113 | var verticalcalc = vertical.toString().replace("-",""); 114 | }else{ 115 | var verticalcalc = vertical; 116 | } 117 | var width = parseInt($("#"+prefocus).css("left").replace("px",""))-xpos; 118 | if(width.toString().charAt(0) == "-"){ 119 | var widthcalc = width.toString().replace("-",""); 120 | }else{ 121 | var widthcalc = width; 122 | } 123 | if(parseInt($("#"+prefocus).css("left").replace("px","")) < xpos){ 124 | var left = parseInt($("#"+prefocus).css("left").replace("px",""))+59; 125 | var leftvert = parseInt(left)+parseInt(widthcalc); 126 | }else{ 127 | var left = xpos+59; 128 | var leftvert = left; 129 | } 130 | $("#display").append('
'); 131 | $("#display").append('
'); 132 | } 133 | //Connector - || 134 | if(prefocus.indexOf("||") != -1){ 135 | var prefocusarray = prefocus.split("||"); 136 | $.each(prefocusarray, function( index, value ) { 137 | var top = parseInt($("#"+value).css("top").replace("px",""))+parseInt($("#"+value).css("height").replace("px","")); 138 | if(top.toString().charAt(0) == "-"){ 139 | var topcalc = top.toString().replace("-",""); 140 | }else{ 141 | var topcalc = top; 142 | } 143 | var verttop = topcalc; 144 | var vertical = topcalc-ypos; 145 | if(vertical.toString().charAt(0) == "-"){ 146 | var verticalcalc = vertical.toString().replace("-",""); 147 | }else{ 148 | var verticalcalc = vertical; 149 | } 150 | var width = parseInt($("#"+value).css("left").replace("px",""))-xpos; 151 | if(width.toString().charAt(0) == "-"){ 152 | var widthcalc = width.toString().replace("-",""); 153 | }else{ 154 | var widthcalc = width; 155 | } 156 | if(parseInt($("#"+value).css("left").replace("px","")) < xpos){ 157 | var left = parseInt($("#"+value).css("left").replace("px",""))+59; 158 | var leftvert = parseInt(left)+parseInt(widthcalc); 159 | }else{ 160 | var left = xpos+59; 161 | var leftvert = left; 162 | } 163 | $("#display").append('
'); 164 | $("#display").append('
'); 165 | }); 166 | } 167 | } 168 | moveConnections(id); 169 | 170 | if(parseInt($("#max-x").text()) < x){ 171 | $("#max-x").text(x); 172 | } 173 | if(parseInt($("#max-y").text()) < y){ 174 | $("#max-y").text(y); 175 | } 176 | 177 | $("#name").val(""); 178 | $("#desc").val(""); 179 | $("#available").val(""); 180 | $("#reward").val(""); 181 | $("#prefocus").val(""); 182 | $("#mutual").val(""); 183 | $("#bypass").val(""); 184 | $("#tooltip").val(""); 185 | $("#x").val("0"); 186 | $("#y").val("0"); 187 | $("#chosen-gfx").val("goal_unknown"); 188 | $("#display-gfx").attr("src","images/goal_unknown.png"); 189 | focuscount++; 190 | }); 191 | 192 | //Edit/delete focus 193 | $(document).on('click', ".name,.gfx", function() { 194 | var nf = $(this).parent().parent().attr("id"); 195 | if($("#delete").prop('checked') !== true){ 196 | var getname = "#"+nf+"_name"; 197 | var getdesc = "#"+nf+"_desc"; 198 | var getprefocus = "#"+nf+"_prefocus"; 199 | var getavailable = "#"+nf+"_available"; 200 | var getaifactor = "#"+nf+"_ai"; 201 | var getmutual = "#"+nf+"_mutual"; 202 | var img = "#"+nf+"_gfx"; 203 | var getttc = "#"+nf+"_time"; 204 | var getreward = "#"+nf+"_reward"; 205 | var gettooltip = "#"+nf+"_tooltip"; 206 | var getx = $(this).parent().parent().attr("x-pos"); 207 | var gety = $(this).parent().parent().attr("y-pos"); 208 | var getgfx = $(img).attr("src"); 209 | $("#name").val($(getname).text()); 210 | $("#desc").val($(getdesc).text()); 211 | $("#time").val($(getttc).text()); 212 | $("#prefocus").val($(getprefocus).text()); 213 | $("#available").val($(getavailable).text()); 214 | $("#reward").val($(getreward).text()); 215 | $("#mutual").val($(getmutual).text()); 216 | $("#tooltip").val($(gettooltip).text()); 217 | $("#ai").val($(getaifactor).text()); 218 | $("#x").val(getx); 219 | $("#y").val(gety); 220 | $("#chosen-gfx").val(getgfx.replace("images\/","").replace(".png","")); 221 | $("#display-gfx").attr("src", getgfx); 222 | $("#edit-focus").show(); 223 | $("#editing").text(nf); 224 | }else{ 225 | $(this).parent().parent().remove(); 226 | $("#"+nf+"-all-info").remove(); 227 | //Remove connectors too 228 | $("*[id*="+nf+"-]").each(function() { 229 | $(this).remove(); 230 | }); 231 | $("*[id*=-"+nf+"]").each(function() { 232 | $(this).remove(); 233 | }); 234 | } 235 | }); 236 | $("#delete-all").click(function(){ 237 | $('.all-info').each(function (index, element) { 238 | var id = $(this).attr("id").replace("-all-info",""); 239 | $("*[id*="+id+"-]").each(function() { 240 | $(this).remove(); 241 | }); 242 | $("*[id*=-"+id+"]").each(function() { 243 | $(this).remove(); 244 | }); 245 | $("#"+id).each(function() { 246 | $(this).remove(); 247 | }); 248 | $(this).remove(); 249 | }); 250 | }); 251 | 252 | 253 | $(".left, .right, .up, .down, #submit-focus").click(function(){ 254 | 255 | }); 256 | 257 | 258 | 259 | //No AND OR issues 260 | $("#select-and").click(function(){ 261 | $("#select-or").prop('checked',false); 262 | $("#select-and").prop('checked',true); 263 | }); 264 | $("#select-or").click(function(){ 265 | $("#select-and").prop('checked',false); 266 | $("#select-or").prop('checked',true); 267 | }); 268 | $("#select-reset").click(function(){ 269 | $("#select-and").prop('checked',false); 270 | $("#select-or").prop('checked',false); 271 | $("#select-reset").prop('checked',false); 272 | }); 273 | //Mutually Exclusive focuses 274 | $("#mutual").click(function(){ 275 | $("#selectfocus").html(""); 276 | $('.focus').each(function () { 277 | var focusid = (this.id); 278 | var focusname = "#"+focusid+"_name"; 279 | var focusimg = "#"+focusid+"_gfx"; 280 | $("#selectfocus").append('

'+$(focusname).text()+'

'); 281 | }); 282 | $("#selectfocusarea").show(); 283 | }); 284 | //Prerequisite focuses 285 | $("#prefocus").click(function(){ 286 | $("#selectfocus").html(""); 287 | $('.focus').each(function () { 288 | var focusid = (this.id); 289 | var focusname = "#"+focusid+"_name"; 290 | var focusimg = "#"+focusid+"_gfx"; 291 | $("#selectfocus").append('

'+$(focusname).text()+'

'); 292 | }); 293 | $("#selectfocusarea").show(); 294 | }); 295 | //On select of mutual 296 | $(document).on('click', ".mutualselect", function() { 297 | if($("#select-and").prop('checked') == true || $("#select-or").prop('checked') == true){ 298 | if($("#select-and").prop('checked') == true){ 299 | var connection = "&&"; 300 | } 301 | if($("#select-or").prop('checked') == true){ 302 | var connection = "||"; 303 | } 304 | var msid = (this.id).replace("_sel",""); 305 | $("#mutual").val($("#mutual").val() + msid + connection); 306 | $(this).remove(); 307 | }else{ 308 | var msid = (this.id).replace("_sel",""); 309 | $("#mutual").val($("#mutual").val() + msid); 310 | $("#selectfocus").html(""); 311 | $("#selectfocusarea").hide(); 312 | } 313 | }); 314 | //On select of prerequisite 315 | $(document).on('click', ".preselect", function() { 316 | if($("#select-and").prop('checked') == true || $("#select-or").prop('checked') == true){ 317 | if($("#select-and").prop('checked') == true){ 318 | var connection = "&&"; 319 | } 320 | if($("#select-or").prop('checked') == true){ 321 | var connection = "||"; 322 | } 323 | var psid = (this.id).replace("_sel",""); 324 | $("#prefocus").val($("#prefocus").val() + psid + connection); 325 | $(this).remove(); 326 | }else{ 327 | var psid = (this.id).replace("_sel",""); 328 | $("#prefocus").val($("#prefocus").val() + psid); 329 | $("#selectfocus").html(""); 330 | $("#selectfocusarea").hide(); 331 | } 332 | }); 333 | 334 | 335 | /* local storage */ 336 | if(localStorage.getItem('nationalfocus')) { 337 | var nationalfocusitems = localStorage.getItem('nationalfocus'); 338 | $('#display').html(nationalfocusitems); 339 | } 340 | $("#savetostorage").click(function(){ 341 | localStorage.setItem('nationalfocus', $('#display').html()); 342 | }); 343 | 344 | 345 | 346 | $("#export-help, #close-export-help").click(function(){ 347 | $("#export-help-box").toggle(); 348 | }); 349 | 350 | $("#export, #close-export").click(function(){ 351 | $("#export-box").toggle(); 352 | }); 353 | 354 | $("#export-box-open").on('click', function(){ 355 | var errors = 0; 356 | var errorMessages = ''; 357 | $('.focus').each(function(){ 358 | var id = '#'+$(this).attr('id'); 359 | var name = $(id+'-name').text(); 360 | if( ($(id+'_available').text().match(/{/g) || []).length !== ($(id+'_available').text().match(/}/g) || []).length ){ 361 | errors++; 362 | errorMessages += 'Uneven amount of braces for '+name+'\'s available
'; 363 | } 364 | if( ($(id+'_reward').text().match(/{/g) || []).length !== ($(id+'_reward').text().match(/}/g) || []).length ){ 365 | errors++; 366 | errorMessages += 'Uneven amount of braces for '+name+'\' reward
'; 367 | } 368 | if( ($(id+'_bypass').text().match(/{/g) || []).length !== ($(id+'_bypass').text().match(/}/g) || []).length ){ 369 | errors++; 370 | errorMessages += 'Uneven amount of braces for '+name+'\' bypass
'; 371 | } 372 | if($(id+'_prefocus').text() != ''){ 373 | var prefoci = []; 374 | var prefocus = $(id+'_prefocus').text(); 375 | if(prefocus.indexOf('&&') > 0){ 376 | var prefocus = prefocus.split('&&'); 377 | 378 | $.each(prefocus, function(){ 379 | if(this.indexOf('||') > 0){ 380 | var split = this.split('||'); 381 | $.each(split, function(){ 382 | prefoci.push(this); 383 | }); 384 | }else{ 385 | prefoci.push(this); 386 | } 387 | }); 388 | }else{ 389 | if(prefocus.indexOf('||') > 0){ 390 | var prefoci = []; 391 | var prefocus = prefocus.split('||'); 392 | 393 | $.each(prefocus, function(){ 394 | prefoci.push(this); 395 | }); 396 | } 397 | } 398 | 399 | $.each(prefoci, function(){ 400 | if(!$('#'+this).length){ 401 | errors++; 402 | errorMessages += 'Focus with ID "'+this+'" is referenced in '+name+' but does not exist
'; 403 | } 404 | }); 405 | } 406 | if($(id+'_mutual').text() != ''){ 407 | var mutuals = []; 408 | var mutual = $(id+'_mutual').text(); 409 | var mutual = mutual.split('&&'); 410 | 411 | $.each(mutual, function(){ 412 | var split = this.split('||'); 413 | $.each(split, function(){ 414 | mutuals.push(this); 415 | }); 416 | }); 417 | $.each(mutuals, function(){ 418 | if(!$('#'+this).length){ 419 | errors++; 420 | errorMessages += 'Focus with ID "'+this+'" is referenced in '+name+' but does not exist
'; 421 | } 422 | }); 423 | } 424 | 425 | if(errors > 0){ 426 | $('.errors .numbers').text(errors); 427 | $('.errors .message').html(errorMessages); 428 | $('.errors .message').append('
Click box to close'); 429 | $('.errors').show(); 430 | } 431 | }); 432 | }); 433 | $('.errors').on('click', function(){ 434 | if($(this).hasClass('inactive')){ 435 | $(this).removeClass('inactive'); 436 | $(this).addClass('active'); 437 | }else{ 438 | $(this).addClass('inactive'); 439 | $(this).removeClass('active'); 440 | $(this).hide(); 441 | } 442 | }); 443 | //TAG search 444 | $("#export-country").keyup(function(){ 445 | var searchField = $("#export-country").val(); 446 | var regex = new RegExp(searchField, "i"); 447 | var count = 1; 448 | var output = ""; 449 | $.getJSON("tags.json", function(data) { 450 | $.each(data, function(key, val){ 451 | if ((val.country.search(regex) != -1) || (val.tag.search(regex) != -1)) { 452 | output += '

'+val.country+'

'; 453 | } 454 | }); 455 | $("#export-country-result").html(output); 456 | }); 457 | }); 458 | $(document).on('click', ".focus_tree_tags", function() { 459 | var tagid = $(this).attr("id"); 460 | $("#export-country").val($("#export-country").val()+tagid); 461 | }); 462 | 463 | /* Export text files*/ 464 | $("#export-focus").click(function(){ 465 | currentx = 0; 466 | currenty = 0; 467 | working = 0; 468 | checked = 0; 469 | var maxx = parseInt($("#max-x").text()); 470 | var maxy = parseInt($("#max-y").text()); 471 | var focustreeid =$("#focus-tree-id").val().replace(/\s+/g, '').replace(/[^a-zA-Z]/g, '').toLowerCase(); 472 | $("#workplace-focus").val('{"treeid":"'+focustreeid+'","start":"focus_tree = {
id = \''+focustreeid+'\'
country = {
factor=0
modifier = {
add = 10
tag = '+$("#export-country").val()+'
}
}
default = no
#Custom focuses start here
","focuses":['); 473 | $("#workplace-lang").val("l_"+$("#tree-language").val()+":\n"); 474 | //$('.all-info').each(function (index, element) { 475 | while(currentx <= maxx && currenty <= maxy){ 476 | checked++; 477 | var exportid = $("[x-pos="+currentx+"][y-pos="+currenty+"]").attr("id"); 478 | if($("[x-pos*="+currentx+"][y-pos*="+currenty+"]").length){ 479 | var exportname = "#"+exportid+"_name"; 480 | var exportdesc = "#"+exportid+"_desc"; 481 | var exportprefocus = "#"+exportid+"_prefocus"; 482 | var exportavailable = "#"+exportid+"_available"; 483 | var exportmutual = "#"+exportid+"_mutual"; 484 | var exporttooltip = "#"+exportid+"_tooltip"; 485 | var exportimg = "#"+exportid+"_gfx"; 486 | var exportreward = "#"+exportid+"_reward"; 487 | var exportttc = "#"+exportid+"_time"; 488 | var exportbypass = "#"+exportid+"_bypass"; 489 | var exportai = "#"+exportid+"_ai"; 490 | var exportx = $("#"+exportid).attr("x-pos"); 491 | var exporty = $("#"+exportid).attr("y-pos"); 492 | var exportgfx = $(exportimg).attr("src"); 493 | if(exportid !== "" && exportid !== "undefined"){ 494 | if($(exportprefocus).text().length !== 0){ 495 | var fixprefocus = $(exportprefocus).text().replace(/\&\&/g,"}\n prerequisite = { focus =").replace(/\|\|/g," focus = "); 496 | } 497 | if($(exportmutual).text().length !== 0){ 498 | var fixmutual = $(exportmutual).text().replace(/\&\&/g,"}\n mutually_exclusive = { focus =").replace(/\|\|/g," focus = "); 499 | } 500 | 501 | $("#workplace-lang").val($("#workplace-lang").val() + exportid + ':0 "' + $(exportname).text() + '"
'); 502 | $("#workplace-lang").val($("#workplace-lang").val() + exportid + '_desc:0 "' + $(exportdesc).text() + '"
'); 503 | 504 | 505 | $("#workplace-focus").val($("#workplace-focus").val()+"{"); 506 | $("#workplace-focus").val($("#workplace-focus").val() + '"name":"'+ $(exportname).text() +'",'); 507 | $("#workplace-focus").val($("#workplace-focus").val() + '"id":"'+ exportid +'",'); 508 | $("#workplace-focus").val($("#workplace-focus").val() + '"icon":"'+ exportgfx + '",'); 509 | $("#workplace-focus").val($("#workplace-focus").val() + '"everythingelse":"'); 510 | if($(exportbypass).text().length > 0){ 511 | $("#workplace-focus").val($("#workplace-focus").val() + 'bypass = {'+ $(exportbypass).text().replace(/\r?\n/g,"
").replace(/\t/g,"\\t").replace(/["']/g, "'") + '}
'); 512 | } 513 | if($(exportai).text().length > 0){ 514 | $("#workplace-focus").val($("#workplace-focus").val() + 'ai_will_do = { factor = '+ $(exportai).text().replace(/\r?\n/g,"
").replace(/\t/g,"\\t") + '}
'); 515 | }else{ 516 | $("#workplace-focus").val($("#workplace-focus").val() + 'ai_will_do = { factor = 0 }
'); 517 | } 518 | $("#workplace-focus").val($("#workplace-focus").val() + 'x ='+ exportx + '
'); 519 | $("#workplace-focus").val($("#workplace-focus").val() + 'y ='+ exporty + '
'); 520 | 521 | 522 | 523 | if($(exportmutual).text().length == 0){ 524 | $("#workplace-focus").val($("#workplace-focus").val() + 'mutually_exclusive = { }
'); 525 | }else{ 526 | $("#workplace-focus").val($("#workplace-focus").val() + 'mutually_exclusive = { focus = '+ fixmutual.replace(/\r?\n/g,"
").replace(/\t/g,"\\t").replace(/["]/g, "'") + '}
'); 527 | } 528 | if($(exportprefocus).text().length == 0){ 529 | $("#workplace-focus").val($("#workplace-focus").val() + 'prerequisite = { }
'); 530 | }else{ 531 | $("#workplace-focus").val($("#workplace-focus").val() + 'prerequisite = { focus = '+fixprefocus.replace(/\r?\n/g,"
").replace(/\t/g,"\\t").replace(/["]/g, "'") + '}
'); 532 | } 533 | if($(exportavailable).text().length > 0){ 534 | $("#workplace-focus").val($("#workplace-focus").val() + 'available = { '+ $(exportavailable).text().replace(/\r?\n/g,"
").replace(/\t/g,"\\t").replace(/["]/g, "'") + ' }
'); 535 | } 536 | if($(exportttc).text() == "" || $(exportttc).text() == "0"){ 537 | $("#workplace-focus").val($("#workplace-focus").val() + 'cost = 10
available_if_capitulated = yes
'); 538 | }else{ 539 | $("#workplace-focus").val($("#workplace-focus").val() + 'cost = '+ $(exportttc).text().replace(/\r?\n/g,"
").replace(/\t/g,"\\t").replace(/["]/g, "'") + '
available_if_capitulated = yes
'); 540 | } 541 | if($(exportreward).text().length > 0){ 542 | $("#workplace-focus").val($("#workplace-focus").val() + 'completion_reward = {
'+ $(exportreward).text().replace(/\r?\n/g,"
").replace(/\t/g,"\\t").replace(/["]/g, "'") + '
}
'); 543 | } 544 | $("#workplace-focus").val($("#workplace-focus").val()+'"},'); 545 | } 546 | } 547 | if(currentx == maxx){ 548 | currentx = 0; 549 | currenty++; 550 | working = 0; 551 | }else{ 552 | currentx++; 553 | } 554 | } 555 | console.log(checked); 556 | if(checked == 0 || checked == 1){ 557 | alert('There was a problem creating your focus tree. Please report the following on Github: "x-'+maxx+'|y-'+maxy+'" along with your browser and the location of your final focus (the one at the bottom of your tree)'); 558 | } 559 | //}); 560 | $("#workplace-focus").val($("#workplace-focus").val().slice(0, -1)+"]}").delay(100); 561 | 562 | $('#export-focus-hidden').trigger('click'); 563 | }); 564 | 565 | $("#savetoserver").click(function(){ 566 | var ids = []; 567 | var names = []; 568 | var descs = []; 569 | var prefocuses = []; 570 | var availables = []; 571 | var mutuals = []; 572 | var imgs = []; 573 | var rewards = []; 574 | var ttcs = []; 575 | var bypasses = []; 576 | var xs = []; 577 | var ys = []; 578 | var ai = []; 579 | var tooltips = []; 580 | ids = []; 581 | names = []; 582 | descs = []; 583 | prefocuses = []; 584 | availables = []; 585 | mutuals = []; 586 | imgs = []; 587 | rewards = []; 588 | ttcs = []; 589 | bypasses = []; 590 | xs = []; 591 | ys = []; 592 | ai = []; 593 | tooltips = []; 594 | if($("#public_focuses").prop('checked') == false){ 595 | var private = "1"; 596 | }else{ 597 | var private = "0"; 598 | } 599 | var tags = $("#country_tags").val(); 600 | $('.all-info').each(function () { 601 | var exportid = $(this).attr("id").replace("-all-info",""); 602 | var exportname = "#"+exportid+"_name"; 603 | var exportdesc = "#"+exportid+"_desc"; 604 | var exportprefocus = "#"+exportid+"_prefocus"; 605 | var exportavailable = "#"+exportid+"_available"; 606 | var exportmutual = "#"+exportid+"_mutual"; 607 | var exportimg = "#"+exportid+"_gfx"; 608 | var exportreward = "#"+exportid+"_reward"; 609 | var exportttc = "#"+exportid+"_time"; 610 | var exportbypass = "#"+exportid+"_bypass"; 611 | var exportx = $("#"+exportid).attr("x-pos"); 612 | var exporty = $("#"+exportid).attr("y-pos"); 613 | var exportgfx = $(exportimg).attr("src"); 614 | var exportai = "#"+exportid+"_ai"; 615 | var exporttooltip = "#"+exportid+"_tooltip"; 616 | 617 | ids.push(exportid); 618 | names.push($(exportname).text()); 619 | descs.push($(exportdesc).text()); 620 | imgs.push(exportgfx); 621 | bypasses.push($(exportbypass).text()); 622 | xs.push(exportx); 623 | ys.push(exporty); 624 | mutuals.push($(exportmutual).text()); 625 | prefocuses.push($(exportprefocus).text()); 626 | availables.push($(exportavailable).text()); 627 | ttcs.push($(exportttc).text()); 628 | rewards.push($(exportreward).text()); 629 | ai.push($(exportai).text()); 630 | tooltips.push($(exporttooltip).text()); 631 | }); 632 | $.post( "upload.php",{ 633 | ids: ids, 634 | names: names, 635 | descs: descs, 636 | prefocuses: prefocuses, 637 | availables:availables, 638 | mutuals: mutuals, 639 | imgs: imgs, 640 | rewards: rewards, 641 | ttcs: ttcs, 642 | bypasses: bypasses, 643 | xs: xs, 644 | ys: ys, 645 | ai: ai, 646 | tooltips: tooltips, 647 | private: private, 648 | tags: tags 649 | }, 650 | function(data,status){ 651 | 652 | if(status !== "success"){ 653 | alert("There was an issue uploading your focus(es), please try again later or report an issue on Github."); 654 | }else{ 655 | var content = $( data ).find( "#pw" ); 656 | $( "#display-password" ).empty().append( content ); 657 | $( "#display-password" ).append('
The above is your password, to access your focus(es) from anywhere, make sure to copy it. Click this text to close this box') 658 | $( "#display-password" ).show(); 659 | $( "#server-box" ).hide(); 660 | } 661 | }); 662 | }); 663 | 664 | 665 | $("#sub-pass").click(function(){ 666 | $.post( 'import.php', { import_password: $("#import_password").val() }, 667 | function(data,status){ 668 | // alert("Data: " + data + "\nStatus: " + status); 669 | var content = $( data ).filter( "#table" ); 670 | $( "#show-output" ).empty().append( content ); 671 | 672 | }); 673 | }); 674 | 675 | $(document).on('click', ".import-row", function() { 676 | var addid = $(this).attr("id"); 677 | $("#display").append($("#"+addid+"-import-row").html()); 678 | $(this).remove(); 679 | if($('.import-row').length == "0" || $('.import-row').length == "-1"){ 680 | $("#table").remove(); 681 | } 682 | }); 683 | $(document).on('click', "#clear-table", function() { 684 | $("#table").remove(); 685 | }); 686 | 687 | //Custom GFX 688 | File.prototype.convertToBase64 = function(callback){ 689 | var reader = new FileReader(); 690 | reader.onload = function(e) { 691 | callback(e.target.result) 692 | }; 693 | reader.onerror = function(e) { 694 | callback(null, e); 695 | }; 696 | reader.readAsDataURL(this); 697 | }; 698 | 699 | $("#customgfx").on("change",function(){ 700 | var gfxid = $(this).attr("id"); 701 | var selectedFile = this.files[0]; 702 | selectedFile.convertToBase64(function(base64){ 703 | var b64 = gfxid.replace("image","base64"); 704 | var display = gfxid.replace("image","display"); 705 | if(base64.substring(0,15) == "data:image/png;"){ 706 | $("#display-gfx").attr('src',base64); 707 | $("#chosen-gfx").val(base64); 708 | }else{ 709 | alert("The image you have uploaded is not a PNG"); 710 | } 711 | }); 712 | }); 713 | 714 | //Refresh max x/y 715 | $(".focus").each(function(){ 716 | var x = parseInt($(this).attr("x-pos")); 717 | var y = parseInt($(this).attr("y-pos")); 718 | if(parseInt($("#max-x").text()) < x){ 719 | $("#max-x").text(x); 720 | } 721 | if(parseInt($("#max-y").text()) < y){ 722 | $("#max-y").text(y); 723 | } 724 | }); 725 | 726 | 727 | /** 728 | === 729 | For connectors: 730 | === 731 | **/ 732 | 733 | //Move focus right 734 | $(document).on('click', ".right", function() { 735 | $(this).parent().parent().animate({left: '+=150px'}, 0); 736 | $(this).parent().parent().attr("x-pos",parseInt($(this).parent().parent().attr("x-pos"))+1); 737 | moveConnections($(this).parent().parent().attr("id")); 738 | }); 739 | //Move focus left 740 | $(document).on('click', ".left", function() { 741 | if(parseInt($(this).parent().parent().css("left").replace("px","")) > 99){ 742 | $(this).parent().parent().animate({left: '+=-150px'}, 0); 743 | $(this).parent().parent().attr("x-pos",parseInt($(this).parent().parent().attr("x-pos"))-1); 744 | moveConnections($(this).parent().parent().attr("id")); 745 | } 746 | }); 747 | //Move focus down 748 | $(document).on('click', ".down", function() { 749 | $(this).parent().parent().animate({top: '+=180px'}, 0); 750 | $(this).parent().parent().attr("y-pos",parseInt($(this).parent().parent().attr("y-pos"))+1); 751 | moveConnections($(this).parent().parent().attr("id")); 752 | }); 753 | //Move focus up 754 | $(document).on('click', ".up", function() { 755 | if(parseInt($(this).parent().parent().css("top").replace("px","")) > 149){ 756 | $(this).parent().parent().animate({top: '+=-180px'}, 0); 757 | $(this).parent().parent().attr("y-pos",parseInt($(this).parent().parent().attr("y-pos"))-1); 758 | moveConnections($(this).parent().parent().attr("id")); 759 | } 760 | }); 761 | 762 | function moveConnections(focusid){ 763 | var xpos = parseInt($("#"+focusid).attr("x-pos"))*150; 764 | var ypos = parseInt($("#"+focusid).attr("y-pos"))*180; 765 | //Connector 766 | $.each($('.connection[id*="'+$("#"+focusid).attr("id")+'"]'),function(index, value){ 767 | var connectorid = $(value).attr("id"); 768 | var connectorclass = $("#"+connectorid).attr("class").replace("-vert",""); 769 | var focuses = connectorid.split("-"); 770 | var top = parseInt($("#"+focuses[1]).css("top").replace("px",""))+parseInt($("#"+focuses[1]).css("height").replace("px","")); 771 | if(top.toString().charAt(0) == "-"){ 772 | var topcalc = top.toString().replace("-",""); 773 | }else{ 774 | var topcalc = top; 775 | } 776 | var verttop = topcalc; 777 | var vertical = topcalc-ypos; 778 | if(vertical.toString().charAt(0) == "-"){ 779 | var verticalcalc = vertical.toString().replace("-",""); 780 | }else{ 781 | var verticalcalc = vertical; 782 | } 783 | var width = parseInt($("#"+focuses[1]).css("left").replace("px",""))-parseInt($("#"+focuses[0]).css("left").replace("px","")); 784 | if(width.toString().charAt(0) == "-"){ 785 | var widthcalc = width.toString().replace("-",""); 786 | }else{ 787 | var widthcalc = width; 788 | } 789 | if(parseInt($("#"+focuses[1]).css("left").replace("px","")) < parseInt($("#"+focuses[0]).css("left").replace("px",""))){ 790 | var left = parseInt($("#"+focuses[1]).css("left").replace("px",""))+59; 791 | var leftvert = parseInt(left)+parseInt(widthcalc); 792 | }else{ 793 | var left = parseInt($("#"+focuses[0]).css("left").replace("px",""))+59; 794 | var leftvert = left; 795 | } 796 | $("#"+focuses[0]+'-'+focuses[1]+'-h').remove(); 797 | $("#"+focuses[0]+'-'+focuses[1]+'-v').remove(); 798 | $("#display").append('
'); 799 | $("#display").append('
'); 800 | }); 801 | } 802 | 803 | }); --------------------------------------------------------------------------------