summaryrefslogtreecommitdiffstats
path: root/usr/local/www/themes
diff options
context:
space:
mode:
authorhoba <hoba@hobas-imac-3.local>2009-06-26 02:51:52 +0200
committerhoba <hoba@hobas-imac-3.local>2009-06-26 02:51:52 +0200
commit26857a89dc8d54868147bb909eeee6f83b7fb9f8 (patch)
tree9748a6a5965c4de8a526db66cb225a922bbe5d79 /usr/local/www/themes
parentc36e48f0ce2ebfc7fd64d29d8f4768daa9cef179 (diff)
downloadpfsense-26857a89dc8d54868147bb909eeee6f83b7fb9f8.zip
pfsense-26857a89dc8d54868147bb909eeee6f83b7fb9f8.tar.gz
Adding the pfSense_ng theme
Diffstat (limited to 'usr/local/www/themes')
-rw-r--r--usr/local/www/themes/pfsense_ng/all backup 1.css1248
-rw-r--r--usr/local/www/themes/pfsense_ng/all.css1347
-rw-r--r--usr/local/www/themes/pfsense_ng/bottom-loader.js10
-rw-r--r--usr/local/www/themes/pfsense_ng/favicon.icobin0 -> 1406 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/graphlink.css43
-rw-r--r--usr/local/www/themes/pfsense_ng/images/alert_bgr.pngbin0 -> 2344 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/alerter.pngbin0 -> 2627 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/background.gifbin0 -> 159955 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/background.jpgbin0 -> 62351 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/background.pngbin0 -> 11142 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/button_left.gifbin0 -> 534 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/button_mid.gifbin0 -> 149 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/button_right.gifbin0 -> 333 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/footer.pngbin0 -> 1595 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/header.pngbin0 -> 4994 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/horizontal.gifbin0 -> 461 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/hostname.pngbin0 -> 1899 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/favicon.icobin0 -> 1406 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_alert.gifbin0 -> 2055 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_alias_host.gifbin0 -> 348 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_alias_net.gifbin0 -> 331 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_alias_port.gifbin0 -> 346 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_alias_url.gifbin0 -> 314 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_alias_url_reload.gifbin0 -> 1111 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_block.gifbin0 -> 193 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_block_d.gifbin0 -> 193 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_cablenic.gifbin0 -> 91 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_cal.gifbin0 -> 646 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_cal_mo.gifbin0 -> 1060 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_carp.gifbin0 -> 352 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_carp_d.gifbin0 -> 357 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_check.gifbin0 -> 1291 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_clock_green.gifbin0 -> 308 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_clock_grey.gifbin0 -> 308 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_clock_red.gifbin0 -> 308 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_close.gifbin0 -> 64 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_configure.gifbin0 -> 64 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_down.gifbin0 -> 1114 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_down_d.gifbin0 -> 689 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_down_mo.gifbin0 -> 1117 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_e.gifbin0 -> 1106 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_e_mo.gifbin0 -> 1120 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_error.gifbin0 -> 1312 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_exclam.gifbin0 -> 1274 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_flag_de.pngbin0 -> 134 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_flag_en.pngbin0 -> 736 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_flag_es.pngbin0 -> 308 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_flag_pt_BR.pngbin0 -> 653 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_cert.pngbin0 -> 1526 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_file.pngbin0 -> 694 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_group.pngbin0 -> 739 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_host.pngbin0 -> 508 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_imp.pngbin0 -> 683 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_mail.pngbin0 -> 498 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_pwd.pngbin0 -> 674 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_search.pngbin0 -> 666 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_time.pngbin0 -> 711 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_unknown.pngbin0 -> 595 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_url.pngbin0 -> 731 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_user.pngbin0 -> 641 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_fw-update.gifbin0 -> 43785 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_ifalias.gifbin0 -> 315 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_ifalias_d.gifbin0 -> 315 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_import_alias.gifbin0 -> 1109 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_in.gifbin0 -> 177 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_in_d.gifbin0 -> 190 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_info_pkg.gifbin0 -> 1131 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_interface_down.gifbin0 -> 88 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_interface_up.gifbin0 -> 87 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_left.gifbin0 -> 1120 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_left_d.gifbin0 -> 691 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_left_mo.gifbin0 -> 1129 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_log.gifbin0 -> 297 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_log_d.gifbin0 -> 297 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_log_s.gifbin0 -> 305 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_log_s_d.gifbin0 -> 305 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_minus.gifbin0 -> 61 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_open.gifbin0 -> 62 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_other.gifbin0 -> 125 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_other_d.gifbin0 -> 125 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_out.gifbin0 -> 179 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_out_d.gifbin0 -> 189 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_parp.gifbin0 -> 303 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_parp_d.gifbin0 -> 303 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_pass.gifbin0 -> 182 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_pass_d.gifbin0 -> 182 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_plus.gifbin0 -> 1100 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_plus_bl.gifbin0 -> 1096 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_plus_bl_p.gifbin0 -> 1079 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_plus_d.gifbin0 -> 682 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_plus_mo.gifbin0 -> 1120 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_plus_p.gifbin0 -> 1087 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall.gifbin0 -> 1119 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_d.gifbin0 -> 701 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_mo.gifbin0 -> 1130 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_pkg.gifbin0 -> 1109 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_pkg_d.gifbin0 -> 694 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_pkg_mo.gifbin0 -> 1135 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_xml.gifbin0 -> 1105 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_xml_d.gifbin0 -> 686 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_xml_mo.gifbin0 -> 1131 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_reject.gifbin0 -> 193 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_reject_d.gifbin0 -> 193 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_right.gifbin0 -> 1117 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_service_restart.gifbin0 -> 1120 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_service_restart_d.gifbin0 -> 1115 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_service_start.gifbin0 -> 1119 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_service_start_d.gifbin0 -> 1115 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_service_stop.gifbin0 -> 1106 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_service_stop_d.gifbin0 -> 1100 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_services_restart_mo.gifbin0 -> 1129 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_services_start_mo.gifbin0 -> 1130 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_services_stop_mo.gifbin0 -> 1126 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_system-group-grey.pngbin0 -> 1459 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_system-group.pngbin0 -> 2788 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_system-user-grey.pngbin0 -> 1052 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_system-user.pngbin0 -> 1912 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_system_lock_screen.pngbin0 -> 1653 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_system_logout.pngbin0 -> 2030 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_trapped.gifbin0 -> 1101 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_trapped_p.gifbin0 -> 1079 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_ts_rule.gifbin0 -> 194 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_ts_rule_d.gifbin0 -> 193 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_up.gifbin0 -> 1116 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_up_d.gifbin0 -> 691 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_up_mo.gifbin0 -> 1129 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_wlan.gifbin0 -> 66 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_wlan_d.gifbin0 -> 100 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_wol_all.gifbin0 -> 1126 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_wzd_nsaved.pngbin0 -> 502 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_wzd_saved.pngbin0 -> 444 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_x.gifbin0 -> 1111 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_x_d.gifbin0 -> 680 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_x_mo.gifbin0 -> 1126 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/icon_x_p.gifbin0 -> 1090 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/in.gifbin0 -> 177 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/in_d.gifbin0 -> 190 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/out.gifbin0 -> 179 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/icons/out_d.gifbin0 -> 189 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/logo.gifbin0 -> 2471 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/logobig.jpgbin0 -> 13482 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/mainmenu-down.gifbin0 -> 55 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/mainmenu-right.gifbin0 -> 56 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/mainmenuitem.gifbin0 -> 54 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/menu-dot.gifbin0 -> 54 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/menu_down.gifbin0 -> 61 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/menu_footer.gifbin0 -> 234 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/menu_right.gifbin0 -> 61 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/menubgr.pngbin0 -> 176 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/menubgr_footer.pngbin0 -> 355 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/menubgr_highlight.pngbin0 -> 207 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/metal_bgr.gifbin0 -> 734 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/metal_bgr_red.gifbin0 -> 734 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/bar_blue.gifbin0 -> 94 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/bar_gray.gifbin0 -> 94 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/bar_left.gifbin0 -> 289 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/bar_right.gifbin0 -> 288 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/bullet_toggle_minus.pngbin0 -> 207 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/bullet_toggle_plus.pngbin0 -> 209 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/button.gifbin0 -> 805 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/graph.pngbin0 -> 2617 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/key_128.gifbin0 -> 2766 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/key_152.gifbin0 -> 2772 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/key_256.gifbin0 -> 2808 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/key_64.gifbin0 -> 2723 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/left_background.gifbin0 -> 38943 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/loader.gifbin0 -> 5971 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/loader_all.gifbin0 -> 2612 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/loader_filter.gifbin0 -> 2647 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/loader_tab.gifbin0 -> 5852 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/logon.pngbin0 -> 59374 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/plogo_0.gifbin0 -> 2195 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/plogo_1.gifbin0 -> 3851 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/plogo_10.gifbin0 -> 10624 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/plogo_2.gifbin0 -> 4611 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/plogo_3.gifbin0 -> 5572 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/plogo_4.gifbin0 -> 7103 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/plogo_5.gifbin0 -> 8717 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/plogo_6.gifbin0 -> 9422 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/plogo_7.gifbin0 -> 9443 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/plogo_8.gifbin0 -> 10240 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/plogo_9.gifbin0 -> 10823 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/progress_bar.gifbin0 -> 44791 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/rrd_error.pngbin0 -> 43427 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/status_alerter.gifbin0 -> 2203 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/status_carpmaster.gifbin0 -> 1558 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/status_left.gifbin0 -> 600 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/status_page_loading.gifbin0 -> 3318 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/status_reload_all.gifbin0 -> 3286 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/status_reload_filter.gifbin0 -> 3288 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/status_right.gifbin0 -> 599 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/tri_c.gifbin0 -> 61 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/tri_c_black.gifbin0 -> 69 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/tri_o.gifbin0 -> 58 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/tri_o_black.gifbin0 -> 67 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/misc/widget_loader.gifbin0 -> 2545 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/transparent.gifbin0 -> 146 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/transparent_pixel.gifbin0 -> 43 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/wizards/initial/joincluster.gifbin0 -> 10076 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/wizards/initial/joincluster_mo.gifbin0 -> 10153 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/wizards/initial/restore.gifbin0 -> 9199 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/wizards/initial/restore_mo.gifbin0 -> 9099 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/wizards/initial/standalone.gifbin0 -> 7265 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/wizards/initial/standalone_mo.gifbin0 -> 7382 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/wizards/initial/startnewcluster.gifbin0 -> 10175 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/images/wizards/initial/startnewcluster_mo.gifbin0 -> 10030 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/ie7/blank.gifbin0 -> 48 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-box-model.js2
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-core.js2
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-css-strict.js2
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-css2.js2
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-css3.js2
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-fixed.js2
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-html4.js2
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-ie5.js2
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-lite-p.js3
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-lite.js2
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-png.js2
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-server.css43
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-standard-p.js3
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-standard.js2
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/ie7/test-trans.pngbin0 -> 106 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/img/grey-40.pngbin0 -> 849 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/img/submenu-off.gifbin0 -> 65 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/img/submenu-on.gifbin0 -> 65 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/img/white-90.pngbin0 -> 849 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/img/x.gifbin0 -> 43 bytes
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/niftyjsCode.js174
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/transmenu-body.php51
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/transmenu-head.php85
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/transmenu.org785
-rw-r--r--usr/local/www/themes/pfsense_ng/javascript/transmenuC.js86
-rw-r--r--usr/local/www/themes/pfsense_ng/jsevents/body.def7
-rw-r--r--usr/local/www/themes/pfsense_ng/loader.js29
-rw-r--r--usr/local/www/themes/pfsense_ng/login.css1099
-rw-r--r--usr/local/www/themes/pfsense_ng/menu.inc178
-rw-r--r--usr/local/www/themes/pfsense_ng/no_big_logo1
-rw-r--r--usr/local/www/themes/pfsense_ng/rrdcolors.inc.php50
-rw-r--r--usr/local/www/themes/pfsense_ng/styles/menustyles.css44
-rw-r--r--usr/local/www/themes/pfsense_ng/styles/transmenu.css75
-rw-r--r--usr/local/www/themes/pfsense_ng/wizard.css1065
241 files changed, 6448 insertions, 0 deletions
diff --git a/usr/local/www/themes/pfsense_ng/all backup 1.css b/usr/local/www/themes/pfsense_ng/all backup 1.css
new file mode 100644
index 0000000..325e4db
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/all backup 1.css
@@ -0,0 +1,1248 @@
+/* Element CSS Definitions */
+html, body, td, th, input, select {
+ font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
+ font-size: 0.9em;
+
+}
+
+.infobox {
+ width:100%;
+}
+
+.infoboxsave {
+ padding-right: 10px;
+}
+
+.infoboxnptd2 {
+ width:100%;
+ color:white;
+ background-color:#990000;
+ padding-right: 10px;
+}
+
+.infoboxnptd {
+ width:8%;
+ background-color:#990000;
+}
+
+.infoboxnptable {
+ height:32px;
+ width:100%;
+ background-color:#990000;
+}
+
+.infoboxnptable2 {
+ height:32px;
+ width:100%;
+ background-color:#990000;
+}
+
+.infoboxnp {
+ background-color:#990000;
+ width:100%;
+}
+
+.infoboxnpimg {
+ vertical-align:middle;
+ width:28px;
+ height:32px;
+ background-color:#990000;
+}
+
+.inputerrorsleft {
+ background-color: #990000;
+ width: 36px;
+}
+
+.inputerrorsright {
+ background-color: #FFD9D1;
+ color: #000000;
+ font-size: 11px;
+ padding-left: 8px;
+ padding-top: 6px;
+}
+
+div.GraphLink {
+ position: relative;
+}
+
+span.GraphLinkLine {
+ position: absolute;
+ background-color: #990000;
+ width: 100%;
+}
+
+/* DOM Tooltip CSS definitions */
+div.niceTitle
+{
+ background-color: #333333;
+ color: #FFFFFF;
+ font-weight: bold;
+ font-size: 13px;
+ font-family: "Trebuchet MS", sans-serif;
+ width: 220px;
+ left: 0;
+ top: 0;
+ padding: 4px;
+ position: absolute;
+ text-align: left;
+ z-index: 20;
+ -moz-border-radius: 0 10px 10px 10px;
+ filter: progid:DXImageTransform.Microsoft.Alpha(opacity=87);
+ -moz-opacity: .87;
+ -khtml-opacity: .87;
+ opacity: .87;
+}
+div.niceTitle h1
+{
+ background: #990000;
+ border-bottom: 1px dotted #FFFFFF;
+ font-weight: bold;
+ font-size: 13px;
+ font-family: "Trebuchet MS", sans-serif;
+ margin: 3px;
+ padding-top: 1px;
+ padding-bottom: 1px;
+ padding-left: 3px;
+ text-align: left;
+ left: 0;
+ top: 0;
+ -moz-border-radius: 0 8px 0 0;
+ -moz-opacity: 1;
+}
+div.niceTitle .contents
+{
+ margin: 0;
+ padding: 0 3px;
+ filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);
+ -moz-opacity: 1;
+ -khtml-opacity: 1;
+ opacity: 1;
+}
+div.niceTitle p
+{
+ background: #FFFFFF;
+ border: 1px solid #990000;
+ color: #000000;
+ font-size: 11px;
+ font-family: "Trebuchet MS", sans-serif;
+ padding: 5px;
+ margin: 3px;
+ text-align: left;
+ -moz-opacity: 1;
+ -moz-border-radius: 0 0 8px 8px;
+}
+
+body {
+ margin: 0px auto;
+ background: url('images/background.gif') repeat-y;
+ background-position : left 0px;
+ background-color: #cccccc;
+}
+
+form {
+ margin: 0px;
+}
+a {
+ text-decoration: none;
+}
+form input {
+ font-size: 1.1em;
+}
+
+iframe {
+ z-index: 1;
+ border: 1px dashed #990000;
+}
+.iframe {
+ background-color: #FFFFFF;
+}
+
+/* ID Based CSS Definitions */
+#wrapper {
+ width: 810px;
+ margin: 0px auto;
+/* left: 0px; */
+}
+
+#header {
+ background: url('images/header.png') no-repeat;
+ background-position: 0px;
+ height: 80px;
+ width: 810px;
+ position: fixed;
+ left: 0;
+ margin-bottom: 5px;
+ z-index: 2;
+}
+#header-left {
+ position: relative;
+ /* background: url('images/logo.gif') no-repeat; */
+ background-position: center;
+ height: 65px;
+ width: 145px;
+ left: 10px;
+ float: left;
+}
+#header-left #status-link {
+ position: relative;
+ top: 10px;
+ left: 6px;
+}
+#header-right {
+ position: relative;
+ /* background: url('images/header.gif') no-repeat; */
+ height: 70px;
+ color: #fff;
+ left: 0px;
+ margin-left: 165px;
+}
+#header-right .alert {
+ position: relative;
+ /* background: url('images/alert.gif') no-repeat; */
+ background-position: 4px 2px;
+ color: #fff;
+ height: 17px;
+ width: 500px;
+ padding: 4px;
+ padding-left: 27px;
+ float: left;
+}
+#header-right .container {
+ position: relative;
+}
+#header-right .container .left {
+ position: relative;
+ float: left;
+ font-size: 1.3em;
+ font-weight: bold;
+ top: 15px;
+ left: 4px;
+ display: none;
+}
+#header-right .container .right {
+ position: relative;
+ float: right;
+ top: 22px;
+ padding-right: 4px;
+ z-index: 1;
+}
+
+#header-right .container .right #alerts {
+ position: relative;
+ background: url('images/alert_bgr.png') no-repeat;
+ height: 39px;
+ width: 431px;
+ z-index: 1;
+ padding-top: 20px;
+ padding-left: 5px;
+ margin: 0px;
+}
+#header-right .container .right #hostname {
+ position: fixed;
+ height: 40px;
+ width: 400px;
+ z-index: 1;
+ padding-right: 5px;
+ margin: 0px;
+ top: 5px;
+ left: 400px;
+ font-size: 14px;
+ color: #000000;
+ font-weight: normal;
+ text-align: right;
+}
+
+
+
+table#marquee {
+ position: relative;
+ top: -6px;
+ left: -5px;
+ border: 0;
+ padding: 0;
+ margin: 0;
+ width: 424px;
+ background-color: transparent;
+ padding: 2px;
+ border: 0px;
+}
+span#marquee-container {
+ position: absolute;
+ visibility: hidden;
+ top: -100px;
+ left: -10000px;
+}
+div#marquee-text {
+ font-size: 1.18em;
+ font-weight: normal;
+ font-family: Verdana;
+ color: #ffffff;
+}
+table#marquee div#container {
+ position: relative;
+ overflow: hidden;
+ width: 418px;
+ height: 20px;
+}
+table#marquee div#container div#scroller {
+ position: absolute;
+ left: 0px;
+ top: 0px;
+}
+
+
+
+
+
+#content {
+ position: absolute;
+ top: 80px;
+ left: 0px;
+ margin-top: 0px;
+ margin-left: 0px;
+ padding-top: 0px;
+ width: 810px;
+ background-color: #ffffff;
+}
+
+#left {
+ width: 810px;
+ height: 1px;
+ left:0px;
+}
+#right {
+ position: relative;
+ top: -10px;
+ left: 0px;
+ width: 770px;
+ margin-top: 0px;
+ margin-left: 5px;
+ margin-right: 5px;
+ padding-top: 5px;
+ padding-left: 10px;
+ padding-right: 10px;
+ padding-bottom: 90px;
+ min-height: 400px;
+}
+
+#footer {
+ position: fixed;
+ background: url('images/footer.png') no-repeat;
+/* top: -18px; */
+ bottom: 0px;
+ left: 0px;
+ width: 810px;
+ height: 50px;
+ color: #ffffff;
+ text-align: center;;
+ font-size: 0.9em;
+ padding-top: 17px;
+ clear: both;
+}
+#footer p {
+ padding: 0px;
+ margin: 0px;
+}
+
+/* Style the List */
+#navigation {
+ /* background: url('images/menu.gif') no-repeat; */
+ /* width: 693px; */
+ position: relative;
+ position: fixed;
+ top: 59px;
+ left: 3px;
+ width: 810px;
+ padding: 0px;
+ height: 28px;
+ z-index: 3;
+}
+#navigation ul {
+ padding: 0;
+ margin: 0;
+ list-style: none;
+ text-align: center;
+}
+#navigation ul#menu {
+ padding-top: 3px;
+ padding-left: 5px;
+}
+
+/* Style the List Elements */
+#navigation ul li {
+ float: left;
+ position: relative;
+ /* width: 7.5em; */
+ width: 8.77em;
+ top: -1px;
+}
+#navigation ul li div {
+ font-size: 1em;
+ font-weight: bold;
+ color: #cccccc;
+}
+/* Make the List inside the List Elements */
+/* initially hidden with absolute position */
+#navigation ul li ul {
+ display: none;
+ position: absolute;
+ top: 2em;
+ left: -2px;
+ width: 9em;
+ font-weight: normal;
+ background: transparent bottom left no-repeat; /* This is key to making the menu maintain visibility when not on a link */
+ /* background-color: #202020;
+ background: url("images/menu_footer.gif") no-repeat;
+ background-position: bottom;
+ */
+ padding: 0em 0 0.4em 0;
+ padding-top: 0.3em;
+}
+/* to override top and left in browsers other than IE */
+/* which will position to the top right of the containing */
+/* li, rather than bottom left */
+#navigation ul li > ul {
+ top: auto;
+ left: auto;
+ left: -1px !important;
+}
+/* Show initial drop down upon mouse over, but do not show */
+/* nested side drop menus within listed elements */
+#navigation ul li:hover ul {
+ display: block;
+ cursor: pointer;
+}
+#navigation ul li:hover {
+ cursor: pointer;
+ cursor: pointer;
+}
+#navigation ul li:hover div {
+ text-decoration: none;
+}
+
+#navigation ul li {
+ background-color: transparent;
+ color: #000000;
+}
+#navigation ul li ul li {
+ border: 1px solid #990000;
+ width: 8.8em;
+ height: 1.6em;
+ line-height: 1.6em;
+ background-color: #990000;
+ color: #000000;
+}
+#navigation ul li ul li:hover {
+ background-color: #666666;
+}
+
+/* textcolor in dropdownmenu */
+#navigation li li a {
+ display: block;
+ padding-left: 10px;
+ padding-right: 10px;
+ color: #cccccc;
+}
+
+#navigation ul li ul li a.navlnk:hover {
+ text-decoration: none;
+}
+#navigation ul li.first {
+ border-right: 0px;
+}
+#navigation ul li.middle {
+ border-right: 0px;
+}
+#navigation ul li.last {
+
+}
+
+#navigation ul li.dropfirst {
+ border-bottom: 0px;
+}
+#navigation ul li.dropmiddle {
+ border-bottom: 0px;
+}
+#navigation ul li.droplast {
+}
+
+#wzdtabcont {
+ float: left;
+ background-color: #FFFFFF;
+ color: #000000;
+ padding: 0;
+}
+
+ul#wzdnav {
+ font-size: 0.96em;
+ float: left;
+ width: 14.5em;
+ margin: 0;
+ padding-left: 18px;
+}
+
+ul#wzdnav li {
+ list-style: none;
+ margin: 0;
+ padding-bottom: 0.2em;
+ padding-left: 0;
+}
+
+ul#wzdnav a {
+ display: block;
+ padding: 0.3em;
+ font-weight: normal;
+}
+
+#wzdnavbold a {
+ display: block;
+ padding: 0.3em;
+ font-weight: bold ! important;
+}
+
+ul#wzdnav a:link {
+ color: black;
+ background-color: #eee;
+}
+
+ul#wzdnav a:visited {
+ color: #666;
+ background-color: #eee;
+}
+
+ul#wzdnav a:hover {
+ color: black;
+ background-color: white;
+}
+
+ul#wzdnav a:active {
+ color: white;
+ background-color: gray;
+}
+
+#graph {
+ position: relative;
+ z-index: 10;
+}
+
+#logoutbtn {
+ position: absolute;
+ left: 95%;
+ vertical-align: middle;
+}
+
+
+#graph {
+ position: relative;
+ z-index: 10;
+}
+
+
+
+/* Class Based CSS Definitions */
+.pgtitle {
+ font-size: 18px;
+ color: #777777;
+ font-weight: bold;
+}
+.tfrtitle {
+ font-size: 18px;
+ color: #ffffff;
+ font-weight: bold;
+}
+.vncell {
+ background-color: #DDDDDD;
+ padding-right: 20px;
+ padding-left: 8px;
+ border-bottom: 1px solid #999999;
+}
+.formfld {
+ padding-left: 19px;
+ font-size: small;
+}
+.formselect {
+ font-size: 1.0em;
+}
+.langopt {
+ padding-left: 34px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+.saved {
+ /* background: url('/themes/nione/images/icons/icon_wzd_saved.png') no-repeat 0 1px #FFFFFF; */
+ list-style-image: url('/themes/nervecenter/images/icons/icon_wzd_saved.png') ! important;
+}
+.notsaved {
+ /* background: url('/themes/nione/images/icons/icon_wzd_nsaved.png') no-repeat 0 1px #FFFFFF; */
+ list-style-image: url('/themes/nervecenter/images/icons/icon_wzd_nsaved.png') ! important;
+}
+.en {
+ background: url('/themes/nervecenter/images/icons/icon_flag_en.png') no-repeat 0 1px #FFFFFF;
+}
+.de {
+ background: url('/themes/nervecenter/images/icons/icon_flag_de.png') no-repeat 0 1px #FFFFFF;
+}
+.es {
+ background: url('/themes/nervecenter/images/icons/icon_flag_es.png') no-repeat 0 1px #FFFFFF;
+}
+.pt_BR {
+ background: url('/themes/nervecenter/images/icons/icon_flag_pt_BR.png') no-repeat 0 1px #FFFFFF;
+}
+.host {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_host.png') no-repeat 0 1px #FFFFFF;
+}
+.search {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_search.png') no-repeat 0 1px #FFFFFF;
+}
+.file {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_file.png') no-repeat 0 1px #FFFFFF;
+}
+.mail {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_mail.png') no-repeat 0 1px #FFFFFF;
+}
+.imp {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_imp.png') no-repeat 0 1px #FFFFFF;
+}
+.pwd {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_pwd.png') no-repeat 0 1px #FFFFFF;
+}
+.user {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_user.png') no-repeat 0 1px #FFFFFF ;
+}
+.group {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_group.png') no-repeat 0 1px #FFFFFF;
+}
+.url {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_url.png') no-repeat 0 1px #FFFFFF;
+}
+.time {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_time.png') no-repeat 0 1px #FFFFFF;
+}
+.unknown {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_unknown.png') no-repeat 0 1px #FFFFFF;
+}
+.formfld_cert {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_cert.png') no-repeat 0 1px #FFFFFF;
+ padding-left: 28px;
+ font-family: Courier New, Courier, monospaced;
+ font-size: 11px;
+}
+.formfldalias {
+ background-color: #990000;
+ color: #FFFFFF;
+}
+.formpre {
+ font-family: Courier New, Courier, monospaced;
+ font-size: 10px;
+}
+.formbtn {
+ font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ font-weight: bold;
+}
+.formbtns {
+ font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: bold;
+}
+.vvcell {
+ background-color: #FFFFC6;
+}
+.errmsg {
+ font-weight: bold;
+ color: #CC0000;
+}
+.red {
+ color: #CC0000;
+}
+.gray {
+ color: #A0A0A0;
+}
+.vexpl {
+ font-size: 11px;
+}
+.navlnk {
+ color: #FFFFFF;
+ text-decoration: none;
+ font-size: 13px;
+}
+.navlnks {
+ color: #FFFFFF;
+ text-decoration: none;
+ font-size: 11px;
+}
+.redlnk {
+ color: #990000;
+ text-decoration: none;
+}
+.tblnk {
+ color: #FFFFFF;
+ text-decoration: none;
+}
+.vncellreq {
+ background-color: #DDDDDD;
+ padding-right: 20px;
+ padding-left: 8px;
+ font-weight: bold;
+ border-bottom: 1px solid #999999;
+}
+.vncellt {
+ background-color: #DDDDDD;
+ padding-right: 20px;
+ padding-left: 8px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ font-weight: bold;
+ border-bottom: 1px solid #999999;
+}
+.vtable {
+ border-bottom: 1px solid #999999;
+}
+.vnsepcell {
+ background-color: #BBBBBB;
+ padding-right: 20px;
+ padding-left: 8px;
+ font-weight: bold;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+}
+.cpline {
+ font-size: 11px;
+ color: #FFFFFF;
+}
+.hostname {
+ font-size: 11px;
+ color: #990000;
+ font-weight: bold;
+}
+.vnsepcellr {
+ background-color: #BBBBBB;
+ padding-right: 20px;
+ padding-left: 8px;
+ font-weight: bold;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+}
+.listrborder {
+ background-color: #FFFFFF;
+ border-right: 1px solid #999999;
+ border-left: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ padding-right: 6px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listr {
+ background-color: #FFFFFF;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ padding-right: 6px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listrpad {
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ padding-right: 16px;
+ padding-left: 10px;
+ padding-top: 8px;
+ padding-bottom: 8px;
+}
+.listn {
+ font-size: 11px;
+ padding-right: 16px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listbg {
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ color: #FFFFFF;
+ background-color: #990000;
+ padding-right: 16px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listbggrey {
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ background-color: #999999;
+ padding-right: 16px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listhdr {
+ background-color: #BBBBBB;
+ padding-right: 16px;
+ padding-left: 6px;
+ font-weight: bold;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+.listhdr a {
+ color: #000000;
+}
+.listhdrr {
+ background-color: #BBBBBB;
+ padding-right: 16px;
+ padding-left: 6px;
+ font-weight: bold;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+.listhdrr a {
+ color: #000000;
+}
+.listlr {
+ background-color: #FFFFFF;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ border-left: 1px solid #999999;
+ font-size: 11px;
+ padding-right: 6px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listlrns {
+ background-color: #FFFFFF;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ border-left: 1px solid #999999;
+ font-size: 11px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.list {
+ font-size: 11px;
+ padding-left: 6px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+.listt {
+ font-size: 11px;
+ padding-top: 5px;
+}
+.listhdrrns {
+ background-color: #BBBBBB;
+ padding-left: 6px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+ padding-right: 6px;
+ font-weight: bold;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+}
+.listbgns {
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ background-color: #D9DEE8;
+ padding-left: 6px;
+ padding-right: 4px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listtopic {
+ border-right: 1px solid #999999;
+ font-size: 11px;
+ background-color: #990000;
+ padding-right: 16px;
+ padding-left: 6px;
+ color: #FFFFFF;
+ font-weight: bold;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+
+.optsect_t {
+ border-right: 1px solid #999999;
+ background-color: #990000;
+ padding-right: 6px;
+ padding-left: 6px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+.optsect_s {
+ font-size: 11px;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+.tabnavtbl {
+}
+
+
+/* MISC CSS Definitions */
+ul#tabnav {
+ font-size: 11px;
+ font-weight: bold;
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+ul#tabnav li.tabinact1 {
+ float: left;
+ background-color: #777777;
+ color: #FFFFFF;
+ padding: 0;
+ white-space: nowrap;
+}
+ul#tabnav li.tabinact {
+ float: left;
+ border-left: 1px solid #999999;
+ background-color: #777777;
+ color: #FFFFFF;
+ padding: 0;
+ white-space: nowrap;
+}
+ul#tabnav li.tabinact a {
+ float: left;
+ display: block;
+ text-decoration: none;
+ padding: 5px 8px 5px 8px;
+ color: #FFFFFF;
+}
+ul#tabnav li.tabinact1 a {
+ float: left;
+ display: block;
+ text-decoration: none;
+ padding: 5px 8px 5px 8px;
+ color: #FFFFFF;
+}
+ul#tabnav li.tabact {
+ float: left;
+ background-color: #EEEEEE;
+ color: #000000;
+ padding: 5px 8px 5px 8px;
+ white-space: nowrap;
+}
+.tabcont {
+ background-color: #EEEEEE;
+ padding-right: 12px;
+ padding-left: 12px;
+ padding-top: 12px;
+ padding-bottom: 12px;
+}
+.tabact {
+ float: left;
+ background-color: #EEEEEE;
+ color: #000000;
+ padding: 5px 8px 5px 8px;
+ white-space: nowrap;
+}
+.tabinact {
+ font-weight: bold;
+ float: left;
+ border-left: 1px solid #999999;
+ background-color: #777777;
+ color: #FFFFFF;
+ padding: 0;
+ white-space: nowrap;
+}
+.menu {
+ background-color: #000000;
+ white-space: nowrap;
+ padding: 0px 5px 0px 5px;
+ width: 100%;
+ vertical-align: top;
+}
+
+
+/* Auto Complete Suggestions */
+div.suggestions {
+ -moz-box-sizing: border-box;
+ /* box-sizing: border-box; */
+ border: 1px solid black;
+ position: absolute;
+ background-color: #990000;
+ color: #FFF;
+}
+
+div.suggestions div {
+ cursor: default;
+ padding: 0px 3px;
+ background-color: #990000;
+ color: #FFF;
+}
+
+div.suggestions div.current {
+ background-color: #3366cc;
+ color: #FFF;
+}
+/* End Auto Complete Suggestions */
+
+
+/* Nifty Corners Crap */
+.rtop,.artop{display:block}
+.rtop *,.artop *{display:block;height:1px;overflow:hidden;font-size:1px}
+.artop *{border-style: solid;border-width:0 1px}
+.r1,.rl1,.re1,.rel1{margin-left:5px}
+.r1,.rr1,.re1,.rer1{margin-right:5px}
+.r2,.rl2,.re2,.rel2,.ra1,.ral1{margin-left:3px}
+.r2,.rr2,.re2,.rer2,.ra1,.rar1{margin-right:3px}
+.r3,.rl3,.re3,.rel3,.ra2,.ral2,.rs1,.rsl1,.res1,.resl1{margin-left:2px}
+.r3,.rr3,.re3,.rer3,.ra2,.rar2,.rs1,.rsr1,.res1,.resr1{margin-right:2px}
+.r4,.rl4,.rs2,.rsl2,.re4,.rel4,.ra3,.ral3,.ras1,.rasl1,.res2,.resl2{margin-left:1px}
+.r4,.rr4,.rs2,.rsr2,.re4,.rer4,.ra3,.rar3,.ras1,.rasr1,.res2,.resr2{margin-right:1px}
+.rx1,.rxl1{border-left-width:5px}
+.rx1,.rxr1{border-right-width:5px}
+.rx2,.rxl2{border-left-width:3px}
+.rx2,.rxr2{border-right-width:3px}
+.re2,.rel2,.ra1,.ral1,.rx3,.rxl3,.rxs1,.rxsl1{border-left-width:2px}
+.re2,.rer2,.ra1,.rar1,.rx3,.rxr3,.rxs1,.rxsr1{border-right-width:2px}
+.rxl1,.rxl2,.rxl3,.rxl4,.rxsl1,.rxsl2,.ral1,.ral2,.ral3,.ral4,.rasl1,.rasl2{border-right-width:0}
+.rxr1,.rxr2,.rxr3,.rxr4,.rxsr1,.rxsr2,.rar1,.rar2,.rar3,.rar4,.rasr1,.rasr2{border-left-width:0}
+.r4,.rl4,.rr4,.re4,.rel4,.rer4,.ra4,.rar4,.ral4,.rx4,.rxl4,.rxr4{height:2px}
+.rer1,.rel1,.re1,.res1,.resl1,.resr1{border-width:1px 0 0;height:0px !important;height /**/:1px}
+/* End Nifty Corners Crap */
+
+
+
+/* CSS for Dynamic Log Viewer */
+/* Author: Erik Kristensen */
+div#log div.log-entry {
+ clear: both;
+}
+
+div#log div.log-entry span,
+div#log div.log-header span {
+ padding: 3px 2px 3px 2px;
+ padding-left: 8px;
+}
+
+div#log div.log-entry span.log-action {
+ padding-bottom: 6px;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+
+div#log div.log-header span {
+ border-top: 1px solid #999;
+ background-color: #bbb;
+ font-weight: bold;
+ text-align: left;
+}
+
+div#log span.log-action,
+div#log span.log-time,
+div#log span.log-interface,
+div#log span.log-source,
+div#log span.log-destination,
+div#log span.log-protocol {
+ float: left;
+ text-align: left;
+ border-left: 1px solid #999;
+ border-bottom: 1px solid #999;
+
+}
+
+div#log span.log-general {
+
+}
+
+div#log span.log-protocol {
+ border-right: 1px solid #999;
+}
+
+div#log span.log-action {
+ width: 2em;
+ text-align: center;
+}
+
+div#log span.log-time {
+ width: 12.5em;
+}
+
+div#log span.log-interface {
+ width: 5em;
+}
+
+div#log span.log-source,
+div#log span.log-destination {
+ width: 17.6em;
+}
+
+div#log span.log-protocol {
+ width: 5.5em;
+}
+/* END CSS FOR DYNAMIC LOG VIEWER */
+
+#login {
+ background: #cccccc;
+ border: 0px solid #666666;
+ margin: 5em auto;
+ padding: 0em;
+ width: 340px;
+}
+
+#login h1 {
+ background: url(images/misc/logon.png) no-repeat top left;
+ margin-top: 0;
+ display: block;
+ text-indent: -1000px;
+ height: 50px;
+ border-bottom: none;
+}
+
+#login p {
+ font-size: 1em;
+ font-weight: bold;
+ padding: 3px;
+ margin: 0em;
+ text-indent: 10px;
+}
+
+#login span {
+ font-size: 1em;
+ font-weight: bold;
+ width: 20%;
+ padding: 3px;
+ margin: 0em;
+ text-indent: 10px;
+}
+
+#login p#text {
+ font-size: 1em;
+ font-weight: normal;
+ padding: 3px;
+ margin: 0em;
+ text-indent: 10px;
+}
+
+#login #username, #password {
+ font-size: 1em;
+ width: 60%;
+ padding: 3px;
+ margin: 0em;
+}
+
+#login #submit {
+ font-size: 1em;
+ font-weight: bold;
+ padding: 3px;
+ margin: 0em;
+ text-indent: 10px;
+}
+
+/* Widget CSS */
+.widgetsubheader {
+ border-right: 1px solid #999999;
+ font-size: 11px;
+ background-color: #B1B1B1;
+ padding-right: 6px;
+ padding-left: 6px;
+ color: #000000;
+ font-weight: bold;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+.widgetheader {
+ border-right: 1px solid #999999;
+ font-size: 11px;
+ background-color: #990000;
+ padding-right: 6px;
+ padding-left: 6px;
+ color: #FFFFFF;
+ font-weight: bold;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+.widgetdiv{
+ margin:5px;
+ padding: 5px;
+ background:#CCCCCC;
+}
+.widgetconfigdiv{
+ background:#BBBBBB;
+ font-size: 11px;
+ color: #000000;
+ padding-right: 5px;
+ padding-left: 5px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+
+div#log div.log-entry-mini {
+ clear: both;
+}
+
+div#log div.log-entry-mini span {
+ padding: 2px 2px 2px 2px;
+ padding-left: 8px;
+}
+
+div#log span.log-action-mini-header,
+div#log span.log-interface-mini-header,
+div#log span.log-source-mini-header,
+div#log span.log-destination-mini-header,
+div#log span.log-protocol-mini-header {
+ float: left;
+ text-align: left;
+ background-color: #B1B1B1;
+ font-size: 12px;
+ border-left: 1px solid #999;
+ border-bottom: 1px solid #999;
+}
+
+div#log span.log-action-mini,
+div#log span.log-time-mini,
+div#log span.log-interface-mini,
+div#log span.log-source-mini,
+div#log span.log-destination-mini,
+div#log span.log-protocol-mini {
+ float: left;
+ text-align: left;
+ background-color: #FFFFFF;
+ font-size: 11px;
+ border-left: 1px solid #999;
+ border-bottom: 1px solid #999;
+}
+
+div#log span.log-action-mini,
+div#log span.log-action-mini-header {
+ width: 6%;
+}
+
+div#log span.log-interface-mini,
+div#log span.log-interface-mini-header {
+ width: 8%;
+}
+
+div#log span.log-source-mini,
+div#log span.log-destination-mini,
+div#log span.log-source-mini-header,
+div#log span.log-destination-mini-header {
+ width: 31%;
+}
+
+div#log span.log-protocol-mini,
+div#log span.log-protocol-mini-header {
+ width: 8%;
+ border-right: 1px solid #999;
+}
+
+/* Sortable tables */
+table.sortable thead {
+ background-color:#eee;
+ color:#666666;
+ font-weight: bold;
+ cursor: default;
+}
diff --git a/usr/local/www/themes/pfsense_ng/all.css b/usr/local/www/themes/pfsense_ng/all.css
new file mode 100644
index 0000000..cb3acc3
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/all.css
@@ -0,0 +1,1347 @@
+/* Element CSS Definitions */
+html, body, td, th, input, select {
+ font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
+ font-size: 0.9em;
+
+}
+
+.infobox {
+ width:100%;
+}
+
+.infoboxsave {
+ padding-right: 10px;
+}
+
+.infoboxnptd2 {
+ width:100%;
+ color:white;
+ background-color:#990000;
+ padding-right: 10px;
+}
+
+.infoboxnptd {
+ width:8%;
+ background-color:#990000;
+}
+
+.infoboxnptable {
+ height:32px;
+ width:100%;
+ background-color:#990000;
+}
+
+.infoboxnptable2 {
+ height:32px;
+ width:100%;
+ background-color:#990000;
+}
+
+.infoboxnp {
+ background-color:#990000;
+ width:100%;
+}
+
+.infoboxnpimg {
+ vertical-align:middle;
+ width:28px;
+ height:32px;
+ background-color:#990000;
+}
+
+.inputerrorsleft {
+ background-color: #990000;
+ width: 36px;
+}
+
+.inputerrorsright {
+ background-color: #FFD9D1;
+ color: #000000;
+ font-size: 11px;
+ padding-left: 8px;
+ padding-top: 6px;
+}
+
+div.GraphLink {
+ position: relative;
+}
+
+span.GraphLinkLine {
+ position: absolute;
+ background-color: #990000;
+ width: 100%;
+}
+
+/* DOM Tooltip CSS definitions */
+div.niceTitle
+{
+ background-color: #333333;
+ color: #FFFFFF;
+ font-weight: bold;
+ font-size: 13px;
+ font-family: "Trebuchet MS", sans-serif;
+ width: 220px;
+ left: 0;
+ top: 0;
+ padding: 4px;
+ position: absolute;
+ text-align: left;
+ z-index: 20;
+ -moz-border-radius: 0 10px 10px 10px;
+ filter: progid:DXImageTransform.Microsoft.Alpha(opacity=87);
+ -moz-opacity: .87;
+ -khtml-opacity: .87;
+ opacity: .87;
+}
+div.niceTitle h1
+{
+ background: #990000;
+ border-bottom: 1px dotted #FFFFFF;
+ font-weight: bold;
+ font-size: 13px;
+ font-family: "Trebuchet MS", sans-serif;
+ margin: 3px;
+ padding-top: 1px;
+ padding-bottom: 1px;
+ padding-left: 3px;
+ text-align: left;
+ left: 0;
+ top: 0;
+ -moz-border-radius: 0 8px 0 0;
+ -moz-opacity: 1;
+}
+div.niceTitle .contents
+{
+ margin: 0;
+ padding: 0 3px;
+ filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);
+ -moz-opacity: 1;
+ -khtml-opacity: 1;
+ opacity: 1;
+}
+div.niceTitle p
+{
+ background: #FFFFFF;
+ border: 1px solid #990000;
+ color: #000000;
+ font-size: 11px;
+ font-family: "Trebuchet MS", sans-serif;
+ padding: 5px;
+ margin: 3px;
+ text-align: left;
+ -moz-opacity: 1;
+ -moz-border-radius: 0 0 8px 8px;
+}
+
+body {
+ margin: 0px auto;
+ align: left;
+ background: url('images/background.jpg') repeat-y;
+ background-position : left 0px;
+ background-attachment: fixed;
+ background-color: #cccccc;
+}
+a:link {
+ color: #550000;
+}
+
+a:visited {
+ color: #550000;
+}
+
+a:active {
+ color: #550000;
+}
+
+a:hover {
+ color: #550000;
+}
+
+form {
+ margin: 0px;
+}
+a {
+ text-decoration: none;
+}
+form input {
+ font-size: 1.1em;
+}
+
+iframe {
+ z-index: 1;
+ border: 1px dashed #990000;
+}
+.iframe {
+ background-color: #FFFFFF;
+}
+
+/* style of disabled formelements */
+#wrap div {margin:1em 0}
+[disabled] {
+ color:#666666;
+ background:#eeeeee;
+}
+
+
+/* ID Based CSS Definitions */
+/* margin: 0px auto makes the content centered, margin 0px 0px makes it aligned to the left */
+#wrapper {
+ width: 810px;
+ margin: 0px 0px;
+/* left: 0px; */
+}
+
+#header {
+ background: url('images/header.png') no-repeat;
+ background-position: 0px;
+ height: 40px;
+ width: 810px;
+ position: fixed;
+ left: 0;
+ margin-bottom: 5px;
+ z-index: 2;
+}
+#header-left {
+ position: relative;
+ /* background: url('images/logo.gif') no-repeat; */
+ background-position: center;
+ height: 40px;
+ width: 80px;
+ left: 0px;
+ top:0px;
+ float: left;
+}
+#header-left #status-link {
+ position: relative;
+ top: 0px;
+ left: 0px;
+}
+#header-right {
+ position: relative;
+ /* background: url('images/header.gif') no-repeat; */
+ height: 70px;
+ color: #fff;
+ left: 0px;
+ margin-left: 165px;
+}
+#header-right .alert {
+ position: relative;
+ /* background: url('images/alert.gif') no-repeat; */
+ background-position: 4px 2px;
+ color: #fff;
+ height: 17px;
+ width: 500px;
+ padding: 4px;
+ padding-left: 27px;
+ float: left;
+}
+#header-right .container {
+ position: relative;
+}
+#header-right .container .left {
+ position: relative;
+ float: left;
+ font-size: 1.3em;
+ font-weight: bold;
+ top: 15px;
+ left: 4px;
+ display: none;
+}
+#header-right .container .right {
+ position: relative;
+ float: right;
+ top: 22px;
+ padding-right: 4px;
+ z-index: 1;
+}
+
+/* for forcing an alert run the following command from diagnostics>command, php command:
+file_notice("blah", "blah blah...testing my new theme...");
+*/
+
+#header-right .container .right #alerts {
+ position: fixed;
+ background: url('images/alert_bgr.png') no-repeat;
+ height: 40px;
+ width: 400px;
+ top: 0px;
+ left: 810px;
+ z-index: 2;
+ padding-top: 1px;
+ padding-left: 10px;
+ margin: 0px;
+}
+
+#header-right .container .right #hostname {
+ position: fixed;
+ background: url('images/hostname.png') no-repeat;
+ height: 40px;
+ width: 400px;
+ z-index: 1;
+ padding-right: 5px;
+ margin: 0px;
+ top: 0px;
+ left: 810px;
+ font-size: 12px;
+ color: #000000;
+ font-weight: bold;
+ padding-left: 40px;
+ padding-top: 2px;
+ text-align: left;
+}
+
+
+
+
+table#marquee {
+ position: relative;
+ top: -4px;
+ left: 15px;
+ border: 0;
+ padding: 0;
+ margin: 0;
+ width: 350px;
+ background-color: transparent;
+ padding: 2px;
+ border: 0px;
+}
+span#marquee-container {
+ position: absolute;
+ visibility: hidden;
+ top: -100px;
+ left: -10000px;
+}
+div#marquee-text {
+/* font-size: 1.18em;
+ font-weight: normal;
+ font-family: Verdana;
+ color: #ffffff; */
+ font-size: 12px;
+ font-weight: normal;
+ font-style: italic;
+ color: #000000;
+}
+table#marquee div#container {
+ position: relative;
+ overflow: hidden;
+ width: 330px;
+ height: 16px;
+}
+table#marquee div#container div#scroller {
+ position: absolute;
+ left: 0px;
+ top: 0px;
+}
+
+
+
+
+
+#content {
+ position: relative;
+ top: 50px;
+ left: 75px;
+ margin-top: 0px;
+ margin-left: 0px;
+ padding-top: 0px;
+ width: 810px;
+ background-color: #ffffff;
+}
+
+
+/* try to abuse left as a fadeout at the end of the page */
+#left {
+ width: 810px;
+ height: 1px;
+}
+
+#right {
+ position: relative;
+ top: -10px;
+ left: 0px;
+ width: 770px;
+ margin-top: 0px;
+ margin-left: 5px;
+ margin-right: 5px;
+ padding-top: 5px;
+ padding-left: 10px;
+ padding-right: 10px;
+ padding-bottom: 90px;
+
+}
+
+#footer {
+ position: fixed;
+/* margin-bottom: 20px; */
+ padding-top: 17px;
+/* background: url('images/footer.png') repeat-x; /*
+/* top: -18px; */
+ bottom: 0px;
+ left: 890px;
+/* width: 1210px; */
+ width: 180px;
+ height: 100px;
+ color: #dddddd;
+ text-align: left;
+ font-size: 0.9em;
+ padding-top: 10px;
+ padding-left: 10px;
+ clear: both;
+}
+#footer p {
+ padding: 0px;
+ margin: 0px;
+
+}
+
+/* Style the List */
+#navigation {
+ /* background: url('images/menu.gif') no-repeat; */
+ /* width: 693px; */
+/* position: relative; */
+ position: fixed;
+ top: 0px;
+ left: 100px;
+ width: 810px;
+ padding: 0px;
+ height: 28px;
+ z-index: 3;
+}
+#navigation ul {
+ padding: 0;
+ margin: 0;
+ list-style: none;
+ text-align: center;
+}
+#navigation ul#menu {
+ padding-top: 3px;
+ padding-left: 5px;
+}
+
+/* Style the List Elements */
+#navigation ul li {
+ float: left;
+ position: relative;
+ /* width: 7.5em; */
+ width: 100px;
+ top: 0px;
+ /* top: -1px; */
+}
+/* Text mainmenubar */
+#navigation ul li div {
+
+ background-image: url(images/mainmenu-right.gif);
+ background-position: 5% 50%;
+ background-repeat: no-repeat;
+ padding-top:0px;
+ font-size: 12px;
+ font-weight: normal;
+ color: #ffffff;
+ text-align: center;
+ height: 13px;
+
+
+
+
+/*
+background: url("images/mainmenuitem.gif") top left no-repeat;
+vertical-align: top;
+border: 0px;
+width: 100px;
+height:20px;
+*/
+
+
+}
+/* Make the List inside the List Elements */
+/* initially hidden with absolute position */
+#navigation ul li ul {
+ display: none;
+ position: absolute;
+/* top: 2em;
+ left: -2px; */
+ width: 120px;
+ font-weight: normal;
+/* background: transparent bottom left no-repeat; /* This is key to making the menu maintain visibility when not on a link */
+ /* background-color: #202020; */
+ background: url("images/menubgr_footer.png") no-repeat;
+ background-position: bottom;
+/* padding: 0em 0 0.4em 0; */
+ padding-top: 5px;
+ padding-bottom: 10px;
+}
+/* to override top and left in browsers other than IE */
+/* which will position to the top right of the containing */
+/* li, rather than bottom left */
+#navigation ul li > ul {
+ top: auto;
+ left: auto;
+ left: -1px !important;
+}
+/* Show initial drop down upon mouse over, but do not show */
+/* nested side drop menus within listed elements */
+#navigation ul li:hover ul {
+ display: block;
+ cursor: pointer;
+}
+#navigation ul li:hover {
+ cursor: pointer;
+ cursor: pointer;
+}
+#navigation ul li:hover div {
+ text-decoration: none;
+ background-image: url(images/mainmenu-down.gif);
+ background-position: 5% 50%;
+ background-repeat: no-repeat;
+
+}
+
+#navigation ul li {
+ background-color: transparent;
+ color: #000000;
+}
+/* dropdownmenu */
+#navigation ul li ul li {
+ border: 0px solid #850000;
+ width: 120px;
+ height: 1.6em;
+ line-height: 1.6em;
+/* background-color: #850000; */
+ background: url(images/menubgr.png) repeat-y;
+ z-index: 2;
+/* color: #000000; */
+/* filter:alpha(opacity=95);
+ -moz-opacity:0.95;
+ -khtml-opacity: 0.95;
+ opacity: 0.95; */
+}
+#navigation ul li ul li:hover {
+/* background-color: #666666; */
+ background-image: url(images/menubgr_highlight.png);
+ background-repeat: repeat-y;
+}
+
+/* textcolor in dropdownmenu */
+#navigation li li a {
+ display: block;
+ padding-left: 8px;
+ padding-right: 8px;
+ color: #ffffff;
+ font-size: 11px;
+ font-weight: normal;
+ text-align: left;
+/*
+ background-image: url(images/menu-dot.gif);
+ background-position: 0% 50%;
+ background-repeat: no-repeat;
+*/
+}
+
+#navigation ul li ul li a.navlnk:hover {
+ text-decoration: none;
+}
+#navigation ul li.first {
+ border-right: 0px;
+}
+#navigation ul li.middle {
+ border-right: 0px;
+}
+#navigation ul li.last {
+
+}
+
+#navigation ul li.dropfirst {
+ border-bottom: 0px;
+}
+#navigation ul li.dropmiddle {
+ border-bottom: 0px;
+}
+#navigation ul li.droplast {
+}
+
+#wzdtabcont {
+ float: left;
+ background-color: #FFFFFF;
+ color: #000000;
+ padding: 0;
+}
+
+ul#wzdnav {
+ font-size: 0.96em;
+ float: left;
+ width: 14.5em;
+ margin: 0;
+ padding-left: 18px;
+}
+
+ul#wzdnav li {
+ list-style: none;
+ margin: 0;
+ padding-bottom: 0.2em;
+ padding-left: 0;
+}
+
+ul#wzdnav a {
+ display: block;
+ padding: 0.3em;
+ font-weight: normal;
+}
+
+#wzdnavbold a {
+ display: block;
+ padding: 0.3em;
+ font-weight: bold ! important;
+}
+
+ul#wzdnav a:link {
+ color: black;
+ background-color: #eee;
+}
+
+ul#wzdnav a:visited {
+ color: #666;
+ background-color: #eee;
+}
+
+ul#wzdnav a:hover {
+ color: black;
+ background-color: white;
+}
+
+ul#wzdnav a:active {
+ color: white;
+ background-color: gray;
+}
+
+#graph {
+ position: relative;
+ z-index: 10;
+}
+
+#logoutbtn {
+ position: absolute;
+ left: 95%;
+ vertical-align: middle;
+}
+
+
+#graph {
+ position: relative;
+ z-index: 10;
+}
+
+
+
+/* Class Based CSS Definitions */
+.pgtitle {
+ font-size: 18px;
+ color: #777777;
+ font-weight: bold;
+}
+.tfrtitle {
+ font-size: 18px;
+ color: #ffffff;
+ font-weight: bold;
+}
+.vncell {
+ background-color: #DDDDDD;
+ padding-right: 20px;
+ padding-left: 8px;
+ border-bottom: 1px solid #999999;
+}
+.formfld {
+ padding-left: 19px;
+ font-size: small;
+}
+.formselect {
+ font-size: 1.0em;
+}
+.langopt {
+ padding-left: 34px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+.saved {
+ /* background: url('/themes/nione/images/icons/icon_wzd_saved.png') no-repeat 0 1px #FFFFFF; */
+ list-style-image: url('/themes/nervecenter/images/icons/icon_wzd_saved.png') ! important;
+}
+.notsaved {
+ /* background: url('/themes/nione/images/icons/icon_wzd_nsaved.png') no-repeat 0 1px #FFFFFF; */
+ list-style-image: url('/themes/nervecenter/images/icons/icon_wzd_nsaved.png') ! important;
+}
+.en {
+ background: url('/themes/nervecenter/images/icons/icon_flag_en.png') no-repeat 0 1px #FFFFFF;
+}
+.de {
+ background: url('/themes/nervecenter/images/icons/icon_flag_de.png') no-repeat 0 1px #FFFFFF;
+}
+.es {
+ background: url('/themes/nervecenter/images/icons/icon_flag_es.png') no-repeat 0 1px #FFFFFF;
+}
+.pt_BR {
+ background: url('/themes/nervecenter/images/icons/icon_flag_pt_BR.png') no-repeat 0 1px #FFFFFF;
+}
+.host {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_host.png') no-repeat 0 1px #FFFFFF;
+}
+.search {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_search.png') no-repeat 0 1px #FFFFFF;
+}
+.file {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_file.png') no-repeat 0 1px #FFFFFF;
+}
+.mail {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_mail.png') no-repeat 0 1px #FFFFFF;
+}
+.imp {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_imp.png') no-repeat 0 1px #FFFFFF;
+}
+.pwd {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_pwd.png') no-repeat 0 1px #FFFFFF;
+}
+.user {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_user.png') no-repeat 0 1px #FFFFFF ;
+}
+.group {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_group.png') no-repeat 0 1px #FFFFFF;
+}
+.url {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_url.png') no-repeat 0 1px #FFFFFF;
+}
+.time {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_time.png') no-repeat 0 1px #FFFFFF;
+}
+.unknown {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_unknown.png') no-repeat 0 1px #FFFFFF;
+}
+.formfld_cert {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_cert.png') no-repeat 0 1px #FFFFFF;
+ padding-left: 28px;
+ font-family: Courier New, Courier, monospaced;
+ font-size: 11px;
+}
+.formfldalias {
+ background-color: #990000;
+ color: #FFFFFF;
+}
+.formpre {
+ font-family: Courier New, Courier, monospaced;
+ font-size: 10px;
+}
+.formbtn {
+ font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ font-weight: bold;
+}
+.formbtns {
+ font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: bold;
+}
+.vvcell {
+ background-color: #FFFFC6;
+}
+.errmsg {
+ font-weight: bold;
+ color: #CC0000;
+}
+.red {
+ color: #CC0000;
+}
+.gray {
+ color: #A0A0A0;
+}
+.vexpl {
+ font-size: 11px;
+}
+.navlnk {
+ color: #FFFFFF;
+ text-decoration: none;
+ font-size: 13px;
+}
+.navlnks {
+ color: #FFFFFF;
+ text-decoration: none;
+ font-size: 11px;
+}
+.redlnk {
+ color: #990000;
+ text-decoration: none;
+}
+.tblnk {
+ color: #FFFFFF;
+ text-decoration: none;
+}
+.vncellreq {
+ background-color: #DDDDDD;
+ padding-right: 20px;
+ padding-left: 8px;
+ font-weight: bold;
+ border-bottom: 1px solid #999999;
+}
+.vncellt {
+ background-color: #DDDDDD;
+ padding-right: 20px;
+ padding-left: 8px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ font-weight: bold;
+ border-bottom: 1px solid #999999;
+}
+.vtable {
+ border-bottom: 1px solid #999999;
+}
+.vnsepcell {
+ background-color: #BBBBBB;
+ padding-right: 20px;
+ padding-left: 8px;
+ font-weight: bold;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+}
+.cpline {
+ font-size: 11px;
+ color: #FFFFFF;
+}
+.hostname {
+ font-size: 11px;
+ color: #990000;
+ font-weight: bold;
+}
+.vnsepcellr {
+ background-color: #BBBBBB;
+ padding-right: 20px;
+ padding-left: 8px;
+ font-weight: bold;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+}
+.listrborder {
+ background-color: #FFFFFF;
+ border-right: 1px solid #999999;
+ border-left: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ padding-right: 6px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listr {
+ background-color: #FFFFFF;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ padding-right: 6px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listrpad {
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ padding-right: 16px;
+ padding-left: 10px;
+ padding-top: 8px;
+ padding-bottom: 8px;
+}
+.listn {
+ font-size: 11px;
+ padding-right: 16px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listbg {
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ color: #FFFFFF;
+ background-color: #990000;
+ padding-right: 16px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listbggrey {
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ background-color: #999999;
+ padding-right: 16px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listhdr {
+ background-color: #BBBBBB;
+ padding-right: 16px;
+ padding-left: 6px;
+ font-weight: bold;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+.listhdr a {
+ color: #000000;
+}
+.listhdrr {
+ background-color: #BBBBBB;
+ padding-right: 16px;
+ padding-left: 6px;
+ font-weight: bold;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+.listhdrr a {
+ color: #000000;
+}
+.listlr {
+ background-color: #FFFFFF;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ border-left: 1px solid #999999;
+ font-size: 11px;
+ padding-right: 6px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listlrns {
+ background-color: #FFFFFF;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ border-left: 1px solid #999999;
+ font-size: 11px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.list {
+ font-size: 11px;
+ padding-left: 6px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+.listt {
+ font-size: 11px;
+ padding-top: 5px;
+}
+.listhdrrns {
+ background-color: #BBBBBB;
+ padding-left: 6px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+ padding-right: 6px;
+ font-weight: bold;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+}
+.listbgns {
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ background-color: #D9DEE8;
+ padding-left: 6px;
+ padding-right: 4px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listtopic {
+ border-right: 1px solid #999999;
+ font-size: 11px;
+ background-color: #990000;
+ padding-right: 16px;
+ padding-left: 6px;
+ color: #FFFFFF;
+ font-weight: bold;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+
+.optsect_t {
+ border-right: 1px solid #999999;
+ background-color: #990000;
+ padding-right: 6px;
+ padding-left: 6px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+.optsect_s {
+ font-size: 11px;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+.tabnavtbl {
+}
+
+
+/* MISC CSS Definitions */
+ul#tabnav {
+ font-size: 11px;
+ font-weight: bold;
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+ul#tabnav li.tabinact1 {
+ float: left;
+ background-color: #777777;
+ color: #FFFFFF;
+ padding: 0;
+ white-space: nowrap;
+}
+ul#tabnav li.tabinact {
+ float: left;
+ border-left: 1px solid #999999;
+ background-color: #777777;
+ color: #FFFFFF;
+ padding: 0;
+ white-space: nowrap;
+}
+ul#tabnav li.tabinact a {
+ float: left;
+ display: block;
+ text-decoration: none;
+ padding: 5px 8px 5px 8px;
+ color: #FFFFFF;
+}
+ul#tabnav li.tabinact1 a {
+ float: left;
+ display: block;
+ text-decoration: none;
+ padding: 5px 8px 5px 8px;
+ color: #FFFFFF;
+}
+ul#tabnav li.tabact {
+ float: left;
+ background-color: #EEEEEE;
+ color: #000000;
+ padding: 5px 8px 5px 8px;
+ white-space: nowrap;
+}
+.tabcont {
+ background-color: #EEEEEE;
+ padding-right: 12px;
+ padding-left: 12px;
+ padding-top: 12px;
+ padding-bottom: 12px;
+}
+.tabact {
+ float: left;
+ background-color: #EEEEEE;
+ color: #000000;
+ padding: 5px 8px 5px 8px;
+ white-space: nowrap;
+}
+.tabinact {
+ font-weight: bold;
+ float: left;
+ border-left: 1px solid #999999;
+ background-color: #777777;
+ color: #FFFFFF;
+ padding: 0;
+ white-space: nowrap;
+}
+.menu {
+ background-color: #000000;
+ white-space: nowrap;
+ padding: 0px 5px 0px 5px;
+ width: 100%;
+ vertical-align: top;
+}
+
+/* style of disabled formelements */
+
+[disabled] {
+ color:#666666;
+ background:#eeeeee;
+}
+
+
+/* Auto Complete Suggestions */
+div.suggestions {
+ -moz-box-sizing: border-box;
+ /* box-sizing: border-box; */
+ border: 1px solid black;
+ position: absolute;
+ background-color: #990000;
+ color: #FFF;
+}
+
+div.suggestions div {
+ cursor: default;
+ padding: 0px 3px;
+ background-color: #990000;
+ color: #FFF;
+}
+
+div.suggestions div.current {
+ background-color: #3366cc;
+ color: #FFF;
+}
+/* End Auto Complete Suggestions */
+
+
+/* Nifty Corners Crap */
+.rtop,.artop{display:block}
+.rtop *,.artop *{display:block;height:1px;overflow:hidden;font-size:1px}
+.artop *{border-style: solid;border-width:0 1px}
+.r1,.rl1,.re1,.rel1{margin-left:5px}
+.r1,.rr1,.re1,.rer1{margin-right:5px}
+.r2,.rl2,.re2,.rel2,.ra1,.ral1{margin-left:3px}
+.r2,.rr2,.re2,.rer2,.ra1,.rar1{margin-right:3px}
+.r3,.rl3,.re3,.rel3,.ra2,.ral2,.rs1,.rsl1,.res1,.resl1{margin-left:2px}
+.r3,.rr3,.re3,.rer3,.ra2,.rar2,.rs1,.rsr1,.res1,.resr1{margin-right:2px}
+.r4,.rl4,.rs2,.rsl2,.re4,.rel4,.ra3,.ral3,.ras1,.rasl1,.res2,.resl2{margin-left:1px}
+.r4,.rr4,.rs2,.rsr2,.re4,.rer4,.ra3,.rar3,.ras1,.rasr1,.res2,.resr2{margin-right:1px}
+.rx1,.rxl1{border-left-width:5px}
+.rx1,.rxr1{border-right-width:5px}
+.rx2,.rxl2{border-left-width:3px}
+.rx2,.rxr2{border-right-width:3px}
+.re2,.rel2,.ra1,.ral1,.rx3,.rxl3,.rxs1,.rxsl1{border-left-width:2px}
+.re2,.rer2,.ra1,.rar1,.rx3,.rxr3,.rxs1,.rxsr1{border-right-width:2px}
+.rxl1,.rxl2,.rxl3,.rxl4,.rxsl1,.rxsl2,.ral1,.ral2,.ral3,.ral4,.rasl1,.rasl2{border-right-width:0}
+.rxr1,.rxr2,.rxr3,.rxr4,.rxsr1,.rxsr2,.rar1,.rar2,.rar3,.rar4,.rasr1,.rasr2{border-left-width:0}
+.r4,.rl4,.rr4,.re4,.rel4,.rer4,.ra4,.rar4,.ral4,.rx4,.rxl4,.rxr4{height:2px}
+.rer1,.rel1,.re1,.res1,.resl1,.resr1{border-width:1px 0 0;height:0px !important;height /**/:1px}
+/* End Nifty Corners Crap */
+
+
+
+/* CSS for Dynamic Log Viewer */
+/* Author: Erik Kristensen */
+div#log div.log-entry {
+ clear: both;
+}
+
+div#log div.log-entry span,
+div#log div.log-header span {
+ padding: 3px 2px 3px 2px;
+ padding-left: 8px;
+}
+
+div#log div.log-entry span.log-action {
+ padding-bottom: 6px;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+
+div#log div.log-header span {
+ border-top: 1px solid #999;
+ background-color: #bbb;
+ font-weight: bold;
+ text-align: left;
+}
+
+div#log span.log-action,
+div#log span.log-time,
+div#log span.log-interface,
+div#log span.log-source,
+div#log span.log-destination,
+div#log span.log-protocol {
+ float: left;
+ text-align: left;
+ border-left: 1px solid #999;
+ border-bottom: 1px solid #999;
+
+}
+
+div#log span.log-general {
+
+}
+
+div#log span.log-protocol {
+ border-right: 1px solid #999;
+}
+
+div#log span.log-action {
+ width: 2em;
+ text-align: center;
+}
+
+div#log span.log-time {
+ width: 12.5em;
+}
+
+div#log span.log-interface {
+ width: 5em;
+}
+
+div#log span.log-source,
+div#log span.log-destination {
+ width: 17.6em;
+}
+
+div#log span.log-protocol {
+ width: 5.5em;
+}
+/* END CSS FOR DYNAMIC LOG VIEWER */
+
+#login {
+ background: #cccccc;
+ border: 0px solid #666666;
+ margin: 5em auto;
+ padding: 0em;
+ width: 340px;
+}
+
+#login h1 {
+ background: url(images/misc/logon.png) no-repeat top left;
+ margin-top: 0;
+ display: block;
+ text-indent: -1000px;
+ height: 50px;
+ border-bottom: none;
+}
+
+#login p {
+ font-size: 1em;
+ font-weight: bold;
+ padding: 3px;
+ margin: 0em;
+ text-indent: 10px;
+}
+
+#login span {
+ font-size: 1em;
+ font-weight: bold;
+ width: 20%;
+ padding: 3px;
+ margin: 0em;
+ text-indent: 10px;
+}
+
+#login p#text {
+ font-size: 1em;
+ font-weight: normal;
+ padding: 3px;
+ margin: 0em;
+ text-indent: 10px;
+}
+
+#login #username, #password {
+ font-size: 1em;
+ width: 60%;
+ padding: 3px;
+ margin: 0em;
+}
+
+#login #submit {
+ font-size: 1em;
+ font-weight: bold;
+ padding: 3px;
+ margin: 0em;
+ text-indent: 10px;
+}
+
+/* Widget CSS */
+.widgetsubheader {
+ border-right: 1px solid #999999;
+ font-size: 11px;
+ background-color: #B1B1B1;
+ padding-right: 6px;
+ padding-left: 6px;
+ color: #000000;
+ font-weight: bold;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+.widgetheader {
+ border-right: 1px solid #999999;
+ font-size: 11px;
+ background-color: #990000;
+ padding-right: 6px;
+ padding-left: 6px;
+ color: #FFFFFF;
+ font-weight: bold;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+.widgetdiv{
+ margin:5px;
+ padding: 5px;
+ background:#CCCCCC;
+}
+.widgetconfigdiv{
+ background:#BBBBBB;
+ font-size: 11px;
+ color: #000000;
+ padding-right: 5px;
+ padding-left: 5px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+
+div#log div.log-entry-mini {
+ clear: both;
+}
+
+div#log div.log-entry-mini span {
+ padding: 2px 2px 2px 2px;
+ padding-left: 8px;
+}
+
+div#log span.log-action-mini-header,
+div#log span.log-interface-mini-header,
+div#log span.log-source-mini-header,
+div#log span.log-destination-mini-header,
+div#log span.log-protocol-mini-header {
+ float: left;
+ text-align: left;
+ background-color: #B1B1B1;
+ font-size: 12px;
+ border-left: 1px solid #999;
+ border-bottom: 1px solid #999;
+}
+
+div#log span.log-action-mini,
+div#log span.log-time-mini,
+div#log span.log-interface-mini,
+div#log span.log-source-mini,
+div#log span.log-destination-mini,
+div#log span.log-protocol-mini {
+ float: left;
+ text-align: left;
+ background-color: #FFFFFF;
+ font-size: 11px;
+ border-left: 1px solid #999;
+ border-bottom: 1px solid #999;
+}
+
+div#log span.log-action-mini,
+div#log span.log-action-mini-header {
+ width: 6%;
+}
+
+div#log span.log-interface-mini,
+div#log span.log-interface-mini-header {
+ width: 8%;
+}
+
+div#log span.log-source-mini,
+div#log span.log-destination-mini,
+div#log span.log-source-mini-header,
+div#log span.log-destination-mini-header {
+ width: 31%;
+}
+
+div#log span.log-protocol-mini,
+div#log span.log-protocol-mini-header {
+ width: 8%;
+ border-right: 1px solid #999;
+}
+
+/* Sortable tables */
+table.sortable thead {
+ background-color:#eee;
+ color:#666666;
+ font-weight: bold;
+ cursor: default;
+}
diff --git a/usr/local/www/themes/pfsense_ng/bottom-loader.js b/usr/local/www/themes/pfsense_ng/bottom-loader.js
new file mode 100644
index 0000000..78e3eba
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/bottom-loader.js
@@ -0,0 +1,10 @@
+<!--
+
+ NiftyCheck();
+ Rounded("div#niftyMenu","top bottom","#FFFFFF","#000000","smooth");
+ Rounded("div#mainarea","bl br tr","#FFF","#eeeeee","smooth");
+ Rounded("div#boxarea","bl br tl tr","#FFF","#eeeeee","smooth");
+ Rounded("tr#fend","bl br tl tr","#FFF","#990000","smooth");
+ Rounded("div#topbox","all","#FFF","#990000","smooth");
+
+//-->
diff --git a/usr/local/www/themes/pfsense_ng/favicon.ico b/usr/local/www/themes/pfsense_ng/favicon.ico
new file mode 100644
index 0000000..3440bf2
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/favicon.ico
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/graphlink.css b/usr/local/www/themes/pfsense_ng/graphlink.css
new file mode 100644
index 0000000..521059e
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/graphlink.css
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ $Id: graphlink.css,v 1.2.2.1 2007/01/17 18:43:30 sullrich Exp $
+
+ This file is part of the GraphLink software.
+ GraphLink is distributed under the MIT License.
+ Copyright (C) 2005-2006 Max Khitrov <max@mxsoft.org>
+*******************************************************************************/
+
+/**
+ * Defines the background image used for the graph, as well as the actual data
+ * locations.
+ * Use padding-left and padding-top to align the data area correctly with your
+ * background image.
+ * Width and height should same as the dimensions of the image, minus the
+ * padding values in both directions.
+ */
+div.GraphLink {
+ width: 212px;
+ height: 60px;
+ padding-left: 38px;
+ padding-top: 10px;
+ background-image: url(/themes/nervecenter/images/misc/graph.png);
+ overflow: hidden;
+}
+
+/**
+ * Defines the data display area. Modify to fit your background image.
+ */
+div.GraphLinkData {
+ width: 200px;
+ height: 50px;
+ overflow: hidden;
+}
+
+/**
+ * Defines the look of one bar. Nothing to change here other than the color.
+ */
+span.GraphLinkBar {
+ background-color: #990000;
+ height: 100%;
+ float: left;
+ overflow: hidden;
+}
diff --git a/usr/local/www/themes/pfsense_ng/images/alert_bgr.png b/usr/local/www/themes/pfsense_ng/images/alert_bgr.png
new file mode 100644
index 0000000..9854054
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/alert_bgr.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/alerter.png b/usr/local/www/themes/pfsense_ng/images/alerter.png
new file mode 100644
index 0000000..0bc856e
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/alerter.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/background.gif b/usr/local/www/themes/pfsense_ng/images/background.gif
new file mode 100644
index 0000000..7eb30bc
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/background.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/background.jpg b/usr/local/www/themes/pfsense_ng/images/background.jpg
new file mode 100644
index 0000000..8d0a8b8
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/background.jpg
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/background.png b/usr/local/www/themes/pfsense_ng/images/background.png
new file mode 100644
index 0000000..a7b3d5d
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/background.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/button_left.gif b/usr/local/www/themes/pfsense_ng/images/button_left.gif
new file mode 100644
index 0000000..2e46d25
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/button_left.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/button_mid.gif b/usr/local/www/themes/pfsense_ng/images/button_mid.gif
new file mode 100644
index 0000000..4198d93
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/button_mid.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/button_right.gif b/usr/local/www/themes/pfsense_ng/images/button_right.gif
new file mode 100644
index 0000000..0faaa67
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/button_right.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/footer.png b/usr/local/www/themes/pfsense_ng/images/footer.png
new file mode 100644
index 0000000..fcbe465
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/footer.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/header.png b/usr/local/www/themes/pfsense_ng/images/header.png
new file mode 100644
index 0000000..6f8128c
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/header.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/horizontal.gif b/usr/local/www/themes/pfsense_ng/images/horizontal.gif
new file mode 100644
index 0000000..a280dcb
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/horizontal.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/hostname.png b/usr/local/www/themes/pfsense_ng/images/hostname.png
new file mode 100644
index 0000000..cd79f5c
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/hostname.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/favicon.ico b/usr/local/www/themes/pfsense_ng/images/icons/favicon.ico
new file mode 100644
index 0000000..3440bf2
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/favicon.ico
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_alert.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_alert.gif
new file mode 100644
index 0000000..a88e61b
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_alert.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_alias_host.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_alias_host.gif
new file mode 100644
index 0000000..ad43e17
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_alias_host.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_alias_net.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_alias_net.gif
new file mode 100644
index 0000000..abd1b8b
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_alias_net.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_alias_port.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_alias_port.gif
new file mode 100644
index 0000000..4acf2aa
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_alias_port.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_alias_url.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_alias_url.gif
new file mode 100644
index 0000000..660571e
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_alias_url.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_alias_url_reload.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_alias_url_reload.gif
new file mode 100644
index 0000000..55c1c4a
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_alias_url_reload.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_block.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_block.gif
new file mode 100644
index 0000000..670c968
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_block.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_block_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_block_d.gif
new file mode 100644
index 0000000..e6345fe
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_block_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_cablenic.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_cablenic.gif
new file mode 100644
index 0000000..a071c66
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_cablenic.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_cal.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_cal.gif
new file mode 100644
index 0000000..a9c7c87
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_cal.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_cal_mo.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_cal_mo.gif
new file mode 100644
index 0000000..1647e2f
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_cal_mo.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_carp.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_carp.gif
new file mode 100644
index 0000000..9454a82
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_carp.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_carp_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_carp_d.gif
new file mode 100644
index 0000000..2ba8db2
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_carp_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_check.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_check.gif
new file mode 100644
index 0000000..393674d
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_check.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_clock_green.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_clock_green.gif
new file mode 100644
index 0000000..e171ba8
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_clock_green.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_clock_grey.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_clock_grey.gif
new file mode 100644
index 0000000..00c865a
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_clock_grey.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_clock_red.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_clock_red.gif
new file mode 100644
index 0000000..7b412ee
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_clock_red.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_close.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_close.gif
new file mode 100644
index 0000000..e0f86a7
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_close.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_configure.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_configure.gif
new file mode 100644
index 0000000..7182e0d
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_configure.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_down.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_down.gif
new file mode 100644
index 0000000..b71a9c5
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_down.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_down_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_down_d.gif
new file mode 100644
index 0000000..70a7473
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_down_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_down_mo.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_down_mo.gif
new file mode 100644
index 0000000..584587a
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_down_mo.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_e.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_e.gif
new file mode 100644
index 0000000..2950800
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_e.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_e_mo.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_e_mo.gif
new file mode 100644
index 0000000..9ba5738
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_e_mo.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_error.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_error.gif
new file mode 100644
index 0000000..e0fa659
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_error.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_exclam.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_exclam.gif
new file mode 100644
index 0000000..36c2ec7
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_exclam.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_flag_de.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_flag_de.png
new file mode 100644
index 0000000..a01f067
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_flag_de.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_flag_en.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_flag_en.png
new file mode 100644
index 0000000..069e2e3
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_flag_en.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_flag_es.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_flag_es.png
new file mode 100644
index 0000000..a56047f
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_flag_es.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_flag_pt_BR.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_flag_pt_BR.png
new file mode 100644
index 0000000..4ea2503
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_flag_pt_BR.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_cert.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_cert.png
new file mode 100644
index 0000000..392f4b6
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_cert.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_file.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_file.png
new file mode 100644
index 0000000..6ea6349
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_file.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_group.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_group.png
new file mode 100644
index 0000000..031f830
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_group.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_host.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_host.png
new file mode 100644
index 0000000..75bd7a4
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_host.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_imp.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_imp.png
new file mode 100644
index 0000000..f8d846d
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_imp.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_mail.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_mail.png
new file mode 100644
index 0000000..2bd40e3
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_mail.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_pwd.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_pwd.png
new file mode 100644
index 0000000..3218268
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_pwd.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_search.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_search.png
new file mode 100644
index 0000000..23f5996
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_search.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_time.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_time.png
new file mode 100644
index 0000000..9902bdf
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_time.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_unknown.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_unknown.png
new file mode 100644
index 0000000..5134e67
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_unknown.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_url.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_url.png
new file mode 100644
index 0000000..d3cda19
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_url.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_user.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_user.png
new file mode 100644
index 0000000..185f4a0
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_frmfld_user.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_fw-update.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_fw-update.gif
new file mode 100644
index 0000000..52c18ac
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_fw-update.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_ifalias.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_ifalias.gif
new file mode 100644
index 0000000..0c569a7
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_ifalias.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_ifalias_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_ifalias_d.gif
new file mode 100644
index 0000000..faa84d4
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_ifalias_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_import_alias.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_import_alias.gif
new file mode 100644
index 0000000..d11a5f0
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_import_alias.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_in.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_in.gif
new file mode 100644
index 0000000..f1da771
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_in.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_in_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_in_d.gif
new file mode 100644
index 0000000..18e26be
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_in_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_info_pkg.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_info_pkg.gif
new file mode 100644
index 0000000..cd3a532
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_info_pkg.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_interface_down.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_interface_down.gif
new file mode 100644
index 0000000..0626655
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_interface_down.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_interface_up.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_interface_up.gif
new file mode 100644
index 0000000..1449513
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_interface_up.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_left.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_left.gif
new file mode 100644
index 0000000..8effefe
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_left.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_left_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_left_d.gif
new file mode 100644
index 0000000..c778014
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_left_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_left_mo.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_left_mo.gif
new file mode 100644
index 0000000..84c6fa2
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_left_mo.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_log.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_log.gif
new file mode 100644
index 0000000..4a1983a
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_log.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_log_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_log_d.gif
new file mode 100644
index 0000000..d31bd9b
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_log_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_log_s.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_log_s.gif
new file mode 100644
index 0000000..f9fda33
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_log_s.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_log_s_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_log_s_d.gif
new file mode 100644
index 0000000..fb2c05f
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_log_s_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_minus.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_minus.gif
new file mode 100644
index 0000000..417544f
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_minus.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_open.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_open.gif
new file mode 100644
index 0000000..ac3da14
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_open.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_other.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_other.gif
new file mode 100644
index 0000000..e6f780f
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_other.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_other_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_other_d.gif
new file mode 100644
index 0000000..b08d970
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_other_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_out.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_out.gif
new file mode 100644
index 0000000..1a1d1d5
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_out.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_out_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_out_d.gif
new file mode 100644
index 0000000..879f1da
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_out_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_parp.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_parp.gif
new file mode 100644
index 0000000..96acaf3
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_parp.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_parp_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_parp_d.gif
new file mode 100644
index 0000000..7d7d00e
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_parp_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_pass.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_pass.gif
new file mode 100644
index 0000000..fe1bb0d
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_pass.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_pass_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_pass_d.gif
new file mode 100644
index 0000000..6adc431
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_pass_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_plus.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_plus.gif
new file mode 100644
index 0000000..2a94eeb
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_plus.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_plus_bl.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_plus_bl.gif
new file mode 100644
index 0000000..8dcd7c0
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_plus_bl.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_plus_bl_p.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_plus_bl_p.gif
new file mode 100644
index 0000000..0c79849
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_plus_bl_p.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_plus_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_plus_d.gif
new file mode 100644
index 0000000..ebc7457
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_plus_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_plus_mo.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_plus_mo.gif
new file mode 100644
index 0000000..1c7ca08
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_plus_mo.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_plus_p.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_plus_p.gif
new file mode 100644
index 0000000..eb41284
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_plus_p.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall.gif
new file mode 100644
index 0000000..d78b867
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_d.gif
new file mode 100644
index 0000000..13658f7
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_mo.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_mo.gif
new file mode 100644
index 0000000..90b576e
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_mo.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_pkg.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_pkg.gif
new file mode 100644
index 0000000..9aebb03
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_pkg.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_pkg_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_pkg_d.gif
new file mode 100644
index 0000000..4ab4992
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_pkg_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_pkg_mo.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_pkg_mo.gif
new file mode 100644
index 0000000..7025d20
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_pkg_mo.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_xml.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_xml.gif
new file mode 100644
index 0000000..4542432
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_xml.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_xml_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_xml_d.gif
new file mode 100644
index 0000000..8d3a68d
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_xml_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_xml_mo.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_xml_mo.gif
new file mode 100644
index 0000000..15e0aed
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_reinstall_xml_mo.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_reject.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_reject.gif
new file mode 100644
index 0000000..5565cd6
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_reject.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_reject_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_reject_d.gif
new file mode 100644
index 0000000..6c09fae
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_reject_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_right.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_right.gif
new file mode 100644
index 0000000..fdf2d8b
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_right.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_service_restart.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_service_restart.gif
new file mode 100644
index 0000000..e49fbd7
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_service_restart.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_service_restart_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_service_restart_d.gif
new file mode 100644
index 0000000..a5d6d7c
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_service_restart_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_service_start.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_service_start.gif
new file mode 100644
index 0000000..09bb58f
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_service_start.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_service_start_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_service_start_d.gif
new file mode 100644
index 0000000..f58f111
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_service_start_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_service_stop.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_service_stop.gif
new file mode 100644
index 0000000..922addc
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_service_stop.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_service_stop_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_service_stop_d.gif
new file mode 100644
index 0000000..b4cfdea
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_service_stop_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_services_restart_mo.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_services_restart_mo.gif
new file mode 100644
index 0000000..a092b40
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_services_restart_mo.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_services_start_mo.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_services_start_mo.gif
new file mode 100644
index 0000000..ecdb58f
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_services_start_mo.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_services_stop_mo.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_services_stop_mo.gif
new file mode 100644
index 0000000..c00e208
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_services_stop_mo.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_system-group-grey.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_system-group-grey.png
new file mode 100644
index 0000000..5d3c543
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_system-group-grey.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_system-group.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_system-group.png
new file mode 100644
index 0000000..2c225a4
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_system-group.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_system-user-grey.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_system-user-grey.png
new file mode 100644
index 0000000..c5cea2c
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_system-user-grey.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_system-user.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_system-user.png
new file mode 100644
index 0000000..4f27610
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_system-user.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_system_lock_screen.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_system_lock_screen.png
new file mode 100644
index 0000000..2a286da
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_system_lock_screen.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_system_logout.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_system_logout.png
new file mode 100644
index 0000000..7a99168
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_system_logout.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_trapped.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_trapped.gif
new file mode 100644
index 0000000..ffeb2cd
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_trapped.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_trapped_p.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_trapped_p.gif
new file mode 100644
index 0000000..6d46aaf
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_trapped_p.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_ts_rule.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_ts_rule.gif
new file mode 100644
index 0000000..e15ab6c
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_ts_rule.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_ts_rule_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_ts_rule_d.gif
new file mode 100644
index 0000000..f776281
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_ts_rule_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_up.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_up.gif
new file mode 100644
index 0000000..883c5a2
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_up.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_up_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_up_d.gif
new file mode 100644
index 0000000..0ddcce2
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_up_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_up_mo.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_up_mo.gif
new file mode 100644
index 0000000..9f869a4
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_up_mo.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_wlan.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_wlan.gif
new file mode 100644
index 0000000..1f0addc
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_wlan.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_wlan_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_wlan_d.gif
new file mode 100644
index 0000000..35bf580
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_wlan_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_wol_all.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_wol_all.gif
new file mode 100644
index 0000000..2d22182
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_wol_all.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_wzd_nsaved.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_wzd_nsaved.png
new file mode 100644
index 0000000..12f3a43
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_wzd_nsaved.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_wzd_saved.png b/usr/local/www/themes/pfsense_ng/images/icons/icon_wzd_saved.png
new file mode 100644
index 0000000..e7d64dc
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_wzd_saved.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_x.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_x.gif
new file mode 100644
index 0000000..24e4d49
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_x.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_x_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_x_d.gif
new file mode 100644
index 0000000..d2bfbc8
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_x_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_x_mo.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_x_mo.gif
new file mode 100644
index 0000000..da7b57c
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_x_mo.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/icon_x_p.gif b/usr/local/www/themes/pfsense_ng/images/icons/icon_x_p.gif
new file mode 100644
index 0000000..8828fa6
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/icon_x_p.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/in.gif b/usr/local/www/themes/pfsense_ng/images/icons/in.gif
new file mode 100644
index 0000000..f1da771
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/in.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/in_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/in_d.gif
new file mode 100644
index 0000000..18e26be
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/in_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/out.gif b/usr/local/www/themes/pfsense_ng/images/icons/out.gif
new file mode 100644
index 0000000..1a1d1d5
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/out.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/icons/out_d.gif b/usr/local/www/themes/pfsense_ng/images/icons/out_d.gif
new file mode 100644
index 0000000..879f1da
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/icons/out_d.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/logo.gif b/usr/local/www/themes/pfsense_ng/images/logo.gif
new file mode 100644
index 0000000..e5da95c
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/logo.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/logobig.jpg b/usr/local/www/themes/pfsense_ng/images/logobig.jpg
new file mode 100644
index 0000000..df9be55
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/logobig.jpg
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/mainmenu-down.gif b/usr/local/www/themes/pfsense_ng/images/mainmenu-down.gif
new file mode 100644
index 0000000..e59432a
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/mainmenu-down.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/mainmenu-right.gif b/usr/local/www/themes/pfsense_ng/images/mainmenu-right.gif
new file mode 100644
index 0000000..14298a1
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/mainmenu-right.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/mainmenuitem.gif b/usr/local/www/themes/pfsense_ng/images/mainmenuitem.gif
new file mode 100644
index 0000000..6e97478
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/mainmenuitem.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/menu-dot.gif b/usr/local/www/themes/pfsense_ng/images/menu-dot.gif
new file mode 100644
index 0000000..c76609b
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/menu-dot.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/menu_down.gif b/usr/local/www/themes/pfsense_ng/images/menu_down.gif
new file mode 100644
index 0000000..137de8d
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/menu_down.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/menu_footer.gif b/usr/local/www/themes/pfsense_ng/images/menu_footer.gif
new file mode 100644
index 0000000..d06faa4
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/menu_footer.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/menu_right.gif b/usr/local/www/themes/pfsense_ng/images/menu_right.gif
new file mode 100644
index 0000000..881327c
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/menu_right.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/menubgr.png b/usr/local/www/themes/pfsense_ng/images/menubgr.png
new file mode 100644
index 0000000..c24477b
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/menubgr.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/menubgr_footer.png b/usr/local/www/themes/pfsense_ng/images/menubgr_footer.png
new file mode 100644
index 0000000..c22c852
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/menubgr_footer.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/menubgr_highlight.png b/usr/local/www/themes/pfsense_ng/images/menubgr_highlight.png
new file mode 100644
index 0000000..1e3bf09
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/menubgr_highlight.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/metal_bgr.gif b/usr/local/www/themes/pfsense_ng/images/metal_bgr.gif
new file mode 100644
index 0000000..a0ca6c8
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/metal_bgr.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/metal_bgr_red.gif b/usr/local/www/themes/pfsense_ng/images/metal_bgr_red.gif
new file mode 100644
index 0000000..c4a1465
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/metal_bgr_red.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/bar_blue.gif b/usr/local/www/themes/pfsense_ng/images/misc/bar_blue.gif
new file mode 100644
index 0000000..741186a
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/bar_blue.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/bar_gray.gif b/usr/local/www/themes/pfsense_ng/images/misc/bar_gray.gif
new file mode 100644
index 0000000..e86e245
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/bar_gray.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/bar_left.gif b/usr/local/www/themes/pfsense_ng/images/misc/bar_left.gif
new file mode 100644
index 0000000..af751fa
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/bar_left.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/bar_right.gif b/usr/local/www/themes/pfsense_ng/images/misc/bar_right.gif
new file mode 100644
index 0000000..ff12d9e
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/bar_right.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/bullet_toggle_minus.png b/usr/local/www/themes/pfsense_ng/images/misc/bullet_toggle_minus.png
new file mode 100644
index 0000000..b47ce55
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/bullet_toggle_minus.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/bullet_toggle_plus.png b/usr/local/www/themes/pfsense_ng/images/misc/bullet_toggle_plus.png
new file mode 100644
index 0000000..9ab4a89
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/bullet_toggle_plus.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/button.gif b/usr/local/www/themes/pfsense_ng/images/misc/button.gif
new file mode 100644
index 0000000..e85dbb3
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/button.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/graph.png b/usr/local/www/themes/pfsense_ng/images/misc/graph.png
new file mode 100644
index 0000000..ba054ff
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/graph.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/key_128.gif b/usr/local/www/themes/pfsense_ng/images/misc/key_128.gif
new file mode 100644
index 0000000..ea5ae34
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/key_128.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/key_152.gif b/usr/local/www/themes/pfsense_ng/images/misc/key_152.gif
new file mode 100644
index 0000000..6c7fc03
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/key_152.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/key_256.gif b/usr/local/www/themes/pfsense_ng/images/misc/key_256.gif
new file mode 100644
index 0000000..3e1c377
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/key_256.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/key_64.gif b/usr/local/www/themes/pfsense_ng/images/misc/key_64.gif
new file mode 100644
index 0000000..87892bd
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/key_64.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/left_background.gif b/usr/local/www/themes/pfsense_ng/images/misc/left_background.gif
new file mode 100644
index 0000000..529d827
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/left_background.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/loader.gif b/usr/local/www/themes/pfsense_ng/images/misc/loader.gif
new file mode 100644
index 0000000..5d10ac3
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/loader.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/loader_all.gif b/usr/local/www/themes/pfsense_ng/images/misc/loader_all.gif
new file mode 100644
index 0000000..df7fdc4
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/loader_all.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/loader_filter.gif b/usr/local/www/themes/pfsense_ng/images/misc/loader_filter.gif
new file mode 100644
index 0000000..51856fc
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/loader_filter.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/loader_tab.gif b/usr/local/www/themes/pfsense_ng/images/misc/loader_tab.gif
new file mode 100644
index 0000000..05bb04c
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/loader_tab.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/logon.png b/usr/local/www/themes/pfsense_ng/images/misc/logon.png
new file mode 100644
index 0000000..023df8c
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/logon.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/plogo_0.gif b/usr/local/www/themes/pfsense_ng/images/misc/plogo_0.gif
new file mode 100644
index 0000000..160b56d
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/plogo_0.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/plogo_1.gif b/usr/local/www/themes/pfsense_ng/images/misc/plogo_1.gif
new file mode 100644
index 0000000..50342d6
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/plogo_1.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/plogo_10.gif b/usr/local/www/themes/pfsense_ng/images/misc/plogo_10.gif
new file mode 100644
index 0000000..06cba14
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/plogo_10.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/plogo_2.gif b/usr/local/www/themes/pfsense_ng/images/misc/plogo_2.gif
new file mode 100644
index 0000000..9d10230
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/plogo_2.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/plogo_3.gif b/usr/local/www/themes/pfsense_ng/images/misc/plogo_3.gif
new file mode 100644
index 0000000..1983f87
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/plogo_3.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/plogo_4.gif b/usr/local/www/themes/pfsense_ng/images/misc/plogo_4.gif
new file mode 100644
index 0000000..f7158bd
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/plogo_4.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/plogo_5.gif b/usr/local/www/themes/pfsense_ng/images/misc/plogo_5.gif
new file mode 100644
index 0000000..c7af593
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/plogo_5.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/plogo_6.gif b/usr/local/www/themes/pfsense_ng/images/misc/plogo_6.gif
new file mode 100644
index 0000000..310eb22
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/plogo_6.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/plogo_7.gif b/usr/local/www/themes/pfsense_ng/images/misc/plogo_7.gif
new file mode 100644
index 0000000..06bd2e8
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/plogo_7.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/plogo_8.gif b/usr/local/www/themes/pfsense_ng/images/misc/plogo_8.gif
new file mode 100644
index 0000000..c6ef564
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/plogo_8.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/plogo_9.gif b/usr/local/www/themes/pfsense_ng/images/misc/plogo_9.gif
new file mode 100644
index 0000000..4f0cd4d
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/plogo_9.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/progress_bar.gif b/usr/local/www/themes/pfsense_ng/images/misc/progress_bar.gif
new file mode 100644
index 0000000..3b4aa52
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/progress_bar.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/rrd_error.png b/usr/local/www/themes/pfsense_ng/images/misc/rrd_error.png
new file mode 100644
index 0000000..5a784bf
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/rrd_error.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/status_alerter.gif b/usr/local/www/themes/pfsense_ng/images/misc/status_alerter.gif
new file mode 100644
index 0000000..7ff1e95
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/status_alerter.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/status_carpmaster.gif b/usr/local/www/themes/pfsense_ng/images/misc/status_carpmaster.gif
new file mode 100644
index 0000000..2c32908
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/status_carpmaster.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/status_left.gif b/usr/local/www/themes/pfsense_ng/images/misc/status_left.gif
new file mode 100644
index 0000000..b5a2930
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/status_left.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/status_page_loading.gif b/usr/local/www/themes/pfsense_ng/images/misc/status_page_loading.gif
new file mode 100644
index 0000000..4aa36c1
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/status_page_loading.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/status_reload_all.gif b/usr/local/www/themes/pfsense_ng/images/misc/status_reload_all.gif
new file mode 100644
index 0000000..dcf8631
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/status_reload_all.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/status_reload_filter.gif b/usr/local/www/themes/pfsense_ng/images/misc/status_reload_filter.gif
new file mode 100644
index 0000000..7d65264
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/status_reload_filter.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/status_right.gif b/usr/local/www/themes/pfsense_ng/images/misc/status_right.gif
new file mode 100644
index 0000000..bf66fdb
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/status_right.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/tri_c.gif b/usr/local/www/themes/pfsense_ng/images/misc/tri_c.gif
new file mode 100644
index 0000000..317b758
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/tri_c.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/tri_c_black.gif b/usr/local/www/themes/pfsense_ng/images/misc/tri_c_black.gif
new file mode 100644
index 0000000..309846e
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/tri_c_black.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/tri_o.gif b/usr/local/www/themes/pfsense_ng/images/misc/tri_o.gif
new file mode 100644
index 0000000..eb95c32
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/tri_o.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/tri_o_black.gif b/usr/local/www/themes/pfsense_ng/images/misc/tri_o_black.gif
new file mode 100644
index 0000000..f818f3b
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/tri_o_black.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/misc/widget_loader.gif b/usr/local/www/themes/pfsense_ng/images/misc/widget_loader.gif
new file mode 100644
index 0000000..ca35e2a
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/misc/widget_loader.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/transparent.gif b/usr/local/www/themes/pfsense_ng/images/transparent.gif
new file mode 100644
index 0000000..89c5530
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/transparent.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/transparent_pixel.gif b/usr/local/www/themes/pfsense_ng/images/transparent_pixel.gif
new file mode 100644
index 0000000..35d42e8
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/transparent_pixel.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/wizards/initial/joincluster.gif b/usr/local/www/themes/pfsense_ng/images/wizards/initial/joincluster.gif
new file mode 100644
index 0000000..a6f90a2
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/wizards/initial/joincluster.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/wizards/initial/joincluster_mo.gif b/usr/local/www/themes/pfsense_ng/images/wizards/initial/joincluster_mo.gif
new file mode 100644
index 0000000..3787d69
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/wizards/initial/joincluster_mo.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/wizards/initial/restore.gif b/usr/local/www/themes/pfsense_ng/images/wizards/initial/restore.gif
new file mode 100644
index 0000000..eb8931f
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/wizards/initial/restore.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/wizards/initial/restore_mo.gif b/usr/local/www/themes/pfsense_ng/images/wizards/initial/restore_mo.gif
new file mode 100644
index 0000000..2ee46c7
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/wizards/initial/restore_mo.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/wizards/initial/standalone.gif b/usr/local/www/themes/pfsense_ng/images/wizards/initial/standalone.gif
new file mode 100644
index 0000000..aa035a4
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/wizards/initial/standalone.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/wizards/initial/standalone_mo.gif b/usr/local/www/themes/pfsense_ng/images/wizards/initial/standalone_mo.gif
new file mode 100644
index 0000000..c8066ef
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/wizards/initial/standalone_mo.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/wizards/initial/startnewcluster.gif b/usr/local/www/themes/pfsense_ng/images/wizards/initial/startnewcluster.gif
new file mode 100644
index 0000000..dbe0ca2
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/wizards/initial/startnewcluster.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/images/wizards/initial/startnewcluster_mo.gif b/usr/local/www/themes/pfsense_ng/images/wizards/initial/startnewcluster_mo.gif
new file mode 100644
index 0000000..83d980a
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/images/wizards/initial/startnewcluster_mo.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/javascript/ie7/blank.gif b/usr/local/www/themes/pfsense_ng/javascript/ie7/blank.gif
new file mode 100644
index 0000000..a4fe2e6
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/ie7/blank.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-box-model.js b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-box-model.js
new file mode 100644
index 0000000..45543f6
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-box-model.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(window.IE7)IE7.addModule("ie7-box-model",function(){var NUMERIC="\x5cs*:\x5cs*\x5cd[\x5cw%]*",UNIT=/^\d\w*$/,PERCENT=/^\d+%$/,PIXEL=/^\d+(px)?$/;var MATCH=(appVersion<6)?/\b(min|max)-(width|height)\s*:\s*\d/gi:/\b(min|max)-width\s*:\s*\d/gi;var AUTO=(appVersion<5.5)?/^auto|0cm$/:/^auto$/;var ie7_tmp=tmpElement();push(IE7.recalcs,function removeTempElement(){if(ie7_tmp.parentElement)ie7_tmp.parentElement.removeChild(ie7_tmp)});CSSFixes.addFix(MATCH,function(match){return match.slice(0,3)+match.charAt(4).toUpperCase()+match.slice(5)});var viewport=(quirksMode)?document.body:documentElement;function isFixed(element){return element.style.position=="fixed"||element.currentStyle.position=="fixed"};function layoutParent(element){var layoutParent=element.offsetParent;while(layoutParent&&!hasLayout(layoutParent))layoutParent=layoutParent.offsetParent;if(!layoutParent||isFixed(element))layoutParent=viewport;return layoutParent};function fixWidth(HEIGHT){fixWidth=function(element,value){if(!element.runtimeStyle.fixedWidth&&(!isHTML||element.tagName!="HR")){if(!value)value=element.currentStyle.width;element.runtimeStyle.fixedWidth=(UNIT.test(value))?Math.max(0,getFixedWidth(element,value)):value;element.runtimeStyle.width=element.runtimeStyle.fixedWidth;boxSizing(element)}};if(quirksMode)CSSFixes.addRecalc("width\x5cs*:\x5cs*\x5cd\x5cw*[^%]",fixWidth);var getFixedWidth=(quirksMode)?function(element,value){return getPixelWidth(element,value)+getBorderWidth(element)+getPaddingWidth(element)}:function(element,value){return getPixelWidth(element,value)};function getBorderWidth(element){return element.offsetWidth-element.clientWidth};function getPaddingWidth(element){return getPixelWidth(element,element.currentStyle.paddingLeft)+getPixelWidth(element,element.currentStyle.paddingRight)};function getMarginWidth(element){return((element.currentStyle.marginLeft=="auto")?0:getPixelLeft(element,element.currentStyle.marginLeft))+((element.currentStyle.marginRight=="auto")?0:getPixelLeft(element,element.currentStyle.marginRight))};function minWidth(element){minWidth[minWidth.count++]=element;if(element.currentStyle.minHeight=="auto")element.runtimeStyle.minHeight=0;fixWidth(element);boxSizing(element);resizeWidth(element)};minWidth.count=0;CSSFixes.addRecalc("min-width"+NUMERIC,minWidth);eval(String(minWidth).replace(/min/g,"max"));maxWidth.count=0;CSSFixes.addRecalc("max-width"+NUMERIC,maxWidth);function resizeWidth(element){var rect=element.getBoundingClientRect();var width=rect.right-rect.left;if(element.currentStyle.maxWidth&&width>=getFixedWidth(element,element.currentStyle.maxWidth))element.runtimeStyle.width=getFixedWidth(element,element.currentStyle.maxWidth);else if(element.currentStyle.minWidth&&width<=getFixedWidth(element,element.currentStyle.minWidth))element.runtimeStyle.width=getFixedWidth(element,element.currentStyle.minWidth);else element.runtimeStyle.width=element.runtimeStyle.fixedWidth};function fixRight(element){if((element.currentStyle.position=="absolute"||element.currentStyle.position=="fixed")&&element.currentStyle.left!="auto"&&element.currentStyle.right!="auto"&&AUTO.test(element.currentStyle.width)){fixRight[fixRight.count++]=element;boxSizing(element);resizeRight(element)}};fixRight.count=0;CSSFixes.addRecalc("right"+NUMERIC,fixRight);function resizeRight(element){element.runtimeStyle.width="";var parentElement=layoutParent(element);var left=(element.runtimeStyle.screenLeft)?element.getBoundingClientRect().left-2:getPixelLeft(element,element.currentStyle.left);var width=parentElement.clientWidth-getPixelLeft(element,element.currentStyle.right)-left-getMarginWidth(element);if(!quirksMode)width-=getBorderWidth(element)+getPaddingWidth(element);if(width<0)width=0;if(isFixed(element)||HEIGHT||element.offsetWidth<width){element.runtimeStyle.fixedWidth=width;element.runtimeStyle.width=width}};var clientWidth=documentElement.clientWidth;addEventHandler(window,"onresize",function(){var i,wider=(clientWidth<documentElement.clientWidth);clientWidth=documentElement.clientWidth;for(i=0;i<minWidth.count;i++){var element=minWidth[i];var fixedWidth=(element.runtimeStyle.width==element.currentStyle.minWidth);if(wider&&fixedWidth)element.runtimeStyle.width="";if(wider==fixedWidth)resizeWidth(element)}for(i=0;i<maxWidth.count;i++){var element=maxWidth[i];var fixedWidth=(element.runtimeStyle.width==element.currentStyle.maxWidth);if(!wider&&fixedWidth)element.runtimeStyle.width="";if(wider!=fixedWidth)resizeWidth(element)}for(i=0;i<fixRight.count;i++)resizeRight(fixRight[i]);removeTempElement()});function getPixelWidth(element,value){if(PIXEL.test(value))return parseInt(value);if(PERCENT.test(value))return parseInt(parseFloat(value)/100*layoutParent(element).clientWidth);var parentElement=(element.canHaveChildren)?element:element.parentElement;parentElement.appendChild(ie7_tmp);ie7_tmp.style.width=value;return ie7_tmp.offsetWidth};function getPixelLeft(element,value){if(parseInt(value)>0)return getPixelWidth(element,value);if(PIXEL.test(value))return parseInt(value);element.parentElement.appendChild(ie7_tmp);ie7_tmp.style.left=value;return ie7_tmp.offsetLeft}};eval(String(fixWidth).replace(/Width/g,"Height").replace(/width/g,"height").replace(/Left/g,"Top").replace(/left/g,"top").replace(/Right/g,"Bottom").replace(/right/g,"bottom"));fixWidth();fixHeight(true)});
diff --git a/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-core.js b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-core.js
new file mode 100644
index 0000000..b11e2b1
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-core.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(!window.IE7)new function(){try{window.IE7=this;var DUMMY=this.addModule=new Function;function unHide(){if(document.body)document.body.style.visibility="visible"};this.toString=function(){return "IE7 version 0.7.3 (alpha)"};var alert=(/ie7_debug/.test(location.search))?function(message){window.alert(IE7+"\n\n"+message)}:DUMMY;var appVersion=navigator.appVersion.match(/MSIE (\d\.\d)/)[1];if(/ie7_off/.test(location.search)||appVersion<5||!/^ms_/.test(document.documentElement.uniqueID))return unHide();var quirksMode=Boolean(document.compatMode!="CSS1Compat");var isHTML=(typeof document.mimeType=="unknown")?!/\.xml$/i.test(location.pathname):Boolean(document.mimeType!="XML Document");var LINKS=":link{ie7-link:link}:visited{ie7-link:visited}";var HEADER=LINKS;if(!isHTML)HEADER+="*{margin:0}";var HTMLFixes;var documentElement=document.documentElement;var modules={};this.addModule=function(name,script,autoload){if(!modules)return;if(loaded)eval("script="+String(script));if(autoload){script();script=DUMMY}modules[name]=script};var RELATIVE=/^[\w\.]+[^:]*$/;function makePath(href,path){if(RELATIVE.test(href))href=(path||"")+href;return href};function getPath(href,path){href=makePath(href,path);return href.slice(0,href.lastIndexOf("/")+1)};var path=getPath(document.scripts[document.scripts.length-1].src);var httpRequest=new ActiveXObject("Microsoft.XMLHTTP");function load(href,path){try{href=makePath(href,path);httpRequest.open("GET",href,false);httpRequest.send();return httpRequest.responseText}catch(ignore){alert("Error [1]: could not load file "+href);return ""}};var push=function(array,item){return array.push(item)};var pop=function(array){return array.pop()};if(appVersion<5.5)eval(load("ie7-ie5.js",path));if(document.readyState=="complete"||!isHTML)document.createStyleSheet();else document.write("<style></style>");this.styleSheet=document.styleSheets[document.styleSheets.length-1];this.styleSheet.cssText=LINKS;this.styleSheet.ie7=true;var cssText={};function loadStyleSheet(styleSheet,path){var url=makePath(styleSheet.href,path);if(cssText[url])return "";cssText[url]=(styleSheet.disabled)?"":fixUrls(getCSSText(styleSheet,path),getPath(styleSheet.href,path));return cssText[url]};var getCSSText=function(styleSheet){return styleSheet.cssText};var URL=/(url\(['"]?)([\w\.]+[^:\)]*['"]?\))/gi;function fixUrls(cssText,pathname){return cssText.replace(URL,"$1"+pathname.slice(0,pathname.lastIndexOf("/")+1)+"$2")};this.recalcs=[];this.parse=DUMMY;var complete=false;function _load(){try{complete=true;var MEDIA=/\bscreen\b|\ball\b|^$/i;var styleSheets=document.styleSheets;var inlineStyles=[];var styles=document.getElementsByTagName("style");for(var i=styles.length-1;i>=0;i--){push(inlineStyles,/ie7-link/.test(styles[i].innerHTML)?"":styles[i].innerHTML)}function getCSSText(styleSheet,path){var cssText="";if(MEDIA.test(styleSheet.media)){for(var i=0;i<styleSheet.imports.length;i++){cssText+=arguments.callee(styleSheet.imports[i],getPath(styleSheet.href,path))}cssText+=((styleSheet.href)?loadStyleSheet(styleSheet,path):pop(inlineStyles))}return cssText};IE7.cssText="";for(i=0;i<styleSheets.length;i++)IE7.cssText+=getCSSText(styleSheets[i],"");IE7.cssText=encode(IE7.cssText);for(i in modules)modules[i]();delete modules;if(HTMLFixes)HTMLFixes.apply();CSSFixes.apply();IE7.parse();IE7.styleSheet.cssText=HEADER+decode(IE7.cssText);for(i=0;i<styleSheets.length;i++){if(!styleSheets[i].disabled&&!styleSheets[i].ie7)styleSheets[i].cssText=""}IE7.recalc();alert("loaded successfully")}catch(error){alert("Error [2]: "+error.description)}finally{unHide()}};this.recalc=function(){CSSFixes.recalc();for(var i=0;i<this.recalcs.length;i++)this.recalcs[i]()};var CSSFixes=new function(){var fixes=[];this.addFix=function(){push(fixes,arguments)};var recalcs=[];this.addRecalc=function(pattern,fix){var reg=new RegExp("([^{}]*)\x5c{([^}]*[^\x5cw-])?"+pattern,"gi");var cssText=IE7.cssText;pattern=[];while(match=reg.exec(cssText)){push(pattern,match[1]);if(appVersion<5.5)cssText=cssText.slice(match.lastIndex)}if(pattern.length){pattern=pattern.toString();push(recalcs,arguments)}};this.apply=function(){for(var i=0;i<fixes.length;i++){IE7.cssText=IE7.cssText.replace(fixes[i][0],fixes[i][1])}this.addRecalc("box-sizing\x5cs*:\x5cs*content-box",boxSizing);this.addRecalc("position\x5cs*:\x5cs*absolute",function(element){if(element.offsetParent.currentStyle.position=="relative")boxSizing(element.offsetParent)})};this.recalc=function(){for(var i=0;i<recalcs.length;i++){var elements=cssQuery(recalcs[i][0]);for(var j=0;j<elements.length;j++)recalcs[i][1](elements[j])}};this.addFix(/(float\s*:\s*(left|right))/gi,"display:inline;$1");if(appVersion<6)this.addFix(/display\s*:\s*list-item/gi,"display:block");if(quirksMode){var SIZES="xx-small,x-small,small,medium,large,x-large,xx-large".split(",");for(var i=0;i<SIZES.length;i++)SIZES[SIZES[i]]=SIZES[i-1]||"xx-small";function replace($,$1,$2,$3){return $1+SIZES[$3]};this.addFix(new RegExp("(font(-size)?\x5cs*:\x5cs*)("+SIZES.join("|")+")","gi"),replace)}};var STANDARD_SELECT=/^[^>\+~\s]/;var STREAM=/[\s>\+~:@#\.\(\)]|[^\s>\+~:@#\.\(\)]+/g;var NAMESPACE=/\|/;var IMPLIED_SELECTOR=/([\s>~\,]|[^(]\+|^)([\.:#@])/g;var ASTERISK="$1*$2";var cssCache={};function cssQuery(selector,from){var useCache=!from;var base=(from)?(from.constructor==Array)?from:[from]:[document];var selectors=selector.replace(IMPLIED_SELECTOR,ASTERISK).split(",");var match=[];for(var i=0;i<selectors.length;i++){selector=toStream(selectors[i]);if(selector.slice(0,3).join("")==" *#"){selector=selector.slice(2);from=selectById(base,selector[1])}else from=base;var j=0,token,filter,filterArgs,cacheSelector="";while(j<selector.length){token=selector[j++];filter=selector[j++];cacheSelector+=token+filter;filterArgs="";if(selector[j]=="("){while(selector[j++]!=")")filterArgs+=selector[j];filterArgs=filterArgs.slice(0,-1);cacheSelector+="("+filterArgs+")"}from=(useCache&&cssCache[cacheSelector])?cssCache[cacheSelector]:select(from,token,filter,filterArgs);if(useCache)cssCache[cacheSelector]=from}match=match.concat(from)}return match};function toStream(selector){if(STANDARD_SELECT.test(selector))selector=" "+selector;return selector.match(STREAM)};function select(from,token,filter,filterArgs){var scopeName="";if(NAMESPACE.test(filter)){filter=filter.split("|");scopeName=filter[0];filter=filter[1]}var filtered=[];if(selectors[token])selectors[token](filtered,from,filter,scopeName||filterArgs);return filtered};function selectById(from,id){var filtered=[],i,j;for(i=0;i<from.length;i++){var match=from[i].all.item(id);if(match){if(match.length==null)push(filtered,match);else for(j=0;j<match.length;j++)push(filtered,match[j])}}return filtered};var selectors={" ":function(filtered,from,filter,scopeName){for(var i=0;i<from.length;i++){var subset=(filter=="*"&&from[i].all)?from[i].all:from[i].getElementsByTagName(filter);for(var j=0;j<subset.length;j++){if(isElement(subset[j])&&(!scopeName||subset[j].scopeName==scopeName))push(filtered,subset[j])}}},"#":function(filtered,from,filter){for(var i=0;i<from.length;i++)if(from[i].id==filter)push(filtered,from[i])},".":function(filtered,from,filter){filter=new RegExp("(^|\x5cs)"+filter+"(\x5cs|$)");for(var i=0;i<from.length;i++)if(filter.test(from[i].className))push(filtered,from[i])},":":function(filtered,from,filter,filterArgs){filter=pseudoClasses[filter];if(filter)for(var i=0;i<from.length;i++)if(filter(from[i],filterArgs))push(filtered,from[i])}};var attributeTests="";var pseudoClasses={toString:function(){var toString=[];for(var pseudoClass in this){if(pseudoClass!="link"&&pseudoClass!="visited"){if(this[pseudoClass].length>1)pseudoClass+="\x5c([^)]*\x5c)";push(toString,pseudoClass)}}return toString.join("|")},"link":function(element){return Boolean(element.currentStyle["ie7-link"]=="link")},"visited":function(element){return Boolean(element.currentStyle["ie7-link"]=="visited")}};var dynamicPseudoClasses={toString:pseudoClasses.toString};function compareTagName(element,tagName,scopeName){if(scopeName&&element.scopeName!=scopeName)return false;return(tagName=="*")?isElement(element):(isHTML)?(element.tagName==tagName.toUpperCase()):(element.tagName==tagName)};var strings=[];function getString(string){return QUOTED.test(string)?strings[string.slice(1,-1)]:string};var encode=function(cssText){return cssText.replace(/(\x2f\*[^\*]*\*+([^\x2f][^\*]*\*+)*\x2f)|('[^']*')|("[^"]*")/g,function(match){return(match.charAt(0)=="/")?"":"'"+(push(strings,match.slice(1,-1))-1)+"'"}).replace(/@(namespace|import)[^;\n]+[;\n]|<!\-\-|\-\->/g,"").replace(/\x5c:/g,"|").replace(/^\s+|\s*([\{\}\+\,>~\s;])\s*|\s+$/g,"$1")};function decode(cssText){return cssText.replace(/\|/g,"\x5c:").replace(/'(\d+)'/g,function(match,key){return strings[key]})};var handlers=[];function addEventHandler(element,type,handler){element.attachEvent(type,handler);push(handlers,arguments)};function removeEventHandler(element,type,handler){try{element.detachEvent(type,handler)}catch(ignore){}};window.attachEvent("onbeforeunload",function(){while(handlers.length){var handler=pop(handlers);removeEventHandler(handler[0],handler[1],handler[2])}});var hasLayout=(appVersion<6)?function(element){return element.clientWidth}:function(element){return element.currentStyle.hasLayout};function boxSizing(element){if(!hasLayout(element)){element.contentEditable=false;fixMargins(firstChildElement(element))}};function fixMargins(element){while(element){element.runtimeStyle.marginTop=element.currentStyle.marginTop;element=nextElement(element)}};var QUOTED=/('[^']*')|("[^"]*")/;function quote(value){return(QUOTED.test(value))?value:"'"+value+"'"};function unquote(value){return(QUOTED.test(value))?value.slice(1,-1):value};function tmpElement(tagName){var element=document.createElement(tagName||"object");element.style.cssText="position:absolute;padding:0;display:block;border:none;clip:rect(0 0 0 0);left:-9999";return element};function isElement(node){return Boolean(node&&node.nodeType==1&&node.tagName!="!"&&!node.ie7_anon)};function previousElement(element){while(element&&(element=element.previousSibling)&&!isElement(element))continue;return element};function nextElement(element){while(element&&(element=element.nextSibling)&&!isElement(element))continue;return element};function firstChildElement(element){element=element.firstChild;return(isElement(element))?element:nextElement(element)};var loaded=true;if(document.readyState=="complete")_load();else addEventHandler(document,"onreadystatechange",function(){if(!complete&&document.readyState=="complete")setTimeout(_load,0)})}catch(error){unHide();alert("Error [0]: "+error.description)}finally{}}();
diff --git a/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-css-strict.js b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-css-strict.js
new file mode 100644
index 0000000..4406d7a
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-css-strict.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(window.IE7)IE7.addModule("ie7-strict",function(){if(!modules["ie7-css2"])return;var NONE=[],ID=/#/g,CLASS=/[:@\.]/g,TAG=/^\w|[\s>+~]\w/g;IE7.parser.parse=function(cssText){var DYNAMIC=new RegExp("(.*):("+dynamicPseudoClasses+")(.*)");function addRule(selector,cssText){var match=selector.match(DYNAMIC);if(match)new DynamicRule(selector,match[1],match[2],match[3],cssText);else new Rule(selector,cssText)};cssText=cssText.replace(IE7.PseudoElement.ALL,IE7.PseudoElement.ID);var RULE=/([^\{]+)\{(\d+)\}/g,match;while(match=RULE.exec(cssText)){addRule(match[1],match[2]);if(appVersion<5.5)cssText=cssText.slice(match.lastIndex)}IE7.classes.sort(Rule.compare);return IE7.classes.join("\n")};function Rule(selector,cssText){this.cssText=cssText;this.specificity=Rule.score(selector);this.inherit=IE7.Class;this.inherit(selector)};Rule.prototype=new IE7.Class.ancestor;Rule.prototype.toString=function(){return "."+this.name+"{"+this.cssText+"}"};Rule.score=function(selector){return(selector.match(ID)||NONE).length*10000+(selector.match(CLASS)||NONE).length*100+(selector.match(TAG)||NONE).length};Rule.compare=function(rule1,rule2){return rule1.specificity-rule2.specificity};function DynamicRule(selector,attach,dynamicPseudoClass,target,cssText){this.cssText=cssText;this.specificity=Rule.score(selector);this.inherit=IE7.DynamicStyle;this.inherit(selector,attach,dynamicPseudoClass,target)};DynamicRule.prototype=new IE7.DynamicStyle.ancestor;DynamicRule.prototype.toString=Rule.prototype.toString});
diff --git a/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-css2.js b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-css2.js
new file mode 100644
index 0000000..7121c8e
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-css2.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(window.IE7)IE7.addModule("ie7-css2",function(){var CHILD=/>/g,ANCHOR=/(\ba(\.[\w-]+)?)$/i;IE7.classes=[];IE7.parser=new Parser;IE7.Class=Class;IE7.DynamicStyle=DynamicStyle;IE7.PseudoElement=PseudoElement;IE7.parse=function(){with(this.parser)this.cssText=decode(parse(encode(this.cssText)));for(var i=0;i<IE7.classes.length;i++)IE7.classes[i].exec();for(i=0;i<pseudoElements.length;i++)pseudoElements[i].create()};getCSSText=function(styleSheet,path){return load(styleSheet.href,path)};var encoded=[];function Parser(){this.parse=function(cssText){Class.ALL=new RegExp("[^},\x5cs]*([>+~][^:@,\x5cs{]+|:("+pseudoClasses+")|\x5c.[\x5cw-]+\x5c.[\x5cw-.]+|@[@\x5cd]+)","g");Class.COMPLEX=new RegExp("[^\x5cs(]+[+~]|@\x5cd+|:(link|visited|"+pseudoClasses+"|"+dynamicPseudoClasses+")|\x5c.[\x5cw-.]+","g");DynamicStyle.ALL=new RegExp("([^}]*):("+dynamicPseudoClasses+")([^{]*)","g");return cssText.replace(PseudoElement.ALL,PseudoElement.ID).replace(DynamicStyle.ALL,DynamicStyle.ID).replace(Class.ALL,Class.ID)};this.encode=function(cssText){AttributeSelector.ALL=new RegExp("\x5c[([^"+attributeTests+"=\x5c]]+)(["+attributeTests+"]?=?)([^\x5c]]+)?\x5c]","g");return cssText.replace(AttributeSelector.ALL,AttributeSelector.ID).replace(/\{[^\}]*\}/g,function($){return "{"+(push(encoded,$)-1)+"}"}).replace(/::/g,":").replace(/([^\}\s]*\,[^\{]*)(\{\d+\})/g,function(match,left,right){return left.split(",").join(right)+right})};this.decode=function(cssText){return cssText.replace(/\{(\d+)\}/g,function($,$1){return encoded[$1]})}};function _Class(){this.toString=function(){return "."+this.name};this.add=function(element){element.className+=" "+this.name};this.remove=function(element){element.className=element.className.replace(this.MATCH,"")};this.exec=function(){var match=cssQuery(this.selector);for(var i=0;i<match.length;i++)this.add(match[i])}};function Class(selector,cssText){this.id=IE7.classes.length;this.name=Class.PREFIX+this.id;this.selector=selector;this.MATCH=new RegExp("\x5cs"+this.name+"\x5cb","g");push(IE7.classes,this)};Class.ancestor=_Class;Class.prototype=new _Class;Class.PREFIX="ie7_";Class.ID=function(match){return simpleSelector(match)+new Class(match)};function _DynamicStyle(){this.exec=function(){var match=cssQuery(this.attach);for(var i=0;i<match.length;i++){var target=(this.target)?cssQuery(this.target,match[i]):[match[i]];if(target)this.dynamicPseudoClass(match[i],target,this)}}};_DynamicStyle.prototype=new _Class;function DynamicStyle(selector,attach,dynamicPseudoClass,target){this.attach=attach;this.dynamicPseudoClass=dynamicPseudoClasses[dynamicPseudoClass];this.target=target;this.inherit=Class;this.inherit(selector)};DynamicStyle.ancestor=_DynamicStyle;DynamicStyle.prototype=new _DynamicStyle;DynamicStyle.ID=function(match,attach,dynamicPseudoClass,target){if(isHTML&&dynamicPseudoClass!="focus"&&ANCHOR.test(attach)&&!/[+>~]/.test(target))return match;return simpleSelector(match)+new DynamicStyle(match,attach,dynamicPseudoClass,target)};HEADER+=".ie7_anon{vertical-align:top;display:inline}";var HEX=/\x5c([a-fA-F\d]+)/g;function unicode(match,code){return eval("'\x5cu"+"0000".slice(code.length)+code+"'")};var pseudoElements=[];function _PseudoElement(){this.content=null;this.toString=function(){return ""};this.specificity=0;function addTimer(object,content,cssText){var timer=setInterval(function(){try{if(!object.load)return;object.load(object,content,cssText);clearInterval(timer)}catch(ignore){clearInterval(timer)}},10)};this.create=function(){if(this.content==null)return;for(var i=0;i<this.match.length;i++){var target=this.match[i];var pseudoElement=target.runtimeStyle[this.position];if(pseudoElement){var parentElement=target.canHaveChildren?target:target.parentElement;var isURL=/^url\(.*\)$/.test(this.content);var element=document.createElement(isURL?PseudoElement.OBJECT:"!");element.ie7_anon=true;element.runtimeStyle.cssText=pseudoElement.cssText;if(!isURL)element.innerText=pseudoElement.content;if(this.position=="before"){parentElement.insertBefore(element,parentElement.firstChild)}else{parentElement.appendChild(element)}if(isURL)addTimer(element,pseudoElement.content,pseudoElement.cssText);target.runtimeStyle[this.position]=null}}};this.exec=function(){this.match=cssQuery(this.selector);for(var i=0;i<this.match.length;i++){var runtimeStyle=this.match[i].runtimeStyle;if(!runtimeStyle[this.position])runtimeStyle[this.position]={cssText:""};runtimeStyle[this.position].cssText+=";"+this.cssText;if(this.content!=null)runtimeStyle[this.position].content=this.content}}};_PseudoElement.prototype=new _Class;function PseudoElement(selector,position,cssText){this.position=position;this.cssText=encoded[cssText].slice(1,-1);var content=this.cssText.match(PseudoElement.CONTENT);if(content)this.content=getString(content[1]).replace(HEX,unicode);this.inherit=Class;this.inherit(selector);push(pseudoElements,this)};PseudoElement.ancestor=_PseudoElement;PseudoElement.prototype=new _PseudoElement;PseudoElement.ID=function(match,selector,position,cssText){return new PseudoElement(selector,position,cssText)};PseudoElement.ALL=/([^}]*):(before|after)[^{]*\{([^}]*)\}/g;PseudoElement.CONTENT=/content\s*:\s*([^;]*)(;|$)/;PseudoElement.OBJECT="<object class=ie7_anon data='"+makePath("ie7-content.htm",path)+"' width=100% height=0 type=text/x-scriptlet>";selectors[">"]=function(filtered,from,filter,scopeName){for(var i=0;i<from.length;i++){var subset=from[i].children;for(var j=0;j<subset.length;j++)if(compareTagName(subset[j],filter,scopeName))push(filtered,subset[j])}};selectors["+"]=function(filtered,from,filter,scopeName){for(var i=0;i<from.length;i++){var adjacent=nextElement(from[i]);if(adjacent&&compareTagName(adjacent,filter,scopeName))push(filtered,adjacent)}};selectors["@"]=function(filtered,from,filter){filter=attributeSelectors[filter];for(var i=0;i<from.length;i++)if(filter(from[i]))push(filtered,from[i])};pseudoClasses["first-child"]=function(element){return!previousElement(element)};pseudoClasses["lang"]=function(element,filterArgs){filterArgs=new RegExp("^"+filterArgs,"i");while(element&&!element.getAttribute("lang"))element=element.parentNode;return element&&filterArgs.test(element.getAttribute("lang"))};dynamicPseudoClasses.hover=function(element){var instance=arguments;addEventHandler(element,"onmouseover",function(){IE7.Event.hover.register(instance)});addEventHandler(element,"onmouseout",function(){IE7.Event.hover.unregister(instance)})};dynamicPseudoClasses.active=function(element){var instance=arguments;addEventHandler(element,"onmousedown",function(){IE7.Event.active.register(instance)})};dynamicPseudoClasses.focus=function(element){var instance=arguments;addEventHandler(element,"onfocus",function(){IE7.Event.focus.register(instance)});addEventHandler(element,"onblur",function(){IE7.Event.focus.unregister(instance)});if(element==document.activeElement){IE7.Event.focus.register(instance)}};addEventHandler(document,"onmouseup",function(){var ie7Event=IE7.Event.active;var instances=ie7Event.instances,i;for(i in instances)ie7Event.unregister(instances[i]);ie7Event=IE7.Event.hover;instances=ie7Event.instances;for(i in instances)if(!instances[i][0].contains(event.srcElement))ie7Event.unregister(instances[i])});var attributeSelectors=[];var ESCAPE=/([/()[\]?{}|*+])/g;function AttributeSelector(attribute,compare,value){value=getString(value);this.id=attributeSelectors.length;switch(attribute.toLowerCase()){case "id":attribute="element.id.replace(/ms_\x5cd+/g,'')";break;case "class":attribute="element.className.replace(/\x5cb\x5cs*ie7_\x5cd+/g,'')";break;default:attribute="element.getAttribute('"+attribute+"')"}compare=attributeTests[compare];push(attributeSelectors,new Function("element","return "+compare(attribute,value)))};AttributeSelector.ID=function(match,attribute,compare,value){return new AttributeSelector(attribute,compare,value)};AttributeSelector.prototype.toString=function(){return AttributeSelector.PREFIX+this.id};attributeTests={toString:function(){var toString=[];for(var i in this)if(i&&i!="escape")push(toString,i);return toString.join("").replace(/=/g,"")},escape:function(value){return value.replace(ESCAPE,"\x5c$1")},"":function(attribute){return attribute},"=":function(attribute,value){return attribute+"=="+quote(value)},"~=":function(attribute,value){return "/(^|\x5cs)"+attributeTests.escape(value)+"(\x5cs|$)/.test("+attribute+")"},"|=":function(attribute,value){return "/^"+attributeTests.escape(value)+"(-|$)/.test("+attribute+")"}};AttributeSelector.PREFIX="@";function _ie7Event(){this.register=function(instance){var element=instance[0];var target=instance[1];var Class=instance[2];for(var i=0;i<target.length;i++)Class.add(target[i]);this.instances[Class.id+element.uniqueID]=instance};this.unregister=function(instance){var element=instance[0];var target=instance[1];var Class=instance[2];for(var i=0;i<target.length;i++)Class.remove(target[i]);delete this.instances[Class.id+element.uniqueID]}};IE7.Event=function(type){this.type=type;this.instances={};IE7.Event[type]=this};IE7.Event.prototype=new _ie7Event;new IE7.Event("hover");new IE7.Event("active");new IE7.Event("focus");function simpleSelector(selector){return selector.replace(Class.COMPLEX,"").replace(CHILD," ")}},true);
diff --git a/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-css3.js b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-css3.js
new file mode 100644
index 0000000..86b24f5
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-css3.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(window.IE7)IE7.addModule("ie7-css3",function(){if(!modules["ie7-css2"])return;selectors["~"]=function(filtered,from,filter,scopeName){for(var i=0;i<from.length;i++){var adjacent=from[i];while(adjacent=nextElement(adjacent)){if(adjacent&&compareTagName(adjacent,filter,scopeName))push(filtered,adjacent)}}};var documentElement=(isHTML)?document.documentElement:firstChildElement(document.body);pseudoClasses["root"]=function(element){return Boolean(element==documentElement||element==document.body)};pseudoClasses["empty"]=function(element){return!firstChildElement(element)&&!element.innerText};pseudoClasses["last-child"]=function(element){return!nextElement(element)};pseudoClasses["only-child"]=function(element){return(element.parentNode&&childElements(element.parentNode).length==1)};pseudoClasses["nth-child"]=function(element,filterArgs,step){return nthChild(element,filterArgs,previousElement)};pseudoClasses["nth-last-child"]=function(element,filterArgs){return nthChild(element,filterArgs,nextElement)};function nthChild(element,filterArgs,traverse){switch(filterArgs){case "n":return true;case "even":filterArgs="2n";break;case "odd":filterArgs="2n+1"}var children=childElements(element.parentNode);function checkIndex(index){index=(traverse==nextElement)?children.length-index:index-1;return children[index]==element};if(!isNaN(filterArgs))return checkIndex(filterArgs);filterArgs=filterArgs.split("n");var multiplier=parseInt(filterArgs[0]);var step=parseInt(filterArgs[1]);if(isNaN(multiplier)||(multiplier==1))return true;if(multiplier==0&&!isNaN(step))return checkIndex(step);if(isNaN(step))step=0;var count=1;while(element=traverse(element))count++;return((count%multiplier)==step)};function childElements(element){var childElements=[],i;for(i=0;i<element.childNodes.length;i++){if(isElement(element.childNodes[i]))push(childElements,element.childNodes[i])}return childElements};attributeTests["^="]=function(attribute,value){return "/^"+attributeTests.escape(value)+"/.test("+attribute+")"};attributeTests["$="]=function(attribute,value){return "/"+attributeTests.escape(value)+"$/.test("+attribute+")"};attributeTests["*="]=function(attribute,value){return "/"+attributeTests.escape(value)+"/.test("+attribute+")"}});
diff --git a/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-fixed.js b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-fixed.js
new file mode 100644
index 0000000..4321cda
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-fixed.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(window.IE7)IE7.addModule("ie7-fixed",function(){var PERCENT=/^\d+%$/;CSSFixes.addRecalc("position\x5cs*:\x5cs*fixed",positionFixed);CSSFixes.addRecalc("background[\x5cw\x5cs-]*:[^};]*fixed",backgroundFixed);var body=document.body;var viewport$=(quirksMode)?"body":"documentElement";var viewport=eval(viewport$);function fixBackground(){if(body.currentStyle.backgroundAttachment!="fixed"){if(body.currentStyle.backgroundImage=="none"){body.runtimeStyle.backgroundImage="url("+location.protocol+")"}body.runtimeStyle.backgroundAttachment="fixed"}fixBackground=DUMMY};var ie7_tmp=tmpElement("img");function topFunction(leftFunction){return String(leftFunction).replace(/Left/g,"Top").replace(/left/g,"top").replace(/Width/g,"Height").replace(/X/g,"Y")};function backgroundFixed(element){if(element.currentStyle.backgroundAttachment!="fixed")return;if(!element.contains(body)){fixBackground();backgroundFixed[backgroundFixed.count++]=element;backgroundLeft(element);backgroundTop(element);backgroundPosition(element)}};backgroundFixed.count=0;function backgroundPosition(element){ie7_tmp.src=element.currentStyle.backgroundImage.slice(5,-2);var parentElement=(element.canHaveChildren)?element:element.parentElement;parentElement.appendChild(ie7_tmp);setOffsetLeft(element);setOffsetTop(element);parentElement.removeChild(ie7_tmp)};function backgroundLeft(element){element.style.backgroundPositionX=element.currentStyle.backgroundPositionX;if(!isFixed(element)){var expression="(parseInt(runtimeStyle.offsetLeft)+document."+viewport$+".scrollLeft)||0";element.runtimeStyle.setExpression("backgroundPositionX",expression)}};eval(topFunction(backgroundLeft));function setOffsetLeft(element){var propertyName=isFixed(element)?"backgroundPositionX":"offsetLeft";element.runtimeStyle[propertyName]=getOffsetLeft(element,element.style.backgroundPositionX)-element.getBoundingClientRect().left-element.clientLeft};eval(topFunction(setOffsetLeft));function isFixed(element){if(!element)return false;if(element.style.position=="fixed"||element.currentStyle.position=="fixed")return true;return arguments.callee(element.parentElement)};function getOffsetLeft(element,position){switch(position){case "left":case "top":return 0;case "right":case "bottom":return viewport.clientWidth-ie7_tmp.offsetWidth;case "center":return(viewport.clientWidth-ie7_tmp.offsetWidth)/2;default:if(PERCENT.test(position)){return parseInt((viewport.clientWidth-ie7_tmp.offsetWidth)*parseFloat(position)/100)}ie7_tmp.style.left=position;return ie7_tmp.offsetLeft}};eval(topFunction(getOffsetLeft));function positionFixed(element){if(element.currentStyle.position!="fixed")return;fixBackground();positionFixed[positionFixed.count++]=element;element.style.position="fixed";element.runtimeStyle.position="absolute";foregroundPosition(element)};positionFixed.count=0;function foregroundPosition(element,recalc){positionLeft(element,recalc);positionTop(element,recalc);if(!recalc||element.runtimeStyle.autoTop){if(parseInt(element.currentStyle.bottom)==0)element.runtimeStyle.screenTop++}};function positionLeft(element,recalc){if(!recalc&&PERCENT.test(element.currentStyle.width))element.runtimeStyle.fixWidth=element.currentStyle.width;if(element.runtimeStyle.fixWidth)element.runtimeStyle.width=parseInt(parseFloat(element.runtimeStyle.fixWidth)/100*viewport.clientWidth);if(recalc){if(!element.runtimeStyle.autoLeft)return}else{element.runtimeStyle.autoLeft=element.currentStyle.right!="auto"&&element.currentStyle.left=="auto"}element.runtimeStyle.left="";element.runtimeStyle.screenLeft=getScreenLeft(element);if(element.currentStyle.marginLeft!="auto"){element.parentElement.appendChild(ie7_tmp);ie7_tmp.style.left=element.currentStyle.marginLeft;element.runtimeStyle.screenLeft-=ie7_tmp.offsetLeft;element.parentElement.removeChild(ie7_tmp)}if(isFixed(element.offsetParent))element.runtimeStyle.pixelLeft=element.runtimeStyle.screenLeft;else if(!recalc)element.runtimeStyle.setExpression("pixelLeft","runtimeStyle.screenLeft+document."+viewport$+".scrollLeft")};eval(topFunction(positionLeft).replace(/right/g,"bottom").replace(/width/g,"height"));function getScreenLeft(element){var getScreenLeft=element.offsetLeft,nested=false;var fixed=isFixed(element.offsetParent)&&element.runtimeStyle.autoLeft;while(element=element.offsetParent){if(!fixed&&element.currentStyle.position!="static")nested=true;getScreenLeft+=element.offsetLeft*(nested?-1:1)}return getScreenLeft};eval(topFunction(getScreenLeft));function resize(){for(var i=0;i<backgroundFixed.count;i++)backgroundPosition(backgroundFixed[i]);for(i=0;i<positionFixed.count;i++)foregroundPosition(positionFixed[i],true);timer=0};var timer;addEventHandler(window,"onresize",function(){if(!timer)timer=setTimeout(resize,10)})});
diff --git a/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-html4.js b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-html4.js
new file mode 100644
index 0000000..4d2baa9
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-html4.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(window.IE7)IE7.addModule("ie7-html4",function(){if(isHTML)HTMLFixes=new function(){var fixes=[];function fix(element){var fixedElement=document.createElement("<HTML:"+element.outerHTML.slice(1));if(element.outerHTML.slice(-2)!="/>"){var endTag="</"+element.tagName+">",nextSibling;while((nextSibling=element.nextSibling)&&nextSibling.outerHTML!=endTag){element.parentNode.removeChild(nextSibling);fixedElement.appendChild(nextSibling)}if(nextSibling)element.parentNode.removeChild(nextSibling)}element.parentNode.replaceChild(fixedElement,element);return fixedElement};this.add=function(){push(fixes,arguments)};this.apply=function(){try{if(appVersion>5)document.namespaces.add("HTML","http://www.w3.org/1999/xhtml")}catch(ignore){}finally{for(var i=0;i<fixes.length;i++){var elements=cssQuery(fixes[i][0]);for(var j=0;j<elements.length;j++)fixes[i][1](elements[j])}}};this.add("label",function(element){if(!element.htmlFor){var input=cssQuery("input,select,textarea",element)[0];if(input){if(!input.id)input.id=input.uniqueID;element.htmlFor=input.id}}});this.add("abbr",function(element){fix(element);delete cssCache[" abbr"]});this.add("button,input",function(element){if(element.tagName=="BUTTON"){var match=element.outerHTML.match(/ value="([^"]*)"/i);element.runtimeStyle.value=(match)?match[1]:""}if(element.type=="submit"){addEventHandler(element,"onclick",function(){element.runtimeStyle.clicked=true;setTimeout("document.all."+element.uniqueID+".runtimeStyle.clicked=false",1)})}});this.add("form",function(element){var UNSUCCESSFUL=/^(submit|reset|button)$/;addEventHandler(element,"onsubmit",function(){for(var i=0;i<element.length;i++){if(UNSUCCESSFUL.test(element[i].type)&&!element[i].disabled&&!element[i].runtimeStyle.clicked){element[i].disabled=true;setTimeout("document.all."+element[i].uniqueID+".disabled=false",1)}else if(element[i].tagName=="BUTTON"&&element[i].type=="submit"){setTimeout("document.all."+element[i].uniqueID+".value='"+element[i].value+"'",1);element[i].value=element[i].runtimeStyle.value}}})})}},true); \ No newline at end of file
diff --git a/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-ie5.js b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-ie5.js
new file mode 100644
index 0000000..707fa56
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-ie5.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(isHTML){HEADER+="address,blockquote,body,dd,div,dl,dt,fieldset,form,frame,"+"frameset,h1,h2,h3,h4,h5,h6,iframe,noframes,object,p,applet,center,"+"dir,hr,menu,pre{display:block;height:0cm}li,ol,ul{display:block}"}if(![].push)push=function(array,item){array[array.length]=item;return array.length};if(![].pop)pop=function(array){var item=array[array.length-1];array.length--;return item};if("i".replace(/i/,function(){return""})){var a=String.prototype.replace,b=function(r,w){var m,n="",s=this;while((m=r.exec(s))){n+=s.slice(0,m.index)+w(m[0],m[1],m[2],m[3],m[4]);s=s.slice(m.lastIndex)}return n+s};String.prototype.replace=function(r,w){this.replace=(typeof w=="function")?b:a;return this.replace(r,w)}} \ No newline at end of file
diff --git a/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-lite-p.js b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-lite-p.js
new file mode 100644
index 0000000..ee1a96a
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-lite-p.js
@@ -0,0 +1,3 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+eval(function(A,r,s,e,n,a,l){s=function(e){return((e<a)?'':s(e/a))+n[l[340]](e%a+161)};while(++r<474)l[r]=(r<378)?'/'+l[r]+'/':'"'+l[r]+'"';while(--r>=0)A=A.replace(new RegExp(s(r),'g'),l[r]);return A}('if(!ù.´)Ó £(){ÿ{ù.´=ª;¢ ¢Æ=ª.¢´=Ó ¤×;£ ¢©(){if(«.¢Ù)«.¢Ù.Í.¤Ö=¤þ};ª.Õ=£(){¤ ¤ÿ};¢ â=(¤Ù.±(¢î.£Ë))?£(£Ì){ù.â(´+¥¡+£Ì)}:¢Æ;¢ Å=¤Ñ.Å.¬(¤Ú)[1];if(¤Û.±(¢î.£Ë)||Å<5||!¤Ü.±(«.Ù.ü))¤ ¢©();¢ è=¢£(«.¤Í!=¥¢);¢ ë=(¤Ë «.£Ê==¥£)?!¤Ýi.±(¢î.¢Ç):¢£(«.£Ê!=¥¤);¢ ¢í=¥¥;¢ ¢ë=¢í;if(!ë)¢ë+=¥¦;¢ ¢¹;¢ Ù=«.Ù;¢ ó={};ª.¢´=£(£È,ô,£É){if(!ó)¤;if(¢«)¢¬(¥§+¢Î(ô));if(£É){ô();ô=¢Æ}ó[£È]=ô};¢ £Ç=¤Þ;£ ¢È(²,¹){if(£Ç.±(²))²=(¹||¥¨)+²;¤ ²};£ ¢Ä(²,¹){²=¢È(²,¹);¤ ².»(0,².£Ã(¥©)+1)};¢ ¹=¢Ä(«.£Æ[«.£Æ.­-1].¤Å);¢ ¢Ê=Ó ¤Ä(¥ª);£ ã(²,¹){ÿ{²=¢È(²,¹);¢Ê.¤Á(¥«,²,Þ);¢Ê.¤¿();¤ ¢Ê.¤¾}õ(¢à){â(¥¬+²);¤ ¥¨}};¢ ·=£(¢É,¢À){¤ ¢É.·(¢À)};¢ ¢½=£(¢É){¤ ¢É.¢½()};if(Å<5.5)¢¬(ã(¥­,¹));if(«.¢Í==¥®||!ë)«.¤¹();Ö «.¤¸(¥¯);ª.¶=«.É[«.É.­-1];ª.¶.§=¢í;ª.¶.Æ=×;¢ §={};£ £¿(¶,¹){¢ ¢§=¢È(¶.²,¹);if(§[¢§])¤ ¥¨;§[¢§]=(¶.ý)?¥¨:£Å(¢Ã(¶,¹),¢Ä(¶.²,¹));¤ §[¢§]};¢ ¢Ã=£(¶){¤ ¶.§};¢ £Ä=¤ßgi;£ £Å(§,¢Ç){¤ §.³(£Ä,¥°+¢Ç.»(0,¢Ç.£Ã(¥©)+1)+¥±)};ª.Ë=[];ª.£¾=¢Æ;¢ ä=Þ;£ _ã(){ÿ{ä=×;¢ £Á=¤ài;¢ É=«.É;¢ ¢ì=[];¢ ¢Å=«.£µ(¥²);¯(¢ i=¢Å.­-1;i>=0;i--){·(¢ì,¤á.±(¢Å[i].£Â)?¥¨:¢Å[i].£Â)}£ ¢Ã(¶,¹){¢ §=¥¨;if(£Á.±(¶.¤µ)){¯(¢ i=0;i<¶.£À.­;i++){§+=¢¡.¤´(¶.£À[i],¢Ä(¶.²,¹))}§+=((¶.²)?£¿(¶,¹):¢½(¢ì))}¤ §};´.§=¥¨;¯(i=0;i<É.­;i++)´.§+=¢Ã(É[i],¥¨);´.§=£´(´.§);¯(i in ó)ó[i]();£¦ ó;if(¢¹)¢¹.¢·();Ñ.¢·();´.£¾();´.¶.§=¢ë+£³(´.§);¯(i=0;i<É.­;i++){if(!É[i].ý&&!É[i].Æ)É[i].§=¥¨}´.¢Â();â(¥³)}õ(¢¨){â(¥´+¢¨.¢ï)}¢Ë{¢©()}};ª.¢Â=£(){Ñ.¢Â();¯(¢ i=0;i<ª.Ë.­;i++)ª.Ë[i]()};¢ Ñ=Ó £(){¢ Ç=[];ª.û=£(){·(Ç,¢¡)};¢ Ë=[];ª.Ú=£(á,¢Þ){¢ £½=Ó ¢æ(¥µ+á,¥¶);¢ §=´.§;á=[];Ê(¬=£½.¤²(§)){·(á,¬[1]);if(Å<5.5)§=§.»(¬.¤±)}if(á.­){á=á.Õ();·(Ë,¢¡)}};ª.¢·=£(){¯(¢ i=0;i<Ç.­;i++){´.§=´.§.³(Ç[i][0],Ç[i][1])}ª.Ú(¥·,é);ª.Ú(¥¸,£(¡){if(¡.¢².©.Ü==¥¹)é(¡.¢²)})};ª.¢Â=£(){¯(¢ i=0;i<Ë.­;i++){¢ î=¢¶(Ë[i][0]);¯(¢ j=0;j<î.­;j++)Ë[i][1](î[j])}};ª.û(¤âgi,¥º);if(Å<6)ª.û(¤ãgi,¥»);if(è){¢ à=¥¼.¢ç(¥½);¯(¢ i=0;i<à.­;i++)à[à[i]]=à[i-1]||¥¾;£ ³($,$1,$2,$3){¤ $1+à[$3]};ª.û(Ó ¢æ(¥¿+à.¢å(¥À)+¥Á,¥¶),³)}};¢ £¹=¤ä;¢ £¸=¤åg;¢ £·=¤æ;¢ £¼=¤çg;¢ £»=¥Â;¢ þ={};£ ¢¶(µ,¦){¢ ¢è=!¦;¢ ¢é=(¦)?(¦.¤§==¤¦)?¦:[¦]:[«];¢ ñ=µ.³(£¼,£»).¢ç(¥½);¢ ¬=[];¯(¢ i=0;i<ñ.­;i++){µ=£º(ñ[i]);if(µ.»(0,3).¢å(¥¨)==¥Ã){µ=µ.»(2);¦=£¶(¢é,µ[1])}Ö ¦=¢é;¢ j=0,ß,®,Á,ò=¥¨;Ê(j<µ.­){ß=µ[j++];®=µ[j++];ò+=ß+®;Á=¥¨;if(µ[j]==¥Ä){Ê(µ[j++]!=¥Á)Á+=µ[j];Á=Á.»(0,-1);ò+=¥Ä+Á+¥Á}¦=(¢è&&þ[ò])?þ[ò]:¢ß(¦,ß,®,Á);if(¢è)þ[ò]=¦}¬=¬.¤¥(¦)}¤ ¬};£ £º(µ){if(£¹.±(µ))µ=¥Å+µ;¤ µ.¬(£¸)};£ ¢ß(¦,ß,®,Á){¢ À=¥¨;if(£·.±(®)){®=®.¢ç(¥À);À=®[0];®=®[1]}¢ ¸=[];if(ñ[ß])ñ[ß](¸,¦,®,À||Á);¤ ¸};£ £¶(¦,id){¢ ¸=[],i,j;¯(i=0;i<¦.­;i++){¢ ¬=¦[i].ì.¢À(id);if(¬){if(¬.­==¤¤)·(¸,¬);Ö ¯(j=0;j<¬.­;j++)·(¸,¬[j])}}¤ ¸};¢ ñ={¥Å:£(¸,¦,®,À){¯(¢ i=0;i<¦.­;i++){¢ ¢¦=(®==¥Æ&&¦[i].ì)?¦[i].ì:¦[i].£µ(®);¯(¢ j=0;j<¢¦.­;j++){if(ï(¢¦[j])&&(!À||¢¦[j].À==À))·(¸,¢¦[j])}}},¥Ç:£(¸,¦,®){¯(¢ i=0;i<¦.­;i++)if(¦[i].id==®)·(¸,¦[i])},¥È:£(¸,¦,®){®=Ó ¢æ(¥É+®+¥Ê);¯(¢ i=0;i<¦.­;i++)if(®.±(¦[i].¤£))·(¸,¦[i])},¥Ë:£(¸,¦,®,Á){®=¢ä[®];if(®)¯(¢ i=0;i<¦.­;i++)if(®(¦[i],Á))·(¸,¦[i])}};¢ ¤¢=¥¨;¢ ¢ä={Õ:£(){¢ Õ=[];¯(¢ ð in ª){if(ð!=¥Ì&&ð!=¥Í){if(ª[ð].­>1)ð+=¥Î;·(Õ,ð)}}¤ Õ.¢å(¥À)},¥Ì:£(¡){¤ ¢£(¡.©[¥Ï]==¥Ì)},¥Í:£(¡){¤ ¢£(¡.©[¥Ï]==¥Í)}};¢ ¤¡={Õ:¢ä.Õ};£ £ÿ(¡,º,À){if(À&&¡.À!=À)¤ Þ;¤(º==¥Æ)?ï(¡):(ë)?(¡.º==º.¢ý()):(¡.º==º)};¢ ¢¾=[];£ £þ(¢¿){¤ ¢».±(¢¿)?¢¾[¢¿.»(1,-1)]:¢¿};¢ £´=£(§){¤ §.³(¤èg,£(¬){¤(¬.¢þ(0)==¥©)?¥¨:¥Ð+(·(¢¾,¬.»(1,-1))-1)+¥Ð}).³(¤ég,¥¨).³(¤êg,¥À).³(¤ëg,¥°)};£ £³(§){¤ §.³(¤æg,¥Ñ).³(¤ìg,£(¬,£²){¤ ¢¾[£²]})};¢ ¢¼=[];£ ö(¡,Ý,Ô){¡.£±(Ý,Ô);·(¢¼,¢¡)};£ £°(¡,Ý,Ô){ÿ{¡.£û(Ý,Ô)}õ(¢à){}};ù.£±(¥Ò,£(){Ê(¢¼.­){¢ Ô=¢½(¢¼);£°(Ô[0],Ô[1],Ô[2])}});¢ ¢³=(Å<6)?£(¡){¤ ¡.Ä}:£(¡){¤ ¡.©.¢³};£ é(¡){if(!¢³(¡)){¡.£ù=Þ;£¯(£«(¡))}};£ £¯(¡){Ê(¡){¡.°.£®=¡.©.£®;¡=¢â(¡)}};¢ ¢»=¤í;£ £ø(¥){¤(¢».±(¥))?¥:¥Ð+¥+¥Ð};£ £÷(¥){¤(¢».±(¥))?¥.»(1,-1):¥};£ £¡(º){¢ ¡=«.£ª(º||¥Ó);¡.Í.§=¥Ô;¤ ¡};£ ï(¢¢){¤ ¢£(¢¢&&¢¢.£ñ==1&&¢¢.º!=¥Õ&&!¢¢.£ð)};£ £ï(¡){Ê(¡&&(¡=¡.£î)&&!ï(¡))£¬;¤ ¡};£ ¢â(¡){Ê(¡&&(¡=¡.Ì)&&!ï(¡))£¬;¤ ¡};£ £«(¡){¡=¡.£í;¤(ï(¡))?¡:¢â(¡)};¢ ¢«=Þ;´.¢´(¥Ö,£(){if(ë)¢¹=Ó £(){¢ Ç=[];£ ¢Þ(¡){¢ ¢¸=«.£ª(¥×+¡.¢µ.»(1));if(¡.¢µ.»(-2)!=¥Ø){¢ £©=¥Ù+¡.º+¥Ú,Ì;Ê((Ì=¡.Ì)&&Ì.¢µ!=£©){¡.¢á.¢Ú(Ì);¢¸.¢Ï(Ì)}if(Ì)¡.¢á.¢Ú(Ì)}¡.¢á.£ë(¢¸,¡);¤ ¢¸};ª.í=£(){·(Ç,¢¡)};ª.¢·=£(){ÿ{if(Å>5)«.£ê.í(¥Û,¥Ü)}õ(¢à){}¢Ë{¯(¢ i=0;i<Ç.­;i++){¢ î=¢¶(Ç[i][0]);¯(¢ j=0;j<î.­;j++)Ç[i][1](î[j])}}};ª.í(¥Ý,£(¡){if(!¡.£§){¢ Ò=¢¶(¥Þ,¡)[0];if(Ò){if(!Ò.id)Ò.id=Ò.ü;¡.£§=Ò.id}}});ª.í(¥ß,£(¡){¢Þ(¡);£¦ þ[¥à]});ª.í(¥á,£(¡){if(¡.º==¥â){¢ ¬=¡.¢µ.¬(¤îi);¡.°.¥=(¬)?¬[1]:¥¨}if(¡.Ý==¥ã){ö(¡,¥ä,£(){¡.°.¢Ý=×;¢ª(¥å+¡.ü+¥æ,1)})}});ª.í(¥ç,£(¡){¢ ££=¤ï;ö(¡,¥è,£(){¯(¢ i=0;i<¡.­;i++){if(££.±(¡[i].Ý)&&!¡[i].ý&&!¡[i].°.¢Ý){¡[i].ý=×;¢ª(¥å+¡[i].ü+¥é,1)}Ö if(¡[i].º==¥â&&¡[i].Ý==¥ã){¢ª(¥å+¡[i].ü+¥ê+¡[i].¥+¥Ð,1);¡[i].¥=¡[i].°.¥}}})})}},×);´.¢´(¥ë,£(){¢ ¢¯=¥ì,¢û=¤ð,¢ñ=¤ñ,¢Ð=¤ò;¢ ¢ÿ=(Å<6)?¤ógi:¤ôgi;¢ ¢ö=(Å<5.5)?¤õ:¤ö;¢ Ã=£¡();·(´.Ë,£ ¢ò(){if(Ã.Î)Ã.Î.¢Ú(Ã)});Ñ.û(¢ÿ,£(¬){¤ ¬.»(0,3)+¬.¢þ(4).¢ý()+¬.»(5)});¢ ¢ü=(è)?«.¢Ù:Ù;£ ¢Ó(¡){¤ ¡.Í.Ü==¥í||¡.©.Ü==¥í};£ ¾(¡){¢ ¾=¡.¢²;Ê(¾&&!¢³(¾))¾=¾.¢²;if(!¾||¢Ó(¡))¾=¢ü;¤ ¾};£ å(¢ó){å=£(¡,¥){if(!¡.°.¿&&(!ë||¡.º!=¥î)){if(!¥)¥=¡.©.¨;¡.°.¿=(¢û.±(¥))?£Þ.ú(0,ê(¡,¥)):¥;¡.°.¨=¡.°.¿;é(¡)}};if(è)Ñ.Ú(¥ï,å);¢ ê=(è)?£(¡,¥){¤ ç(¡,¥)+¢Õ(¡)+¢Ô(¡)}:£(¡,¥){¤ ç(¡,¥)};£ ¢Õ(¡){¤ ¡.¢Ñ-¡.Ä};£ ¢Ô(¡){¤ ç(¡,¡.©.£Ý)+ç(¡,¡.©.£Ü)};£ ¢ô(¡){¤((¡.©.¢ù==¥ð)?0:÷(¡,¡.©.¢ù))+((¡.©.¢ø==¥ð)?0:÷(¡,¡.©.¢ø))};£ ¼(¡){¼[¼.Ï++]=¡;if(¡.©.¢÷==¥ð)¡.°.¢÷=0;å(¡);é(¡);¢®(¡)};¼.Ï=0;Ñ.Ú(¥ñ+¢¯,¼);¢¬(¢Î(¼).³(¤÷g,¥ò));Ð.Ï=0;Ñ.Ú(¥ó+¢¯,Ð);£ ¢®(¡){¢ ¢°=¡.¢õ();¢ ¨=¢°.æ-¢°.Â;if(¡.©.Ð&&¨>=ê(¡,¡.©.Ð))¡.°.¨=ê(¡,¡.©.Ð);Ö if(¡.©.¼&&¨<=ê(¡,¡.©.¼))¡.°.¨=ê(¡,¡.©.¼);Ö ¡.°.¨=¡.°.¿};£ Ø(¡){if((¡.©.Ü==¥ô||¡.©.Ü==¥í)&&¡.©.Â!=¥ð&&¡.©.æ!=¥ð&&¢ö.±(¡.©.¨)){Ø[Ø.Ï++]=¡;é(¡);¢Ò(¡)}};Ø.Ï=0;Ñ.Ú(¥õ+¢¯,Ø);£ ¢Ò(¡){¡.°.¨=¥¨;¢ Î=¾(¡);¢ Â=(¡.°.£Û)?¡.¢õ().Â-2:÷(¡,¡.©.Â);¢ ¨=Î.Ä-÷(¡,¡.©.æ)-Â-¢ô(¡);if(!è)¨-=¢Õ(¡)+¢Ô(¡);if(¨<0)¨=0;if(¢Ó(¡)||¢ó||¡.¢Ñ<¨){¡.°.¿=¨;¡.°.¨=¨}};¢ Ä=Ù.Ä;ö(ù,¥ö,£(){¢ i,ø=(Ä<Ù.Ä);Ä=Ù.Ä;¯(i=0;i<¼.Ï;i++){¢ ¡=¼[i];¢ ¿=(¡.°.¨==¡.©.¼);if(ø&&¿)¡.°.¨=¥¨;if(ø==¿)¢®(¡)}¯(i=0;i<Ð.Ï;i++){¢ ¡=Ð[i];¢ ¿=(¡.°.¨==¡.©.Ð);if(!ø&&¿)¡.°.¨=¥¨;if(ø!=¿)¢®(¡)}¯(i=0;i<Ø.Ï;i++)¢Ò(Ø[i]);¢ò()});£ ç(¡,¥){if(¢Ð.±(¥))¤ ¢­(¥);if(¢ñ.±(¥))¤ ¢­(£Ù(¥)/100*¾(¡).Ä);¢ Î=(¡.£Ø)?¡:¡.Î;Î.¢Ï(Ã);Ã.Í.¨=¥;¤ Ã.¢Ñ};£ ÷(¡,¥){if(¢­(¥)>0)¤ ç(¡,¥);if(¢Ð.±(¥))¤ ¢­(¥);¡.Î.¢Ï(Ã);Ã.Í.Â=¥;¤ Ã.£×}};¢¬(¢Î(å).³(¤øg,¥÷).³(¤ùg,¥ø).³(¤úg,¥ù).³(¤ûg,¥ú).³(¤üg,¥û).³(¤ýg,¥ü));å();£Î(×)});¢«=×;if(«.¢Í==¥®)_ã();Ö ö(«,¥ý,£(){if(!ä&&«.¢Í==¥®)¢ª(_ã,0)})}õ(¢¨){¢©();â(¥þ+¢¨.¢ï)}¢Ë{}}();',340,0,/./,String,95,'element`var`function`return`value`from`cssText`width`currentStyle`this`document`match`length`filter`for`runtimeStyle`test`href`replace`IE7`selector`styleSheet`push`filtered`path`tagName`slice`minWidth`x5cs`layoutParent`fixedWidth`scopeName`filterArgs`left`ie7_tmp`clientWidth`appVersion`ie7`fixes`link`styleSheets`while`recalcs`nextSibling`style`parentElement`count`maxWidth`CSSFixes`input`new`handler`toString`else`true`fixRight`documentElement`addRecalc`auto`position`type`false`token`SIZES`pattern`alert`load`complete`fixWidth`right`getPixelWidth`quirksMode`boxSizing`getFixedWidth`isHTML`all`add`elements`isElement`pseudoClass`selectors`cacheSelector`modules`script`catch`addEventHandler`getPixelLeft`wider`window`max`addFix`uniqueID`disabled`cssCache`try`arguments`node`Boolean`x5c`visited`subset`url`error`unHide`setTimeout`loaded`eval`parseInt`resizeWidth`NUMERIC`rect`min`offsetParent`hasLayout`addModule`outerHTML`cssQuery`apply`fixedElement`HTMLFixes`display`QUOTED`handlers`pop`strings`string`item`small`recalc`getCSSText`getPath`styles`DUMMY`pathname`makePath`array`httpRequest`finally`Error`readyState`String`appendChild`PIXEL`offsetWidth`resizeRight`isFixed`getPaddingWidth`getBorderWidth`fixed`absolute`x5cw`body`removeChild`box`submit`clicked`fix`select`ignore`parentNode`nextElement`x2f`pseudoClasses`join`RegExp`split`useCache`base`large`HEADER`inlineStyles`LINKS`location`description`height`PERCENT`removeTempElement`HEIGHT`getMarginWidth`getBoundingClientRect`AUTO`minHeight`marginRight`marginLeft`x5cd`UNIT`viewport`toUpperCase`charAt`MATCH`tmpElement`BUTTON`UNSUCCESSFUL`button`abbr`delete`htmlFor`HTML`endTag`createElement`firstChildElement`continue`block`marginTop`fixMargins`removeEventHandler`attachEvent`key`decode`encode`getElementsByTagName`selectById`NAMESPACE`STREAM`STANDARD_SELECT`toStream`ASTERISK`IMPLIED_SELECTOR`reg`parse`loadStyleSheet`imports`MEDIA`innerHTML`lastIndexOf`URL`fixUrls`scripts`RELATIVE`name`autoload`mimeType`search`message`onreadystatechange`fixHeight`bottom`Bottom`Right`top`Top`Left`Height`Width`offsetLeft`canHaveChildren`parseFloat`onresize`screenLeft`paddingRight`paddingLeft`Math`model`onsubmit`reset`form`onclick`textarea`label`xhtml`org`www`http`namespaces`replaceChild`html4`firstChild`previousSibling`previousElement`ie7_anon`nodeType`clip`none`border`padding`object`unquote`quote`contentEditable`onbeforeunload`detachEvent`import`namespace`getString`compareTagName`dynamicPseudoClasses`attributeTests`className`null`concat`Array`constructor`size`font`medium`list`inline`float`relative`content`sizing`lastIndex`exec`successfully`callee`media`ball`bscreen`write`createStyleSheet`ie5`file`not`could`responseText`send`GET`open`XMLHTTP`Microsoft`ActiveXObject`src`margin`Document`XML`xml`unknown`typeof`CSS1Compat`compatMode`ms_`ie7_off`MSIE`navigator`ie7_debug`alpha`version`visible`visibility`Function`fromCharCode`¤Ò`¤Ð (\\d\\.\\d)`¤Ï`^¤Î`\\.¤É$`^[\\w\\.]+[^:]*$`(¢§\\([\x27"]?)([\\w\\.]+[^:\\)]*[\x27"]?\\))`\\¤·\\b|\\¤¶\\b|^$`Æ-È`(¤­\\s*:\\s*(Â|æ))`¢º\\s*:\\s*¤«-¢À`^[^>\\+~\\s]`[\\s>\\+~:@#\\.\\(\\)]|[^\\s>\\+~:@#\\.\\(\\)]+`\\|`([\\s>~\\,]|[^(]\\+|^)([\\.:#@])`(\\¢ã\\*[^\\*]*\\*+([^\\¢ã][^\\*]*\\*+)*\\¢ã)|(\x27[^\x27]*\x27)|("[^"]*")`@(£ý|£ü)[^;\\n]+[;\\n]|<!\\-\\-|\\-\\->`\\¢¤:`^\\s+|\\s*([\\{\\}\\+\\,>~\\s;])\\s*|\\s+$`\x27(\\d+)\x27`(\x27[^\x27]*\x27)|("[^"]*")` ¥="([^"]*)"`^(¢Ü|£á|£¤)$`^\\d\\w*$`^\\d+%$`^\\d+(px)?$`\\b(¢±|ú)-(¨|¢ð)\\s*:\\s*\\d`\\b(¢±|ú)-¨\\s*:\\s*\\d`^Û|0cm$`^Û$`¢±`£Ö`¨`£Ô`Â`£Ñ`æ`¤Õ`´ ¤Ô 0.7.3 (¤Ó)`\\n\\n`¤Ì`¤Ê`¤È ¤Ç`:È{Æ-È:È}:¢¥{Æ-È:¢¥}`*{¤Æ:0}`ô=``/`¤Ã.¤Â`¤À`¢Ì [1]: ¤½ ¤¼ ã ¤» `Æ-¤º.js`ä`<Í></Í>`$1`$2`Í`¢« ¤³`¢Ì [2]: `([^{}]*)\\¢¤{([^}]*[^\\¢Ø-])?`gi`¢Û-¤°\\½*:\\½*¤¯-¢Û`Ü\\½*:\\½*¢×`¤®`¢º:¤¬;$1`¢º:£­`xx-¢Á,x-¢Á,¢Á,¤ª,¢ê,x-¢ê,xx-¢ê`,`xx-¢Á`(¤©(-¤¨)?\\½*:\\½*)(`|`)`$1*$2` *#`(` `*`#`.`(^|\\½)`(\\½|$)`:`È`¢¥`\\¢¤([^)]*\\¢¤)`Æ-È`\x27`\\¢¤:`£ú`£ö`Ü:¢×;£õ:0;¢º:£­;£ô:£ó;£ò:¢°(0 0 0 0);Â:-9999`!`Æ-£ì`<£¨:`/>`</`>`£¨`£é://£è.w3.£ç/1999/£æ`£å`Ò,¢ß,£ä`£¥` £¥`£¤,Ò`£¢`¢Ü`£ã`«.ì.`.°.¢Ý=Þ`£â`£à`.ý=Þ`.¥=\x27`Æ-¢Û-£ß`\\½*:\\½*\\¢ú[\\¢Ø%]*`¢Ö`HR`¨\\½*:\\½*\\¢ú\\¢Ø*[^%]`Û`¢±-¨`ú`ú-¨`¢×`æ`£Ú`£Õ`¢ð`£Ó`£Ò`£Ð`£Ï`£Í`¢Ì [0]: '.split('\x60')));
+/* packed with http://dean.edwards.name/packer/ */
diff --git a/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-lite.js b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-lite.js
new file mode 100644
index 0000000..88c764f
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-lite.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(!window.IE7)new function(){try{window.IE7=this;var DUMMY=this.addModule=new Function;function unHide(){if(document.body)document.body.style.visibility="visible"};this.toString=function(){return "IE7 version 0.7.3 (alpha)"};var alert=(/ie7_debug/.test(location.search))?function(message){window.alert(IE7+"\n\n"+message)}:DUMMY;var appVersion=navigator.appVersion.match(/MSIE (\d\.\d)/)[1];if(/ie7_off/.test(location.search)||appVersion<5||!/^ms_/.test(document.documentElement.uniqueID))return unHide();var quirksMode=Boolean(document.compatMode!="CSS1Compat");var isHTML=(typeof document.mimeType=="unknown")?!/\.xml$/i.test(location.pathname):Boolean(document.mimeType!="XML Document");var LINKS=":link{ie7-link:link}:visited{ie7-link:visited}";var HEADER=LINKS;if(!isHTML)HEADER+="*{margin:0}";var HTMLFixes;var documentElement=document.documentElement;var modules={};this.addModule=function(name,script,autoload){if(!modules)return;if(loaded)eval("script="+String(script));if(autoload){script();script=DUMMY}modules[name]=script};var RELATIVE=/^[\w\.]+[^:]*$/;function makePath(href,path){if(RELATIVE.test(href))href=(path||"")+href;return href};function getPath(href,path){href=makePath(href,path);return href.slice(0,href.lastIndexOf("/")+1)};var path=getPath(document.scripts[document.scripts.length-1].src);var httpRequest=new ActiveXObject("Microsoft.XMLHTTP");function load(href,path){try{href=makePath(href,path);httpRequest.open("GET",href,false);httpRequest.send();return httpRequest.responseText}catch(ignore){alert("Error [1]: could not load file "+href);return ""}};var push=function(array,item){return array.push(item)};var pop=function(array){return array.pop()};if(appVersion<5.5)eval(load("ie7-ie5.js",path));if(document.readyState=="complete"||!isHTML)document.createStyleSheet();else document.write("<style></style>");this.styleSheet=document.styleSheets[document.styleSheets.length-1];this.styleSheet.cssText=LINKS;this.styleSheet.ie7=true;var cssText={};function loadStyleSheet(styleSheet,path){var url=makePath(styleSheet.href,path);if(cssText[url])return "";cssText[url]=(styleSheet.disabled)?"":fixUrls(getCSSText(styleSheet,path),getPath(styleSheet.href,path));return cssText[url]};var getCSSText=function(styleSheet){return styleSheet.cssText};var URL=/(url\(['"]?)([\w\.]+[^:\)]*['"]?\))/gi;function fixUrls(cssText,pathname){return cssText.replace(URL,"$1"+pathname.slice(0,pathname.lastIndexOf("/")+1)+"$2")};this.recalcs=[];this.parse=DUMMY;var complete=false;function _load(){try{complete=true;var MEDIA=/\bscreen\b|\ball\b|^$/i;var styleSheets=document.styleSheets;var inlineStyles=[];var styles=document.getElementsByTagName("style");for(var i=styles.length-1;i>=0;i--){push(inlineStyles,/ie7-link/.test(styles[i].innerHTML)?"":styles[i].innerHTML)}function getCSSText(styleSheet,path){var cssText="";if(MEDIA.test(styleSheet.media)){for(var i=0;i<styleSheet.imports.length;i++){cssText+=arguments.callee(styleSheet.imports[i],getPath(styleSheet.href,path))}cssText+=((styleSheet.href)?loadStyleSheet(styleSheet,path):pop(inlineStyles))}return cssText};IE7.cssText="";for(i=0;i<styleSheets.length;i++)IE7.cssText+=getCSSText(styleSheets[i],"");IE7.cssText=encode(IE7.cssText);for(i in modules)modules[i]();delete modules;if(HTMLFixes)HTMLFixes.apply();CSSFixes.apply();IE7.parse();IE7.styleSheet.cssText=HEADER+decode(IE7.cssText);for(i=0;i<styleSheets.length;i++){if(!styleSheets[i].disabled&&!styleSheets[i].ie7)styleSheets[i].cssText=""}IE7.recalc();alert("loaded successfully")}catch(error){alert("Error [2]: "+error.description)}finally{unHide()}};this.recalc=function(){CSSFixes.recalc();for(var i=0;i<this.recalcs.length;i++)this.recalcs[i]()};var CSSFixes=new function(){var fixes=[];this.addFix=function(){push(fixes,arguments)};var recalcs=[];this.addRecalc=function(pattern,fix){var reg=new RegExp("([^{}]*)\x5c{([^}]*[^\x5cw-])?"+pattern,"gi");var cssText=IE7.cssText;pattern=[];while(match=reg.exec(cssText)){push(pattern,match[1]);if(appVersion<5.5)cssText=cssText.slice(match.lastIndex)}if(pattern.length){pattern=pattern.toString();push(recalcs,arguments)}};this.apply=function(){for(var i=0;i<fixes.length;i++){IE7.cssText=IE7.cssText.replace(fixes[i][0],fixes[i][1])}this.addRecalc("box-sizing\x5cs*:\x5cs*content-box",boxSizing);this.addRecalc("position\x5cs*:\x5cs*absolute",function(element){if(element.offsetParent.currentStyle.position=="relative")boxSizing(element.offsetParent)})};this.recalc=function(){for(var i=0;i<recalcs.length;i++){var elements=cssQuery(recalcs[i][0]);for(var j=0;j<elements.length;j++)recalcs[i][1](elements[j])}};this.addFix(/(float\s*:\s*(left|right))/gi,"display:inline;$1");if(appVersion<6)this.addFix(/display\s*:\s*list-item/gi,"display:block");if(quirksMode){var SIZES="xx-small,x-small,small,medium,large,x-large,xx-large".split(",");for(var i=0;i<SIZES.length;i++)SIZES[SIZES[i]]=SIZES[i-1]||"xx-small";function replace($,$1,$2,$3){return $1+SIZES[$3]};this.addFix(new RegExp("(font(-size)?\x5cs*:\x5cs*)("+SIZES.join("|")+")","gi"),replace)}};var STANDARD_SELECT=/^[^>\+~\s]/;var STREAM=/[\s>\+~:@#\.\(\)]|[^\s>\+~:@#\.\(\)]+/g;var NAMESPACE=/\|/;var IMPLIED_SELECTOR=/([\s>~\,]|[^(]\+|^)([\.:#@])/g;var ASTERISK="$1*$2";var cssCache={};function cssQuery(selector,from){var useCache=!from;var base=(from)?(from.constructor==Array)?from:[from]:[document];var selectors=selector.replace(IMPLIED_SELECTOR,ASTERISK).split(",");var match=[];for(var i=0;i<selectors.length;i++){selector=toStream(selectors[i]);if(selector.slice(0,3).join("")==" *#"){selector=selector.slice(2);from=selectById(base,selector[1])}else from=base;var j=0,token,filter,filterArgs,cacheSelector="";while(j<selector.length){token=selector[j++];filter=selector[j++];cacheSelector+=token+filter;filterArgs="";if(selector[j]=="("){while(selector[j++]!=")")filterArgs+=selector[j];filterArgs=filterArgs.slice(0,-1);cacheSelector+="("+filterArgs+")"}from=(useCache&&cssCache[cacheSelector])?cssCache[cacheSelector]:select(from,token,filter,filterArgs);if(useCache)cssCache[cacheSelector]=from}match=match.concat(from)}return match};function toStream(selector){if(STANDARD_SELECT.test(selector))selector=" "+selector;return selector.match(STREAM)};function select(from,token,filter,filterArgs){var scopeName="";if(NAMESPACE.test(filter)){filter=filter.split("|");scopeName=filter[0];filter=filter[1]}var filtered=[];if(selectors[token])selectors[token](filtered,from,filter,scopeName||filterArgs);return filtered};function selectById(from,id){var filtered=[],i,j;for(i=0;i<from.length;i++){var match=from[i].all.item(id);if(match){if(match.length==null)push(filtered,match);else for(j=0;j<match.length;j++)push(filtered,match[j])}}return filtered};var selectors={" ":function(filtered,from,filter,scopeName){for(var i=0;i<from.length;i++){var subset=(filter=="*"&&from[i].all)?from[i].all:from[i].getElementsByTagName(filter);for(var j=0;j<subset.length;j++){if(isElement(subset[j])&&(!scopeName||subset[j].scopeName==scopeName))push(filtered,subset[j])}}},"#":function(filtered,from,filter){for(var i=0;i<from.length;i++)if(from[i].id==filter)push(filtered,from[i])},".":function(filtered,from,filter){filter=new RegExp("(^|\x5cs)"+filter+"(\x5cs|$)");for(var i=0;i<from.length;i++)if(filter.test(from[i].className))push(filtered,from[i])},":":function(filtered,from,filter,filterArgs){filter=pseudoClasses[filter];if(filter)for(var i=0;i<from.length;i++)if(filter(from[i],filterArgs))push(filtered,from[i])}};var attributeTests="";var pseudoClasses={toString:function(){var toString=[];for(var pseudoClass in this){if(pseudoClass!="link"&&pseudoClass!="visited"){if(this[pseudoClass].length>1)pseudoClass+="\x5c([^)]*\x5c)";push(toString,pseudoClass)}}return toString.join("|")},"link":function(element){return Boolean(element.currentStyle["ie7-link"]=="link")},"visited":function(element){return Boolean(element.currentStyle["ie7-link"]=="visited")}};var dynamicPseudoClasses={toString:pseudoClasses.toString};function compareTagName(element,tagName,scopeName){if(scopeName&&element.scopeName!=scopeName)return false;return(tagName=="*")?isElement(element):(isHTML)?(element.tagName==tagName.toUpperCase()):(element.tagName==tagName)};var strings=[];function getString(string){return QUOTED.test(string)?strings[string.slice(1,-1)]:string};var encode=function(cssText){return cssText.replace(/(\x2f\*[^\*]*\*+([^\x2f][^\*]*\*+)*\x2f)|('[^']*')|("[^"]*")/g,function(match){return(match.charAt(0)=="/")?"":"'"+(push(strings,match.slice(1,-1))-1)+"'"}).replace(/@(namespace|import)[^;\n]+[;\n]|<!\-\-|\-\->/g,"").replace(/\x5c:/g,"|").replace(/^\s+|\s*([\{\}\+\,>~\s;])\s*|\s+$/g,"$1")};function decode(cssText){return cssText.replace(/\|/g,"\x5c:").replace(/'(\d+)'/g,function(match,key){return strings[key]})};var handlers=[];function addEventHandler(element,type,handler){element.attachEvent(type,handler);push(handlers,arguments)};function removeEventHandler(element,type,handler){try{element.detachEvent(type,handler)}catch(ignore){}};window.attachEvent("onbeforeunload",function(){while(handlers.length){var handler=pop(handlers);removeEventHandler(handler[0],handler[1],handler[2])}});var hasLayout=(appVersion<6)?function(element){return element.clientWidth}:function(element){return element.currentStyle.hasLayout};function boxSizing(element){if(!hasLayout(element)){element.contentEditable=false;fixMargins(firstChildElement(element))}};function fixMargins(element){while(element){element.runtimeStyle.marginTop=element.currentStyle.marginTop;element=nextElement(element)}};var QUOTED=/('[^']*')|("[^"]*")/;function quote(value){return(QUOTED.test(value))?value:"'"+value+"'"};function unquote(value){return(QUOTED.test(value))?value.slice(1,-1):value};function tmpElement(tagName){var element=document.createElement(tagName||"object");element.style.cssText="position:absolute;padding:0;display:block;border:none;clip:rect(0 0 0 0);left:-9999";return element};function isElement(node){return Boolean(node&&node.nodeType==1&&node.tagName!="!"&&!node.ie7_anon)};function previousElement(element){while(element&&(element=element.previousSibling)&&!isElement(element))continue;return element};function nextElement(element){while(element&&(element=element.nextSibling)&&!isElement(element))continue;return element};function firstChildElement(element){element=element.firstChild;return(isElement(element))?element:nextElement(element)};var loaded=false;IE7.addModule("ie7-html4",function(){if(isHTML)HTMLFixes=new function(){var fixes=[];function fix(element){var fixedElement=document.createElement("<HTML:"+element.outerHTML.slice(1));if(element.outerHTML.slice(-2)!="/>"){var endTag="</"+element.tagName+">",nextSibling;while((nextSibling=element.nextSibling)&&nextSibling.outerHTML!=endTag){element.parentNode.removeChild(nextSibling);fixedElement.appendChild(nextSibling)}if(nextSibling)element.parentNode.removeChild(nextSibling)}element.parentNode.replaceChild(fixedElement,element);return fixedElement};this.add=function(){push(fixes,arguments)};this.apply=function(){try{if(appVersion>5)document.namespaces.add("HTML","http://www.w3.org/1999/xhtml")}catch(ignore){}finally{for(var i=0;i<fixes.length;i++){var elements=cssQuery(fixes[i][0]);for(var j=0;j<elements.length;j++)fixes[i][1](elements[j])}}};this.add("label",function(element){if(!element.htmlFor){var input=cssQuery("input,select,textarea",element)[0];if(input){if(!input.id)input.id=input.uniqueID;element.htmlFor=input.id}}});this.add("abbr",function(element){fix(element);delete cssCache[" abbr"]});this.add("button,input",function(element){if(element.tagName=="BUTTON"){var match=element.outerHTML.match(/ value="([^"]*)"/i);element.runtimeStyle.value=(match)?match[1]:""}if(element.type=="submit"){addEventHandler(element,"onclick",function(){element.runtimeStyle.clicked=true;setTimeout("document.all."+element.uniqueID+".runtimeStyle.clicked=false",1)})}});this.add("form",function(element){var UNSUCCESSFUL=/^(submit|reset|button)$/;addEventHandler(element,"onsubmit",function(){for(var i=0;i<element.length;i++){if(UNSUCCESSFUL.test(element[i].type)&&!element[i].disabled&&!element[i].runtimeStyle.clicked){element[i].disabled=true;setTimeout("document.all."+element[i].uniqueID+".disabled=false",1)}else if(element[i].tagName=="BUTTON"&&element[i].type=="submit"){setTimeout("document.all."+element[i].uniqueID+".value='"+element[i].value+"'",1);element[i].value=element[i].runtimeStyle.value}}})})}},true);IE7.addModule("ie7-box-model",function(){var NUMERIC="\x5cs*:\x5cs*\x5cd[\x5cw%]*",UNIT=/^\d\w*$/,PERCENT=/^\d+%$/,PIXEL=/^\d+(px)?$/;var MATCH=(appVersion<6)?/\b(min|max)-(width|height)\s*:\s*\d/gi:/\b(min|max)-width\s*:\s*\d/gi;var AUTO=(appVersion<5.5)?/^auto|0cm$/:/^auto$/;var ie7_tmp=tmpElement();push(IE7.recalcs,function removeTempElement(){if(ie7_tmp.parentElement)ie7_tmp.parentElement.removeChild(ie7_tmp)});CSSFixes.addFix(MATCH,function(match){return match.slice(0,3)+match.charAt(4).toUpperCase()+match.slice(5)});var viewport=(quirksMode)?document.body:documentElement;function isFixed(element){return element.style.position=="fixed"||element.currentStyle.position=="fixed"};function layoutParent(element){var layoutParent=element.offsetParent;while(layoutParent&&!hasLayout(layoutParent))layoutParent=layoutParent.offsetParent;if(!layoutParent||isFixed(element))layoutParent=viewport;return layoutParent};function fixWidth(HEIGHT){fixWidth=function(element,value){if(!element.runtimeStyle.fixedWidth&&(!isHTML||element.tagName!="HR")){if(!value)value=element.currentStyle.width;element.runtimeStyle.fixedWidth=(UNIT.test(value))?Math.max(0,getFixedWidth(element,value)):value;element.runtimeStyle.width=element.runtimeStyle.fixedWidth;boxSizing(element)}};if(quirksMode)CSSFixes.addRecalc("width\x5cs*:\x5cs*\x5cd\x5cw*[^%]",fixWidth);var getFixedWidth=(quirksMode)?function(element,value){return getPixelWidth(element,value)+getBorderWidth(element)+getPaddingWidth(element)}:function(element,value){return getPixelWidth(element,value)};function getBorderWidth(element){return element.offsetWidth-element.clientWidth};function getPaddingWidth(element){return getPixelWidth(element,element.currentStyle.paddingLeft)+getPixelWidth(element,element.currentStyle.paddingRight)};function getMarginWidth(element){return((element.currentStyle.marginLeft=="auto")?0:getPixelLeft(element,element.currentStyle.marginLeft))+((element.currentStyle.marginRight=="auto")?0:getPixelLeft(element,element.currentStyle.marginRight))};function minWidth(element){minWidth[minWidth.count++]=element;if(element.currentStyle.minHeight=="auto")element.runtimeStyle.minHeight=0;fixWidth(element);boxSizing(element);resizeWidth(element)};minWidth.count=0;CSSFixes.addRecalc("min-width"+NUMERIC,minWidth);eval(String(minWidth).replace(/min/g,"max"));maxWidth.count=0;CSSFixes.addRecalc("max-width"+NUMERIC,maxWidth);function resizeWidth(element){var rect=element.getBoundingClientRect();var width=rect.right-rect.left;if(element.currentStyle.maxWidth&&width>=getFixedWidth(element,element.currentStyle.maxWidth))element.runtimeStyle.width=getFixedWidth(element,element.currentStyle.maxWidth);else if(element.currentStyle.minWidth&&width<=getFixedWidth(element,element.currentStyle.minWidth))element.runtimeStyle.width=getFixedWidth(element,element.currentStyle.minWidth);else element.runtimeStyle.width=element.runtimeStyle.fixedWidth};function fixRight(element){if((element.currentStyle.position=="absolute"||element.currentStyle.position=="fixed")&&element.currentStyle.left!="auto"&&element.currentStyle.right!="auto"&&AUTO.test(element.currentStyle.width)){fixRight[fixRight.count++]=element;boxSizing(element);resizeRight(element)}};fixRight.count=0;CSSFixes.addRecalc("right"+NUMERIC,fixRight);function resizeRight(element){element.runtimeStyle.width="";var parentElement=layoutParent(element);var left=(element.runtimeStyle.screenLeft)?element.getBoundingClientRect().left-2:getPixelLeft(element,element.currentStyle.left);var width=parentElement.clientWidth-getPixelLeft(element,element.currentStyle.right)-left-getMarginWidth(element);if(!quirksMode)width-=getBorderWidth(element)+getPaddingWidth(element);if(width<0)width=0;if(isFixed(element)||HEIGHT||element.offsetWidth<width){element.runtimeStyle.fixedWidth=width;element.runtimeStyle.width=width}};var clientWidth=documentElement.clientWidth;addEventHandler(window,"onresize",function(){var i,wider=(clientWidth<documentElement.clientWidth);clientWidth=documentElement.clientWidth;for(i=0;i<minWidth.count;i++){var element=minWidth[i];var fixedWidth=(element.runtimeStyle.width==element.currentStyle.minWidth);if(wider&&fixedWidth)element.runtimeStyle.width="";if(wider==fixedWidth)resizeWidth(element)}for(i=0;i<maxWidth.count;i++){var element=maxWidth[i];var fixedWidth=(element.runtimeStyle.width==element.currentStyle.maxWidth);if(!wider&&fixedWidth)element.runtimeStyle.width="";if(wider!=fixedWidth)resizeWidth(element)}for(i=0;i<fixRight.count;i++)resizeRight(fixRight[i]);removeTempElement()});function getPixelWidth(element,value){if(PIXEL.test(value))return parseInt(value);if(PERCENT.test(value))return parseInt(parseFloat(value)/100*layoutParent(element).clientWidth);var parentElement=(element.canHaveChildren)?element:element.parentElement;parentElement.appendChild(ie7_tmp);ie7_tmp.style.width=value;return ie7_tmp.offsetWidth};function getPixelLeft(element,value){if(parseInt(value)>0)return getPixelWidth(element,value);if(PIXEL.test(value))return parseInt(value);element.parentElement.appendChild(ie7_tmp);ie7_tmp.style.left=value;return ie7_tmp.offsetLeft}};eval(String(fixWidth).replace(/Width/g,"Height").replace(/width/g,"height").replace(/Left/g,"Top").replace(/left/g,"top").replace(/Right/g,"Bottom").replace(/right/g,"bottom"));fixWidth();fixHeight(true)});loaded=true;if(document.readyState=="complete")_load();else addEventHandler(document,"onreadystatechange",function(){if(!complete&&document.readyState=="complete")setTimeout(_load,0)})}catch(error){unHide();alert("Error [0]: "+error.description)}finally{}}();
diff --git a/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-png.js b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-png.js
new file mode 100644
index 0000000..7b8f2cf
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-png.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(window.IE7)IE7.addModule("ie7-png",function(){if(appVersion<5.5)return;var FILTER="progid:DXImageTransform.Microsoft.AlphaImageLoader(src=%1,sizingMethod='scale')";var NULL=(/\bSV1\b/.test(navigator.userAgent))?makePath("blank.gif",path):"javascript:'#define x_width 1\x5cn#define x_height 1\x5cnstatic char x_bits[]={0x00}'";var pngTest=new RegExp((window.IE7_PNG_SUFFIX||"-trans.png")+"$","i");function addFilter(element,src){element.runtimeStyle.filter=FILTER.replace(/%1/,src)};var MATCH=/background(-image)?\s*:([^(};]*)url\(([^\)]+)\)([^;}]*)/gi;CSSFixes.addFix(MATCH,function replace(match,image,prefix,url,suffix){url=getString(url);return pngTest.test(url)?"filter:"+FILTER.replace(/scale/,"crop").replace(/%1/,url)+";zoom:1;background"+(image||"")+":"+(prefix||"")+"none"+(suffix||""):match});if(HTMLFixes){function fixImg(element){if(pngTest.test(element.src)){var width=element.width,height=element.height;addFilter(element,element.src);element.src=NULL;element.width=width;element.height=height}else element.runtimeStyle.filter=""};HTMLFixes.add("img,input",function(element){if(element.tagName=="INPUT"&&element.type!="image")return;fixImg(element);addEventHandler(element,"onpropertychange",function(){if(event.propertyName=="src")fixImg(element)})})}});
diff --git a/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-server.css b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-server.css
new file mode 100644
index 0000000..47c7edd
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-server.css
@@ -0,0 +1,43 @@
+body, td, dd {font: 10pt Verdana, Arial, Helvetica, sans-serif; color: black;}
+body {margin: 8px; background: #333;}
+h1 {margin: 0;}
+h1 a:hover {background-color: transparent;}
+h2 {font-size: 1.75em;}
+h3 {font-size: 1.1em;}
+a:active {color: #ff0000;}
+a:link {color: #0a6cce;}
+a:visited {color: #0a6cce;}
+code, *.code {font-family: monospace; font-size: 100%; font-style: normal; white-space: nowrap;
+ padding: 0 1px; background: #f2f3f8; border: #d6d9e9 1px solid;}
+code.box {display: block; padding: 10px; margin: 0.5em 0;}
+ul {list-style-type: square;}
+dd {margin: .2em 0 .5em 1em;}
+dl.library dt {display: list-item; margin-left: 3em; list-style-type: square;}
+dl.library dd {font-style: italic; margin-left: 3em;}
+dt {font-weight: bold;}
+dt.pack {color: brown;}
+a img {border-style: none;}
+hr {height: 1px; color: #000; border-style: solid;}
+hr.short {height: 2px; width: 100px;}
+div.document {background: #eef; padding: 20px 20px 5px 20px; width: 600px; border: 1px solid black;}
+hr {border-bottom-width: 0px;}
+div.header hr {color: #0a6cce; background-color: #0a6cce;}
+div.content {min-height: 100px;}
+div.footer hr {color: #898e79; background-color: #898e79; }
+div.header, div.header a:link, div.header a:visited, h3 a:link, h3 a:visited {text-decoration: none;}
+a:hover {color: #fff; background-color: #0a6cce; text-decoration: none;}
+div.footer a:hover {background-color: transparent; text-decoration: none;}
+div.header .menu {text-align: right;}
+div.footer {font-size: x-small; margin-top: 8px;}
+div.footnote {font-family: "times new roman", times; font-style: italic; margin-top: 10px;}
+#license {margin-top: 5px; font-size: xx-small;}
+table {border-top: 1px solid #000; border-left: 1px solid #000;}
+th {background-color: #fff; text-align: left;}
+th, td {border-right: 1px solid #000; border-bottom: 1px solid #000;}
+th.small {width: 100px;}
+th.medium {width: 200px;}
+th.large {width: 270px;}
+th.x-large {width: 408px;}
+table.fixed {table-layout: fixed;}
+span.comment {color: #666;}
+
diff --git a/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-standard-p.js b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-standard-p.js
new file mode 100644
index 0000000..27cfa2c
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-standard-p.js
@@ -0,0 +1,3 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+eval(function(A,r,s,e,n,a,l){s=function(e){return((e<a)?'':s(e/a))+n[l[493]](e%a+161)};while(++r<735)l[r]=(r<549)?'/'+l[r]+'/':'"'+l[r]+'"';while(--r>=0)A=A.replace(new RegExp(s(r),'g'),l[r]);return A}('if(!¢¡.ª)¶ ¢(){¢Æ{¢¡.ª=¤;£ ¢Ø=¤.¢©=¶ ¤¬;¢ ¢ì(){if(².ß)².ß.Ì.¦²=¦ë};¤.È=¢(){¥ ¦ì};£ ¢¶=(¦´.µ(¢ô.¤ì))?¢(¤í){¢¡.¢¶(ª+¦í+¤í)}:¢Ø;£ á=¤¥.á.§(¦µ)[1];if(¦¶.µ(¢ô.¤ì)||á<5||!¦·.µ(².ù.¢«))¥ ¢ì();£ ¢§=¢ê(².¦«!=¦î);£ ¢±=(¦© ².¤ë==¦ï)?!¦¸i.µ(¢ô.£»):¢ê(².¤ë!=¦ð);£ £ê=¦ñ;£ £¦=£ê;if(!¢±)£¦+=¦ò;£ ¢½;£ ù=².ù;£ ¢Ñ={};¤.¢©=¢(¢Ç,¢Ò,¤ê){if(!¢Ñ)¥;if(¢í)Ü(¦ó+¢ó(¢Ò));if(¤ê){¢Ò();¢Ò=¢Ø}¢Ñ[¢Ç]=¢Ò};£ ¤é=¦¹;¢ ¢À(¾,Á){if(¤é.µ(¾))¾=(Á||¦ô)+¾;¥ ¾};¢ £¹(¾,Á){¾=¢À(¾,Á);¥ ¾.Æ(0,¾.¤å(¦õ)+1)};£ Á=£¹(².¤è[².¤è.¯-1].î);£ £½=¶ ¦£(¦ö);¢ ê(¾,Á){¢Æ{¾=¢À(¾,Á);£½.¦¡(¦÷,¾,ë);£½.¥þ();¥ £½.¥ý}¢·(£¥){¢¶(¦ø+¾);¥ ¦ô}};£ ¸=¢(£¼,£·){¥ £¼.¸(£·)};£ £´=¢(£¼){¥ £¼.£´()};if(á<5.5)Ü(ê(¦ù,Á));if(².£À==¦ú||!¢±)².¥ø();Û ².¥÷(¦û);¤.¿=².é[².é.¯-1];¤.¿.¨=£ê;¤.¿.Î=Ö;£ ¨={};¢ ¤á(¿,Á){£ Ô=¢À(¿.¾,Á);if(¨[Ô])¥ ¦ô;¨[Ô]=(¿.¢ç)?¦ô:¤ç(¢ã(¿,Á),£¹(¿.¾,Á));¥ ¨[Ô]};£ ¢ã=¢(¿){¥ ¿.¨};£ ¤æ=¦ºgi;¢ ¤ç(¨,£»){¥ ¨.¬(¤æ,¦ü+£».Æ(0,£».¤å(¦õ)+1)+¦ý)};¤.ô=[];¤.¢â=¢Ø;£ ¢¸=ë;¢ _ê(){¢Æ{¢¸=Ö;£ ¤ã=¦»i;£ é=².é;£ £é=[];£ £º=².¤Ø(¦þ);®(£ i=£º.¯-1;i>=0;i--){¸(£é,¦¼.µ(£º[i].¤ä)?¦ô:£º[i].¤ä)}¢ ¢ã(¿,Á){£ ¨=¦ô;if(¤ã.µ(¿.¥ô)){®(£ i=0;i<¿.¤â.¯;i++){¨+=í.£ó(¿.¤â[i],£¹(¿.¾,Á))}¨+=((¿.¾)?¤á(¿,Á):£´(£é))}¥ ¨};ª.¨=¦ô;®(i=0;i<é.¯;i++)ª.¨+=¢ã(é[i],¦ô);ª.¨=£©(ª.¨);®(i in ¢Ñ)¢Ñ[i]();£Ö ¢Ñ;if(¢½)¢½.£°();à.£°();ª.¢â();ª.¿.¨=£¦+£§(ª.¨);®(i=0;i<é.¯;i++){if(!é[i].¢ç&&!é[i].Î)é[i].¨=¦ô}ª.Ø();¢¶(¦ÿ)}¢·(¢ë){¢¶(§¡+¢ë.£ë)}£¾{¢ì()}};¤.Ø=¢(){à.Ø();®(£ i=0;i<¤.ô.¯;i++)¤.ô[i]()};£ à=¶ ¢(){£ è=[];¤.¢¿=¢(){¸(è,í)};£ ô=[];¤.ï=¢(¢µ,£ä){£ ¤à=¶ ç(§¢+¢µ,§£);£ ¨=ª.¨;¢µ=[];Ý(§=¤à.¢ß(¨)){¸(¢µ,§[1]);if(á<5.5)¨=¨.Æ(§.¥ò)}if(¢µ.¯){¢µ=¢µ.È();¸(ô,í)}};¤.£°=¢(){®(£ i=0;i<è.¯;i++){ª.¨=ª.¨.¬(è[i][0],è[i][1])}¤.ï(§¤,¢Ê);¤.ï(§¥,¢(¡){if(¡.¢¥.«.³==§¦)¢Ê(¡.¢¥)})};¤.Ø=¢(){®(£ i=0;i<ô.¯;i++){£ ¢Í=ü(ô[i][0]);®(£ j=0;j<¢Í.¯;j++)ô[i][1](¢Í[j])}};¤.¢¿(¦½gi,§§);if(á<6)¤.¢¿(¦¾gi,§¨);if(¢§){£ ¢´=§©.£¨(§ª);®(£ i=0;i<¢´.¯;i++)¢´[¢´[i]]=¢´[i-1]||§«;¢ ¬($,$1,$2,$3){¥ $1+¢´[$3]};¤.¢¿(¶ ç(§¬+¢´.¢Ü(§­)+§®,§£),¬)}};£ ¤Ü=¦¿;£ ¤Û=¦Àg;£ ¤Ú=¦Á;£ ¤ß=¦Âg;£ ¤Þ=§¯;£ ¢è={};¢ ü(´,­){£ £æ=!­;£ £ç=(­)?(­.¥ê==¥é)?­:[­]:[²];£ ò=´.¬(¤ß,¤Þ).£¨(§ª);£ §=[];®(£ i=0;i<ò.¯;i++){´=¤Ý(ò[i]);if(´.Æ(0,3).¢Ü(¦ô)==§°){´=´.Æ(2);­=¤Ù(£ç,´[1])}Û ­=£ç;£ j=0,¢³,±,É,¢Ð=¦ô;Ý(j<´.¯){¢³=´[j++];±=´[j++];¢Ð+=¢³+±;É=¦ô;if(´[j]==§±){Ý(´[j++]!=§®)É+=´[j];É=É.Æ(0,-1);¢Ð+=§±+É+§®}­=(£æ&&¢è[¢Ð])?¢è[¢Ð]:£å(­,¢³,±,É);if(£æ)¢è[¢Ð]=­}§=§.¥è(­)}¥ §};¢ ¤Ý(´){if(¤Ü.µ(´))´=§²+´;¥ ´.§(¤Û)};¢ £å(­,¢³,±,É){£ Ê=¦ô;if(¤Ú.µ(±)){±=±.£¨(§­);Ê=±[0];±=±[1]}£ ¼=[];if(ò[¢³])ò[¢³](¼,­,±,Ê||É);¥ ¼};¢ ¤Ù(­,id){£ ¼=[],i,j;®(i=0;i<­.¯;i++){£ §=­[i].¢Ì.£·(id);if(§){if(§.¯==¢Þ)¸(¼,§);Û ®(j=0;j<§.¯;j++)¸(¼,§[j])}}¥ ¼};£ ò={§²:¢(¼,­,±,Ê){®(£ i=0;i<­.¯;i++){£ ó=(±==§³&&­[i].¢Ì)?­[i].¢Ì:­[i].¤Ø(±);®(£ j=0;j<ó.¯;j++){if(¢Î(ó[j])&&(!Ê||ó[j].Ê==Ê))¸(¼,ó[j])}}},§´:¢(¼,­,±){®(£ i=0;i<­.¯;i++)if(­[i].id==±)¸(¼,­[i])},§µ:¢(¼,­,±){±=¶ ç(§¶+±+§·);®(£ i=0;i<­.¯;i++)if(±.µ(­[i].¢Ý))¸(¼,­[i])},§¸:¢(¼,­,±,É){±=¢®[±];if(±)®(£ i=0;i<­.¯;i++)if(±(­[i],É))¸(¼,­[i])}};£ ¢¬=¦ô;£ ¢®={È:¢(){£ È=[];®(£ ¢Ï in ¤){if(¢Ï!=§¹&&¢Ï!=§º){if(¤[¢Ï].¯>1)¢Ï+=§»;¸(È,¢Ï)}}¥ È.¢Ü(§­)},§¹:¢(¡){¥ ¢ê(¡.«[§¼]==§¹)},§º:¢(¡){¥ ¢ê(¡.«[§¼]==§º)}};£ ¢­={È:¢®.È};¢ £Ù(¡,Ï,Ê){if(Ê&&¡.Ê!=Ê)¥ ë;¥(Ï==§³)?¢Î(¡):(¢±)?(¡.Ï==Ï.¤Ç()):(¡.Ï==Ï)};£ £µ=[];¢ ¢ö(£¶){¥ £².µ(£¶)?£µ[£¶.Æ(1,-1)]:£¶};£ £©=¢(¨){¥ ¨.¬(¦Ãg,¢(§){¥(§.¤È(0)==¦õ)?¦ô:§½+(¸(£µ,§.Æ(1,-1))-1)+§½}).¬(¦Äg,¦ô).¬(¦Åg,§­).¬(¦Æg,¦ü)};¢ £§(¨){¥ ¨.¬(¦Ág,§¾).¬(¦Çg,¢(§,¤×){¥ £µ[¤×]})};£ £³=[];¢ Ó(¡,Õ,þ){¡.¤Ö(Õ,þ);¸(£³,í)};¢ ¤Õ(¡,Õ,þ){¢Æ{¡.¥å(Õ,þ)}¢·(£¥){}};¢¡.¤Ö(§¿,¢(){Ý(£³.¯){£ þ=£´(£³);¤Õ(þ[0],þ[1],þ[2])}});£ £®=(á<6)?¢(¡){¥ ¡.Í}:¢(¡){¥ ¡.«.£®};¢ ¢Ê(¡){if(!£®(¡)){¡.¥ã=ë;¤Ô(¤Ð(¡))}};¢ ¤Ô(¡){Ý(¡){¡.¦.¤Ó=¡.«.¤Ó;¡=¢þ(¡)}};£ £²=¦È;¢ ¤ª(©){¥(£².µ(©))?©:§½+©+§½};¢ ¥â(©){¥(£².µ(©))?©.Æ(1,-1):©};¢ £Ï(Ï){£ ¡=².£Û(Ï||§À);¡.Ì.¨=§Á;¥ ¡};¢ ¢Î(¢é){¥ ¢ê(¢é&&¢é.¥Þ==1&&¢é.Ï!=§Â&&!¢é.¢ÿ)};¢ ¤²(¡){Ý(¡&&(¡=¡.¥Ý)&&!¢Î(¡))¤Ñ;¥ ¡};¢ ¢þ(¡){Ý(¡&&(¡=¡.õ)&&!¢Î(¡))¤Ñ;¥ ¡};¢ ¤Ð(¡){¡=¡.¤¹;¥(¢Î(¡))?¡:¢þ(¡)};£ ¢í=ë;ª.¢©(§Ã,¢(){if(¢±)¢½=¶ ¢(){£ è=[];¢ £ä(¡){£ £±=².£Û(§Ä+¡.£¯.Æ(1));if(¡.£¯.Æ(-2)!=§Å){£ ¤Ï=§Æ+¡.Ï+§Ç,õ;Ý((õ=¡.õ)&&õ.£¯!=¤Ï){¡.¢ü.¢Õ(õ);£±.¢»(õ)}if(õ)¡.¢ü.¢Õ(õ)}¡.¢ü.¥Û(£±,¡);¥ £±};¤.æ=¢(){¸(è,í)};¤.£°=¢(){¢Æ{if(á>5)².¥Ú.æ(§È,§É)}¢·(£¥){}£¾{®(£ i=0;i<è.¯;i++){£ ¢Í=ü(è[i][0]);®(£ j=0;j<¢Í.¯;j++)è[i][1](¢Í[j])}}};¤.æ(§Ê,¢(¡){if(!¡.¤Í){£ ð=ü(§Ë,¡)[0];if(ð){if(!ð.id)ð.id=ð.¢«;¡.¤Í=ð.id}}});¤.æ(§Ì,¢(¡){£ä(¡);£Ö ¢è[§Í]});¤.æ(§Î,¢(¡){if(¡.Ï==§Ï){£ §=¡.£¯.§(¦Éi);¡.¦.©=(§)?§[1]:¦ô}if(¡.Õ==§Ð){Ó(¡,§Ñ,¢(){¡.¦.£ã=Ö;¢Ó(§Ò+¡.¢«+§Ó,1)})}});¤.æ(§Ô,¢(¡){£ ¤Ê=¦Ê;Ó(¡,§Õ,¢(){®(£ i=0;i<¡.¯;i++){if(¤Ê.µ(¡[i].Õ)&&!¡[i].¢ç&&!¡[i].¦.£ã){¡[i].¢ç=Ö;¢Ó(§Ò+¡[i].¢«+§Ö,1)}Û if(¡[i].Ï==§Ï&&¡[i].Õ==§Ð){¢Ó(§Ò+¡[i].¢«+§×+¡[i].©+§½,1);¡[i].©=¡[i].¦.©}}})})}},Ö);ª.¢©(§Ø,¢(){£ £«=§Ù,¤Æ=¦Ë,¢Ö=¦Ì,£Ý=¦Í;£ ¢¾=(á<6)?¦Îgi:¦Ïgi;£ ¤Ã=(á<5.5)?¦Ð:¦Ñ;£ ¹=£Ï();¸(ª.ô,¢ ¤À(){if(¹.½)¹.½.¢Õ(¹)});à.¢¿(¢¾,¢(§){¥ §.Æ(0,3)+§.¤È(4).¤Ç()+§.Æ(5)});£ Þ=(¢§)?².ß:ù;¢ ö(¡){¥ ¡.Ì.³==§Ú||¡.«.³==§Ú};¢ ã(¡){£ ã=¡.¢¥;Ý(ã&&!£®(ã))ã=ã.¢¥;if(!ã||ö(¡))ã=Þ;¥ ã};¢ ì(¤Á){ì=¢(¡,©){if(!¡.¦.ä&&(!¢±||¡.Ï!=§Û)){if(!©)©=¡.«.°;¡.¦.ä=(¤Æ.µ(©))?¥Î.¢æ(0,¢Ë(¡,©)):©;¡.¦.°=¡.¦.ä;¢Ê(¡)}};if(¢§)à.ï(§Ü,ì);£ ¢Ë=(¢§)?¢(¡,©){¥ ¢É(¡,©)+£à(¡)+£ß(¡)}:¢(¡,©){¥ ¢É(¡,©)};¢ £à(¡){¥ ¡.¢¼-¡.Í};¢ £ß(¡){¥ ¢É(¡,¡.«.¥Í)+¢É(¡,¡.«.¥Ì)};¢ ¤Â(¡){¥((¡.«.¢ï==§Ý)?0:¢ä(¡,¡.«.¢ï))+((¡.«.¤Å==§Ý)?0:¢ä(¡,¡.«.¤Å))};¢ Ú(¡){Ú[Ú.Ë++]=¡;if(¡.«.¤Ä==§Ý)¡.¦.¤Ä=0;ì(¡);¢Ê(¡);£ª(¡)};Ú.Ë=0;à.ï(§Þ+£«,Ú);Ü(¢ó(Ú).¬(¦Òg,§ß));ý.Ë=0;à.ï(§à+£«,ý);¢ £ª(¡){£ £¬=¡.£É();£ °=£¬.×-£¬.À;if(¡.«.ý&&°>=¢Ë(¡,¡.«.ý))¡.¦.°=¢Ë(¡,¡.«.ý);Û if(¡.«.Ú&&°<=¢Ë(¡,¡.«.Ú))¡.¦.°=¢Ë(¡,¡.«.Ú);Û ¡.¦.°=¡.¦.ä};¢ ¢²(¡){if((¡.«.³==§á||¡.«.³==§Ú)&&¡.«.À!=§Ý&&¡.«.×!=§Ý&&¤Ã.µ(¡.«.°)){¢²[¢².Ë++]=¡;¢Ê(¡);£Þ(¡)}};¢².Ë=0;à.ï(§â+£«,¢²);¢ £Þ(¡){¡.¦.°=¦ô;£ ½=ã(¡);£ À=(¡.¦.¢Ô)?¡.£É().À-2:¢ä(¡,¡.«.À);£ °=½.Í-¢ä(¡,¡.«.×)-À-¤Â(¡);if(!¢§)°-=£à(¡)+£ß(¡);if(°<0)°=0;if(ö(¡)||¤Á||¡.¢¼<°){¡.¦.ä=°;¡.¦.°=°}};£ Í=ù.Í;Ó(¢¡,§ã,¢(){£ i,¢å=(Í<ù.Í);Í=ù.Í;®(i=0;i<Ú.Ë;i++){£ ¡=Ú[i];£ ä=(¡.¦.°==¡.«.Ú);if(¢å&&ä)¡.¦.°=¦ô;if(¢å==ä)£ª(¡)}®(i=0;i<ý.Ë;i++){£ ¡=ý[i];£ ä=(¡.¦.°==¡.«.ý);if(!¢å&&ä)¡.¦.°=¦ô;if(¢å!=ä)£ª(¡)}®(i=0;i<¢².Ë;i++)£Þ(¢²[i]);¤À()});¢ ¢É(¡,©){if(£Ý.µ(©))¥ ø(©);if(¢Ö.µ(©))¥ ø(£Æ(©)/100*ã(¡).Í);£ ½=(¡.£Ì)?¡:¡.½;½.¢»(¹);¹.Ì.°=©;¥ ¹.¢¼};¢ ¢ä(¡,©){if(ø(©)>0)¥ ¢É(¡,©);if(£Ý.µ(©))¥ ø(©);¡.½.¢»(¹);¹.Ì.À=©;¥ ¹.¢¤}};Ü(¢ó(ì).¬(¦Óg,§ä).¬(¦Ôg,§å).¬(¦Õg,§æ).¬(¦Ög,§ç).¬(¦×g,§è).¬(¦Øg,§é));ì();¥É(Ö)});ª.¢©(§ê,¢(){£ ¤§=¦Ùg,¤½=¦Úi;ª.¢á=[];ª.¤¿=¶ ¤¾;ª.·=·;ª.Ò=Ò;ª.Ã=Ã;ª.¢â=¢(){¥Ç(¤.¤¿)¤.¨=£§(¢â(£©(¤.¨)));®(£ i=0;i<ª.¢á.¯;i++)ª.¢á[i].¢ß();®(i=0;i<£¡.¯;i++)£¡[i].¤º()};¢ã=¢(¿,Á){¥ ê(¿.¾,Á)};£ ££=[];¢ ¤¾(){¤.¢â=¢(¨){·.û=¶ ç(§ë+¢®+§ì,§í);·.¤¨=¶ ç(§î+¢®+§­+¢­+§ï,§í);Ò.û=¶ ç(§ð+¢­+§ñ,§í);¥ ¨.¬(Ã.û,Ã.ID).¬(Ò.û,Ò.ID).¬(·.û,·.ID)};¤.£©=¢(¨){ñ.û=¶ ç(§ò+¢¬+§ó+¢¬+§ô,§í);¥ ¨.¬(ñ.û,ñ.ID).¬(¦Ûg,¢($){¥ §õ+(¸(££,$)-1)+§ö}).¬(¦Üg,§¸).¬(¦Ýg,¢(§,À,×){¥ À.£¨(§ª).¢Ü(×)+×})};¤.£§=¢(¨){¥ ¨.¬(¦Þg,¢($,$1){¥ ££[$1]})}};¢ _·(){¤.È=¢(){¥ §µ+¤.¢Ç};¤.æ=¢(¡){¡.¢Ý+=§²+¤.¢Ç};¤.¤©=¢(¡){¡.¢Ý=¡.¢Ý.¬(¤.¢¾,¦ô)};¤.¢ß=¢(){£ §=ü(¤.´);®(£ i=0;i<§.¯;i++)¤.æ(§[i])}};¢ ·(´,¨){¤.id=ª.¢á.¯;¤.¢Ç=·.¢ø+¤.id;¤.´=´;¤.¢¾=¶ ç(§÷+¤.¢Ç+§ø,§í);¸(ª.¢á,¤)};·.£Ú=_·;·.¢ª=¶ _·;·.¢ø=§ù;·.ID=¢(§){¥ £Õ(§)+¶ ·(§)};¢ _Ò(){¤.¢ß=¢(){£ §=ü(¤.¢°);®(£ i=0;i<§.¯;i++){£ º=(¤.º)?ü(¤.º,§[i]):[§[i]];if(º)¤.¢¯(§[i],º,¤)}}};_Ò.¢ª=¶ _·;¢ Ò(´,¢°,¢¯,º){¤.¢°=¢°;¤.¢¯=¢­[¢¯];¤.º=º;¤.£¢=·;¤.£¢(´)};Ò.£Ú=_Ò;Ò.¢ª=¶ _Ò;Ò.ID=¢(§,¢°,¢¯,º){if(¢±&&¢¯!=§ú&&¤½.µ(¢°)&&!¦ß.µ(º))¥ §;¥ £Õ(§)+¶ Ò(§,¢°,¢¯,º)};£¦+=§û;£ ¤·=¦àg;¢ ¤¶(§,£Ü){¥ Ü(§ü+§ý.Æ(£Ü.¯)+£Ü+§½)};£ £¡=[];¢ _Ã(){¤.Å=¢Þ;¤.È=¢(){¥ ¦ô};¤.¥Ã=0;¢ ¤¸(¢Ä,Å,¨){£ ÿ=¥Â(¢(){¢Æ{if(!¢Ä.ê)¥;¢Ä.ê(¢Ä,Å,¨);¤»(ÿ)}¢·(£¥){¤»(ÿ)}},10)};¤.¤º=¢(){if(¤.Å==¢Þ)¥;®(£ i=0;i<¤.§.¯;i++){£ º=¤.§[i];£ ¢Å=º.¦[¤.³];if(¢Å){£ ½=º.£Ì?º:º.½;£ £¤=¦á.µ(¤.Å);£ ¡=².£Û(£¤?Ã.¤³:§Â);¡.¢ÿ=Ö;¡.¦.¨=¢Å.¨;if(!£¤)¡.¥Á=¢Å.Å;if(¤.³==§þ){½.¥À(¡,½.¤¹)}Û{½.¢»(¡)}if(£¤)¤¸(¡,¢Å.Å,¢Å.¨);º.¦[¤.³]=¢Þ}}};¤.¢ß=¢(){¤.§=ü(¤.´);®(£ i=0;i<¤.§.¯;i++){£ ¦=¤.§[i].¦;if(!¦[¤.³])¦[¤.³]={¨:¦ô};¦[¤.³].¨+=§ÿ+¤.¨;if(¤.Å!=¢Þ)¦[¤.³].Å=¤.Å}}};_Ã.¢ª=¶ _·;¢ Ã(´,³,¨){¤.³=³;¤.¨=££[¨].Æ(1,-1);£ Å=¤.¨.§(Ã.¤´);if(Å)¤.Å=¢ö(Å[1]).¬(¤·,¤¶);¤.£¢=·;¤.£¢(´);¸(£¡,¤)};Ã.£Ú=_Ã;Ã.¢ª=¶ _Ã;Ã.ID=¢(§,´,³,¨){¥ ¶ Ã(´,³,¨)};Ã.û=¦âg;Ã.¤´=¦ã;Ã.¤³=¨¡+¢À(¨¢,Á)+¨£;ò[§Ç]=¢(¼,­,±,Ê){®(£ i=0;i<­.¯;i++){£ ó=­[i].¥º;®(£ j=0;j<ó.¯;j++)if(£Ù(ó[j],±,Ê))¸(¼,ó[j])}};ò[¨¤]=¢(¼,­,±,Ê){®(£ i=0;i<­.¯;i++){£ ¢ý=¢þ(­[i]);if(¢ý&&£Ù(¢ý,±,Ê))¸(¼,¢ý)}};ò[¨¥]=¢(¼,­,±){±=¢ú[±];®(£ i=0;i<­.¯;i++)if(±(­[i]))¸(¼,­[i])};¢®[¨¦]=¢(¡){¥!¤²(¡)};¢®[¨§]=¢(¡,É){É=¶ ç(¨¨+É,¨©);Ý(¡&&!¡.£×(¨§))¡=¡.¢ü;¥ ¡&&É.µ(¡.£×(¨§))};¢­.¢Ù=¢(¡){£ Â=í;Ó(¡,¨ª,¢(){ª.Ð.¢Ù.¢Û(Â)});Ó(¡,¨«,¢(){ª.Ð.¢Ù.¢Ú(Â)})};¢­.¢÷=¢(¡){£ Â=í;Ó(¡,¨¬,¢(){ª.Ð.¢÷.¢Û(Â)})};¢­.¢Á=¢(¡){£ Â=í;Ó(¡,¨­,¢(){ª.Ð.¢Á.¢Û(Â)});Ó(¡,¨®,¢(){ª.Ð.¢Á.¢Ú(Â)});if(¡==².¥²){ª.Ð.¢Á.¢Û(Â)}};Ó(²,¨¯,¢(){£ ú=ª.Ð.¢÷;£ Ù=ú.Ù,i;®(i in Ù)ú.¢Ú(Ù[i]);ú=ª.Ð.¢Ù;Ù=ú.Ù;®(i in Ù)if(!Ù[i][0].£õ(£ü.¥°))ú.¢Ú(Ù[i])});£ ¢ú=[];£ ¤«=¦äg;¢ ñ(Ä,¢Â,©){©=¢ö(©);¤.id=¢ú.¯;£ò(Ä.¥¯()){¢¦ ¨°:Ä=¨±;¤­;¢¦ ¨²:Ä=¨³;¤­;£ñ:Ä=¨´+Ä+¨µ}¢Â=¢¬[¢Â];¸(¢ú,¶ ¤¬(¨¶,¨·+¢Â(Ä,©)))};ñ.ID=¢(§,Ä,¢Â,©){¥ ¶ ñ(Ä,¢Â,©)};ñ.¢ª.È=¢(){¥ ñ.¢ø+¤.id};¢¬={È:¢(){£ È=[];®(£ i in ¤)if(i&&i!=¨¸)¸(È,i);¥ È.¢Ü(¦ô).¬(¦åg,¦ô)},¢ù:¢(©){¥ ©.¬(¤«,¨¹)},¦ô:¢(Ä){¥ Ä},¨º:¢(Ä,©){¥ Ä+¨»+¤ª(©)},¨¼:¢(Ä,©){¥ ¨½+¢¬.¢ù(©)+¨¾+Ä+§®},¨¿:¢(Ä,©){¥ ¨À+¢¬.¢ù(©)+¨Á+Ä+§®}};ñ.¢ø=¨¥;¢ _ú(){¤.¢Û=¢(Â){£ ¡=Â[0];£ º=Â[1];£ ·=Â[2];®(£ i=0;i<º.¯;i++)·.æ(º[i]);¤.Ù[·.id+¡.¢«]=Â};¤.¢Ú=¢(Â){£ ¡=Â[0];£ º=Â[1];£ ·=Â[2];®(£ i=0;i<º.¯;i++)·.¤©(º[i]);£Ö ¤.Ù[·.id+¡.¢«]}};ª.Ð=¢(Õ){¤.Õ=Õ;¤.Ù={};ª.Ð[Õ]=¤};ª.Ð.¢ª=¶ _ú;¶ ª.Ð(¨Â);¶ ª.Ð(¨Ã);¶ ª.Ð(§ú);¢ £Õ(´){¥ ´.¬(·.¤¨,¦ô).¬(¤§,§²)}},Ö);ª.¢©(¨Ä,¢(){if(á<5.5)¥;£ £Ô=¨Å;£ £ý=(¦æ.µ(¤¥.¥©))?¢À(¨Æ,Á):¨Ç;£ £Ó=¶ ç((¢¡.¤ý||¨È)+¨É,¨©);¢ £þ(¡,î){¡.¦.±=£Ô.¬(¦ç,î)};£ ¢¾=¦ègi;à.¢¿(¢¾,¢ ¬(§,¢õ,¤¡,Ô,£ÿ){Ô=¢ö(Ô);¥ £Ó.µ(Ô)?¨Ê+£Ô.¬(¦é,¨Ë).¬(¦ç,Ô)+¨Ì+(¢õ||¦ô)+§¸+(¤¡||¦ô)+¨Í+(£ÿ||¦ô):§});if(¢½){¢ £Ò(¡){if(£Ó.µ(¡.î)){£ °=¡.°,÷=¡.÷;£þ(¡,¡.î);¡.î=£ý;¡.°=°;¡.÷=÷}Û ¡.¦.±=¦ô};¢½.æ(¨Î,¢(¡){if(¡.Ï==¨Ï&&¡.Õ!=¨Ð)¥;£Ò(¡);Ó(¡,¨Ñ,¢(){if(£ü.£Ê==¨Ò)£Ò(¡)})})}});ª.¢©(¨Ó,¢(){£ ¢Ö=¦Ì;à.ï(¨Ô,¢¢);à.ï(¨Õ,¢£);£ ß=².ß;£ Þ$=(¢§)?¨Ö:¨×;£ Þ=Ü(Þ$);¢ ¢ñ(){if(ß.«.£Î!=§Ú){if(ß.«.£Í==¨Í){ß.¦.£Í=¨Ø+¢ô.¤÷+§®}ß.¦.£Î=§Ú}¢ñ=¢Ø};£ ¹=£Ï(¨Ù);¢ ¢º(£ú){¥ ¢ó(£ú).¬(¦Õg,§æ).¬(¦Ög,§ç).¬(¦Óg,§ä).¬(¦êg,¨Ú)};¢ ¢£(¡){if(¡.«.£Î!=§Ú)¥;if(!¡.£õ(ß)){¢ñ();¢£[¢£.Ë++]=¡;£Ë(¡);¤ö(¡);£Â(¡)}};¢£.Ë=0;¢ £Â(¡){¹.î=¡.«.£Í.Æ(5,-2);£ ½=(¡.£Ì)?¡:¡.½;½.¢»(¹);£È(¡);¤õ(¡);½.¢Õ(¹)};¢ £Ë(¡){¡.Ì.¢×=¡.«.¢×;if(!ö(¡)){£ £ô=¨Û+Þ$+¨Ü;¡.¦.£ð(¨Ý,£ô)}};Ü(¢º(£Ë));¢ £È(¡){£ £Ê=ö(¡)?¨Ý:¨Þ;¡.¦[£Ê]=£Ç(¡,¡.Ì.¢×)-¡.£É().À-¡.¤ô};Ü(¢º(£È));¢ ö(¡){if(!¡)¥ ë;if(¡.Ì.³==§Ú||¡.«.³==§Ú)¥ Ö;¥ í.£ó(¡.½)};¢ £Ç(¡,³){£ò(³){¢¦ ¨ß:¢¦ §ç:¥ 0;¢¦ §â:¢¦ §é:¥ Þ.Í-¹.¢¼;¢¦ ¨à:¥(Þ.Í-¹.¢¼)/2;£ñ:if(¢Ö.µ(³)){¥ ø((Þ.Í-¹.¢¼)*£Æ(³)/100)}¹.Ì.À=³;¥ ¹.¢¤}};Ü(¢º(£Ç));¢ ¢¢(¡){if(¡.«.³!=§Ú)¥;¢ñ();¢¢[¢¢.Ë++]=¡;¡.Ì.³=§Ú;¡.¦.³=§á;£Á(¡)};¢¢.Ë=0;¢ £Á(¡,Ø){£Å(¡,Ø);¤ò(¡,Ø);if(!Ø||¡.¦.¤ñ){if(ø(¡.«.¢î)==0)¡.¦.¤ð++}};¢ £Å(¡,Ø){if(!Ø&&¢Ö.µ(¡.«.°))¡.¦.ì=¡.«.°;if(¡.¦.ì)¡.¦.°=ø(£Æ(¡.¦.ì)/100*Þ.Í);if(Ø){if(!¡.¦.£Ä)¥}Û{¡.¦.£Ä=¡.«.×!=§Ý&&¡.«.À==§Ý}¡.¦.À=¦ô;¡.¦.¢Ô=¢¹(¡);if(¡.«.¢ï!=§Ý){¡.½.¢»(¹);¹.Ì.À=¡.«.¢ï;¡.¦.¢Ô-=¹.¢¤;¡.½.¢Õ(¹)}if(ö(¡.¢¥))¡.¦.£ï=¡.¦.¢Ô;Û if(!Ø)¡.¦.£ð(¨á,¨â+Þ$+¨ã)};Ü(¢º(£Å).¬(¦Øg,§é).¬(¦Ôg,§å));¢ ¢¹(¡){£ ¢¹=¡.¢¤,£Ã=ë;£ Ç=ö(¡.¢¥)&&¡.¦.£Ä;Ý(¡=¡.¢¥){if(!Ç&&¡.«.³!=¨ä)£Ã=Ö;¢¹+=¡.¢¤*(£Ã?-1:1)}¥ ¢¹};Ü(¢º(¢¹));¢ £ì(){®(£ i=0;i<¢£.Ë;i++)£Â(¢£[i]);®(i=0;i<¢¢.Ë;i++)£Á(¢¢[i],Ö);ÿ=0};£ ÿ;Ó(¢¡,§ã,¢(){if(!ÿ)ÿ=¢Ó(£ì,10)})});¢í=Ö;if(².£À==¦ú)_ê();Û Ó(²,¨å,¢(){if(!¢¸&&².£À==¦ú)¢Ó(_ê,0)})}¢·(¢ë){¢ì();¢¶(¨æ+¢ë.£ë)}£¾{}}();',493,0,/./,String,95,'element`function`var`this`return`runtimeStyle`match`cssText`value`IE7`currentStyle`replace`from`for`length`width`filter`document`position`selector`test`new`Class`push`ie7_tmp`target`x5cs`filtered`parentElement`href`styleSheet`left`path`instance`PseudoElement`attribute`content`slice`fixed`toString`filterArgs`scopeName`count`style`clientWidth`ie7`tagName`Event`x5c`DynamicStyle`addEventHandler`url`type`true`right`recalc`instances`minWidth`else`eval`while`viewport`body`CSSFixes`appVersion`link`layoutParent`fixedWidth`auto`add`RegExp`fixes`styleSheets`load`false`fixWidth`arguments`src`addRecalc`input`AttributeSelector`selectors`subset`recalcs`nextSibling`isFixed`height`parseInt`documentElement`ie7Event`ALL`cssQuery`maxWidth`handler`timer`window`positionFixed`backgroundFixed`offsetLeft`offsetParent`case`quirksMode`x5cw`addModule`prototype`uniqueID`attributeTests`dynamicPseudoClasses`pseudoClasses`dynamicPseudoClass`attach`isHTML`fixRight`token`SIZES`pattern`alert`catch`complete`getScreenLeft`topFunction`appendChild`offsetWidth`HTMLFixes`MATCH`addFix`makePath`focus`compare`x5cd`object`pseudoElement`try`name`visited`getPixelWidth`boxSizing`getFixedWidth`all`elements`isElement`pseudoClass`cacheSelector`modules`script`setTimeout`screenLeft`removeChild`PERCENT`backgroundPositionX`DUMMY`hover`unregister`register`join`className`null`exec`display`classes`parse`getCSSText`getPixelLeft`wider`max`disabled`cssCache`node`Boolean`error`unHide`loaded`bottom`marginLeft`absolute`fixBackground`top`String`location`image`getString`active`PREFIX`escape`attributeSelectors`x2f`parentNode`adjacent`nextElement`ie7_anon`pseudoElements`inherit`encoded`isURL`ignore`HEADER`decode`split`encode`resizeWidth`NUMERIC`rect`min`hasLayout`outerHTML`apply`fixedElement`QUOTED`handlers`pop`strings`string`item`small`getPath`styles`pathname`array`httpRequest`finally`Error`readyState`foregroundPosition`backgroundPosition`nested`autoLeft`positionLeft`parseFloat`getOffsetLeft`setOffsetLeft`getBoundingClientRect`propertyName`backgroundLeft`canHaveChildren`backgroundImage`backgroundAttachment`tmpElement`none`background`fixImg`pngTest`FILTER`simpleSelector`delete`getAttribute`lang`compareTagName`ancestor`createElement`code`PIXEL`resizeRight`getPaddingWidth`getBorderWidth`box`submit`clicked`fix`select`useCache`base`large`inlineStyles`LINKS`description`resize`onresize`scrollLeft`pixelLeft`setExpression`default`switch`callee`expression`contains`Height`Width`Top`Left`leftFunction`img`event`NULL`addFilter`suffix`prefix`scale`png`define`navigator`Microsoft`CHILD`COMPLEX`remove`quote`ESCAPE`Function`break`ie7_`x5cb`class`ms_`previousElement`OBJECT`CONTENT`before`unicode`HEX`addTimer`firstChild`create`clearInterval`inline`ANCHOR`Parser`parser`removeTempElement`HEIGHT`getMarginWidth`AUTO`minHeight`marginRight`UNIT`toUpperCase`charAt`BUTTON`UNSUCCESSFUL`button`abbr`htmlFor`HTML`endTag`firstChildElement`continue`block`marginTop`fixMargins`removeEventHandler`attachEvent`key`getElementsByTagName`selectById`NAMESPACE`STREAM`STANDARD_SELECT`toStream`ASTERISK`IMPLIED_SELECTOR`reg`loadStyleSheet`imports`MEDIA`innerHTML`lastIndexOf`URL`fixUrls`scripts`RELATIVE`autoload`mimeType`search`message`onreadystatechange`static`screenTop`autoTop`positionTop`center`clientLeft`setOffsetTop`backgroundTop`protocol`onpropertychange`INPUT`zoom`crop`trans`IE7_PNG_SUFFIX`x00`x_bits`char`x5cnstatic`x_height`x5cn`x_width`javascript`gif`blank`userAgent`bSV1`sizingMethod`AlphaImageLoader`DXImageTransform`progid`toLowerCase`srcElement`onmouseup`activeElement`onblur`onfocus`onmousedown`onmouseout`onmouseover`child`first`children`scriptlet`text`htm`data`after`insertBefore`innerText`setInterval`specificity`x5cu`align`vertical`with`css2`fixHeight`Bottom`Right`paddingRight`paddingLeft`Math`model`onsubmit`reset`form`onclick`textarea`label`xhtml`org`www`http`namespaces`replaceChild`html4`previousSibling`nodeType`clip`border`padding`unquote`contentEditable`onbeforeunload`detachEvent`import`namespace`concat`Array`constructor`size`font`medium`list`float`relative`sizing`lastIndex`successfully`media`ball`bscreen`write`createStyleSheet`ie5`file`not`could`responseText`send`GET`open`XMLHTTP`ActiveXObject`margin`Document`XML`xml`unknown`typeof`CSS1Compat`compatMode`ie7_off`MSIE`ie7_debug`alpha`version`visible`visibility`fromCharCode`¦®`¦­ (\\d\\.\\d)`¦¬`^¤±`\\.¦§$`^[\\w\\.]+[^:]*$`(Ô\\([\x27"]?)([\\w\\.]+[^:\\)]*[\x27"]?\\))`\\¥ö\\b|\\¥õ\\b|^$`Î-â`(¥ï\\s*:\\s*(À|×))`¢à\\s*:\\s*¥î-£·`^[^>\\+~\\s]`[\\s>\\+~:@#\\.\\(\\)]|[^\\s>\\+~:@#\\.\\(\\)]+`\\|`([\\s>~\\,]|[^(]\\+|^)([\\.:#@])`(\\¢û\\*[^\\*]*\\*+([^\\¢û][^\\*]*\\*+)*\\¢û)|(\x27[^\x27]*\x27)|("[^"]*")`@(¥ç|¥æ)[^;\\n]+[;\\n]|<!\\-\\-|\\-\\->`\\Ñ:`^\\s+|\\s*([\\{\\}\\+\\,>~\\s;])\\s*|\\s+$`\x27(\\d+)\x27`(\x27[^\x27]*\x27)|("[^"]*")` ©="([^"]*)"`^(£â|¥Ñ|¤Ë)$`^\\d\\w*$`^\\d+%$`^\\d+(px)?$`\\b(£­|¢æ)-(°|÷)\\s*:\\s*\\d`\\b(£­|¢æ)-°\\s*:\\s*\\d`^å|0cm$`^å$`£­`£÷`°`£ù`À`¥Ë`×`>`(\\ba(\\.[\\w-]+)?)$`\\{[^\\}]*\\}`::`([^\\}\\s]*\\,[^\\{]*)(\\{\\d+\\})`\\{(\\d+)\\}`[+>~]`\\Ñ([a-fA-F\\d]+)`^Ô\\(.*\\)$`([^}]*):(¤µ|¥¿)[^{]*\\{([^}]*)\\}`Å\\s*:\\s*([^;]*)(;|$)`([\\¢û()[\\]?{}|*+])`=`\\¥ª\\b`%1`£Ñ(-¢õ)?\\s*:([^(};]*)Ô\\(([^\\)]+)\\)([^;}]*)`¤¢`X`¦±`ª ¦° 0.7.3 (¦¯)`\\n\\n`¦ª`¦¨`¦¦ ¦¥`:â{Î-â:â}:¢È{Î-â:¢È}`*{¦¤:0}`¢Ò=``/`¤¦.¦¢`¥ÿ`£¿ [1]: ¥ü ¥û ê ¥ú `Î-¥ù.js`¢¸`<Ì></Ì>`$1`$2`Ì`¢í ¥ó`£¿ [2]: `([^{}]*)\\Ñ{([^}]*[^\\¢¨-])?`gi`£á-¥ñ\\»*:\\»*Å-£á`³\\»*:\\»*¢ð`¥ð`¢à:¤¼;$1`¢à:¤Ò`xx-£¸,x-£¸,£¸,¥í,£è,x-£è,xx-£è`,`xx-£¸`(¥ì(-¥ë)?\\»*:\\»*)(`|`)`$1*$2` *#`(` `*`#`.`(^|\\»)`(\\»|$)`:`â`¢È`\\Ñ([^)]*\\Ñ)`Î-â`\x27`\\Ñ:`¥ä`¢Ä`³:¢ð;¥á:0;¢à:¤Ò;¥à:£Ð;¥ß:£¬(0 0 0 0);À:-9999`!`Î-¥Ü`<¤Î:`/>`</`>`¤Î`¥Ù://¥Ø.w3.¥×/1999/¥Ö`¥Õ`ð,£å,¥Ô`¤Ì` ¤Ì`¤Ë,ð`¤É`£â`¥Ó`².¢Ì.`.¦.£ã=ë`¥Ò`¥Ð`.¢ç=ë`.©=\x27`Î-£á-¥Ï`\\»*:\\»*\\¢Ã[\\¢¨%]*`Ç`HR`°\\»*:\\»*\\¢Ã\\¢¨*[^%]`å`£­-°`¢æ`¢æ-°`¢ð`×`£í`£ö`÷`£ø`¢ò`¥Ê`¢î`Î-¥È`[^},\\»]*([>+~][^:@,\\»{]+|:(`)|\\Ñ.[\\¢¨-]+\\Ñ.[\\¢¨-.]+|@[@\\¢Ã]+)`g`[^\\»(]+[+~]|@\\¢Ã+|:(â|¢È|`)|\\Ñ.[\\¢¨-.]+`([^}]*):(`)([^{]*)`\\Ñ[([^`=\\Ñ]]+)([`]?=?)([^\\Ñ]]+)?\\Ñ]`{`}`\\»`\\¤¯`¤®`¢Á`.¢ÿ{¥Æ-¥Å:¢ò;¢à:¤¼}`\x27\\¥Ä`0000`¤µ`;`<¢Ä ¤°=¢ÿ ¥¾=\x27`Î-Å.¥½`\x27 °=100% ÷=0 Õ=¥¼/x-¥»>`+`@`¥¹-¥¸`£Ø`^`i`¥·`¥¶`¥µ`¥´`¥³`¥±`id`¡.id.¬(/¤±\\¢Ã+/g,\x27\x27)`¤°`¡.¢Ý.¬(/\\¤¯\\»*¤®\\¢Ã+/g,\x27\x27)`¡.£×(\x27`\x27)`¡`¥ `¢ù`\\Ñ$1`=`==`~=`/(^|\\»)`(\\»|$)/.µ(`|=`/^`(-|$)/.µ(`¢Ù`¢÷`Î-¤£`¥®:¥­.¤¦.¥¬(î=%1,¥«=\x27¤¢\x27)`¥¨.¥§`¥¦:\x27#¤¤ ¥¥ 1\\¥¤#¤¤ ¥£ 1\\¥¢ ¥¡ ¤ÿ[]={0¤þ}\x27`-¤ü.¤£`$`±:`¤û`;¤ú:1;£Ñ`£Ð`£û,ð`¤ù`¢õ`¤ø`î`Î-Ç`³\\»*:\\»*Ç`£Ñ[\\¢¨\\»-]*:[^};]*Ç`ß`ù`Ô(`£û`Y`(ø(¦.¢¤)+².`.£î)||0`¢×`¢¤`À`¤ó`£ï`¦.¢Ô+².`.£î`¤ï`¤î`£¿ [0]: '.split('\x60')));
+/* packed with http://dean.edwards.name/packer/ */
diff --git a/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-standard.js b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-standard.js
new file mode 100644
index 0000000..2109905
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/ie7/ie7-standard.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(!window.IE7)new function(){try{window.IE7=this;var DUMMY=this.addModule=new Function;function unHide(){if(document.body)document.body.style.visibility="visible"};this.toString=function(){return "IE7 version 0.7.3 (alpha)"};var alert=(/ie7_debug/.test(location.search))?function(message){window.alert(IE7+"\n\n"+message)}:DUMMY;var appVersion=navigator.appVersion.match(/MSIE (\d\.\d)/)[1];if(/ie7_off/.test(location.search)||appVersion<5||!/^ms_/.test(document.documentElement.uniqueID))return unHide();var quirksMode=Boolean(document.compatMode!="CSS1Compat");var isHTML=(typeof document.mimeType=="unknown")?!/\.xml$/i.test(location.pathname):Boolean(document.mimeType!="XML Document");var LINKS=":link{ie7-link:link}:visited{ie7-link:visited}";var HEADER=LINKS;if(!isHTML)HEADER+="*{margin:0}";var HTMLFixes;var documentElement=document.documentElement;var modules={};this.addModule=function(name,script,autoload){if(!modules)return;if(loaded)eval("script="+String(script));if(autoload){script();script=DUMMY}modules[name]=script};var RELATIVE=/^[\w\.]+[^:]*$/;function makePath(href,path){if(RELATIVE.test(href))href=(path||"")+href;return href};function getPath(href,path){href=makePath(href,path);return href.slice(0,href.lastIndexOf("/")+1)};var path=getPath(document.scripts[document.scripts.length-1].src);var httpRequest=new ActiveXObject("Microsoft.XMLHTTP");function load(href,path){try{href=makePath(href,path);httpRequest.open("GET",href,false);httpRequest.send();return httpRequest.responseText}catch(ignore){alert("Error [1]: could not load file "+href);return ""}};var push=function(array,item){return array.push(item)};var pop=function(array){return array.pop()};if(appVersion<5.5)eval(load("ie7-ie5.js",path));if(document.readyState=="complete"||!isHTML)document.createStyleSheet();else document.write("<style></style>");this.styleSheet=document.styleSheets[document.styleSheets.length-1];this.styleSheet.cssText=LINKS;this.styleSheet.ie7=true;var cssText={};function loadStyleSheet(styleSheet,path){var url=makePath(styleSheet.href,path);if(cssText[url])return "";cssText[url]=(styleSheet.disabled)?"":fixUrls(getCSSText(styleSheet,path),getPath(styleSheet.href,path));return cssText[url]};var getCSSText=function(styleSheet){return styleSheet.cssText};var URL=/(url\(['"]?)([\w\.]+[^:\)]*['"]?\))/gi;function fixUrls(cssText,pathname){return cssText.replace(URL,"$1"+pathname.slice(0,pathname.lastIndexOf("/")+1)+"$2")};this.recalcs=[];this.parse=DUMMY;var complete=false;function _load(){try{complete=true;var MEDIA=/\bscreen\b|\ball\b|^$/i;var styleSheets=document.styleSheets;var inlineStyles=[];var styles=document.getElementsByTagName("style");for(var i=styles.length-1;i>=0;i--){push(inlineStyles,/ie7-link/.test(styles[i].innerHTML)?"":styles[i].innerHTML)}function getCSSText(styleSheet,path){var cssText="";if(MEDIA.test(styleSheet.media)){for(var i=0;i<styleSheet.imports.length;i++){cssText+=arguments.callee(styleSheet.imports[i],getPath(styleSheet.href,path))}cssText+=((styleSheet.href)?loadStyleSheet(styleSheet,path):pop(inlineStyles))}return cssText};IE7.cssText="";for(i=0;i<styleSheets.length;i++)IE7.cssText+=getCSSText(styleSheets[i],"");IE7.cssText=encode(IE7.cssText);for(i in modules)modules[i]();delete modules;if(HTMLFixes)HTMLFixes.apply();CSSFixes.apply();IE7.parse();IE7.styleSheet.cssText=HEADER+decode(IE7.cssText);for(i=0;i<styleSheets.length;i++){if(!styleSheets[i].disabled&&!styleSheets[i].ie7)styleSheets[i].cssText=""}IE7.recalc();alert("loaded successfully")}catch(error){alert("Error [2]: "+error.description)}finally{unHide()}};this.recalc=function(){CSSFixes.recalc();for(var i=0;i<this.recalcs.length;i++)this.recalcs[i]()};var CSSFixes=new function(){var fixes=[];this.addFix=function(){push(fixes,arguments)};var recalcs=[];this.addRecalc=function(pattern,fix){var reg=new RegExp("([^{}]*)\x5c{([^}]*[^\x5cw-])?"+pattern,"gi");var cssText=IE7.cssText;pattern=[];while(match=reg.exec(cssText)){push(pattern,match[1]);if(appVersion<5.5)cssText=cssText.slice(match.lastIndex)}if(pattern.length){pattern=pattern.toString();push(recalcs,arguments)}};this.apply=function(){for(var i=0;i<fixes.length;i++){IE7.cssText=IE7.cssText.replace(fixes[i][0],fixes[i][1])}this.addRecalc("box-sizing\x5cs*:\x5cs*content-box",boxSizing);this.addRecalc("position\x5cs*:\x5cs*absolute",function(element){if(element.offsetParent.currentStyle.position=="relative")boxSizing(element.offsetParent)})};this.recalc=function(){for(var i=0;i<recalcs.length;i++){var elements=cssQuery(recalcs[i][0]);for(var j=0;j<elements.length;j++)recalcs[i][1](elements[j])}};this.addFix(/(float\s*:\s*(left|right))/gi,"display:inline;$1");if(appVersion<6)this.addFix(/display\s*:\s*list-item/gi,"display:block");if(quirksMode){var SIZES="xx-small,x-small,small,medium,large,x-large,xx-large".split(",");for(var i=0;i<SIZES.length;i++)SIZES[SIZES[i]]=SIZES[i-1]||"xx-small";function replace($,$1,$2,$3){return $1+SIZES[$3]};this.addFix(new RegExp("(font(-size)?\x5cs*:\x5cs*)("+SIZES.join("|")+")","gi"),replace)}};var STANDARD_SELECT=/^[^>\+~\s]/;var STREAM=/[\s>\+~:@#\.\(\)]|[^\s>\+~:@#\.\(\)]+/g;var NAMESPACE=/\|/;var IMPLIED_SELECTOR=/([\s>~\,]|[^(]\+|^)([\.:#@])/g;var ASTERISK="$1*$2";var cssCache={};function cssQuery(selector,from){var useCache=!from;var base=(from)?(from.constructor==Array)?from:[from]:[document];var selectors=selector.replace(IMPLIED_SELECTOR,ASTERISK).split(",");var match=[];for(var i=0;i<selectors.length;i++){selector=toStream(selectors[i]);if(selector.slice(0,3).join("")==" *#"){selector=selector.slice(2);from=selectById(base,selector[1])}else from=base;var j=0,token,filter,filterArgs,cacheSelector="";while(j<selector.length){token=selector[j++];filter=selector[j++];cacheSelector+=token+filter;filterArgs="";if(selector[j]=="("){while(selector[j++]!=")")filterArgs+=selector[j];filterArgs=filterArgs.slice(0,-1);cacheSelector+="("+filterArgs+")"}from=(useCache&&cssCache[cacheSelector])?cssCache[cacheSelector]:select(from,token,filter,filterArgs);if(useCache)cssCache[cacheSelector]=from}match=match.concat(from)}return match};function toStream(selector){if(STANDARD_SELECT.test(selector))selector=" "+selector;return selector.match(STREAM)};function select(from,token,filter,filterArgs){var scopeName="";if(NAMESPACE.test(filter)){filter=filter.split("|");scopeName=filter[0];filter=filter[1]}var filtered=[];if(selectors[token])selectors[token](filtered,from,filter,scopeName||filterArgs);return filtered};function selectById(from,id){var filtered=[],i,j;for(i=0;i<from.length;i++){var match=from[i].all.item(id);if(match){if(match.length==null)push(filtered,match);else for(j=0;j<match.length;j++)push(filtered,match[j])}}return filtered};var selectors={" ":function(filtered,from,filter,scopeName){for(var i=0;i<from.length;i++){var subset=(filter=="*"&&from[i].all)?from[i].all:from[i].getElementsByTagName(filter);for(var j=0;j<subset.length;j++){if(isElement(subset[j])&&(!scopeName||subset[j].scopeName==scopeName))push(filtered,subset[j])}}},"#":function(filtered,from,filter){for(var i=0;i<from.length;i++)if(from[i].id==filter)push(filtered,from[i])},".":function(filtered,from,filter){filter=new RegExp("(^|\x5cs)"+filter+"(\x5cs|$)");for(var i=0;i<from.length;i++)if(filter.test(from[i].className))push(filtered,from[i])},":":function(filtered,from,filter,filterArgs){filter=pseudoClasses[filter];if(filter)for(var i=0;i<from.length;i++)if(filter(from[i],filterArgs))push(filtered,from[i])}};var attributeTests="";var pseudoClasses={toString:function(){var toString=[];for(var pseudoClass in this){if(pseudoClass!="link"&&pseudoClass!="visited"){if(this[pseudoClass].length>1)pseudoClass+="\x5c([^)]*\x5c)";push(toString,pseudoClass)}}return toString.join("|")},"link":function(element){return Boolean(element.currentStyle["ie7-link"]=="link")},"visited":function(element){return Boolean(element.currentStyle["ie7-link"]=="visited")}};var dynamicPseudoClasses={toString:pseudoClasses.toString};function compareTagName(element,tagName,scopeName){if(scopeName&&element.scopeName!=scopeName)return false;return(tagName=="*")?isElement(element):(isHTML)?(element.tagName==tagName.toUpperCase()):(element.tagName==tagName)};var strings=[];function getString(string){return QUOTED.test(string)?strings[string.slice(1,-1)]:string};var encode=function(cssText){return cssText.replace(/(\x2f\*[^\*]*\*+([^\x2f][^\*]*\*+)*\x2f)|('[^']*')|("[^"]*")/g,function(match){return(match.charAt(0)=="/")?"":"'"+(push(strings,match.slice(1,-1))-1)+"'"}).replace(/@(namespace|import)[^;\n]+[;\n]|<!\-\-|\-\->/g,"").replace(/\x5c:/g,"|").replace(/^\s+|\s*([\{\}\+\,>~\s;])\s*|\s+$/g,"$1")};function decode(cssText){return cssText.replace(/\|/g,"\x5c:").replace(/'(\d+)'/g,function(match,key){return strings[key]})};var handlers=[];function addEventHandler(element,type,handler){element.attachEvent(type,handler);push(handlers,arguments)};function removeEventHandler(element,type,handler){try{element.detachEvent(type,handler)}catch(ignore){}};window.attachEvent("onbeforeunload",function(){while(handlers.length){var handler=pop(handlers);removeEventHandler(handler[0],handler[1],handler[2])}});var hasLayout=(appVersion<6)?function(element){return element.clientWidth}:function(element){return element.currentStyle.hasLayout};function boxSizing(element){if(!hasLayout(element)){element.contentEditable=false;fixMargins(firstChildElement(element))}};function fixMargins(element){while(element){element.runtimeStyle.marginTop=element.currentStyle.marginTop;element=nextElement(element)}};var QUOTED=/('[^']*')|("[^"]*")/;function quote(value){return(QUOTED.test(value))?value:"'"+value+"'"};function unquote(value){return(QUOTED.test(value))?value.slice(1,-1):value};function tmpElement(tagName){var element=document.createElement(tagName||"object");element.style.cssText="position:absolute;padding:0;display:block;border:none;clip:rect(0 0 0 0);left:-9999";return element};function isElement(node){return Boolean(node&&node.nodeType==1&&node.tagName!="!"&&!node.ie7_anon)};function previousElement(element){while(element&&(element=element.previousSibling)&&!isElement(element))continue;return element};function nextElement(element){while(element&&(element=element.nextSibling)&&!isElement(element))continue;return element};function firstChildElement(element){element=element.firstChild;return(isElement(element))?element:nextElement(element)};var loaded=false;IE7.addModule("ie7-html4",function(){if(isHTML)HTMLFixes=new function(){var fixes=[];function fix(element){var fixedElement=document.createElement("<HTML:"+element.outerHTML.slice(1));if(element.outerHTML.slice(-2)!="/>"){var endTag="</"+element.tagName+">",nextSibling;while((nextSibling=element.nextSibling)&&nextSibling.outerHTML!=endTag){element.parentNode.removeChild(nextSibling);fixedElement.appendChild(nextSibling)}if(nextSibling)element.parentNode.removeChild(nextSibling)}element.parentNode.replaceChild(fixedElement,element);return fixedElement};this.add=function(){push(fixes,arguments)};this.apply=function(){try{if(appVersion>5)document.namespaces.add("HTML","http://www.w3.org/1999/xhtml")}catch(ignore){}finally{for(var i=0;i<fixes.length;i++){var elements=cssQuery(fixes[i][0]);for(var j=0;j<elements.length;j++)fixes[i][1](elements[j])}}};this.add("label",function(element){if(!element.htmlFor){var input=cssQuery("input,select,textarea",element)[0];if(input){if(!input.id)input.id=input.uniqueID;element.htmlFor=input.id}}});this.add("abbr",function(element){fix(element);delete cssCache[" abbr"]});this.add("button,input",function(element){if(element.tagName=="BUTTON"){var match=element.outerHTML.match(/ value="([^"]*)"/i);element.runtimeStyle.value=(match)?match[1]:""}if(element.type=="submit"){addEventHandler(element,"onclick",function(){element.runtimeStyle.clicked=true;setTimeout("document.all."+element.uniqueID+".runtimeStyle.clicked=false",1)})}});this.add("form",function(element){var UNSUCCESSFUL=/^(submit|reset|button)$/;addEventHandler(element,"onsubmit",function(){for(var i=0;i<element.length;i++){if(UNSUCCESSFUL.test(element[i].type)&&!element[i].disabled&&!element[i].runtimeStyle.clicked){element[i].disabled=true;setTimeout("document.all."+element[i].uniqueID+".disabled=false",1)}else if(element[i].tagName=="BUTTON"&&element[i].type=="submit"){setTimeout("document.all."+element[i].uniqueID+".value='"+element[i].value+"'",1);element[i].value=element[i].runtimeStyle.value}}})})}},true);IE7.addModule("ie7-box-model",function(){var NUMERIC="\x5cs*:\x5cs*\x5cd[\x5cw%]*",UNIT=/^\d\w*$/,PERCENT=/^\d+%$/,PIXEL=/^\d+(px)?$/;var MATCH=(appVersion<6)?/\b(min|max)-(width|height)\s*:\s*\d/gi:/\b(min|max)-width\s*:\s*\d/gi;var AUTO=(appVersion<5.5)?/^auto|0cm$/:/^auto$/;var ie7_tmp=tmpElement();push(IE7.recalcs,function removeTempElement(){if(ie7_tmp.parentElement)ie7_tmp.parentElement.removeChild(ie7_tmp)});CSSFixes.addFix(MATCH,function(match){return match.slice(0,3)+match.charAt(4).toUpperCase()+match.slice(5)});var viewport=(quirksMode)?document.body:documentElement;function isFixed(element){return element.style.position=="fixed"||element.currentStyle.position=="fixed"};function layoutParent(element){var layoutParent=element.offsetParent;while(layoutParent&&!hasLayout(layoutParent))layoutParent=layoutParent.offsetParent;if(!layoutParent||isFixed(element))layoutParent=viewport;return layoutParent};function fixWidth(HEIGHT){fixWidth=function(element,value){if(!element.runtimeStyle.fixedWidth&&(!isHTML||element.tagName!="HR")){if(!value)value=element.currentStyle.width;element.runtimeStyle.fixedWidth=(UNIT.test(value))?Math.max(0,getFixedWidth(element,value)):value;element.runtimeStyle.width=element.runtimeStyle.fixedWidth;boxSizing(element)}};if(quirksMode)CSSFixes.addRecalc("width\x5cs*:\x5cs*\x5cd\x5cw*[^%]",fixWidth);var getFixedWidth=(quirksMode)?function(element,value){return getPixelWidth(element,value)+getBorderWidth(element)+getPaddingWidth(element)}:function(element,value){return getPixelWidth(element,value)};function getBorderWidth(element){return element.offsetWidth-element.clientWidth};function getPaddingWidth(element){return getPixelWidth(element,element.currentStyle.paddingLeft)+getPixelWidth(element,element.currentStyle.paddingRight)};function getMarginWidth(element){return((element.currentStyle.marginLeft=="auto")?0:getPixelLeft(element,element.currentStyle.marginLeft))+((element.currentStyle.marginRight=="auto")?0:getPixelLeft(element,element.currentStyle.marginRight))};function minWidth(element){minWidth[minWidth.count++]=element;if(element.currentStyle.minHeight=="auto")element.runtimeStyle.minHeight=0;fixWidth(element);boxSizing(element);resizeWidth(element)};minWidth.count=0;CSSFixes.addRecalc("min-width"+NUMERIC,minWidth);eval(String(minWidth).replace(/min/g,"max"));maxWidth.count=0;CSSFixes.addRecalc("max-width"+NUMERIC,maxWidth);function resizeWidth(element){var rect=element.getBoundingClientRect();var width=rect.right-rect.left;if(element.currentStyle.maxWidth&&width>=getFixedWidth(element,element.currentStyle.maxWidth))element.runtimeStyle.width=getFixedWidth(element,element.currentStyle.maxWidth);else if(element.currentStyle.minWidth&&width<=getFixedWidth(element,element.currentStyle.minWidth))element.runtimeStyle.width=getFixedWidth(element,element.currentStyle.minWidth);else element.runtimeStyle.width=element.runtimeStyle.fixedWidth};function fixRight(element){if((element.currentStyle.position=="absolute"||element.currentStyle.position=="fixed")&&element.currentStyle.left!="auto"&&element.currentStyle.right!="auto"&&AUTO.test(element.currentStyle.width)){fixRight[fixRight.count++]=element;boxSizing(element);resizeRight(element)}};fixRight.count=0;CSSFixes.addRecalc("right"+NUMERIC,fixRight);function resizeRight(element){element.runtimeStyle.width="";var parentElement=layoutParent(element);var left=(element.runtimeStyle.screenLeft)?element.getBoundingClientRect().left-2:getPixelLeft(element,element.currentStyle.left);var width=parentElement.clientWidth-getPixelLeft(element,element.currentStyle.right)-left-getMarginWidth(element);if(!quirksMode)width-=getBorderWidth(element)+getPaddingWidth(element);if(width<0)width=0;if(isFixed(element)||HEIGHT||element.offsetWidth<width){element.runtimeStyle.fixedWidth=width;element.runtimeStyle.width=width}};var clientWidth=documentElement.clientWidth;addEventHandler(window,"onresize",function(){var i,wider=(clientWidth<documentElement.clientWidth);clientWidth=documentElement.clientWidth;for(i=0;i<minWidth.count;i++){var element=minWidth[i];var fixedWidth=(element.runtimeStyle.width==element.currentStyle.minWidth);if(wider&&fixedWidth)element.runtimeStyle.width="";if(wider==fixedWidth)resizeWidth(element)}for(i=0;i<maxWidth.count;i++){var element=maxWidth[i];var fixedWidth=(element.runtimeStyle.width==element.currentStyle.maxWidth);if(!wider&&fixedWidth)element.runtimeStyle.width="";if(wider!=fixedWidth)resizeWidth(element)}for(i=0;i<fixRight.count;i++)resizeRight(fixRight[i]);removeTempElement()});function getPixelWidth(element,value){if(PIXEL.test(value))return parseInt(value);if(PERCENT.test(value))return parseInt(parseFloat(value)/100*layoutParent(element).clientWidth);var parentElement=(element.canHaveChildren)?element:element.parentElement;parentElement.appendChild(ie7_tmp);ie7_tmp.style.width=value;return ie7_tmp.offsetWidth};function getPixelLeft(element,value){if(parseInt(value)>0)return getPixelWidth(element,value);if(PIXEL.test(value))return parseInt(value);element.parentElement.appendChild(ie7_tmp);ie7_tmp.style.left=value;return ie7_tmp.offsetLeft}};eval(String(fixWidth).replace(/Width/g,"Height").replace(/width/g,"height").replace(/Left/g,"Top").replace(/left/g,"top").replace(/Right/g,"Bottom").replace(/right/g,"bottom"));fixWidth();fixHeight(true)});IE7.addModule("ie7-css2",function(){var CHILD=/>/g,ANCHOR=/(\ba(\.[\w-]+)?)$/i;IE7.classes=[];IE7.parser=new Parser;IE7.Class=Class;IE7.DynamicStyle=DynamicStyle;IE7.PseudoElement=PseudoElement;IE7.parse=function(){with(this.parser)this.cssText=decode(parse(encode(this.cssText)));for(var i=0;i<IE7.classes.length;i++)IE7.classes[i].exec();for(i=0;i<pseudoElements.length;i++)pseudoElements[i].create()};getCSSText=function(styleSheet,path){return load(styleSheet.href,path)};var encoded=[];function Parser(){this.parse=function(cssText){Class.ALL=new RegExp("[^},\x5cs]*([>+~][^:@,\x5cs{]+|:("+pseudoClasses+")|\x5c.[\x5cw-]+\x5c.[\x5cw-.]+|@[@\x5cd]+)","g");Class.COMPLEX=new RegExp("[^\x5cs(]+[+~]|@\x5cd+|:(link|visited|"+pseudoClasses+"|"+dynamicPseudoClasses+")|\x5c.[\x5cw-.]+","g");DynamicStyle.ALL=new RegExp("([^}]*):("+dynamicPseudoClasses+")([^{]*)","g");return cssText.replace(PseudoElement.ALL,PseudoElement.ID).replace(DynamicStyle.ALL,DynamicStyle.ID).replace(Class.ALL,Class.ID)};this.encode=function(cssText){AttributeSelector.ALL=new RegExp("\x5c[([^"+attributeTests+"=\x5c]]+)(["+attributeTests+"]?=?)([^\x5c]]+)?\x5c]","g");return cssText.replace(AttributeSelector.ALL,AttributeSelector.ID).replace(/\{[^\}]*\}/g,function($){return "{"+(push(encoded,$)-1)+"}"}).replace(/::/g,":").replace(/([^\}\s]*\,[^\{]*)(\{\d+\})/g,function(match,left,right){return left.split(",").join(right)+right})};this.decode=function(cssText){return cssText.replace(/\{(\d+)\}/g,function($,$1){return encoded[$1]})}};function _Class(){this.toString=function(){return "."+this.name};this.add=function(element){element.className+=" "+this.name};this.remove=function(element){element.className=element.className.replace(this.MATCH,"")};this.exec=function(){var match=cssQuery(this.selector);for(var i=0;i<match.length;i++)this.add(match[i])}};function Class(selector,cssText){this.id=IE7.classes.length;this.name=Class.PREFIX+this.id;this.selector=selector;this.MATCH=new RegExp("\x5cs"+this.name+"\x5cb","g");push(IE7.classes,this)};Class.ancestor=_Class;Class.prototype=new _Class;Class.PREFIX="ie7_";Class.ID=function(match){return simpleSelector(match)+new Class(match)};function _DynamicStyle(){this.exec=function(){var match=cssQuery(this.attach);for(var i=0;i<match.length;i++){var target=(this.target)?cssQuery(this.target,match[i]):[match[i]];if(target)this.dynamicPseudoClass(match[i],target,this)}}};_DynamicStyle.prototype=new _Class;function DynamicStyle(selector,attach,dynamicPseudoClass,target){this.attach=attach;this.dynamicPseudoClass=dynamicPseudoClasses[dynamicPseudoClass];this.target=target;this.inherit=Class;this.inherit(selector)};DynamicStyle.ancestor=_DynamicStyle;DynamicStyle.prototype=new _DynamicStyle;DynamicStyle.ID=function(match,attach,dynamicPseudoClass,target){if(isHTML&&dynamicPseudoClass!="focus"&&ANCHOR.test(attach)&&!/[+>~]/.test(target))return match;return simpleSelector(match)+new DynamicStyle(match,attach,dynamicPseudoClass,target)};HEADER+=".ie7_anon{vertical-align:top;display:inline}";var HEX=/\x5c([a-fA-F\d]+)/g;function unicode(match,code){return eval("'\x5cu"+"0000".slice(code.length)+code+"'")};var pseudoElements=[];function _PseudoElement(){this.content=null;this.toString=function(){return ""};this.specificity=0;function addTimer(object,content,cssText){var timer=setInterval(function(){try{if(!object.load)return;object.load(object,content,cssText);clearInterval(timer)}catch(ignore){clearInterval(timer)}},10)};this.create=function(){if(this.content==null)return;for(var i=0;i<this.match.length;i++){var target=this.match[i];var pseudoElement=target.runtimeStyle[this.position];if(pseudoElement){var parentElement=target.canHaveChildren?target:target.parentElement;var isURL=/^url\(.*\)$/.test(this.content);var element=document.createElement(isURL?PseudoElement.OBJECT:"!");element.ie7_anon=true;element.runtimeStyle.cssText=pseudoElement.cssText;if(!isURL)element.innerText=pseudoElement.content;if(this.position=="before"){parentElement.insertBefore(element,parentElement.firstChild)}else{parentElement.appendChild(element)}if(isURL)addTimer(element,pseudoElement.content,pseudoElement.cssText);target.runtimeStyle[this.position]=null}}};this.exec=function(){this.match=cssQuery(this.selector);for(var i=0;i<this.match.length;i++){var runtimeStyle=this.match[i].runtimeStyle;if(!runtimeStyle[this.position])runtimeStyle[this.position]={cssText:""};runtimeStyle[this.position].cssText+=";"+this.cssText;if(this.content!=null)runtimeStyle[this.position].content=this.content}}};_PseudoElement.prototype=new _Class;function PseudoElement(selector,position,cssText){this.position=position;this.cssText=encoded[cssText].slice(1,-1);var content=this.cssText.match(PseudoElement.CONTENT);if(content)this.content=getString(content[1]).replace(HEX,unicode);this.inherit=Class;this.inherit(selector);push(pseudoElements,this)};PseudoElement.ancestor=_PseudoElement;PseudoElement.prototype=new _PseudoElement;PseudoElement.ID=function(match,selector,position,cssText){return new PseudoElement(selector,position,cssText)};PseudoElement.ALL=/([^}]*):(before|after)[^{]*\{([^}]*)\}/g;PseudoElement.CONTENT=/content\s*:\s*([^;]*)(;|$)/;PseudoElement.OBJECT="<object class=ie7_anon data='"+makePath("ie7-content.htm",path)+"' width=100% height=0 type=text/x-scriptlet>";selectors[">"]=function(filtered,from,filter,scopeName){for(var i=0;i<from.length;i++){var subset=from[i].children;for(var j=0;j<subset.length;j++)if(compareTagName(subset[j],filter,scopeName))push(filtered,subset[j])}};selectors["+"]=function(filtered,from,filter,scopeName){for(var i=0;i<from.length;i++){var adjacent=nextElement(from[i]);if(adjacent&&compareTagName(adjacent,filter,scopeName))push(filtered,adjacent)}};selectors["@"]=function(filtered,from,filter){filter=attributeSelectors[filter];for(var i=0;i<from.length;i++)if(filter(from[i]))push(filtered,from[i])};pseudoClasses["first-child"]=function(element){return!previousElement(element)};pseudoClasses["lang"]=function(element,filterArgs){filterArgs=new RegExp("^"+filterArgs,"i");while(element&&!element.getAttribute("lang"))element=element.parentNode;return element&&filterArgs.test(element.getAttribute("lang"))};dynamicPseudoClasses.hover=function(element){var instance=arguments;addEventHandler(element,"onmouseover",function(){IE7.Event.hover.register(instance)});addEventHandler(element,"onmouseout",function(){IE7.Event.hover.unregister(instance)})};dynamicPseudoClasses.active=function(element){var instance=arguments;addEventHandler(element,"onmousedown",function(){IE7.Event.active.register(instance)})};dynamicPseudoClasses.focus=function(element){var instance=arguments;addEventHandler(element,"onfocus",function(){IE7.Event.focus.register(instance)});addEventHandler(element,"onblur",function(){IE7.Event.focus.unregister(instance)});if(element==document.activeElement){IE7.Event.focus.register(instance)}};addEventHandler(document,"onmouseup",function(){var ie7Event=IE7.Event.active;var instances=ie7Event.instances,i;for(i in instances)ie7Event.unregister(instances[i]);ie7Event=IE7.Event.hover;instances=ie7Event.instances;for(i in instances)if(!instances[i][0].contains(event.srcElement))ie7Event.unregister(instances[i])});var attributeSelectors=[];var ESCAPE=/([\x2f()[\]?{}|*+])/g;function AttributeSelector(attribute,compare,value){value=getString(value);this.id=attributeSelectors.length;switch(attribute.toLowerCase()){case "id":attribute="element.id.replace(/ms_\x5cd+/g,'')";break;case "class":attribute="element.className.replace(/\x5cb\x5cs*ie7_\x5cd+/g,'')";break;default:attribute="element.getAttribute('"+attribute+"')"}compare=attributeTests[compare];push(attributeSelectors,new Function("element","return "+compare(attribute,value)))};AttributeSelector.ID=function(match,attribute,compare,value){return new AttributeSelector(attribute,compare,value)};AttributeSelector.prototype.toString=function(){return AttributeSelector.PREFIX+this.id};attributeTests={toString:function(){var toString=[];for(var i in this)if(i&&i!="escape")push(toString,i);return toString.join("").replace(/=/g,"")},escape:function(value){return value.replace(ESCAPE,"\x5c$1")},"":function(attribute){return attribute},"=":function(attribute,value){return attribute+"=="+quote(value)},"~=":function(attribute,value){return "/(^|\x5cs)"+attributeTests.escape(value)+"(\x5cs|$)/.test("+attribute+")"},"|=":function(attribute,value){return "/^"+attributeTests.escape(value)+"(-|$)/.test("+attribute+")"}};AttributeSelector.PREFIX="@";function _ie7Event(){this.register=function(instance){var element=instance[0];var target=instance[1];var Class=instance[2];for(var i=0;i<target.length;i++)Class.add(target[i]);this.instances[Class.id+element.uniqueID]=instance};this.unregister=function(instance){var element=instance[0];var target=instance[1];var Class=instance[2];for(var i=0;i<target.length;i++)Class.remove(target[i]);delete this.instances[Class.id+element.uniqueID]}};IE7.Event=function(type){this.type=type;this.instances={};IE7.Event[type]=this};IE7.Event.prototype=new _ie7Event;new IE7.Event("hover");new IE7.Event("active");new IE7.Event("focus");function simpleSelector(selector){return selector.replace(Class.COMPLEX,"").replace(CHILD," ")}},true);IE7.addModule("ie7-png",function(){if(appVersion<5.5)return;var FILTER="progid:DXImageTransform.Microsoft.AlphaImageLoader(src=%1,sizingMethod='scale')";var NULL=(/\bSV1\b/.test(navigator.userAgent))?makePath("blank.gif",path):"javascript:'#define x_width 1\x5cn#define x_height 1\x5cnstatic char x_bits[]={0x00}'";var pngTest=new RegExp((window.IE7_PNG_SUFFIX||"-trans.png")+"$","i");function addFilter(element,src){element.runtimeStyle.filter=FILTER.replace(/%1/,src)};var MATCH=/background(-image)?\s*:([^(};]*)url\(([^\)]+)\)([^;}]*)/gi;CSSFixes.addFix(MATCH,function replace(match,image,prefix,url,suffix){url=getString(url);return pngTest.test(url)?"filter:"+FILTER.replace(/scale/,"crop").replace(/%1/,url)+";zoom:1;background"+(image||"")+":"+(prefix||"")+"none"+(suffix||""):match});if(HTMLFixes){function fixImg(element){if(pngTest.test(element.src)){var width=element.width,height=element.height;addFilter(element,element.src);element.src=NULL;element.width=width;element.height=height}else element.runtimeStyle.filter=""};HTMLFixes.add("img,input",function(element){if(element.tagName=="INPUT"&&element.type!="image")return;fixImg(element);addEventHandler(element,"onpropertychange",function(){if(event.propertyName=="src")fixImg(element)})})}});IE7.addModule("ie7-fixed",function(){var PERCENT=/^\d+%$/;CSSFixes.addRecalc("position\x5cs*:\x5cs*fixed",positionFixed);CSSFixes.addRecalc("background[\x5cw\x5cs-]*:[^};]*fixed",backgroundFixed);var body=document.body;var viewport$=(quirksMode)?"body":"documentElement";var viewport=eval(viewport$);function fixBackground(){if(body.currentStyle.backgroundAttachment!="fixed"){if(body.currentStyle.backgroundImage=="none"){body.runtimeStyle.backgroundImage="url("+location.protocol+")"}body.runtimeStyle.backgroundAttachment="fixed"}fixBackground=DUMMY};var ie7_tmp=tmpElement("img");function topFunction(leftFunction){return String(leftFunction).replace(/Left/g,"Top").replace(/left/g,"top").replace(/Width/g,"Height").replace(/X/g,"Y")};function backgroundFixed(element){if(element.currentStyle.backgroundAttachment!="fixed")return;if(!element.contains(body)){fixBackground();backgroundFixed[backgroundFixed.count++]=element;backgroundLeft(element);backgroundTop(element);backgroundPosition(element)}};backgroundFixed.count=0;function backgroundPosition(element){ie7_tmp.src=element.currentStyle.backgroundImage.slice(5,-2);var parentElement=(element.canHaveChildren)?element:element.parentElement;parentElement.appendChild(ie7_tmp);setOffsetLeft(element);setOffsetTop(element);parentElement.removeChild(ie7_tmp)};function backgroundLeft(element){element.style.backgroundPositionX=element.currentStyle.backgroundPositionX;if(!isFixed(element)){var expression="(parseInt(runtimeStyle.offsetLeft)+document."+viewport$+".scrollLeft)||0";element.runtimeStyle.setExpression("backgroundPositionX",expression)}};eval(topFunction(backgroundLeft));function setOffsetLeft(element){var propertyName=isFixed(element)?"backgroundPositionX":"offsetLeft";element.runtimeStyle[propertyName]=getOffsetLeft(element,element.style.backgroundPositionX)-element.getBoundingClientRect().left-element.clientLeft};eval(topFunction(setOffsetLeft));function isFixed(element){if(!element)return false;if(element.style.position=="fixed"||element.currentStyle.position=="fixed")return true;return arguments.callee(element.parentElement)};function getOffsetLeft(element,position){switch(position){case "left":case "top":return 0;case "right":case "bottom":return viewport.clientWidth-ie7_tmp.offsetWidth;case "center":return(viewport.clientWidth-ie7_tmp.offsetWidth)/2;default:if(PERCENT.test(position)){return parseInt((viewport.clientWidth-ie7_tmp.offsetWidth)*parseFloat(position)/100)}ie7_tmp.style.left=position;return ie7_tmp.offsetLeft}};eval(topFunction(getOffsetLeft));function positionFixed(element){if(element.currentStyle.position!="fixed")return;fixBackground();positionFixed[positionFixed.count++]=element;element.style.position="fixed";element.runtimeStyle.position="absolute";foregroundPosition(element)};positionFixed.count=0;function foregroundPosition(element,recalc){positionLeft(element,recalc);positionTop(element,recalc);if(!recalc||element.runtimeStyle.autoTop){if(parseInt(element.currentStyle.bottom)==0)element.runtimeStyle.screenTop++}};function positionLeft(element,recalc){if(!recalc&&PERCENT.test(element.currentStyle.width))element.runtimeStyle.fixWidth=element.currentStyle.width;if(element.runtimeStyle.fixWidth)element.runtimeStyle.width=parseInt(parseFloat(element.runtimeStyle.fixWidth)/100*viewport.clientWidth);if(recalc){if(!element.runtimeStyle.autoLeft)return}else{element.runtimeStyle.autoLeft=element.currentStyle.right!="auto"&&element.currentStyle.left=="auto"}element.runtimeStyle.left="";element.runtimeStyle.screenLeft=getScreenLeft(element);if(element.currentStyle.marginLeft!="auto"){element.parentElement.appendChild(ie7_tmp);ie7_tmp.style.left=element.currentStyle.marginLeft;element.runtimeStyle.screenLeft-=ie7_tmp.offsetLeft;element.parentElement.removeChild(ie7_tmp)}if(isFixed(element.offsetParent))element.runtimeStyle.pixelLeft=element.runtimeStyle.screenLeft;else if(!recalc)element.runtimeStyle.setExpression("pixelLeft","runtimeStyle.screenLeft+document."+viewport$+".scrollLeft")};eval(topFunction(positionLeft).replace(/right/g,"bottom").replace(/width/g,"height"));function getScreenLeft(element){var getScreenLeft=element.offsetLeft,nested=false;var fixed=isFixed(element.offsetParent)&&element.runtimeStyle.autoLeft;while(element=element.offsetParent){if(!fixed&&element.currentStyle.position!="static")nested=true;getScreenLeft+=element.offsetLeft*(nested?-1:1)}return getScreenLeft};eval(topFunction(getScreenLeft));function resize(){for(var i=0;i<backgroundFixed.count;i++)backgroundPosition(backgroundFixed[i]);for(i=0;i<positionFixed.count;i++)foregroundPosition(positionFixed[i],true);timer=0};var timer;addEventHandler(window,"onresize",function(){if(!timer)timer=setTimeout(resize,10)})});loaded=true;if(document.readyState=="complete")_load();else addEventHandler(document,"onreadystatechange",function(){if(!complete&&document.readyState=="complete")setTimeout(_load,0)})}catch(error){unHide();alert("Error [0]: "+error.description)}finally{}}();
diff --git a/usr/local/www/themes/pfsense_ng/javascript/ie7/test-trans.png b/usr/local/www/themes/pfsense_ng/javascript/ie7/test-trans.png
new file mode 100644
index 0000000..e187e2c
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/ie7/test-trans.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/javascript/img/grey-40.png b/usr/local/www/themes/pfsense_ng/javascript/img/grey-40.png
new file mode 100644
index 0000000..0d4abf9
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/img/grey-40.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/javascript/img/submenu-off.gif b/usr/local/www/themes/pfsense_ng/javascript/img/submenu-off.gif
new file mode 100644
index 0000000..ddcdcae
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/img/submenu-off.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/javascript/img/submenu-on.gif b/usr/local/www/themes/pfsense_ng/javascript/img/submenu-on.gif
new file mode 100644
index 0000000..7a58077
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/img/submenu-on.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/javascript/img/white-90.png b/usr/local/www/themes/pfsense_ng/javascript/img/white-90.png
new file mode 100644
index 0000000..9ba5c83
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/img/white-90.png
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/javascript/img/x.gif b/usr/local/www/themes/pfsense_ng/javascript/img/x.gif
new file mode 100644
index 0000000..5bfd67a
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/img/x.gif
Binary files differ
diff --git a/usr/local/www/themes/pfsense_ng/javascript/niftyjsCode.js b/usr/local/www/themes/pfsense_ng/javascript/niftyjsCode.js
new file mode 100644
index 0000000..8e76d46
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/niftyjsCode.js
@@ -0,0 +1,174 @@
+function NiftyCheck(){
+if(!document.getElementById || !document.createElement)
+ return(false);
+isXHTML=/html\:/.test(document.getElementsByTagName('body')[0].nodeName);
+if(Array.prototype.push==null){Array.prototype.push=function(){
+ this[this.length]=arguments[0]; return(this.length);}}
+return(true);
+}
+
+function Rounded(selector,wich,bk,color,opt){
+var i,prefixt,prefixb,cn="r",ecolor="",edges=false,eclass="",b=false,t=false;
+
+if(color=="transparent"){
+ cn=cn+"x";
+ ecolor=bk;
+ bk="transparent";
+ }
+else if(opt && opt.indexOf("border")>=0){
+ var optar=opt.split(" ");
+ for(i=0;i<optar.length;i++)
+ if(optar[i].indexOf("#")>=0) ecolor=optar[i];
+ if(ecolor=="") ecolor="#666";
+ cn+="e";
+ edges=true;
+ }
+else if(opt && opt.indexOf("smooth")>=0){
+ cn+="a";
+ ecolor=Mix(bk,color);
+ }
+if(opt && opt.indexOf("small")>=0) cn+="s";
+prefixt=cn;
+prefixb=cn;
+if(wich.indexOf("all")>=0){t=true;b=true}
+else if(wich.indexOf("top")>=0) t="true";
+else if(wich.indexOf("tl")>=0){
+ t="true";
+ if(wich.indexOf("tr")<0) prefixt+="l";
+ }
+else if(wich.indexOf("tr")>=0){
+ t="true";
+ prefixt+="r";
+ }
+if(wich.indexOf("bottom")>=0) b=true;
+else if(wich.indexOf("bl")>=0){
+ b="true";
+ if(wich.indexOf("br")<0) prefixb+="l";
+ }
+else if(wich.indexOf("br")>=0){
+ b="true";
+ prefixb+="r";
+ }
+var v=getElementsBySelector(selector);
+var l=v.length;
+for(i=0;i<l;i++){
+ if(edges) AddBorder(v[i],ecolor);
+ if(t) AddTop(v[i],bk,color,ecolor,prefixt);
+ if(b) AddBottom(v[i],bk,color,ecolor,prefixb);
+ }
+}
+
+function AddBorder(el,bc){
+var i;
+if(!el.passed){
+ if(el.childNodes.length==1 && el.childNodes[0].nodeType==3){
+ var t=el.firstChild.nodeValue;
+ el.removeChild(el.lastChild);
+ var d=CreateEl("span");
+ d.style.display="block";
+ d.appendChild(document.createTextNode(t));
+ el.appendChild(d);
+ }
+ for(i=0;i<el.childNodes.length;i++){
+ if(el.childNodes[i].nodeType==1){
+ el.childNodes[i].style.borderLeft="1px solid "+bc;
+ el.childNodes[i].style.borderRight="1px solid "+bc;
+ }
+ }
+ }
+el.passed=true;
+}
+
+function AddTop(el,bk,color,bc,cn){
+var i,lim=4,d=CreateEl("b");
+
+if(cn.indexOf("s")>=0) lim=2;
+if(bc) d.className="artop";
+else d.className="rtop";
+d.style.backgroundColor=bk;
+for(i=1;i<=lim;i++){
+ var x=CreateEl("b");
+ x.className=cn + i;
+ x.style.backgroundColor=color;
+ if(bc) x.style.borderColor=bc;
+ d.appendChild(x);
+ }
+el.style.paddingTop=0;
+el.insertBefore(d,el.firstChild);
+}
+
+function AddBottom(el,bk,color,bc,cn){
+var i,lim=4,d=CreateEl("b");
+
+if(cn.indexOf("s")>=0) lim=2;
+if(bc) d.className="artop";
+else d.className="rtop";
+d.style.backgroundColor=bk;
+for(i=lim;i>0;i--){
+ var x=CreateEl("b");
+ x.className=cn + i;
+ x.style.backgroundColor=color;
+ if(bc) x.style.borderColor=bc;
+ d.appendChild(x);
+ }
+el.style.paddingBottom=0;
+el.appendChild(d);
+}
+
+function CreateEl(x){
+if(isXHTML) return(document.createElementNS('http://www.w3.org/1999/xhtml',x));
+else return(document.createElement(x));
+}
+
+function getElementsBySelector(selector){
+var i,selid="",selclass="",tag=selector,f,s=[],objlist=[];
+
+if(selector.indexOf(" ")>0){ //descendant selector like "tag#id tag"
+ s=selector.split(" ");
+ var fs=s[0].split("#");
+ if(fs.length==1) return(objlist);
+ f=document.getElementById(fs[1]);
+ if(f) return(f.getElementsByTagName(s[1]));
+ return(objlist);
+ }
+if(selector.indexOf("#")>0){ //id selector like "tag#id"
+ s=selector.split("#");
+ tag=s[0];
+ selid=s[1];
+ }
+if(selid!=""){
+ f=document.getElementById(selid);
+ if(f) objlist.push(f);
+ return(objlist);
+ }
+if(selector.indexOf(".")>0){ //class selector like "tag.class"
+ s=selector.split(".");
+ tag=s[0];
+ selclass=s[1];
+ }
+var v=document.getElementsByTagName(tag); // tag selector like "tag"
+if(selclass=="")
+ return(v);
+for(i=0;i<v.length;i++){
+ if(v[i].className.indexOf(selclass)>=0){
+ objlist.push(v[i]);
+ }
+ }
+return(objlist);
+}
+
+function Mix(c1,c2){
+var i,step1,step2,x,y,r=new Array(3);
+if(c1.length==4)step1=1;
+else step1=2;
+if(c2.length==4) step2=1;
+else step2=2;
+for(i=0;i<3;i++){
+ x=parseInt(c1.substr(1+step1*i,step1),16);
+ if(step1==1) x=16*x+x;
+ y=parseInt(c2.substr(1+step2*i,step2),16);
+ if(step2==1) y=16*y+y;
+ r[i]=Math.floor((x*50+y*50)/100);
+ }
+return("#"+r[0].toString(16)+r[1].toString(16)+r[2].toString(16));
+} \ No newline at end of file
diff --git a/usr/local/www/themes/pfsense_ng/javascript/transmenu-body.php b/usr/local/www/themes/pfsense_ng/javascript/transmenu-body.php
new file mode 100644
index 0000000..76b936f
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/transmenu-body.php
@@ -0,0 +1,51 @@
+<?php
+/* $Id: transmenu-body.php,v 1.1.2.1 2007/01/17 18:43:47 sullrich Exp $ */
+/* DISABLE_PHP_LINT_CHECKING */
+/* ========================================================================== */
+/*
+ transmenu.php
+ Copyright (C) 2006 Daniel S. Haischt <me@daniel.stefan.haischt.name>
+ All rights reserved.
+ */
+/* ========================================================================== */
+/*
+ Originally part of m0n0wall (http://m0n0.ch/wall)
+ Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+/* ========================================================================== */
+
+function nervecenterTransmenuGetBodyJS() {
+ global $rootmenu;
+
+ if (isset($rootmenu)) {
+ return $rootmenu->getMenuJScript();
+ } else if (empty($rootmenu)) {
+ return "alert('No rootmenu object found.');";
+ } else {
+ return "alert('No JavaScript attached to rootmenu object.');";
+ }
+}
+
+?>
diff --git a/usr/local/www/themes/pfsense_ng/javascript/transmenu-head.php b/usr/local/www/themes/pfsense_ng/javascript/transmenu-head.php
new file mode 100644
index 0000000..bd44dcc
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/transmenu-head.php
@@ -0,0 +1,85 @@
+<?php
+/* $Id: transmenu-head.php,v 1.2.2.1 2007/01/17 18:43:47 sullrich Exp $ */
+/* DISABLE_PHP_LINT_CHECKING */
+/* ========================================================================== */
+/*
+ transmenu.php
+ Copyright (C) 2006 Daniel S. Haischt <me@daniel.stefan.haischt.name>
+ All rights reserved.
+ */
+/* ========================================================================== */
+/*
+ Originally part of m0n0wall (http://m0n0.ch/wall)
+ Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+/* ========================================================================== */
+
+function nervecenterTransmenuGetHeadJS() {
+ global $g, $rootmenu;
+
+ $transmenu_stub =<<<EOD
+ function tmenuinit() {
+ //==========================================================================================
+ // if supported, initialize TransMenus
+ //==========================================================================================
+ // Check isSupported() so that menus aren't accidentally sent to non-supporting browsers.
+ // This is better than server-side checking because it will also catch browsers which would
+ // normally support the menus but have javascript disabled.
+ //
+ // If supported, call initialize() and then hook whatever image rollover code you need to do
+ // to the .onactivate and .ondeactivate events for each menu.
+ //==========================================================================================
+ if (TransMenu.isSupported()) {
+ TransMenu.initialize();
+
+ // hook all the highlight swapping of the main toolbar to menu activation/deactivation
+ // instead of simple rollover to get the effect where the button stays hightlit until
+ // the menu is closed.
+ @@CHILD_JSCRIPT@@
+ }
+ } // end function
+EOD;
+
+ if (empty($rootmenu)) {
+ require_once("menudef.inc");
+ }
+
+ $childJScript = "";
+ foreach ($rootmenu->getChildren() as $component) {
+ $id = "mnua_" . str_replace(" ", "", strtolower($component->getID()));
+
+ $childJScript .=<<<EOD
+ {$id}.onactivate = function() { document.getElementById("{$id}").className = "hover"; };
+ {$id}.ondeactivate = function() { document.getElementById("{$id}").className = ""; };
+
+EOD;
+ }
+
+ $transmenu_stub = basename($_SERVER['PHP_SELF']) != "wizard.php" ? str_replace("@@CHILD_JSCRIPT@@", $childJScript, $transmenu_stub) : "";
+
+ return $transmenu_stub;
+}
+
+?>
diff --git a/usr/local/www/themes/pfsense_ng/javascript/transmenu.org b/usr/local/www/themes/pfsense_ng/javascript/transmenu.org
new file mode 100644
index 0000000..6c9e353
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/transmenu.org
@@ -0,0 +1,785 @@
+/* =================================================================================================
+ * TransMenu
+ * March, 2003
+ *
+ * Customizable multi-level animated DHTML menus with transparency.
+ *
+ * Copyright 2003-2004, Aaron Boodman (www.youngpup.net)
+ * =================================================================================================
+ * "Can I use this?"
+ *
+ * Use of this library is governed by the Creative Commons Attribution 2.0 License. You can check it
+ * out at: http://creativecommons.org/licenses/by/2.0/
+ *
+ * Basically: You may copy, distribute, and eat this code as you wish. But you must give me credit
+ * for writing it. You may not misrepresent yourself as the author of this code.
+ * =================================================================================================
+ * "It's kinda hard to read, though"
+ *
+ * The uncompressed, commented version of this script can be found at:
+ * http://youngpup.net/projects/transMenus
+ * =================================================================================================
+ * updates:
+ * 04.19.04 fixed cascade problem with menus nested greater than two levels.
+ * 12.23.03 added hideCurrent for menu actuators with no menus. renamed to TransMenu.
+ * 04.18.03 fixed render bug in IE 5.0 Mac by removing that browser from compatibility table ;)
+ * also made gecko check a little more strict by specifying build no.
+ * ============================================================================================== */
+
+
+
+//==================================================================================================
+// Configuration properties
+//==================================================================================================
+TransMenu.spacerGif = "themes/nervecenter/javascript/img/x.gif"; // path to a transparent spacer gif
+TransMenu.dingbatOn = "themes/nervecenter/javascript/img/submenu-on.gif"; // path to the active sub menu dingbat
+TransMenu.dingbatOff = "themes/nervecenter/javascript/img/submenu-off.gif"; // path to the inactive sub menu dingbat
+TransMenu.dingbatSize = 14; // size of the dingbat (square shape assumed)
+TransMenu.menuPadding = 5; // padding between menu border and items grid
+TransMenu.itemPadding = 3; // additional padding around each item
+TransMenu.shadowSize = 2; // size of shadow under menu
+TransMenu.shadowOffset = 3; // distance shadow should be offset from leading edge
+TransMenu.shadowColor = "#FF0000"; // color of shadow (transparency is set in CSS)
+TransMenu.shadowPng = "themes/nervecenter/javascript/img/grey-40.png"; // a PNG graphic to serve as the shadow for mac IE5
+TransMenu.backgroundColor = "#990000"; // color of the background (transparency set in CSS)
+TransMenu.backgroundPng = "themes/nervecenter/javascript/img/white-90.png"; // a PNG graphic to server as the background for mac IE5
+TransMenu.hideDelay = 1000; // number of milliseconds to wait before hiding a menu
+TransMenu.slideTime = 400; // number of milliseconds it takes to open and close a menu
+
+
+//==================================================================================================
+// Internal use properties
+//==================================================================================================
+TransMenu.reference = {topLeft:1,topRight:2,bottomLeft:3,bottomRight:4};
+TransMenu.direction = {down:1,right:2};
+TransMenu.registry = [];
+TransMenu._maxZ = 100;
+
+
+
+//==================================================================================================
+// Static methods
+//==================================================================================================
+// supporting win ie5+, mac ie5.1+ and gecko >= mozilla 1.0
+TransMenu.isSupported = function() {
+ var ua = navigator.userAgent.toLowerCase();
+ var pf = navigator.platform.toLowerCase();
+ var an = navigator.appName;
+ var r = false;
+
+ if (ua.indexOf("gecko") > -1 && navigator.productSub >= 20020605) r = true; // gecko >= moz 1.0
+ else if (an == "Microsoft Internet Explorer") {
+ if (document.getElementById) { // ie5.1+ mac,win
+ if (pf.indexOf("mac") == 0) {
+ r = /msie (\d(.\d*)?)/.test(ua) && Number(RegExp.$1) >= 5.1;
+ }
+ else r = true;
+ }
+ }
+
+ return r;
+}
+
+// call this in onload once menus have been created
+TransMenu.initialize = function() {
+ for (var i = 0, menu = null; menu = this.registry[i]; i++) {
+ menu.initialize();
+ }
+}
+
+// call this in document body to write out menu html
+TransMenu.renderAll = function() {
+ var aMenuHtml = [];
+ for (var i = 0, menu = null; menu = this.registry[i]; i++) {
+ aMenuHtml[i] = menu.toString();
+ }
+ document.write(aMenuHtml.join(""));
+}
+
+//==================================================================================================
+// TransMenu constructor (only called internally)
+//==================================================================================================
+// oActuator : The thing that causes the menu to be shown when it is mousedover. Either a
+// reference to an HTML element, or a TransMenuItem from an existing menu.
+// iDirection : The direction to slide out. One of TransMenu.direction.
+// iLeft : Left pixel offset of menu from actuator
+// iTop : Top pixel offset of menu from actuator
+// iReferencePoint : Corner of actuator to measure from. One of TransMenu.referencePoint.
+// parentMenuSet : Menuset this menu will be added to.
+//==================================================================================================
+function TransMenu(oActuator, iDirection, iLeft, iTop, iReferencePoint, parentMenuSet) {
+ // public methods
+ this.addItem = addItem;
+ this.addMenu = addMenu;
+ this.toString = toString;
+ this.initialize = initialize;
+ this.isOpen = false;
+ this.show = show;
+ this.hide = hide;
+ this.items = [];
+
+ // events
+ this.onactivate = new Function(); // when the menu starts to slide open
+ this.ondeactivate = new Function(); // when the menu finishes sliding closed
+ this.onmouseover = new Function(); // when the menu has been moused over
+ this.onqueue = new Function(); // hack .. when the menu sets a timer to be closed a little while in the future
+ this.ondequeue = new Function();
+
+ // initialization
+ this.index = TransMenu.registry.length;
+ TransMenu.registry[this.index] = this;
+
+ var id = "TransMenu" + this.index;
+ var contentHeight = null;
+ var contentWidth = null;
+ var childMenuSet = null;
+ var animating = false;
+ var childMenus = [];
+ var slideAccel = -1;
+ var elmCache = null;
+ var ready = false;
+ var _this = this;
+ var a = null;
+
+ var pos = iDirection == TransMenu.direction.down ? "top" : "left";
+ var dim = null;
+
+ // private and public method implimentations
+ function addItem(sText, sUrl) {
+ var item = new TransMenuItem(sText, sUrl, this);
+ item._index = this.items.length;
+ this.items[item._index] = item;
+ }
+
+ function addMenu(oMenuItem) {
+ if (!oMenuItem.parentMenu == this) throw new Error("Cannot add a menu here");
+
+ if (childMenuSet == null) childMenuSet = new TransMenuSet(TransMenu.direction.right, -5, 2, TransMenu.reference.topRight);
+
+ var m = childMenuSet.addMenu(oMenuItem);
+
+ childMenus[oMenuItem._index] = m;
+ m.onmouseover = child_mouseover;
+ m.ondeactivate = child_deactivate;
+ m.onqueue = child_queue;
+ m.ondequeue = child_dequeue;
+
+ return m;
+ }
+
+ function initialize() {
+ initCache();
+ initEvents();
+ initSize();
+ ready = true;
+ }
+
+ function show() {
+ //dbg_dump("show");
+ if (ready) {
+ _this.isOpen = true;
+ animating = true;
+ setContainerPos();
+ elmCache["clip"].style.visibility = "visible";
+ elmCache["clip"].style.zIndex = TransMenu._maxZ++;
+ //dbg_dump("maxZ: " + TransMenu._maxZ);
+ slideStart();
+ _this.onactivate();
+ }
+ }
+
+ function hide() {
+ if (ready) {
+ _this.isOpen = false;
+ animating = true;
+
+ for (var i = 0, item = null; item = elmCache.item[i]; i++)
+ dehighlight(item);
+
+ if (childMenuSet) childMenuSet.hide();
+
+ slideStart();
+ _this.ondeactivate();
+ }
+ }
+
+ function setContainerPos() {
+ var sub = oActuator.constructor == TransMenuItem;
+ var act = sub ? oActuator.parentMenu.elmCache["item"][oActuator._index] : oActuator;
+ var el = act;
+
+ var x = 0;
+ var y = 0;
+
+
+ var minX = 0;
+ var maxX = (window.innerWidth ? window.innerWidth : document.body.clientWidth) - parseInt(elmCache["clip"].style.width);
+ var minY = 0;
+ var maxY = (window.innerHeight ? window.innerHeight : document.body.clientHeight) - parseInt(elmCache["clip"].style.height);
+
+ // add up all offsets... subtract any scroll offset
+ while (sub ? el.parentNode.className.indexOf("transMenu") == -1 : el.offsetParent) {
+ x += el.offsetLeft;
+ y += el.offsetTop;
+
+ if (el.scrollLeft) x -= el.scrollLeft;
+ if (el.scrollTop) y -= el.scrollTop;
+
+ el = el.offsetParent;
+ }
+
+ if (oActuator.constructor == TransMenuItem) {
+ x += parseInt(el.parentNode.style.left);
+ y += parseInt(el.parentNode.style.top);
+ }
+
+ switch (iReferencePoint) {
+ case TransMenu.reference.topLeft:
+ break;
+ case TransMenu.reference.topRight:
+ x += act.offsetWidth;
+ break;
+ case TransMenu.reference.bottomLeft:
+ y += act.offsetHeight;
+ break;
+ case TransMenu.reference.bottomRight:
+ x += act.offsetWidth;
+ y += act.offsetHeight;
+ break;
+ }
+
+ x += iLeft;
+ y += iTop;
+
+ x = Math.max(Math.min(x, maxX), minX);
+ y = Math.max(Math.min(y, maxY), minY);
+
+ elmCache["clip"].style.left = x + "px";
+ elmCache["clip"].style.top = y + "px";
+ }
+
+ function slideStart() {
+ var x0 = parseInt(elmCache["content"].style[pos]);
+ var x1 = _this.isOpen ? 0 : -dim;
+
+ if (a != null) a.stop();
+ a = new Accelimation(x0, x1, TransMenu.slideTime, slideAccel);
+
+ a.onframe = slideFrame;
+ a.onend = slideEnd;
+
+ a.start();
+ }
+
+ function slideFrame(x) {
+ elmCache["content"].style[pos] = x + "px";
+ }
+
+ function slideEnd() {
+ if (!_this.isOpen) elmCache["clip"].style.visibility = "hidden";
+ animating = false;
+ }
+
+ function initSize() {
+ // everything is based off the size of the items table...
+ var ow = elmCache["items"].offsetWidth;
+ var oh = elmCache["items"].offsetHeight;
+ var ua = navigator.userAgent.toLowerCase();
+
+ // clipping container should be ow/oh + the size of the shadow
+ elmCache["clip"].style.width = ow + TransMenu.shadowSize + 2 + "px";
+ elmCache["clip"].style.height = oh + TransMenu.shadowSize + 2 + "px";
+
+ // same with content...
+ elmCache["content"].style.width = ow + TransMenu.shadowSize + "px";
+ elmCache["content"].style.height = oh + TransMenu.shadowSize + "px";
+
+ contentHeight = oh + TransMenu.shadowSize;
+ contentWidth = ow + TransMenu.shadowSize;
+
+ dim = iDirection == TransMenu.direction.down ? contentHeight : contentWidth;
+
+ // set initially closed
+ elmCache["content"].style[pos] = -dim - TransMenu.shadowSize + "px";
+ elmCache["clip"].style.visibility = "hidden";
+
+ // if *not* mac/ie 5
+ if (ua.indexOf("mac") == -1 || ua.indexOf("gecko") > -1) {
+ // set background div to offset size
+ elmCache["background"].style.width = ow + "px";
+ elmCache["background"].style.height = oh + "px";
+ elmCache["background"].style.backgroundColor = TransMenu.backgroundColor;
+
+ // shadow left starts at offset left and is offsetHeight pixels high
+ elmCache["shadowRight"].style.left = ow + "px";
+ elmCache["shadowRight"].style.height = oh - (TransMenu.shadowOffset - TransMenu.shadowSize) + "px";
+ elmCache["shadowRight"].style.backgroundColor = TransMenu.shadowColor;
+
+ // shadow bottom starts at offset height and is offsetWidth - shadowOffset
+ // pixels wide (we don't want the bottom and right shadows to overlap or we
+ // get an extra bright bottom-right corner)
+ elmCache["shadowBottom"].style.top = oh + "px";
+ elmCache["shadowBottom"].style.width = ow - TransMenu.shadowOffset + "px";
+ elmCache["shadowBottom"].style.backgroundColor = TransMenu.shadowColor;
+ }
+ // mac ie is a little different because we use a PNG for the transparency
+ else {
+ // set background div to offset size
+ elmCache["background"].firstChild.src = TransMenu.backgroundPng;
+ elmCache["background"].firstChild.width = ow;
+ elmCache["background"].firstChild.height = oh;
+
+ // shadow left starts at offset left and is offsetHeight pixels high
+ elmCache["shadowRight"].firstChild.src = TransMenu.shadowPng;
+ elmCache["shadowRight"].style.left = ow + "px";
+ elmCache["shadowRight"].firstChild.width = TransMenu.shadowSize;
+ elmCache["shadowRight"].firstChild.height = oh - (TransMenu.shadowOffset - TransMenu.shadowSize);
+
+ // shadow bottom starts at offset height and is offsetWidth - shadowOffset
+ // pixels wide (we don't want the bottom and right shadows to overlap or we
+ // get an extra bright bottom-right corner)
+ elmCache["shadowBottom"].firstChild.src = TransMenu.shadowPng;
+ elmCache["shadowBottom"].style.top = oh + "px";
+ elmCache["shadowBottom"].firstChild.height = TransMenu.shadowSize;
+ elmCache["shadowBottom"].firstChild.width = ow - TransMenu.shadowOffset;
+ }
+ }
+
+ function initCache() {
+ var menu = document.getElementById(id);
+ var all = menu.all ? menu.all : menu.getElementsByTagName("*"); // IE/win doesn't support * syntax, but does have the document.all thing
+
+ elmCache = {};
+ elmCache["clip"] = menu;
+ elmCache["item"] = [];
+
+ for (var i = 0, elm = null; elm = all[i]; i++) {
+ switch (elm.className) {
+ case "items":
+ case "content":
+ case "background":
+ case "shadowRight":
+ case "shadowBottom":
+ elmCache[elm.className] = elm;
+ break;
+ case "item":
+ elm._index = elmCache["item"].length;
+ elmCache["item"][elm._index] = elm;
+ break;
+ }
+ }
+
+ // hack!
+ _this.elmCache = elmCache;
+ }
+
+ function initEvents() {
+ // hook item mouseover
+ for (var i = 0, item = null; item = elmCache.item[i]; i++) {
+ item.onmouseover = item_mouseover;
+ item.onmouseout = item_mouseout;
+ item.onclick = item_click;
+ }
+
+ // hook actuation
+ if (typeof oActuator.tagName != "undefined") {
+ oActuator.onmouseover = actuator_mouseover;
+ oActuator.onmouseout = actuator_mouseout;
+ }
+
+ // hook menu mouseover
+ elmCache["content"].onmouseover = content_mouseover;
+ elmCache["content"].onmouseout = content_mouseout;
+ }
+
+ function highlight(oRow) {
+ oRow.className = "item hover";
+ if (childMenus[oRow._index])
+ oRow.lastChild.firstChild.src = TransMenu.dingbatOn;
+ }
+
+ function dehighlight(oRow) {
+ oRow.className = "item";
+ if (childMenus[oRow._index])
+ oRow.lastChild.firstChild.src = TransMenu.dingbatOff;
+ }
+
+ function item_mouseover() {
+ if (!animating) {
+ highlight(this);
+
+ if (childMenus[this._index])
+ childMenuSet.showMenu(childMenus[this._index]);
+ else if (childMenuSet) childMenuSet.hide();
+ }
+ }
+
+ function item_mouseout() {
+ if (!animating) {
+ if (childMenus[this._index])
+ childMenuSet.hideMenu(childMenus[this._index]);
+ else // otherwise child_deactivate will do this
+ dehighlight(this);
+ }
+ }
+
+ function item_click() {
+ if (!animating) {
+ if (_this.items[this._index].url)
+ location.href = _this.items[this._index].url;
+ }
+ }
+
+ function actuator_mouseover() {
+ parentMenuSet.showMenu(_this);
+ }
+
+ function actuator_mouseout() {
+ parentMenuSet.hideMenu(_this);
+ }
+
+ function content_mouseover() {
+ if (!animating) {
+ parentMenuSet.showMenu(_this);
+ _this.onmouseover();
+ }
+ }
+
+ function content_mouseout() {
+ if (!animating) {
+ parentMenuSet.hideMenu(_this);
+ }
+ }
+
+ function child_mouseover() {
+ if (!animating) {
+ parentMenuSet.showMenu(_this);
+ }
+ }
+
+ function child_deactivate() {
+ for (var i = 0; i < childMenus.length; i++) {
+ if (childMenus[i] == this) {
+ dehighlight(elmCache["item"][i]);
+ break;
+ }
+ }
+ }
+
+ function child_queue() {
+ parentMenuSet.hideMenu(_this);
+ }
+
+ function child_dequeue() {
+ parentMenuSet.showMenu(_this);
+ }
+
+ function toString() {
+ var aHtml = [];
+ var sClassName = "transMenu" + (oActuator.constructor != TransMenuItem ? " top" : "");
+
+ for (var i = 0, item = null; item = this.items[i]; i++) {
+ aHtml[i] = item.toString(childMenus[i]);
+ }
+
+ return '<div id="' + id + '" class="' + sClassName + '">' +
+ '<div class="content"><table class="items" cellpadding="0" cellspacing="0" border="0">' +
+ '<tr><td colspan="2"><img src="' + TransMenu.spacerGif + '" width="1" height="' + TransMenu.menuPadding + '"></td></tr>' +
+ aHtml.join('') +
+ '<tr><td colspan="2"><img src="' + TransMenu.spacerGif + '" width="1" height="' + TransMenu.menuPadding + '"></td></tr></table>' +
+ '<div class="shadowBottom"><img src="' + TransMenu.spacerGif + '" width="1" height="1"></div>' +
+ '<div class="shadowRight"><img src="' + TransMenu.spacerGif + '" width="1" height="1"></div>' +
+ '<div class="background"><img src="' + TransMenu.spacerGif + '" width="1" height="1"></div>' +
+ '</div></div>';
+ }
+}
+
+
+//==================================================================================================
+// TransMenuSet
+//==================================================================================================
+// iDirection : The direction to slide out. One of TransMenu.direction.
+// iLeft : Left pixel offset of menus from actuator
+// iTop : Top pixel offset of menus from actuator
+// iReferencePoint : Corner of actuator to measure from. One of TransMenu.referencePoint.
+//==================================================================================================
+TransMenuSet.registry = [];
+
+function TransMenuSet(iDirection, iLeft, iTop, iReferencePoint) {
+ // public methods
+ this.addMenu = addMenu;
+ this.showMenu = showMenu;
+ this.hideMenu = hideMenu;
+ this.hide = hide;
+ this.hideCurrent = hideCurrent;
+
+ // initialization
+ var menus = [];
+ var _this = this;
+ var current = null;
+
+ this.index = TransMenuSet.registry.length;
+ TransMenuSet.registry[this.index] = this;
+
+ // method implimentations...
+ function addMenu(oActuator) {
+ var m = new TransMenu(oActuator, iDirection, iLeft, iTop, iReferencePoint, this);
+ menus[menus.length] = m;
+ return m;
+ }
+
+ function showMenu(oMenu) {
+ if (oMenu != current) {
+ // close currently open menu
+ if (current != null) hide(current);
+
+ // set current menu to this one
+ current = oMenu;
+
+ // if this menu is closed, open it
+ oMenu.show();
+ }
+ else {
+ // hide pending calls to close this menu
+ cancelHide(oMenu);
+ }
+ }
+
+ function hideMenu(oMenu) {
+ //dbg_dump("hideMenu a " + oMenu.index);
+ if (current == oMenu && oMenu.isOpen) {
+ //dbg_dump("hideMenu b " + oMenu.index);
+ if (!oMenu.hideTimer) scheduleHide(oMenu);
+ }
+ }
+
+ function scheduleHide(oMenu) {
+ //dbg_dump("scheduleHide " + oMenu.index);
+ oMenu.onqueue();
+ oMenu.hideTimer = window.setTimeout("TransMenuSet.registry[" + _this.index + "].hide(TransMenu.registry[" + oMenu.index + "])", TransMenu.hideDelay);
+ }
+
+ function cancelHide(oMenu) {
+ //dbg_dump("cancelHide " + oMenu.index);
+ if (oMenu.hideTimer) {
+ oMenu.ondequeue();
+ window.clearTimeout(oMenu.hideTimer);
+ oMenu.hideTimer = null;
+ }
+ }
+
+ function hide(oMenu) {
+ if (!oMenu && current) oMenu = current;
+
+ if (oMenu && current == oMenu && oMenu.isOpen) {
+ hideCurrent();
+ }
+ }
+
+ function hideCurrent() {
+ if (null != current) {
+ cancelHide(current);
+ current.hideTimer = null;
+ current.hide();
+ current = null;
+ }
+ }
+}
+
+//==================================================================================================
+// TransMenuItem (internal)
+// represents an item in a dropdown
+//==================================================================================================
+// sText : The item display text
+// sUrl : URL to load when the item is clicked
+// oParent : Menu this item is a part of
+//==================================================================================================
+function TransMenuItem(sText, sUrl, oParent) {
+ this.toString = toString;
+ this.text = sText;
+ this.url = sUrl;
+ this.parentMenu = oParent;
+
+ function toString(bDingbat) {
+ var sDingbat = bDingbat ? TransMenu.dingbatOff : TransMenu.spacerGif;
+ var iEdgePadding = TransMenu.itemPadding + TransMenu.menuPadding;
+ var sPaddingLeft = "padding:" + TransMenu.itemPadding + "px; padding-left:" + iEdgePadding + "px;"
+ var sPaddingRight = "padding:" + TransMenu.itemPadding + "px; padding-right:" + iEdgePadding + "px;"
+
+ return '<tr class="item"><td nowrap style="' + sPaddingLeft + '">' +
+ sText + '</td><td width="14" style="' + sPaddingRight + '">' +
+ '<img src="' + sDingbat + '" width="14" height="14"></td></tr>';
+ }
+}
+
+
+
+
+
+
+//=====================================================================
+// Accel[erated] [an]imation object
+// change a property of an object over time in an accelerated fashion
+//=====================================================================
+// obj : reference to the object whose property you'd like to animate
+// prop : property you would like to change eg: "left"
+// to : final value of prop
+// time : time the animation should take to run
+// zip : optional. specify the zippiness of the acceleration. pick a
+// number between -1 and 1 where -1 is full decelerated, 1 is
+// full accelerated, and 0 is linear (no acceleration). default
+// is 0.
+// unit : optional. specify the units for use with prop. default is
+// "px".
+//=====================================================================
+// bezier functions lifted from the lib_animation.js file in the
+// 13th Parallel API. www.13thparallel.org
+//=====================================================================
+
+function Accelimation(from, to, time, zip) {
+ if (typeof zip == "undefined") zip = 0;
+ if (typeof unit == "undefined") unit = "px";
+
+ this.x0 = from;
+ this.x1 = to;
+ this.dt = time;
+ this.zip = -zip;
+ this.unit = unit;
+ this.timer = null;
+ this.onend = new Function();
+ this.onframe = new Function();
+}
+
+
+
+//=====================================================================
+// public methods
+//=====================================================================
+
+// after you create an accelimation, you call this to start it-a runnin'
+Accelimation.prototype.start = function() {
+ this.t0 = new Date().getTime();
+ this.t1 = this.t0 + this.dt;
+ var dx = this.x1 - this.x0;
+ this.c1 = this.x0 + ((1 + this.zip) * dx / 3);
+ this.c2 = this.x0 + ((2 + this.zip) * dx / 3);
+ Accelimation._add(this);
+}
+
+// and if you need to stop it early for some reason...
+Accelimation.prototype.stop = function() {
+ Accelimation._remove(this);
+}
+
+
+
+//=====================================================================
+// private methods
+//=====================================================================
+
+// paints one frame. gets called by Accelimation._paintAll.
+Accelimation.prototype._paint = function(time) {
+ if (time < this.t1) {
+ var elapsed = time - this.t0;
+ this.onframe(Accelimation._getBezier(elapsed/this.dt,this.x0,this.x1,this.c1,this.c2));
+ }
+ else this._end();
+}
+
+// ends the animation
+Accelimation.prototype._end = function() {
+ Accelimation._remove(this);
+ this.onframe(this.x1);
+ this.onend();
+}
+
+
+
+
+//=====================================================================
+// static methods (all private)
+//=====================================================================
+
+// add a function to the list of ones to call periodically
+Accelimation._add = function(o) {
+ var index = this.instances.length;
+ this.instances[index] = o;
+ // if this is the first one, start the engine
+ if (this.instances.length == 1) {
+ this.timerID = window.setInterval("Accelimation._paintAll()", this.targetRes);
+ }
+}
+
+// remove a function from the list
+Accelimation._remove = function(o) {
+ for (var i = 0; i < this.instances.length; i++) {
+ if (o == this.instances[i]) {
+ this.instances = this.instances.slice(0,i).concat( this.instances.slice(i+1) );
+ break;
+ }
+ }
+ // if that was the last one, stop the engine
+ if (this.instances.length == 0) {
+ window.clearInterval(this.timerID);
+ this.timerID = null;
+ }
+}
+
+// "engine" - call each function in the list every so often
+Accelimation._paintAll = function() {
+ var now = new Date().getTime();
+ for (var i = 0; i < this.instances.length; i++) {
+ this.instances[i]._paint(now);
+ }
+}
+
+
+// Bezier functions:
+Accelimation._B1 = function(t) { return t*t*t }
+Accelimation._B2 = function(t) { return 3*t*t*(1-t) }
+Accelimation._B3 = function(t) { return 3*t*(1-t)*(1-t) }
+Accelimation._B4 = function(t) { return (1-t)*(1-t)*(1-t) }
+
+
+//Finds the coordinates of a point at a certain stage through a bezier curve
+Accelimation._getBezier = function(percent,startPos,endPos,control1,control2) {
+ return endPos * this._B1(percent) + control2 * this._B2(percent) + control1 * this._B3(percent) + startPos * this._B4(percent);
+}
+
+
+//=====================================================================
+// static properties
+//=====================================================================
+
+Accelimation.instances = [];
+Accelimation.targetRes = 10;
+Accelimation.timerID = null;
+
+
+//=====================================================================
+// IE win memory cleanup
+//=====================================================================
+
+if (window.attachEvent) {
+ var cearElementProps = [
+ 'data',
+ 'onmouseover',
+ 'onmouseout',
+ 'onmousedown',
+ 'onmouseup',
+ 'ondblclick',
+ 'onclick',
+ 'onselectstart',
+ 'oncontextmenu'
+ ];
+
+ window.attachEvent("onunload", function() {
+ var el;
+ for(var d = document.all.length;d--;){
+ el = document.all[d];
+ for(var c = cearElementProps.length;c--;){
+ el[cearElementProps[c]] = null;
+ }
+ }
+ });
+} \ No newline at end of file
diff --git a/usr/local/www/themes/pfsense_ng/javascript/transmenuC.js b/usr/local/www/themes/pfsense_ng/javascript/transmenuC.js
new file mode 100644
index 0000000..88626c7
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/javascript/transmenuC.js
@@ -0,0 +1,86 @@
+/* =================================================================================================
+ * TransMenu
+ * March, 2003
+ * Customizable multi-level animated DHTML menus with transparency.
+ * =================================================================================================
+ * "Can I use this?"
+ *
+ * Use of this library is governed by the Creative Commons Attribution 2.0 License. You can check it
+ * out at: http://creativecommons.org/licenses/by/2.0/
+ *
+ * Basically: You may copy, distribute, and eat this code as you wish. But you must give me credit
+ * for writing it. You may not misrepresent yourself as the author of this code.
+ * =================================================================================================
+ * "It's kinda hard to read, though"
+ *
+ * The uncompressed, commented version of this script can be found at:
+ * http://youngpup.net/projects/transMenus
+ * ============================================================================================== */
+TransMenu.spacerGif="themes/nervecenter/javascript/img/x.gif";TransMenu.dingbatOn="themes/nervecenter/javascript/img/submenu-on.gif";TransMenu.dingbatOff="themes/nervecenter/javascript/img/submenu-off.gif";TransMenu.dingbatSize=14;TransMenu.menuPadding=5;TransMenu.itemPadding=3;TransMenu.shadowSize=2;TransMenu.shadowOffset=3;TransMenu.shadowColor="#000000";TransMenu.shadowPng="themes/nervecenter/javascript/img/grey-40.png";TransMenu.backgroundColor="#990000";TransMenu.backgroundPng="themes/nervecenter/javascript/img/white-90.png";TransMenu.hideDelay=1000;TransMenu.slideTime=400;TransMenu.reference={topLeft:1,topRight:2,bottomLeft:3,bottomRight:4};TransMenu.direction={down:1,right:2};TransMenu.registry=[];TransMenu._maxZ=100;TransMenu.isSupported=function(){var ua=navigator.userAgent.toLowerCase();var pf=navigator.platform.toLowerCase();var an=navigator.appName;var r=false;if(ua.indexOf("gecko")>-1&&navigator.productSub>=20020605)r=true;else if(an=="Microsoft Internet Explorer"){if(document.getElementById){if(pf.indexOf("mac")==0){r=/msie (\d(.\d*)?)/.test(ua)&&Number(RegExp.$1)>=5.1;}
+else r=true;}}
+return r;}
+TransMenu.initialize=function(){for(var i=0,menu=null;menu=this.registry[i];i++){menu.initialize();}}
+TransMenu.renderAll=function(){var aMenuHtml=[];for(var i=0,menu=null;menu=this.registry[i];i++){aMenuHtml[i]=menu.toString();}
+document.write(aMenuHtml.join(""));}
+function TransMenu(oActuator,iDirection,iLeft,iTop,iReferencePoint,parentMenuSet){this.addItem=addItem;this.addMenu=addMenu;this.toString=toString;this.initialize=initialize;this.isOpen=false;this.show=show;this.hide=hide;this.items=[];this.onactivate=new Function();this.ondeactivate=new Function();this.onmouseover=new Function();this.onqueue=new Function();this.ondequeue=new Function();this.index=TransMenu.registry.length;TransMenu.registry[this.index]=this;var id="TransMenu"+this.index;var contentHeight=null;var contentWidth=null;var childMenuSet=null;var animating=false;var childMenus=[];var slideAccel=-1;var elmCache=null;var ready=false;var _this=this;var a=null;var pos=iDirection==TransMenu.direction.down?"top":"left";var dim=null;function addItem(sText,sUrl){var item=new TransMenuItem(sText,sUrl,this);item._index=this.items.length;this.items[item._index]=item;}
+function addMenu(oMenuItem){if(!oMenuItem.parentMenu==this)throw new Error("Cannot add a menu here");if(childMenuSet==null)childMenuSet=new TransMenuSet(TransMenu.direction.right,-5,2,TransMenu.reference.topRight);var m=childMenuSet.addMenu(oMenuItem);childMenus[oMenuItem._index]=m;m.onmouseover=child_mouseover;m.ondeactivate=child_deactivate;m.onqueue=child_queue;m.ondequeue=child_dequeue;return m;}
+function initialize(){initCache();initEvents();initSize();ready=true;}
+function show(){if(ready){_this.isOpen=true;animating=true;setContainerPos();elmCache["clip"].style.visibility="visible";elmCache["clip"].style.zIndex=TransMenu._maxZ++;slideStart();_this.onactivate();}}
+function hide(){if(ready){_this.isOpen=false;animating=true;for(var i=0,item=null;item=elmCache.item[i];i++)dehighlight(item);if(childMenuSet)childMenuSet.hide();slideStart();_this.ondeactivate();}}
+function setContainerPos(){var sub=oActuator.constructor==TransMenuItem;var act=sub?oActuator.parentMenu.elmCache["item"][oActuator._index]:oActuator;var el=act;var x=0;var y=0;var minX=0;var maxX=(window.innerWidth?window.innerWidth:document.body.clientWidth)-parseInt(elmCache["clip"].style.width);var minY=0;var maxY=(window.innerHeight?window.innerHeight:document.body.clientHeight)-parseInt(elmCache["clip"].style.height);while(sub?el.parentNode.className.indexOf("transMenu")==-1:el.offsetParent){x+=el.offsetLeft;y+=el.offsetTop;if(el.scrollLeft)x-=el.scrollLeft;if(el.scrollTop)y-=el.scrollTop;el=el.offsetParent;}
+if(oActuator.constructor==TransMenuItem){x+=parseInt(el.parentNode.style.left);y+=parseInt(el.parentNode.style.top);}
+switch(iReferencePoint){case TransMenu.reference.topLeft:break;case TransMenu.reference.topRight:x+=act.offsetWidth;break;case TransMenu.reference.bottomLeft:y+=act.offsetHeight;break;case TransMenu.reference.bottomRight:x+=act.offsetWidth;y+=act.offsetHeight;break;}
+x+=iLeft;y+=iTop;x=Math.max(Math.min(x,maxX),minX);y=Math.max(Math.min(y,maxY),minY);elmCache["clip"].style.left=x+"px";elmCache["clip"].style.top=y+"px";}
+function slideStart(){var x0=parseInt(elmCache["content"].style[pos]);var x1=_this.isOpen?0:-dim;if(a!=null)a.stop();a=new Accelimation(x0,x1,TransMenu.slideTime,slideAccel);a.onframe=slideFrame;a.onend=slideEnd;a.start();}
+function slideFrame(x){elmCache["content"].style[pos]=x+"px";}
+function slideEnd(){if(!_this.isOpen)elmCache["clip"].style.visibility="hidden";animating=false;}
+function initSize(){var ow=elmCache["items"].offsetWidth;var oh=elmCache["items"].offsetHeight;var ua=navigator.userAgent.toLowerCase();elmCache["clip"].style.width=ow+TransMenu.shadowSize+2+"px";elmCache["clip"].style.height=oh+TransMenu.shadowSize+2+"px";elmCache["content"].style.width=ow+TransMenu.shadowSize+"px";elmCache["content"].style.height=oh+TransMenu.shadowSize+"px";contentHeight=oh+TransMenu.shadowSize;contentWidth=ow+TransMenu.shadowSize;dim=iDirection==TransMenu.direction.down?contentHeight:contentWidth;elmCache["content"].style[pos]=-dim-TransMenu.shadowSize+"px";elmCache["clip"].style.visibility="hidden";if(ua.indexOf("mac")==-1||ua.indexOf("gecko")>-1){elmCache["background"].style.width=ow+"px";elmCache["background"].style.height=oh+"px";elmCache["background"].style.backgroundColor=TransMenu.backgroundColor;elmCache["shadowRight"].style.left=ow+"px";elmCache["shadowRight"].style.height=oh-(TransMenu.shadowOffset-TransMenu.shadowSize)+"px";elmCache["shadowRight"].style.backgroundColor=TransMenu.shadowColor;elmCache["shadowBottom"].style.top=oh+"px";elmCache["shadowBottom"].style.width=ow-TransMenu.shadowOffset+"px";elmCache["shadowBottom"].style.backgroundColor=TransMenu.shadowColor;}
+else{elmCache["background"].firstChild.src=TransMenu.backgroundPng;elmCache["background"].firstChild.width=ow;elmCache["background"].firstChild.height=oh;elmCache["shadowRight"].firstChild.src=TransMenu.shadowPng;elmCache["shadowRight"].style.left=ow+"px";elmCache["shadowRight"].firstChild.width=TransMenu.shadowSize;elmCache["shadowRight"].firstChild.height=oh-(TransMenu.shadowOffset-TransMenu.shadowSize);elmCache["shadowBottom"].firstChild.src=TransMenu.shadowPng;elmCache["shadowBottom"].style.top=oh+"px";elmCache["shadowBottom"].firstChild.height=TransMenu.shadowSize;elmCache["shadowBottom"].firstChild.width=ow-TransMenu.shadowOffset;}}
+function initCache(){var menu=document.getElementById(id);var all=menu.all?menu.all:menu.getElementsByTagName("*");elmCache={};elmCache["clip"]=menu;elmCache["item"]=[];for(var i=0,elm=null;elm=all[i];i++){switch(elm.className){case"items":case"content":case"background":case"shadowRight":case"shadowBottom":elmCache[elm.className]=elm;break;case"item":elm._index=elmCache["item"].length;elmCache["item"][elm._index]=elm;break;}}
+_this.elmCache=elmCache;}
+function initEvents(){for(var i=0,item=null;item=elmCache.item[i];i++){item.onmouseover=item_mouseover;item.onmouseout=item_mouseout;item.onclick=item_click;}
+if(typeof oActuator.tagName!="undefined"){oActuator.onmouseover=actuator_mouseover;oActuator.onmouseout=actuator_mouseout;}
+elmCache["content"].onmouseover=content_mouseover;elmCache["content"].onmouseout=content_mouseout;}
+function highlight(oRow){oRow.className="item hover";if(childMenus[oRow._index])oRow.lastChild.firstChild.src=TransMenu.dingbatOn;}
+function dehighlight(oRow){oRow.className="item";if(childMenus[oRow._index])oRow.lastChild.firstChild.src=TransMenu.dingbatOff;}
+function item_mouseover(){if(!animating){highlight(this);if(childMenus[this._index])childMenuSet.showMenu(childMenus[this._index]);else if(childMenuSet)childMenuSet.hide();}}
+function item_mouseout(){if(!animating){if(childMenus[this._index])childMenuSet.hideMenu(childMenus[this._index]);else dehighlight(this);}}
+function item_click(){if(!animating){if(_this.items[this._index].url)location.href=_this.items[this._index].url;}}
+function actuator_mouseover(){parentMenuSet.showMenu(_this);}
+function actuator_mouseout(){parentMenuSet.hideMenu(_this);}
+function content_mouseover(){if(!animating){parentMenuSet.showMenu(_this);_this.onmouseover();}}
+function content_mouseout(){if(!animating){parentMenuSet.hideMenu(_this);}}
+function child_mouseover(){if(!animating){parentMenuSet.showMenu(_this);}}
+function child_deactivate(){for(var i=0;i<childMenus.length;i++){if(childMenus[i]==this){dehighlight(elmCache["item"][i]);break;}}}
+function child_queue(){parentMenuSet.hideMenu(_this);}
+function child_dequeue(){parentMenuSet.showMenu(_this);}
+function toString(){var aHtml=[];var sClassName="transMenu"+(oActuator.constructor!=TransMenuItem?" top":"");for(var i=0,item=null;item=this.items[i];i++){aHtml[i]=item.toString(childMenus[i]);}
+return'<div id="'+id+'" class="'+sClassName+'">'+'<div class="content"><table class="items" cellpadding="0" cellspacing="0" border="0">'+'<tr><td colspan="2"><img src="'+TransMenu.spacerGif+'" width="1" height="'+TransMenu.menuPadding+'"></td></tr>'+aHtml.join('')+'<tr><td colspan="2"><img src="'+TransMenu.spacerGif+'" width="1" height="'+TransMenu.menuPadding+'"></td></tr></table>'+'<div class="shadowBottom"><img src="'+TransMenu.spacerGif+'" width="1" height="1"></div>'+'<div class="shadowRight"><img src="'+TransMenu.spacerGif+'" width="1" height="1"></div>'+'<div class="background"><img src="'+TransMenu.spacerGif+'" width="1" height="1"></div>'+'</div></div>';}}
+TransMenuSet.registry=[];function TransMenuSet(iDirection,iLeft,iTop,iReferencePoint){this.addMenu=addMenu;this.showMenu=showMenu;this.hideMenu=hideMenu;this.hide=hide;this.hideCurrent=hideCurrent;var menus=[];var _this=this;var current=null;this.index=TransMenuSet.registry.length;TransMenuSet.registry[this.index]=this;function addMenu(oActuator){var m=new TransMenu(oActuator,iDirection,iLeft,iTop,iReferencePoint,this);menus[menus.length]=m;return m;}
+function showMenu(oMenu){if(oMenu!=current){if(current!=null)hide(current);current=oMenu;oMenu.show();}
+else{cancelHide(oMenu);}}
+function hideMenu(oMenu){if(current==oMenu&&oMenu.isOpen){if(!oMenu.hideTimer)scheduleHide(oMenu);}}
+function scheduleHide(oMenu){oMenu.onqueue();oMenu.hideTimer=window.setTimeout("TransMenuSet.registry["+_this.index+"].hide(TransMenu.registry["+oMenu.index+"])",TransMenu.hideDelay);}
+function cancelHide(oMenu){if(oMenu.hideTimer){oMenu.ondequeue();window.clearTimeout(oMenu.hideTimer);oMenu.hideTimer=null;}}
+function hide(oMenu){if(!oMenu&&current)oMenu=current;if(oMenu&&current==oMenu&&oMenu.isOpen){hideCurrent();}}
+function hideCurrent(){if (null != current){cancelHide(current);current.hideTimer=null;current.hide();current=null;}}}
+function TransMenuItem(sText,sUrl,oParent){this.toString=toString;this.text=sText;this.url=sUrl;this.parentMenu=oParent;function toString(bDingbat){var sDingbat=bDingbat?TransMenu.dingbatOff:TransMenu.spacerGif;var iEdgePadding=TransMenu.itemPadding+TransMenu.menuPadding;var sPaddingLeft="padding:"+TransMenu.itemPadding+"px; padding-left:"+iEdgePadding+"px;"
+var sPaddingRight="padding:"+TransMenu.itemPadding+"px; padding-right:"+iEdgePadding+"px;"
+return'<tr class="item"><td nowrap style="'+sPaddingLeft+'">'+sText+'</td><td width="14" style="'+sPaddingRight+'">'+'<img src="'+sDingbat+'" width="14" height="14"></td></tr>';}}
+function Accelimation(from,to,time,zip){if(typeof zip=="undefined")zip=0;if(typeof unit=="undefined")unit="px";this.x0=from;this.x1=to;this.dt=time;this.zip=-zip;this.unit=unit;this.timer=null;this.onend=new Function();this.onframe=new Function();}
+Accelimation.prototype.start=function(){this.t0=new Date().getTime();this.t1=this.t0+this.dt;var dx=this.x1-this.x0;this.c1=this.x0+((1+this.zip)*dx/3);this.c2=this.x0+((2+this.zip)*dx/3);Accelimation._add(this);}
+Accelimation.prototype.stop=function(){Accelimation._remove(this);}
+Accelimation.prototype._paint=function(time){if(time<this.t1){var elapsed=time-this.t0;this.onframe(Accelimation._getBezier(elapsed/this.dt,this.x0,this.x1,this.c1,this.c2));}
+else this._end();}
+Accelimation.prototype._end=function(){Accelimation._remove(this);this.onframe(this.x1);this.onend();}
+Accelimation._add=function(o){var index=this.instances.length;this.instances[index]=o;if(this.instances.length==1){this.timerID=window.setInterval("Accelimation._paintAll()",this.targetRes);}}
+Accelimation._remove=function(o){for(var i=0;i<this.instances.length;i++){if(o==this.instances[i]){this.instances=this.instances.slice(0,i).concat(this.instances.slice(i+1));break;}}
+if(this.instances.length==0){window.clearInterval(this.timerID);this.timerID=null;}}
+Accelimation._paintAll=function(){var now=new Date().getTime();for(var i=0;i<this.instances.length;i++){this.instances[i]._paint(now);}}
+Accelimation._B1=function(t){return t*t*t}
+Accelimation._B2=function(t){return 3*t*t*(1-t)}
+Accelimation._B3=function(t){return 3*t*(1-t)*(1-t)}
+Accelimation._B4=function(t){return(1-t)*(1-t)*(1-t)}
+Accelimation._getBezier=function(percent,startPos,endPos,control1,control2){return endPos*this._B1(percent)+control2*this._B2(percent)+control1*this._B3(percent)+startPos*this._B4(percent);}
+Accelimation.instances=[];Accelimation.targetRes=10;Accelimation.timerID=null;
+if(window.attachEvent){var cearElementProps=['data','onmouseover','onmouseout','onmousedown','onmouseup','ondblclick','onclick','onselectstart','oncontextmenu'];window.attachEvent("onunload", function() {var el;for(var d=document.all.length;d--;){el=document.all[d];for(var c=cearElementProps.length;c--;){el[cearElementProps[c]] = null;}}});} \ No newline at end of file
diff --git a/usr/local/www/themes/pfsense_ng/jsevents/body.def b/usr/local/www/themes/pfsense_ng/jsevents/body.def
new file mode 100644
index 0000000..df461e2
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/jsevents/body.def
@@ -0,0 +1,7 @@
+# Format: <event_name>=<jsfunction_name> !<forbidden_page_0>,<forbidden_page_1>...<forbidden_page_n>
+# where: forbidden pages are those pages that should *not* use
+# the particular JavaScript function within the JS event
+# specified below.
+# $Id: body.def,v 1.2.2.1 2007/01/17 18:43:52 sullrich Exp $
+#
+onload=tmenuinit(); !wizard.php \ No newline at end of file
diff --git a/usr/local/www/themes/pfsense_ng/loader.js b/usr/local/www/themes/pfsense_ng/loader.js
new file mode 100644
index 0000000..5eb41e1
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/loader.js
@@ -0,0 +1,29 @@
+<!--
+var browser = '';
+var version = '';
+var entrance = '';
+var cond = '';
+
+// BROWSER?
+if (browser == '') {
+ if (navigator.appName.indexOf('Microsoft') != -1)
+ browser = 'IE'
+ else if (navigator.appName.indexOf('Netscape') != -1)
+ browser = 'Netscape'
+ else
+ browser = 'IE';
+}
+if (version == '') {
+ version= navigator.appVersion;
+ paren = version.indexOf('(');
+ whole_version = navigator.appVersion.substring(0,paren-1);
+ version = parseInt(whole_version);
+}
+
+if (browser == 'IE' && version < 7) {
+ document.write('<script type="text/javascript" src="/themes/nervecenter/javascript/ie7/ie7-standard-p.js"></scr'+'ipt>');
+}
+
+document.write('<script type="text/javascript" src="/themes/nervecenter/javascript/niftyjsCode.js"></scr'+'ipt>');
+
+// -->
diff --git a/usr/local/www/themes/pfsense_ng/login.css b/usr/local/www/themes/pfsense_ng/login.css
new file mode 100644
index 0000000..919f405
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/login.css
@@ -0,0 +1,1099 @@
+/* Element CSS Definitions */
+html, body, td, th, input, select {
+ font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
+ font-size: 0.9em;
+
+}
+
+/* please adjust the bgcolor to be used together with niftycorners! */
+.rtop, .artop {
+ background-color: #999999;
+}
+
+div.GraphLink {
+ position: relative;
+}
+
+span.GraphLinkLine {
+ position: absolute;
+ background-color: #990000;
+ width: 100%;
+}
+
+/* DOM Tooltip CSS definitions */
+div.niceTitle
+{
+ background-color: #333333;
+ color: #FFFFFF;
+ border-bottom: 1px dotted #FFFFFF;
+ font-weight: bold;
+ font-size: 13px;
+ font-family: "Trebuchet MS", sans-serif;
+ width: 250px;
+ left: 0;
+ top: 0;
+ padding: 4px;
+ position: absolute;
+ text-align: left;
+ z-index: 20;
+ -moz-border-radius: 0 10px 10px 10px;
+ filter: progid:DXImageTransform.Microsoft.Alpha(opacity=87);
+ -moz-opacity: .87;
+ -khtml-opacity: .87;
+ opacity: .87;
+}
+div.niceTitle h1
+{
+ background: #990000;
+ border-bottom: 1px dotted #FFFFFF;
+ font-weight: bold;
+ font-size: 13px;
+ font-family: "Trebuchet MS", sans-serif;
+ margin: 3px;
+ padding-top: 1px;
+ padding-bottom: 1px;
+ padding-left: 3px;
+ text-align: left;
+ left: 0;
+ top: 0;
+ -moz-border-radius: 0 8px 0 0;
+ -moz-opacity: 1;
+}
+div.niceTitle .contents
+{
+ margin: 0;
+ padding: 0 3px;
+ filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);
+ -moz-opacity: 1;
+ -khtml-opacity: 1;
+ opacity: 1;
+}
+div.niceTitle p
+{
+ background: #FFFFFF;
+ border: 1px solid #990000;
+ color: #000000;
+ font-size: 9px;
+ padding: 5px;
+ margin: 3px;
+ text-align: left;
+ -moz-opacity: 1;
+ -moz-border-radius: 0 0 8px 8px;
+}
+
+body {
+ margin: 0px auto;
+ background-position : center 0px;
+ background-color: #999999;
+}
+
+form {
+ margin: 0px;
+}
+a {
+ text-decoration: none;
+}
+form input {
+ font-size: 1.1em;
+}
+
+iframe {
+ z-index: 1;
+ border: 1px dashed #990000;
+}
+.iframe {
+ background-color: #FFFFFF;
+}
+
+/* ID Based CSS Definitions */
+#wrapper {
+ width: 810px;
+ margin: 0px auto;
+}
+
+#header {
+ background: url('images/header.png') no-repeat;
+ background-position: 0px;
+ height: 102px;
+ width: 810px;
+ margin-bottom: 5px;
+ z-index: 2;
+}
+#header-left {
+ position: relative;
+ /* background: url('images/logo.gif') no-repeat; */
+ background-position: center;
+ height: 65px;
+ width: 145px;
+ left: 10px;
+ float: left;
+}
+#header-left #status-link {
+ position: relative;
+ top: 10px;
+ left: 6px;
+}
+#header-right {
+ position: relative;
+ /* background: url('images/header.gif') no-repeat; */
+ height: 70px;
+ color: #fff;
+ left: 0px;
+ margin-left: 165px;
+}
+#header-right .alert {
+ position: relative;
+ /* background: url('images/alert.gif') no-repeat; */
+ background-position: 4px 2px;
+ color: #fff;
+ height: 17px;
+ width: 500px;
+ padding: 4px;
+ padding-left: 27px;
+ float: left;
+}
+#header-right .container {
+ position: relative;
+}
+#header-right .container .left {
+ position: relative;
+ float: left;
+ font-size: 1.3em;
+ font-weight: bold;
+ top: 15px;
+ left: 4px;
+ display: none;
+}
+#header-right .container .right {
+ position: relative;
+ float: right;
+ top: 22px;
+ padding-right: 4px;
+ z-index: 1;
+}
+
+#header-right .container .right #alerts {
+ position: relative;
+ background: url('images/alert_bgr.png') no-repeat;
+ height: 39px;
+ width: 431px;
+ z-index: 1;
+ padding-top: 20px;
+ padding-left: 5px;
+ margin: 0px;
+}
+#header-right .container .right #hostname {
+ position: relative;
+ height: 39px;
+ width: 431px;
+ z-index: 1;
+ padding-left: 5px;
+ margin: 0px;
+ top: 25px;
+ left: 230px;
+ font-size: 14px;
+ color: #cccccc;
+ font-weight: bold;
+}
+
+
+
+table#marquee {
+ position: relative;
+ top: -6px;
+ left: -5px;
+ border: 0;
+ padding: 0;
+ margin: 0;
+ width: 424px;
+ background-color: transparent;
+ padding: 2px;
+ border: 0px;
+}
+span#marquee-container {
+ position: absolute;
+ visibility: hidden;
+ top: -100px;
+ left: -10000px;
+}
+div#marquee-text {
+ font-size: 1.18em;
+ font-weight: normal;
+ font-family: Verdana;
+ color: #ffffff;
+}
+table#marquee div#container {
+ position: relative;
+ overflow: hidden;
+ width: 418px;
+ height: 20px;
+}
+table#marquee div#container div#scroller {
+ position: absolute;
+ left: 0px;
+ top: 0px;
+}
+
+
+
+
+
+#content {
+ position: relative;
+ top: -15px;
+ left: 0px;
+ margin-top: 0px;
+ margin-left: 0px;
+ padding-top: 0px;
+ width: 810px;
+ background-color: #ffffff;
+}
+
+#left {
+ width: 810px;
+ height: 1px;
+}
+#right {
+ position: relative;
+ top: -10px;
+ width: 770px;
+ margin-top: 0px;
+ margin-left: 5px;
+ margin-right: 5px;
+ padding-top: 5px;
+ padding-left: 10px;
+ padding-right: 10px;
+ padding-bottom: 20px;
+ min-height: 400px;
+}
+
+#footer {
+ position: relative;
+ background: url('images/footer.png') no-repeat;
+ top: -18px;
+ left: 0px;
+ width: 810px;
+ height: 75px;
+ color: #ffffff;
+ text-align: center;;
+ font-size: 0.9em;
+ padding-top: 17px;
+ margin-bottom: 20px;
+ clear: both;
+}
+#footer p {
+ padding: 0px;
+ margin: 0px;
+}
+
+/* Style the List */
+#navigation {
+ /* background: url('images/menu.gif') no-repeat; */
+ /* width: 693px; */
+ position: relative;
+ top: -25px;
+ left: 3px;
+ width: 810px;
+ padding: 0px;
+ height: 28px;
+ z-index: 3;
+}
+#navigation ul {
+ padding: 0;
+ margin: 0;
+ list-style: none;
+ text-align: center;
+}
+#navigation ul#menu {
+ padding-top: 3px;
+ padding-left: 5px;
+}
+
+/* Style the List Elements */
+#navigation ul li {
+ float: left;
+ position: relative;
+ /* width: 7.5em; */
+ width: 8.77em;
+}
+#navigation ul li div {
+ font-size: 1em;
+ font-weight: bold;
+}
+/* Make the List inside the List Elements */
+/* initially hidden with absolute position */
+#navigation ul li ul {
+ display: none;
+ position: absolute;
+ top: 2em;
+ left: -2px;
+ width: 9em;
+ font-weight: normal;
+ background: transparent bottom left no-repeat; /* This is key to making the menu maintain visibility when not on a link */
+ /* background-color: #202020;
+ background: url("images/menu_footer.gif") no-repeat;
+ background-position: bottom;
+ */
+ padding: 0em 0 0.4em 0;
+ padding-top: 0.3em;
+}
+/* to override top and left in browsers other than IE */
+/* which will position to the top right of the containing */
+/* li, rather than bottom left */
+#navigation ul li > ul {
+ top: auto;
+ left: auto;
+ left: -1px !important;
+}
+/* Show initial drop down upon mouse over, but do not show */
+/* nested side drop menus within listed elements */
+#navigation ul li:hover ul {
+ display: block;
+ cursor: pointer;
+}
+#navigation ul li:hover {
+ cursor: pointer;
+ cursor: pointer;
+}
+#navigation ul li:hover div {
+ text-decoration: none;
+}
+
+#navigation ul li {
+ background-color: transparent;
+ color: #FFF;
+}
+#navigation ul li ul li {
+ border: 1px solid #990000;
+ width: 8.8em;
+ height: 1.6em;
+ line-height: 1.6em;
+ background-color: #990000;
+ color: #FFF;
+}
+#navigation ul li ul li:hover {
+ background-color: #666666;
+}
+
+#navigation li li a {
+ display: block;
+ padding-left: 10px;
+ padding-right: 10px;
+}
+
+#navigation ul li ul li a.navlnk:hover {
+ text-decoration: none;
+}
+#navigation ul li.first {
+ border-right: 0px;
+}
+#navigation ul li.middle {
+ border-right: 0px;
+}
+#navigation ul li.last {
+
+}
+
+#navigation ul li.dropfirst {
+ border-bottom: 0px;
+}
+#navigation ul li.dropmiddle {
+ border-bottom: 0px;
+}
+#navigation ul li.droplast {
+}
+
+#wzdtabcont {
+ float: left;
+ background-color: #FFFFFF;
+ color: #000000;
+ padding: 0;
+}
+
+ul#wzdnav {
+ font-size: 0.96em;
+ float: left;
+ width: 14.5em;
+ margin: 0;
+ padding-left: 18px;
+}
+
+ul#wzdnav li {
+ list-style: none;
+ margin: 0;
+ padding-bottom: 0.2em;
+ padding-left: 0;
+}
+
+ul#wzdnav a {
+ display: block;
+ padding: 0.3em;
+ font-weight: normal;
+}
+
+#wzdnavbold a {
+ display: block;
+ padding: 0.3em;
+ font-weight: bold ! important;
+}
+
+ul#wzdnav a:link {
+ color: black;
+ background-color: #eee;
+}
+
+ul#wzdnav a:visited {
+ color: #666;
+ background-color: #eee;
+}
+
+ul#wzdnav a:hover {
+ color: black;
+ background-color: white;
+}
+
+ul#wzdnav a:active {
+ color: white;
+ background-color: gray;
+}
+
+#graph {
+ position: relative;
+ z-index: 10;
+}
+
+#logoutbtn {
+ position: absolute;
+ left: 95%;
+ vertical-align: middle;
+}
+
+
+#graph {
+ position: relative;
+ z-index: 10;
+}
+
+
+
+/* Class Based CSS Definitions */
+.pgtitle {
+ font-size: 18px;
+ color: #777777;
+ font-weight: bold;
+}
+.tfrtitle {
+ font-size: 18px;
+ color: #ffffff;
+ font-weight: bold;
+}
+.vncell {
+ background-color: #DDDDDD;
+ padding-right: 20px;
+ padding-left: 8px;
+ border-bottom: 1px solid #999999;
+}
+.formfld {
+ padding-left: 19px;
+ font-size: small;
+}
+.formselect {
+ font-size: 1.0em;
+}
+.langopt {
+ padding-left: 34px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+.saved {
+ /* background: url('/themes/nione/images/icons/icon_wzd_saved.png') no-repeat 0 1px #FFFFFF; */
+ list-style-image: url('/themes/nervecenter/images/icons/icon_wzd_saved.png') ! important;
+}
+.notsaved {
+ /* background: url('/themes/nione/images/icons/icon_wzd_nsaved.png') no-repeat 0 1px #FFFFFF; */
+ list-style-image: url('/themes/nervecenter/images/icons/icon_wzd_nsaved.png') ! important;
+}
+.en {
+ background: url('/themes/nervecenter/images/icons/icon_flag_en.png') no-repeat 0 1px #FFFFFF;
+}
+.de {
+ background: url('/themes/nervecenter/images/icons/icon_flag_de.png') no-repeat 0 1px #FFFFFF;
+}
+.es {
+ background: url('/themes/nervecenter/images/icons/icon_flag_es.png') no-repeat 0 1px #FFFFFF;
+}
+.pt_BR {
+ background: url('/themes/nervecenter/images/icons/icon_flag_pt_BR.png') no-repeat 0 1px #FFFFFF;
+}
+.host {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_host.png') no-repeat 0 1px #FFFFFF;
+}
+.search {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_search.png') no-repeat 0 1px #FFFFFF;
+}
+.file {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_file.png') no-repeat 0 1px #FFFFFF;
+}
+.mail {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_mail.png') no-repeat 0 1px #FFFFFF;
+}
+.imp {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_imp.png') no-repeat 0 1px #FFFFFF;
+}
+.pwd {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_pwd.png') no-repeat 0 1px #FFFFFF;
+}
+.user {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_user.png') no-repeat 0 1px #FFFFFF ;
+}
+.group {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_group.png') no-repeat 0 1px #FFFFFF;
+}
+.url {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_url.png') no-repeat 0 1px #FFFFFF;
+}
+.time {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_time.png') no-repeat 0 1px #FFFFFF;
+}
+.unknown {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_unknown.png') no-repeat 0 1px #FFFFFF;
+}
+.formfld_cert {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_cert.png') no-repeat 0 1px #FFFFFF;
+ padding-left: 28px;
+ font-family: Courier New, Courier, monospaced;
+ font-size: 11px;
+}
+.formfldalias {
+ background-color: #990000;
+ color: #FFFFFF;
+}
+.formpre {
+ font-family: Courier New, Courier, monospaced;
+ font-size: 10px;
+}
+.formbtn {
+ font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ font-weight: bold;
+}
+.formbtns {
+ font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: bold;
+}
+.vvcell {
+ background-color: #FFFFC6;
+}
+.errmsg {
+ font-weight: bold;
+ color: #CC0000;
+}
+.red {
+ color: #CC0000;
+}
+.gray {
+ color: #A0A0A0;
+}
+.vexpl {
+ font-size: 11px;
+}
+.navlnk {
+ color: #FFFFFF;
+ text-decoration: none;
+ font-size: 13px;
+}
+.navlnks {
+ color: #FFFFFF;
+ text-decoration: none;
+ font-size: 11px;
+}
+.redlnk {
+ color: #990000;
+ text-decoration: none;
+}
+.tblnk {
+ color: #FFFFFF;
+ text-decoration: none;
+}
+.vncellreq {
+ background-color: #DDDDDD;
+ padding-right: 20px;
+ padding-left: 8px;
+ font-weight: bold;
+ border-bottom: 1px solid #999999;
+}
+.vncellt {
+ background-color: #DDDDDD;
+ padding-right: 20px;
+ padding-left: 8px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ font-weight: bold;
+ border-bottom: 1px solid #999999;
+}
+.vtable {
+ border-bottom: 1px solid #999999;
+}
+.vnsepcell {
+ background-color: #BBBBBB;
+ padding-right: 20px;
+ padding-left: 8px;
+ font-weight: bold;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+}
+.cpline {
+ font-size: 11px;
+ color: #FFFFFF;
+}
+.hostname {
+ font-size: 11px;
+ color: #990000;
+ font-weight: bold;
+}
+.vnsepcellr {
+ background-color: #BBBBBB;
+ padding-right: 20px;
+ padding-left: 8px;
+ font-weight: bold;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+}
+.listr {
+ background-color: #FFFFFF;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ padding-right: 6px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listrpad {
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ padding-right: 16px;
+ padding-left: 10px;
+ padding-top: 8px;
+ padding-bottom: 8px;
+}
+.listn {
+ font-size: 11px;
+ padding-right: 16px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listbg {
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ background-color: #990000;
+ padding-right: 16px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listbggrey {
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ background-color: #999999;
+ padding-right: 16px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listhdr {
+ background-color: #BBBBBB;
+ padding-right: 16px;
+ padding-left: 6px;
+ font-weight: bold;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+.listhdr a {
+ color: #000000;
+}
+.listhdrr {
+ background-color: #BBBBBB;
+ padding-right: 16px;
+ padding-left: 6px;
+ font-weight: bold;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+.listhdrr a {
+ color: #000000;
+}
+.listlr {
+ background-color: #FFFFFF;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ border-left: 1px solid #999999;
+ font-size: 11px;
+ padding-right: 6px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listlrns {
+ background-color: #FFFFFF;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ border-left: 1px solid #999999;
+ font-size: 11px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.list {
+ font-size: 11px;
+ padding-left: 6px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+.listt {
+ font-size: 11px;
+ padding-top: 5px;
+}
+.listhdrrns {
+ background-color: #BBBBBB;
+ padding-left: 6px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+ padding-right: 6px;
+ font-weight: bold;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+}
+.listbgns {
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ background-color: #D9DEE8;
+ padding-left: 6px;
+ padding-right: 4px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listtopic {
+ border-right: 1px solid #999999;
+ font-size: 11px;
+ background-color: #990000;
+ padding-right: 16px;
+ padding-left: 6px;
+ color: #FFFFFF;
+ font-weight: bold;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+.optsect_t {
+ border-right: 1px solid #999999;
+ background-color: #990000;
+ padding-right: 6px;
+ padding-left: 6px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+.optsect_s {
+ font-size: 11px;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+.tabnavtbl {
+}
+
+
+/* MISC CSS Definitions */
+ul#tabnav {
+ font-size: 11px;
+ font-weight: bold;
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+ul#tabnav li.tabinact1 {
+ float: left;
+ background-color: #777777;
+ color: #FFFFFF;
+ padding: 0;
+ white-space: nowrap;
+}
+ul#tabnav li.tabinact {
+ float: left;
+ border-left: 1px solid #999999;
+ background-color: #777777;
+ color: #FFFFFF;
+ padding: 0;
+ white-space: nowrap;
+}
+ul#tabnav li.tabinact a {
+ float: left;
+ display: block;
+ text-decoration: none;
+ padding: 5px 8px 5px 8px;
+ color: #FFFFFF;
+}
+ul#tabnav li.tabinact1 a {
+ float: left;
+ display: block;
+ text-decoration: none;
+ padding: 5px 8px 5px 8px;
+ color: #FFFFFF;
+}
+ul#tabnav li.tabact {
+ float: left;
+ background-color: #EEEEEE;
+ color: #000000;
+ padding: 5px 8px 5px 8px;
+ white-space: nowrap;
+}
+.tabcont {
+ background-color: #EEEEEE;
+ padding-right: 12px;
+ padding-left: 12px;
+ padding-top: 12px;
+ padding-bottom: 12px;
+}
+.tabact {
+ float: left;
+ background-color: #EEEEEE;
+ color: #000000;
+ padding: 5px 8px 5px 8px;
+ white-space: nowrap;
+}
+.tabinact {
+ font-weight: bold;
+ float: left;
+ border-left: 1px solid #999999;
+ background-color: #777777;
+ color: #FFFFFF;
+ padding: 0;
+ white-space: nowrap;
+}
+.menu {
+ background-color: #000000;
+ white-space: nowrap;
+ padding: 0px 5px 0px 5px;
+ width: 100%;
+ vertical-align: top;
+}
+
+
+/* Auto Complete Suggestions */
+div.suggestions {
+ -moz-box-sizing: border-box;
+ /* box-sizing: border-box; */
+ border: 1px solid black;
+ position: absolute;
+ background-color: #990000;
+ color: #FFF;
+}
+
+div.suggestions div {
+ cursor: default;
+ padding: 0px 3px;
+ background-color: #990000;
+ color: #FFF;
+}
+
+div.suggestions div.current {
+ background-color: #3366cc;
+ color: #FFF;
+}
+/* End Auto Complete Suggestions */
+
+
+/* Nifty Corners Crap */
+.rtop,.artop{display:block}
+.rtop *,.artop *{display:block;height:1px;overflow:hidden;font-size:1px}
+.artop *{border-style: solid;border-width:0 1px}
+.r1,.rl1,.re1,.rel1{margin-left:5px}
+.r1,.rr1,.re1,.rer1{margin-right:5px}
+.r2,.rl2,.re2,.rel2,.ra1,.ral1{margin-left:3px}
+.r2,.rr2,.re2,.rer2,.ra1,.rar1{margin-right:3px}
+.r3,.rl3,.re3,.rel3,.ra2,.ral2,.rs1,.rsl1,.res1,.resl1{margin-left:2px}
+.r3,.rr3,.re3,.rer3,.ra2,.rar2,.rs1,.rsr1,.res1,.resr1{margin-right:2px}
+.r4,.rl4,.rs2,.rsl2,.re4,.rel4,.ra3,.ral3,.ras1,.rasl1,.res2,.resl2{margin-left:1px}
+.r4,.rr4,.rs2,.rsr2,.re4,.rer4,.ra3,.rar3,.ras1,.rasr1,.res2,.resr2{margin-right:1px}
+.rx1,.rxl1{border-left-width:5px}
+.rx1,.rxr1{border-right-width:5px}
+.rx2,.rxl2{border-left-width:3px}
+.rx2,.rxr2{border-right-width:3px}
+.re2,.rel2,.ra1,.ral1,.rx3,.rxl3,.rxs1,.rxsl1{border-left-width:2px}
+.re2,.rer2,.ra1,.rar1,.rx3,.rxr3,.rxs1,.rxsr1{border-right-width:2px}
+.rxl1,.rxl2,.rxl3,.rxl4,.rxsl1,.rxsl2,.ral1,.ral2,.ral3,.ral4,.rasl1,.rasl2{border-right-width:0}
+.rxr1,.rxr2,.rxr3,.rxr4,.rxsr1,.rxsr2,.rar1,.rar2,.rar3,.rar4,.rasr1,.rasr2{border-left-width:0}
+.r4,.rl4,.rr4,.re4,.rel4,.rer4,.ra4,.rar4,.ral4,.rx4,.rxl4,.rxr4{height:2px}
+.rer1,.rel1,.re1,.res1,.resl1,.resr1{border-width:1px 0 0;height:0px !important;height /**/:1px}
+/* End Nifty Corners Crap */
+
+
+
+/* CSS for Dynamic Log Viewer */
+/* Author: Erik Kristensen */
+div#log div.log-entry {
+ clear: both;
+}
+
+div#log div.log-entry span,
+div#log div.log-header span {
+ padding: 3px 2px 3px 2px;
+ padding-left: 8px;
+}
+
+div#log div.log-entry span.log-action {
+ padding-bottom: 6px;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+
+div#log div.log-header span {
+ border-top: 1px solid #999;
+ background-color: #bbb;
+ font-weight: bold;
+ text-align: left;
+}
+
+div#log span.log-action,
+div#log span.log-time,
+div#log span.log-interface,
+div#log span.log-source,
+div#log span.log-destination,
+div#log span.log-protocol {
+ float: left;
+ text-align: left;
+ border-left: 1px solid #999;
+ border-bottom: 1px solid #999;
+}
+
+div#log span.log-general {
+
+}
+
+div#log span.log-protocol {
+ border-right: 1px solid #999;
+}
+
+div#log span.log-action {
+ width: 2em;
+ text-align: center;
+}
+
+div#log span.log-time {
+ width: 12.5em;
+}
+
+div#log span.log-interface {
+ width: 5em;
+}
+
+div#log span.log-source,
+div#log span.log-destination {
+ width: 17.6em;
+}
+
+div#log span.log-protocol {
+ width: 5.5em;
+}
+/* END CSS FOR DYNAMIC LOG VIEWER */
+
+
+#login {
+/* background: #cccccc; */
+ background-color: transparent;
+ border: 0px solid #cccccc;
+ margin: 5em auto;
+ padding: 0em;
+ width: 400px;
+/* filter:alpha(opacity=60);
+ -moz-opacity:0.6;
+ -khtml-opacity: 0.6;
+ opacity: 0.6; */
+}
+
+#login h1 {
+ background: url(images/misc/logon.png) no-repeat top left;
+/* background: #ffffff; */
+ margin-top: 0;
+ display: block;
+ text-indent: -1000px;
+ height: 400px;
+ border-bottom: none;
+}
+
+#login p {
+ font-size: 1em;
+ font-weight: bold;
+ padding: 3px;
+ margin: 0em;
+/* text-indent: 10px; */
+ position: relative;
+ top: -420px;
+ left: 70px;
+}
+
+#login span {
+ font-size: 1em;
+ font-weight: bold;
+ width: 20%;
+ padding: 3px;
+ margin: 0em;
+/* text-indent: 10px; */
+}
+
+#login p#text {
+ font-size: 1em;
+ font-weight: normal;
+ padding: 3px;
+ margin: 0em;
+/* text-indent: 10px;
+ position: relative;
+ top: -300px; */
+}
+
+#login #username, #password {
+ font-size: 1em;
+ width: 60%;
+ padding: 3px;
+ margin: 0em;
+/* text-indent: 10px;
+ position: relative;
+ left: 10px;
+ top: -300px; */
+}
+
+#login #submit {
+ font-size: 1em;
+ font-weight: bold;
+ text-align: center;
+ padding: 3px;
+ margin: 0em;
+/* text-indent: 10px; */
+ position: relative;
+ top: -20px;
+ left: 170px;
+}
+
+/* loginerror box follows */
+
+#login #inputerrors {
+ background-color: transparent;
+ border: 0px solid #666666;
+ margin: 5em auto;
+ vertical-align: middle;
+ padding: 0em;
+ width: 330px;
+ height: 50px;
+ position: relative;
+ top: -370px;
+} \ No newline at end of file
diff --git a/usr/local/www/themes/pfsense_ng/menu.inc b/usr/local/www/themes/pfsense_ng/menu.inc
new file mode 100644
index 0000000..ae55e64
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/menu.inc
@@ -0,0 +1,178 @@
+<?php
+/* $Id: menu.inc,v 1.3.2.1 2007/01/17 18:43:30 sullrich Exp $ */
+/* DISABLE_PHP_LINT_CHECKING */
+/* ========================================================================== */
+/*
+ menu.inc
+ Copyright (C) 2006 Daniel S. Haischt <me@daniel.stefan.haischt.name>
+ All rights reserved.
+ */
+/* ========================================================================== */
+/*
+ Originally part of m0n0wall (http://m0n0.ch/wall)
+ Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+/* ========================================================================== */
+
+require("menu.inc");
+
+define("TMENU_STUB", "
+ // set up drop downs anywhere in the body of the page. I think the bottom of the page is better..
+ // but you can experiment with effect on loadtime.
+ if (TransMenu.isSupported()) {
+
+ //==================================================================================================
+ // create a set of dropdowns
+ //==================================================================================================
+ // the first param should always be down, as it is here
+ //
+ // The second and third param are the top and left offset positions of the menus from their actuators
+ // respectively. To make a menu appear a little to the left and bottom of an actuator, you could use
+ // something like -5, 5
+ //
+ // The last parameter can be .topLeft, .bottomLeft, .topRight, or .bottomRight to inidicate the corner
+ // of the actuator from which to measure the offset positions above. Here we are saying we want the
+ // menu to appear directly below the bottom left corner of the actuator
+ //==================================================================================================
+ var ms = new TransMenuSet(TransMenu.direction.down, 1, 0, TransMenu.reference.bottomLeft);
+
+ //==================================================================================================
+ // create a dropdown menu
+ //==================================================================================================
+ // the first parameter should be the HTML element which will act actuator for the menu
+ //==================================================================================================
+
+ @@MENU_DEFINITIONS@@
+
+ //==================================================================================================
+ // write drop downs into page
+ //==================================================================================================
+ // this method writes all the HTML for the menus into the page with document.write(). It must be
+ // called within the body of the HTML page.
+ //==================================================================================================
+ TransMenu.renderAll();
+ }
+");
+
+class NervecenterMenu extends Menu {
+ private $menuJScript = "NOT-SET";
+ private $menuJScriptEvents = "NOT-SET";
+ private $menuID = "NOT-SET";
+
+ public function __construct($identification = "", $filename = "", Component $c = NULL) {
+ parent::__construct($identification, $filename, $c);
+
+ $id = "mnua_" . str_replace(" ", "", strtolower($this->getID()));
+ $this->menuID = $id;
+
+ if ($this->hasParent()) {
+ $this->menuJScript = "\tvar {$id} = ms.addMenu(document.getElementById('{$id}'));\n";
+ }
+ } // end __construct
+
+ public function getMenuID() {
+ return $this->menuID;
+ }
+
+ public function setMenuID($myMenuID) {
+ $this->menuID = $myMenuID;
+ }
+
+ public function getMenuJScript() {
+ $childJScript = "";
+ foreach ($this->getChildren() as $component) {
+ $childJScript .= $component->getMenuJScript();
+ }
+
+ if (! $this->hasParent()) {
+ $this->menuJScript = str_replace("@@MENU_DEFINITIONS@@", $childJScript, TMENU_STUB);
+ } else {
+ $this->menuJScript .= "\n$childJScript\n";
+ }
+
+ return $this->menuJScript;
+ }
+
+ public function getMenuJScriptEvents() {
+ return $this->menuJScriptEvents;
+ }
+
+ public function __toString() {
+ if (! $this->hasParent()) {
+ $menuMarkup =<<<EOD
+ <div id="menu">
+ @@CHILD_ELEMENTS@@
+ </div>
+
+EOD;
+ } else {
+ $name = gettext($this->getID());
+ $id = "mnua_" . str_replace(" ", "", strtolower($this->getID()));
+
+ $menuMarkup =<<<EOD
+ <a id="{$id}" href="#">{$name}</a>
+ @@CHILD_ELEMENTS@@
+EOD;
+ }
+
+ $childMarkup = "";
+ foreach ($this->getChildren() as $component) {
+ $childMarkup .= $component;
+ }
+
+ $menuMarkup = str_replace("@@CHILD_ELEMENTS@@", $childMarkup, $menuMarkup);
+
+ return $menuMarkup;
+ }
+}
+
+class NervecenterMenuItem extends MenuItem {
+ private $menuJScript = "NOT-SET";
+ private $menuJScriptEvents = "NOT-SET";
+
+ public function __construct($identification = "", $filename = "", $href = "", Component $c = NULL) {
+ parent::__construct($identification, $filename, $href, $c);
+
+ $href = $this->getHref() <> "" ? $this->getHref() : "{$this->getFile()}";
+ $name = gettext($this->getID());
+ $file = $this->getFile();
+
+ $this->menuJScript = $this->check_access("{$file}", "\t{$this->getParent()->getMenuID()}.addItem('{$name}', '{$href}');\n");
+ }
+
+ public function getMenuJScript() {
+ return $this->menuJScript;
+ }
+
+ public function getMenuJScriptEvents() {
+ return $this->menuJScriptEvents;
+ }
+
+ public function __toString() {
+ return "";
+ }
+}
+
+?>
diff --git a/usr/local/www/themes/pfsense_ng/no_big_logo b/usr/local/www/themes/pfsense_ng/no_big_logo
new file mode 100644
index 0000000..6e5c70d
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/no_big_logo
@@ -0,0 +1 @@
+NO! DONT! \ No newline at end of file
diff --git a/usr/local/www/themes/pfsense_ng/rrdcolors.inc.php b/usr/local/www/themes/pfsense_ng/rrdcolors.inc.php
new file mode 100644
index 0000000..d479fea
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/rrdcolors.inc.php
@@ -0,0 +1,50 @@
+<?php
+/* $Id: rrdcolors.inc.php,v 1.1.2.4 2008/03/26 17:05:44 smos Exp $ */
+/*
+ rrdcolors.inc.php
+ Part of pfSense
+ Copyright (C) 2006 Seth Mos <seth.mos@xs4all.nl>
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* This file is included by the RRD graphing page and sets the colors */
+
+$colortrafficup = "666666";
+$colortrafficdown = "990000";
+$colorpacketsup = "666666";
+$colorpacketsdown = "990000";
+$colorstates = array('990000','a83c3c','b36666','bd9090','cccccc','000000');
+$colorprocessor = array('990000','a83c3c','b36666','bd9090','cccccc','000000');
+$colormemory = array('990000','a83c3c','b36666','bd9090','cccccc','000000');
+$colorqueuesup = array('000000','7B0000','990000','BB0000','CC0000','D90000','EE0000','FF0000','CC0000');
+$colorqueuesdown = array('000000','7B7B7B','999999','BBBBBB','CCCCCC','D9D9D9','EEEEEE','FFFFFF','CCCCCC');
+$colorqueuesdropup = array('000000','7B0000','990000','BB0000','CC0000','D90000','EE0000','FF0000','CC0000');
+$colorqueuesdropdown = array('000000','7B7B7B','999999','BBBBBB','CCCCCC','D9D9D9','EEEEEE','FFFFFF','CCCCCC');
+$colorqualityrtt = array('990000','a83c3c','b36666','bd9090','cccccc','000000');
+$colorqualityloss = "ee0000";
+$colorwireless = array('990000','a83c3c','b36666');
+$colorspamdtime = array('DDDDFF', 'AAAAFF', 'DDDDFF', '000066');
+$colorspamdconn = array('00AA00BB', 'FFFFFFFF', '00660088', 'FFFFFF88', '006600');
+
+?>
diff --git a/usr/local/www/themes/pfsense_ng/styles/menustyles.css b/usr/local/www/themes/pfsense_ng/styles/menustyles.css
new file mode 100644
index 0000000..06b3c7a
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/styles/menustyles.css
@@ -0,0 +1,44 @@
+#navigation {
+ /* border:1px solid black; */
+ width: 98%;
+ vertical-align: middle;
+ height: 16px;
+ padding-top: 4px;
+ }
+
+#menu {
+ /* background: #990000; */
+ /* border-bottom:1px solid white; */
+ padding: 0 0 0 0;
+ width: 98%;
+ vertical-align: middle;
+ height: 16px;
+ }
+#menu a {
+ padding: 2px 28px 4px 28px;
+ text-decoration: none;
+ font-weight: bold;
+ font-size: 1.0em;
+ color: #FFFFFF;
+ width: 08%;
+ height: 16px;
+ }
+#menu a.hover {
+ background: #AF2020;
+ }
+#menu span {
+ display: none;
+ }
+
+#subnav {
+ font-size: 10px;
+ margin-bottom: 2em;
+ }
+#subnav a {
+ color: #FF0000; /* #FB3B00; */
+ margin-right: 1em;
+ }
+#subnav span {
+ color: silver;
+ margin-right: 1em;
+ }
diff --git a/usr/local/www/themes/pfsense_ng/styles/transmenu.css b/usr/local/www/themes/pfsense_ng/styles/transmenu.css
new file mode 100644
index 0000000..f683574
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/styles/transmenu.css
@@ -0,0 +1,75 @@
+/* this is the clipping region for the menu. it's width and height get set by script, depending on the size of the items table */
+.transMenu {
+ position:absolute;
+ overflow:hidden;
+ left:-1000px;
+ top:-1000px;
+ }
+
+/* this is the main container for the menu itself. it's width and height get set by script, depending on the size of the items table */
+.transMenu .content {
+ position:absolute;
+ }
+
+/* this table comprises all menu items. each TR is one item. It is relatively positioned so that the shadow and background transparent divs can be positioned underneath it */
+.transMenu .items {
+ position:relative;
+ left:0px; top:0px;
+ z-index:2;
+ }
+
+.transMenu.top .items {
+ border-top:none;
+ }
+
+/* each TR.item is one menu item */
+.transMenu .item {
+ color: #FFFFFF; /* #336; */
+ font-size: 1.1em;
+ font-weight: normal;
+ font-family:sans-serif;
+ text-decoration:none;
+ /* this is a hack for mac/ie5, whom incorrectly cascades the border properties of the parent table to each row */
+ border:none;
+ cursor:pointer;
+ cursor:hand;
+ }
+
+/* this DIV is the semi-transparent white background of each menu. the -moz-opacity is a proprietary way to get transparency in mozilla, the filter is for IE/windows 5.0+. */
+/* we set the background color in script because ie mac does not use it; that browser only uses a semi-transparent white PNG that the spacer gif inside this DIV is replaced by */
+.transMenu .background {
+ position:absolute;
+ left:0px; top:0px;
+ z-index:1;
+ -moz-opacity:.8;
+ filter:alpha(opacity=80);
+ }
+
+/* same concept as .background, but this is the sliver of shadow on the right of the menu. It's left, height, and background are set by script. In IE5/mac, it uses a PNG */
+.transMenu .shadowRight {
+ position:absolute;
+ z-index:3;
+ top:3px; width:2px;
+ -moz-opacity:.4;
+ filter:alpha(opacity=40);
+ }
+
+/* same concept as .background, but this is the sliver of shadow on the bottom of the menu. It's top, width, and background are set by script. In IE5/mac, it uses a PNG */
+.transMenu .shadowBottom {
+ position:absolute;
+ z-index:1;
+ left:3px; height:2px;
+ -moz-opacity:.4;
+ filter:alpha(opacity=40);
+ }
+
+/* this is the class that is used when the mouse is over an item. script sets the row to this class when required. */
+.transMenu .item.hover {
+ background:#fdfdfd;
+ color:black;
+ }
+
+/* this is either the dingbat that indicates there is a submenu, or a spacer gif in it's place. We give it extra margin to create some space between the text and the dingbat */
+.transMenu .item img {
+ margin-left:10px;
+ } \ No newline at end of file
diff --git a/usr/local/www/themes/pfsense_ng/wizard.css b/usr/local/www/themes/pfsense_ng/wizard.css
new file mode 100644
index 0000000..1c4596a
--- /dev/null
+++ b/usr/local/www/themes/pfsense_ng/wizard.css
@@ -0,0 +1,1065 @@
+/* Element CSS Definitions */
+html, body, td, th, input, select {
+ font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
+ font-size: 0.9em;
+
+}
+
+/* please adjust the bgcolor to be used together with niftycorners! */
+.rtop, .artop {
+ background-color: #999999;
+}
+
+div.GraphLink {
+ position: relative;
+}
+
+span.GraphLinkLine {
+ position: absolute;
+ background-color: #990000;
+ width: 100%;
+}
+
+/* DOM Tooltip CSS definitions */
+div.niceTitle
+{
+ background-color: #333333;
+ color: #FFFFFF;
+ border-bottom: 1px dotted #FFFFFF;
+ font-weight: bold;
+ font-size: 13px;
+ font-family: "Trebuchet MS", sans-serif;
+ width: 250px;
+ left: 0;
+ top: 0;
+ padding: 4px;
+ position: absolute;
+ text-align: left;
+ z-index: 20;
+ -moz-border-radius: 0 10px 10px 10px;
+ filter: progid:DXImageTransform.Microsoft.Alpha(opacity=87);
+ -moz-opacity: .87;
+ -khtml-opacity: .87;
+ opacity: .87;
+}
+div.niceTitle h1
+{
+ background: #990000;
+ border-bottom: 1px dotted #FFFFFF;
+ font-weight: bold;
+ font-size: 13px;
+ font-family: "Trebuchet MS", sans-serif;
+ margin: 3px;
+ padding-top: 1px;
+ padding-bottom: 1px;
+ padding-left: 3px;
+ text-align: left;
+ left: 0;
+ top: 0;
+ -moz-border-radius: 0 8px 0 0;
+ -moz-opacity: 1;
+}
+div.niceTitle .contents
+{
+ margin: 0;
+ padding: 0 3px;
+ filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);
+ -moz-opacity: 1;
+ -khtml-opacity: 1;
+ opacity: 1;
+}
+div.niceTitle p
+{
+ background: #FFFFFF;
+ border: 1px solid #990000;
+ color: #000000;
+ font-size: 9px;
+ padding: 5px;
+ margin: 3px;
+ text-align: left;
+ -moz-opacity: 1;
+ -moz-border-radius: 0 0 8px 8px;
+}
+
+body {
+ margin: 0px auto;
+ /* background: url('images/background.png') no-repeat; */
+ background-position : center 0px;
+ background-color: #999999;
+}
+
+form {
+ margin: 0px;
+}
+a {
+ text-decoration: none;
+}
+form input {
+ font-size: 1.1em;
+}
+
+iframe {
+ z-index: 1;
+ border: 1px dashed #990000;
+}
+.iframe {
+ background-color: #FFFFFF;
+}
+
+/* ID Based CSS Definitions */
+#wrapper {
+ width: 810px;
+ margin: 0px auto;
+}
+
+#header {
+ background: url('images/header.png') no-repeat;
+ background-position: 0px;
+ height: 102px;
+ width: 810px;
+ margin-bottom: 5px;
+ z-index: 2;
+}
+#header-left {
+ position: relative;
+ /* background: url('images/logo.gif') no-repeat; */
+ background-position: center;
+ height: 65px;
+ width: 145px;
+ left: 10px;
+ float: left;
+}
+#header-left #status-link {
+ position: relative;
+ top: 10px;
+ left: 6px;
+}
+#header-right {
+ position: relative;
+ /* background: url('images/header.gif') no-repeat; */
+ height: 70px;
+ color: #fff;
+ left: 0px;
+ margin-left: 165px;
+}
+#header-right .alert {
+ position: relative;
+ /* background: url('images/alert.gif') no-repeat; */
+ background-position: 4px 2px;
+ color: #fff;
+ height: 17px;
+ width: 500px;
+ padding: 4px;
+ padding-left: 27px;
+ float: left;
+}
+#header-right .container {
+ position: relative;
+}
+#header-right .container .left {
+ position: relative;
+ float: left;
+ font-size: 1.3em;
+ font-weight: bold;
+ top: 15px;
+ left: 4px;
+ display: none;
+}
+#header-right .container .right {
+ position: relative;
+ float: right;
+ top: 22px;
+ padding-right: 4px;
+ z-index: 1;
+}
+
+#header-right .container .right #alerts {
+ position: relative;
+ background: url('images/alert_bgr.png') no-repeat;
+ height: 39px;
+ width: 431px;
+ z-index: 1;
+ padding-top: 20px;
+ padding-left: 5px;
+ margin: 0px;
+}
+#header-right .container .right #hostname {
+ position: relative;
+ height: 39px;
+ width: 431px;
+ z-index: 1;
+ padding-left: 5px;
+ margin: 0px;
+ top: 25px;
+ left: 230px;
+ font-size: 14px;
+ color: #cccccc;
+ font-weight: bold;
+}
+
+
+
+table#marquee {
+ position: relative;
+ top: -6px;
+ left: -5px;
+ border: 0;
+ padding: 0;
+ margin: 0;
+ width: 424px;
+ background-color: transparent;
+ padding: 2px;
+ border: 0px;
+}
+span#marquee-container {
+ position: absolute;
+ visibility: hidden;
+ top: -100px;
+ left: -10000px;
+}
+div#marquee-text {
+ font-size: 1.18em;
+ font-weight: normal;
+ font-family: Verdana;
+ color: #ffffff;
+}
+table#marquee div#container {
+ position: relative;
+ overflow: hidden;
+ width: 418px;
+ height: 20px;
+}
+table#marquee div#container div#scroller {
+ position: absolute;
+ left: 0px;
+ top: 0px;
+}
+
+
+
+
+
+#content {
+ position: relative;
+ top: -15px;
+ left: 0px;
+ margin-top: 0px;
+ margin-left: 0px;
+ padding-top: 0px;
+ width: 810px;
+ background-color: #ffffff;
+}
+
+#left {
+ width: 810px;
+ height: 1px;
+}
+#right {
+ position: relative;
+ top: -10px;
+ width: 770px;
+ margin-top: 0px;
+ margin-left: 5px;
+ margin-right: 5px;
+ padding-top: 5px;
+ padding-left: 10px;
+ padding-right: 10px;
+ padding-bottom: 20px;
+ min-height: 400px;
+}
+
+#footer {
+ position: relative;
+ background: url('images/footer.png') no-repeat;
+ top: -18px;
+ left: 0px;
+ width: 810px;
+ height: 75px;
+ color: #ffffff;
+ text-align: center;;
+ font-size: 0.9em;
+ padding-top: 17px;
+ margin-bottom: 20px;
+ clear: both;
+}
+#footer p {
+ padding: 0px;
+ margin: 0px;
+}
+
+/* Style the List */
+#navigation {
+ /* background: url('images/menu.gif') no-repeat; */
+ /* width: 693px; */
+ position: relative;
+ top: -25px;
+ left: 3px;
+ width: 810px;
+ padding: 0px;
+ height: 28px;
+ z-index: 3;
+}
+#navigation ul {
+ padding: 0;
+ margin: 0;
+ list-style: none;
+ text-align: center;
+}
+#navigation ul#menu {
+ padding-top: 3px;
+ padding-left: 5px;
+}
+
+/* Style the List Elements */
+#navigation ul li {
+ float: left;
+ position: relative;
+ /* width: 7.5em; */
+ width: 8.77em;
+}
+#navigation ul li div {
+ font-size: 1em;
+ font-weight: bold;
+}
+/* Make the List inside the List Elements */
+/* initially hidden with absolute position */
+#navigation ul li ul {
+ display: none;
+ position: absolute;
+ top: 2em;
+ left: -2px;
+ width: 9em;
+ font-weight: normal;
+ background: transparent bottom left no-repeat; /* This is key to making the menu maintain visibility when not on a link */
+ /* background-color: #202020;
+ background: url("images/menu_footer.gif") no-repeat;
+ background-position: bottom;
+ */
+ padding: 0em 0 0.4em 0;
+ padding-top: 0.3em;
+}
+/* to override top and left in browsers other than IE */
+/* which will position to the top right of the containing */
+/* li, rather than bottom left */
+#navigation ul li > ul {
+ top: auto;
+ left: auto;
+ left: -1px !important;
+}
+/* Show initial drop down upon mouse over, but do not show */
+/* nested side drop menus within listed elements */
+#navigation ul li:hover ul {
+ display: block;
+ cursor: pointer;
+}
+#navigation ul li:hover {
+ cursor: pointer;
+ cursor: pointer;
+}
+#navigation ul li:hover div {
+ text-decoration: none;
+}
+
+#navigation ul li {
+ background-color: transparent;
+ color: #FFF;
+}
+#navigation ul li ul li {
+ border: 1px solid #990000;
+ width: 8.8em;
+ height: 1.6em;
+ line-height: 1.6em;
+ background-color: #990000;
+ color: #FFF;
+}
+#navigation ul li ul li:hover {
+ background-color: #666666;
+}
+
+#navigation li li a {
+ display: block;
+ padding-left: 10px;
+ padding-right: 10px;
+}
+
+#navigation ul li ul li a.navlnk:hover {
+ text-decoration: none;
+}
+#navigation ul li.first {
+ border-right: 0px;
+}
+#navigation ul li.middle {
+ border-right: 0px;
+}
+#navigation ul li.last {
+
+}
+
+#navigation ul li.dropfirst {
+ border-bottom: 0px;
+}
+#navigation ul li.dropmiddle {
+ border-bottom: 0px;
+}
+#navigation ul li.droplast {
+}
+
+#wzdtabcont {
+ float: left;
+ background-color: #FFFFFF;
+ color: #000000;
+ padding: 0;
+}
+
+ul#wzdnav {
+ font-size: 0.96em;
+ float: left;
+ width: 14.5em;
+ margin: 0;
+ padding-left: 18px;
+}
+
+ul#wzdnav li {
+ list-style: none;
+ margin: 0;
+ padding-bottom: 0.2em;
+ padding-left: 0;
+}
+
+ul#wzdnav a {
+ display: block;
+ padding: 0.3em;
+ font-weight: normal;
+}
+
+#wzdnavbold a {
+ display: block;
+ padding: 0.3em;
+ font-weight: bold ! important;
+}
+
+ul#wzdnav a:link {
+ color: black;
+ background-color: #eee;
+}
+
+ul#wzdnav a:visited {
+ color: #666;
+ background-color: #eee;
+}
+
+ul#wzdnav a:hover {
+ color: black;
+ background-color: white;
+}
+
+ul#wzdnav a:active {
+ color: white;
+ background-color: gray;
+}
+
+#graph {
+ position: relative;
+ z-index: 10;
+}
+
+#logoutbtn {
+ position: absolute;
+ left: 95%;
+ vertical-align: middle;
+}
+
+
+#graph {
+ position: relative;
+ z-index: 10;
+}
+
+
+
+/* Class Based CSS Definitions */
+.pgtitle {
+ font-size: 18px;
+ color: #777777;
+ font-weight: bold;
+}
+.tfrtitle {
+ font-size: 18px;
+ color: #ffffff;
+ font-weight: bold;
+}
+.vncell {
+ background-color: #DDDDDD;
+ padding-right: 20px;
+ padding-left: 8px;
+ border-bottom: 1px solid #999999;
+}
+.formfld {
+ font-size: small;
+}
+.formselect {
+ font-size: 1.0em;
+}
+.langopt {
+ padding-left: 34px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+.saved {
+ /* background: url('/themes/nione/images/icons/icon_wzd_saved.png') no-repeat 0 1px #FFFFFF; */
+ list-style-image: url('/themes/nervecenter/images/icons/icon_wzd_saved.png') ! important;
+}
+.notsaved {
+ /* background: url('/themes/nione/images/icons/icon_wzd_nsaved.png') no-repeat 0 1px #FFFFFF; */
+ list-style-image: url('/themes/nervecenter/images/icons/icon_wzd_nsaved.png') ! important;
+}
+.en {
+ background: url('/themes/nervecenter/images/icons/icon_flag_en.png') no-repeat 0 1px #FFFFFF;
+}
+.de {
+ background: url('/themes/nervecenter/images/icons/icon_flag_de.png') no-repeat 0 1px #FFFFFF;
+}
+.es {
+ background: url('/themes/nervecenter/images/icons/icon_flag_es.png') no-repeat 0 1px #FFFFFF;
+}
+.pt_BR {
+ background: url('/themes/nervecenter/images/icons/icon_flag_pt_BR.png') no-repeat 0 1px #FFFFFF;
+}
+.host {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_host.png') no-repeat 0 1px #FFFFFF;
+}
+.search {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_search.png') no-repeat 0 1px #FFFFFF;
+}
+.file {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_file.png') no-repeat 0 1px #FFFFFF;
+}
+.mail {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_mail.png') no-repeat 0 1px #FFFFFF;
+}
+.imp {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_imp.png') no-repeat 0 1px #FFFFFF;
+}
+.pwd {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_pwd.png') no-repeat 0 1px #FFFFFF;
+}
+.user {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_user.png') no-repeat 0 1px #FFFFFF ;
+}
+.group {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_group.png') no-repeat 0 1px #FFFFFF;
+}
+.url {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_url.png') no-repeat 0 1px #FFFFFF;
+}
+.time {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_time.png') no-repeat 0 1px #FFFFFF;
+}
+.unknown {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_unknown.png') no-repeat 0 1px #FFFFFF;
+}
+.formfld_cert {
+ background: url('/themes/nervecenter/images/icons/icon_frmfld_cert.png') no-repeat 0 1px #FFFFFF;
+ padding-left: 28px;
+ font-family: Courier New, Courier, monospaced;
+ font-size: 11px;
+}
+.formfldalias {
+ background-color: #990000;
+ color: #FFFFFF;
+}
+.formpre {
+ font-family: Courier New, Courier, monospaced;
+ font-size: 10px;
+}
+.formbtn {
+ font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ font-weight: bold;
+}
+.formbtns {
+ font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: bold;
+}
+.vvcell {
+ background-color: #FFFFC6;
+}
+.errmsg {
+ font-weight: bold;
+ color: #CC0000;
+}
+.red {
+ color: #CC0000;
+}
+.gray {
+ color: #A0A0A0;
+}
+.vexpl {
+ font-size: 11px;
+}
+.navlnk {
+ color: #FFFFFF;
+ text-decoration: none;
+ font-size: 13px;
+}
+.navlnks {
+ color: #FFFFFF;
+ text-decoration: none;
+ font-size: 11px;
+}
+.redlnk {
+ color: #990000;
+ text-decoration: none;
+}
+.tblnk {
+ color: #FFFFFF;
+ text-decoration: none;
+}
+.vncellreq {
+ background-color: #DDDDDD;
+ padding-right: 20px;
+ padding-left: 8px;
+ font-weight: bold;
+ border-bottom: 1px solid #999999;
+}
+.vncellt {
+ background-color: #DDDDDD;
+ padding-right: 20px;
+ padding-left: 8px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ font-weight: bold;
+ border-bottom: 1px solid #999999;
+}
+.vtable {
+ border-bottom: 1px solid #999999;
+}
+.vnsepcell {
+ background-color: #BBBBBB;
+ padding-right: 20px;
+ padding-left: 8px;
+ font-weight: bold;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+}
+.cpline {
+ font-size: 11px;
+ color: #FFFFFF;
+}
+.hostname {
+ font-size: 11px;
+ color: #990000;
+ font-weight: bold;
+}
+.vnsepcellr {
+ background-color: #BBBBBB;
+ padding-right: 20px;
+ padding-left: 8px;
+ font-weight: bold;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+}
+.listr {
+ background-color: #FFFFFF;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ padding-right: 6px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listrpad {
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ padding-right: 16px;
+ padding-left: 10px;
+ padding-top: 8px;
+ padding-bottom: 8px;
+}
+.listn {
+ font-size: 11px;
+ padding-right: 16px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listbg {
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ background-color: #990000;
+ padding-right: 16px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listbggrey {
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ background-color: #999999;
+ padding-right: 16px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listhdr {
+ background-color: #BBBBBB;
+ padding-right: 16px;
+ padding-left: 6px;
+ font-weight: bold;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+.listhdr a {
+ color: #000000;
+}
+.listhdrr {
+ background-color: #BBBBBB;
+ padding-right: 16px;
+ padding-left: 6px;
+ font-weight: bold;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+.listhdrr a {
+ color: #000000;
+}
+.listlr {
+ background-color: #FFFFFF;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ border-left: 1px solid #999999;
+ font-size: 11px;
+ padding-right: 6px;
+ padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listlrns {
+ background-color: #FFFFFF;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ border-left: 1px solid #999999;
+ font-size: 11px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.list {
+ font-size: 11px;
+ padding-left: 6px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+.listt {
+ font-size: 11px;
+ padding-top: 5px;
+}
+.listhdrrns {
+ background-color: #BBBBBB;
+ padding-left: 6px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+ padding-right: 6px;
+ font-weight: bold;
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+}
+.listbgns {
+ border-right: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ font-size: 11px;
+ background-color: #D9DEE8;
+ padding-left: 6px;
+ padding-right: 4px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+.listtopic {
+ border-right: 1px solid #999999;
+ font-size: 11px;
+ background-color: #990000;
+ padding-right: 16px;
+ padding-left: 6px;
+ color: #FFFFFF;
+ font-weight: bold;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+.optsect_t {
+ border-right: 1px solid #999999;
+ background-color: #990000;
+ padding-right: 6px;
+ padding-left: 6px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+.optsect_s {
+ font-size: 11px;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+.tabnavtbl {
+}
+
+
+/* MISC CSS Definitions */
+ul#tabnav {
+ font-size: 11px;
+ font-weight: bold;
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+ul#tabnav li.tabinact1 {
+ float: left;
+ background-color: #777777;
+ color: #FFFFFF;
+ padding: 0;
+ white-space: nowrap;
+}
+ul#tabnav li.tabinact {
+ float: left;
+ border-left: 1px solid #999999;
+ background-color: #777777;
+ color: #FFFFFF;
+ padding: 0;
+ white-space: nowrap;
+}
+ul#tabnav li.tabinact a {
+ float: left;
+ display: block;
+ text-decoration: none;
+ padding: 5px 8px 5px 8px;
+ color: #FFFFFF;
+}
+ul#tabnav li.tabinact1 a {
+ float: left;
+ display: block;
+ text-decoration: none;
+ padding: 5px 8px 5px 8px;
+ color: #FFFFFF;
+}
+ul#tabnav li.tabact {
+ float: left;
+ background-color: #EEEEEE;
+ color: #000000;
+ padding: 5px 8px 5px 8px;
+ white-space: nowrap;
+}
+.tabcont {
+ background-color: #EEEEEE;
+ padding-right: 12px;
+ padding-left: 12px;
+ padding-top: 12px;
+ padding-bottom: 12px;
+}
+.tabact {
+ float: left;
+ background-color: #EEEEEE;
+ color: #000000;
+ padding: 5px 8px 5px 8px;
+ white-space: nowrap;
+}
+.tabinact {
+ font-weight: bold;
+ float: left;
+ border-left: 1px solid #999999;
+ background-color: #777777;
+ color: #FFFFFF;
+ padding: 0;
+ white-space: nowrap;
+}
+.menu {
+ background-color: #000000;
+ white-space: nowrap;
+ padding: 0px 5px 0px 5px;
+ width: 100%;
+ vertical-align: top;
+}
+
+
+/* Auto Complete Suggestions */
+div.suggestions {
+ -moz-box-sizing: border-box;
+ /* box-sizing: border-box; */
+ border: 1px solid black;
+ position: absolute;
+ background-color: #990000;
+ color: #FFF;
+}
+
+div.suggestions div {
+ cursor: default;
+ padding: 0px 3px;
+ background-color: #990000;
+ color: #FFF;
+}
+
+div.suggestions div.current {
+ background-color: #3366cc;
+ color: #FFF;
+}
+/* End Auto Complete Suggestions */
+
+
+/* Nifty Corners Crap */
+.rtop,.artop{display:block}
+.rtop *,.artop *{display:block;height:1px;overflow:hidden;font-size:1px}
+.artop *{border-style: solid;border-width:0 1px}
+.r1,.rl1,.re1,.rel1{margin-left:5px}
+.r1,.rr1,.re1,.rer1{margin-right:5px}
+.r2,.rl2,.re2,.rel2,.ra1,.ral1{margin-left:3px}
+.r2,.rr2,.re2,.rer2,.ra1,.rar1{margin-right:3px}
+.r3,.rl3,.re3,.rel3,.ra2,.ral2,.rs1,.rsl1,.res1,.resl1{margin-left:2px}
+.r3,.rr3,.re3,.rer3,.ra2,.rar2,.rs1,.rsr1,.res1,.resr1{margin-right:2px}
+.r4,.rl4,.rs2,.rsl2,.re4,.rel4,.ra3,.ral3,.ras1,.rasl1,.res2,.resl2{margin-left:1px}
+.r4,.rr4,.rs2,.rsr2,.re4,.rer4,.ra3,.rar3,.ras1,.rasr1,.res2,.resr2{margin-right:1px}
+.rx1,.rxl1{border-left-width:5px}
+.rx1,.rxr1{border-right-width:5px}
+.rx2,.rxl2{border-left-width:3px}
+.rx2,.rxr2{border-right-width:3px}
+.re2,.rel2,.ra1,.ral1,.rx3,.rxl3,.rxs1,.rxsl1{border-left-width:2px}
+.re2,.rer2,.ra1,.rar1,.rx3,.rxr3,.rxs1,.rxsr1{border-right-width:2px}
+.rxl1,.rxl2,.rxl3,.rxl4,.rxsl1,.rxsl2,.ral1,.ral2,.ral3,.ral4,.rasl1,.rasl2{border-right-width:0}
+.rxr1,.rxr2,.rxr3,.rxr4,.rxsr1,.rxsr2,.rar1,.rar2,.rar3,.rar4,.rasr1,.rasr2{border-left-width:0}
+.r4,.rl4,.rr4,.re4,.rel4,.rer4,.ra4,.rar4,.ral4,.rx4,.rxl4,.rxr4{height:2px}
+.rer1,.rel1,.re1,.res1,.resl1,.resr1{border-width:1px 0 0;height:0px !important;height /**/:1px}
+/* End Nifty Corners Crap */
+
+
+
+/* CSS for Dynamic Log Viewer */
+/* Author: Erik Kristensen */
+div#log div.log-entry {
+ clear: both;
+}
+
+div#log div.log-entry span,
+div#log div.log-header span {
+ padding: 3px 2px 3px 2px;
+ padding-left: 8px;
+}
+
+div#log div.log-entry span.log-action {
+ padding-bottom: 6px;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+
+div#log div.log-header span {
+ border-top: 1px solid #999;
+ background-color: #bbb;
+ font-weight: bold;
+ text-align: left;
+}
+
+div#log span.log-action,
+div#log span.log-time,
+div#log span.log-interface,
+div#log span.log-source,
+div#log span.log-destination,
+div#log span.log-protocol {
+ float: left;
+ text-align: left;
+ border-left: 1px solid #999;
+ border-bottom: 1px solid #999;
+}
+
+div#log span.log-general {
+
+}
+
+div#log span.log-protocol {
+ border-right: 1px solid #999;
+}
+
+div#log span.log-action {
+ width: 2em;
+ text-align: center;
+}
+
+div#log span.log-time {
+ width: 12.5em;
+}
+
+div#log span.log-interface {
+ width: 5em;
+}
+
+div#log span.log-source,
+div#log span.log-destination {
+ width: 17.6em;
+}
+
+div#log span.log-protocol {
+ width: 5.5em;
+}
+/* END CSS FOR DYNAMIC LOG VIEWER */
+
+#login {
+ background: #cccccc;
+ border: 0px solid #666666;
+ margin: 5em auto;
+ padding: 0em;
+ width: 340px;
+}
+
+#login h1 {
+ background: url(images/misc/logon.png) no-repeat top left;
+ margin-top: 0;
+ display: block;
+ text-indent: -1000px;
+ height: 50px;
+ border-bottom: none;
+}
+
+#login p {
+ font-size: 1em;
+ font-weight: bold;
+ padding: 3px;
+ margin: 0em;
+ text-indent: 10px;
+}
+
+#login span {
+ font-size: 1em;
+ font-weight: bold;
+ width: 20%;
+ padding: 3px;
+ margin: 0em;
+ text-indent: 10px;
+}
+
+#login p#text {
+ font-size: 1em;
+ font-weight: normal;
+ padding: 3px;
+ margin: 0em;
+ text-indent: 10px;
+}
+
+#login #username, #password {
+ font-size: 1em;
+ width: 60%;
+ padding: 3px;
+ margin: 0em;
+}
+
+#login #submit {
+ font-size: 1em;
+ font-weight: bold;
+ padding: 3px;
+ margin: 0em;
+ text-indent: 10px;
+}
OpenPOWER on IntegriCloud