aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUnknown <Alee14498@gmail.com>2017-10-01 00:24:20 -0400
committerUnknown <Alee14498@gmail.com>2017-10-01 00:24:20 -0400
commit78f3c0e9893d36e0ce039c2b79ede8a92ebe468a (patch)
tree8479930f9372a1e9998b6750651565cf52b81ca8
parentd8ba59582c137de474789690e777d8c029e08fe6 (diff)
downloadwindows8online-78f3c0e9893d36e0ce039c2b79ede8a92ebe468a.tar.gz
windows8online-78f3c0e9893d36e0ce039c2b79ede8a92ebe468a.tar.bz2
windows8online-78f3c0e9893d36e0ce039c2b79ede8a92ebe468a.zip
Adding the code
-rw-r--r--App API/README.txt14
-rw-r--r--App API/about.txt13
-rw-r--r--App API/css/appbase.css229
-rw-r--r--App API/img/charmsbar/battery.pngbin0 -> 234 bytes
-rw-r--r--App API/img/charmsbar/close-active.pngbin0 -> 3473 bytes
-rw-r--r--App API/img/charmsbar/close.pngbin0 -> 3516 bytes
-rw-r--r--App API/img/charmsbar/devices-hover.pngbin0 -> 816 bytes
-rw-r--r--App API/img/charmsbar/devices.pngbin0 -> 911 bytes
-rw-r--r--App API/img/charmsbar/network.pngbin0 -> 290 bytes
-rw-r--r--App API/img/charmsbar/search-hover.pngbin0 -> 1120 bytes
-rw-r--r--App API/img/charmsbar/search.pngbin0 -> 1101 bytes
-rw-r--r--App API/img/charmsbar/settings-hover.pngbin0 -> 1045 bytes
-rw-r--r--App API/img/charmsbar/settings.pngbin0 -> 1162 bytes
-rw-r--r--App API/img/charmsbar/share-hover.pngbin0 -> 1096 bytes
-rw-r--r--App API/img/charmsbar/share.pngbin0 -> 1230 bytes
-rw-r--r--App API/img/charmsbar/start-hover.pngbin0 -> 708 bytes
-rw-r--r--App API/img/charmsbar/start.pngbin0 -> 845 bytes
-rw-r--r--App API/img/charmsbar/startbutton.pngbin0 -> 640 bytes
-rw-r--r--App API/index.html104
-rw-r--r--App API/splashscreen.pngbin0 -> 8878 bytes
-rw-r--r--apps/calculator/basic.html184
-rw-r--r--apps/calculator/common.css175
-rw-r--r--apps/calculator/favicon.icobin0 -> 541 bytes
-rw-r--r--apps/calculator/favicon32.icobin0 -> 1073 bytes
-rw-r--r--apps/calculator/index.html116
-rw-r--r--apps/calculator/jquery-1.8.0.min.js2
-rw-r--r--apps/calculator/mousewheel.js84
-rw-r--r--apps/calculator/scientific.html130
-rw-r--r--apps/calculator/splashscreen.pngbin0 -> 9985 bytes
-rw-r--r--apps/calculator/style.css139
-rw-r--r--apps/calculator/tools.html284
-rw-r--r--apps/calendar/css/charms.css195
-rw-r--r--apps/calendar/img/close-light.pngbin0 -> 3786 bytes
-rw-r--r--apps/calendar/img/close.pngbin0 -> 3516 bytes
-rw-r--r--apps/calendar/img/left-light.pngbin0 -> 3572 bytes
-rw-r--r--apps/calendar/img/left.pngbin0 -> 3644 bytes
-rw-r--r--apps/calendar/img/plus-light.pngbin0 -> 3525 bytes
-rw-r--r--apps/calendar/img/plus.pngbin0 -> 3597 bytes
-rw-r--r--apps/calendar/img/right-light.pngbin0 -> 3667 bytes
-rw-r--r--apps/calendar/img/right.pngbin0 -> 3711 bytes
-rw-r--r--apps/calendar/index.html170
-rw-r--r--apps/calendar/lib.js585
-rw-r--r--apps/calendar/splashscreen.pngbin0 -> 3038 bytes
-rw-r--r--apps/calendar/style.css498
-rw-r--r--apps/firefox/css/charms.css218
-rw-r--r--apps/firefox/css/style.css176
-rw-r--r--apps/firefox/img/appbar-icons.pngbin0 -> 16554 bytes
-rw-r--r--apps/firefox/img/back.pngbin0 -> 1433 bytes
-rw-r--r--apps/firefox/img/firefox-watermark.pngbin0 -> 8057 bytes
-rw-r--r--apps/firefox/img/forward.pngbin0 -> 1336 bytes
-rw-r--r--apps/firefox/img/identity-icon.pngbin0 -> 1748 bytes
-rw-r--r--apps/firefox/img/newtab.pngbin0 -> 1105 bytes
-rw-r--r--apps/firefox/img/reload.pngbin0 -> 1686 bytes
-rw-r--r--apps/firefox/img/rightbg.pngbin0 -> 7122 bytes
-rw-r--r--apps/firefox/index.html116
-rw-r--r--apps/firefox/splashscreen.pngbin0 -> 4303527 bytes
-rw-r--r--apps/maps/css/charms.css98
-rw-r--r--apps/maps/img/print.pngbin0 -> 3871 bytes
-rw-r--r--apps/maps/img/reload.pngbin0 -> 3726 bytes
-rw-r--r--apps/maps/index.html99
-rw-r--r--apps/maps/map.html116
-rw-r--r--apps/maps/splashscreen.pngbin0 -> 18900 bytes
-rw-r--r--apps/maps/style.css143
-rw-r--r--apps/notes/common.css169
-rw-r--r--apps/notes/index.html101
-rw-r--r--apps/notes/js/scripts.js103
-rw-r--r--apps/notes/plus.pngbin0 -> 3597 bytes
-rw-r--r--apps/notes/splashscreen.pngbin0 -> 29800 bytes
-rw-r--r--apps/notes/styles.css80
-rw-r--r--apps/notes/wood.pngbin0 -> 1591879 bytes
-rw-r--r--apps/remotedesktop/bg.jpgbin0 -> 88656 bytes
-rw-r--r--apps/remotedesktop/css/charms.css167
-rw-r--r--apps/remotedesktop/index.html156
-rw-r--r--apps/remotedesktop/splashscreen.pngbin0 -> 8419 bytes
-rw-r--r--apps/skybookmarks/css/charms.css165
-rw-r--r--apps/skybookmarks/index.html275
-rw-r--r--apps/skybookmarks/splashscreen.pngbin0 -> 3144 bytes
-rw-r--r--apps/smartsearch/ask.pngbin0 -> 480 bytes
-rw-r--r--apps/smartsearch/back-active.pngbin0 -> 544 bytes
-rw-r--r--apps/smartsearch/back.pngbin0 -> 668 bytes
-rw-r--r--apps/smartsearch/bimages.pngbin0 -> 784 bytes
-rw-r--r--apps/smartsearch/bing.pngbin0 -> 894 bytes
-rw-r--r--apps/smartsearch/bmaps.pngbin0 -> 509 bytes
-rw-r--r--apps/smartsearch/bvideos.pngbin0 -> 450 bytes
-rw-r--r--apps/smartsearch/css/appbase.css228
-rw-r--r--apps/smartsearch/cssdeck.pngbin0 -> 634 bytes
-rw-r--r--apps/smartsearch/deviant.pngbin0 -> 1406 bytes
-rw-r--r--apps/smartsearch/dribbble.pngbin0 -> 823 bytes
-rw-r--r--apps/smartsearch/dropdown.pngbin0 -> 211 bytes
-rw-r--r--apps/smartsearch/favicon.icobin0 -> 4286 bytes
-rw-r--r--apps/smartsearch/flickr.pngbin0 -> 402 bytes
-rw-r--r--apps/smartsearch/forward-active.pngbin0 -> 556 bytes
-rw-r--r--apps/smartsearch/forward.pngbin0 -> 656 bytes
-rw-r--r--apps/smartsearch/grooveshark.pngbin0 -> 499 bytes
-rw-r--r--apps/smartsearch/images.pngbin0 -> 802 bytes
-rw-r--r--apps/smartsearch/imdb.pngbin0 -> 378 bytes
-rw-r--r--apps/smartsearch/imgur.pngbin0 -> 316 bytes
-rw-r--r--apps/smartsearch/inagist.pngbin0 -> 407 bytes
-rw-r--r--apps/smartsearch/index.html220
-rw-r--r--apps/smartsearch/ixquick.pngbin0 -> 575 bytes
-rw-r--r--apps/smartsearch/livejournal.pngbin0 -> 668 bytes
-rw-r--r--apps/smartsearch/multisearch.pngbin0 -> 681 bytes
-rw-r--r--apps/smartsearch/picasa.pngbin0 -> 437 bytes
-rw-r--r--apps/smartsearch/pinterest.pngbin0 -> 794 bytes
-rw-r--r--apps/smartsearch/play.pngbin0 -> 705 bytes
-rw-r--r--apps/smartsearch/reddit.pngbin0 -> 616 bytes
-rw-r--r--apps/smartsearch/reload-active.pngbin0 -> 1044 bytes
-rw-r--r--apps/smartsearch/reload.pngbin0 -> 1256 bytes
-rw-r--r--apps/smartsearch/reset-big-black.pngbin0 -> 414 bytes
-rw-r--r--apps/smartsearch/reset-white.pngbin0 -> 466 bytes
-rw-r--r--apps/smartsearch/reset.pngbin0 -> 414 bytes
-rw-r--r--apps/smartsearch/scholar.pngbin0 -> 781 bytes
-rw-r--r--apps/smartsearch/search-active.pngbin0 -> 772 bytes
-rw-r--r--apps/smartsearch/search.pngbin0 -> 897 bytes
-rw-r--r--apps/smartsearch/splashscreen.pngbin0 -> 15879 bytes
-rw-r--r--apps/smartsearch/style.css185
-rw-r--r--apps/smartsearch/translate.pngbin0 -> 555 bytes
-rw-r--r--apps/smartsearch/twitter.pngbin0 -> 577 bytes
-rw-r--r--apps/smartsearch/vimeo.pngbin0 -> 491 bytes
-rw-r--r--apps/smartsearch/wikipedia.pngbin0 -> 424 bytes
-rw-r--r--apps/smartsearch/yahoo.pngbin0 -> 318 bytes
-rw-r--r--apps/smartsearch/yimages.pngbin0 -> 837 bytes
-rw-r--r--apps/smartsearch/youtube.pngbin0 -> 536 bytes
-rw-r--r--apps/youtube/css/appbase.css219
-rw-r--r--apps/youtube/css/style.css120
-rw-r--r--apps/youtube/favicon.icobin0 -> 1150 bytes
-rw-r--r--apps/youtube/img/bg.pngbin0 -> 4840 bytes
-rw-r--r--apps/youtube/img/close.pngbin0 -> 3786 bytes
-rw-r--r--apps/youtube/img/hugelogo.pngbin0 -> 32467 bytes
-rw-r--r--apps/youtube/img/smalllogo.pngbin0 -> 3652 bytes
-rw-r--r--apps/youtube/index.html131
-rw-r--r--apps/youtube/js/youtubeapi.js51
-rw-r--r--apps/youtube/splashscreen.pngbin0 -> 17502 bytes
-rw-r--r--common/img/battery.pngbin0 -> 234 bytes
-rw-r--r--common/img/charmsbar/battery.pngbin0 -> 234 bytes
-rw-r--r--common/img/charmsbar/devices-hover.pngbin0 -> 816 bytes
-rw-r--r--common/img/charmsbar/devices.pngbin0 -> 911 bytes
-rw-r--r--common/img/charmsbar/network.pngbin0 -> 290 bytes
-rw-r--r--common/img/charmsbar/search-hover.pngbin0 -> 1120 bytes
-rw-r--r--common/img/charmsbar/search.pngbin0 -> 1101 bytes
-rw-r--r--common/img/charmsbar/settings-hover.pngbin0 -> 1045 bytes
-rw-r--r--common/img/charmsbar/settings.pngbin0 -> 1162 bytes
-rw-r--r--common/img/charmsbar/share-hover.pngbin0 -> 1096 bytes
-rw-r--r--common/img/charmsbar/share.pngbin0 -> 1230 bytes
-rw-r--r--common/img/charmsbar/start-hover.pngbin0 -> 708 bytes
-rw-r--r--common/img/charmsbar/start.pngbin0 -> 845 bytes
-rw-r--r--common/img/charmsbar/startbutton.pngbin0 -> 640 bytes
-rw-r--r--common/img/network.pngbin0 -> 290 bytes
-rw-r--r--common/img/start.pngbin0 -> 640 bytes
-rw-r--r--desktop/_jQD.tmproj48
-rw-r--r--desktop/assets/images/gui/back-active.pngbin0 -> 991 bytes
-rw-r--r--desktop/assets/images/gui/back-hover.pngbin0 -> 875 bytes
-rw-r--r--desktop/assets/images/gui/back.pngbin0 -> 647 bytes
-rw-r--r--desktop/assets/images/gui/bar_bottom.pngbin0 -> 228 bytes
-rw-r--r--desktop/assets/images/gui/bar_top-active.pngbin0 -> 225 bytes
-rw-r--r--desktop/assets/images/gui/bar_top-hover.pngbin0 -> 224 bytes
-rw-r--r--desktop/assets/images/gui/bar_top.pngbin0 -> 238 bytes
-rw-r--r--desktop/assets/images/gui/bar_top_link.pngbin0 -> 204 bytes
-rw-r--r--desktop/assets/images/gui/dropdown-active.pngbin0 -> 208 bytes
-rw-r--r--desktop/assets/images/gui/dropdown-hover.pngbin0 -> 206 bytes
-rw-r--r--desktop/assets/images/gui/dropdown.pngbin0 -> 207 bytes
-rw-r--r--desktop/assets/images/gui/forward-active.pngbin0 -> 994 bytes
-rw-r--r--desktop/assets/images/gui/forward-hover.pngbin0 -> 884 bytes
-rw-r--r--desktop/assets/images/gui/forward.pngbin0 -> 633 bytes
-rw-r--r--desktop/assets/images/gui/glass/window-close-active.pngbin0 -> 524 bytes
-rw-r--r--desktop/assets/images/gui/glass/window-close-hover.pngbin0 -> 618 bytes
-rw-r--r--desktop/assets/images/gui/glass/window-close.pngbin0 -> 537 bytes
-rw-r--r--desktop/assets/images/gui/glass/window-maximize-active.pngbin0 -> 474 bytes
-rw-r--r--desktop/assets/images/gui/glass/window-maximize-hover.pngbin0 -> 479 bytes
-rw-r--r--desktop/assets/images/gui/glass/window-maximize.pngbin0 -> 315 bytes
-rw-r--r--desktop/assets/images/gui/glass/window-minimize-active.pngbin0 -> 437 bytes
-rw-r--r--desktop/assets/images/gui/glass/window-minimize-hover.pngbin0 -> 441 bytes
-rw-r--r--desktop/assets/images/gui/glass/window-minimize.pngbin0 -> 278 bytes
-rw-r--r--desktop/assets/images/gui/go.pngbin0 -> 437 bytes
-rw-r--r--desktop/assets/images/gui/reload.pngbin0 -> 375 bytes
-rw-r--r--desktop/assets/images/gui/search.pngbin0 -> 354 bytes
-rw-r--r--desktop/assets/images/gui/trans_black.pngbin0 -> 185 bytes
-rw-r--r--desktop/assets/images/gui/trans_white.pngbin0 -> 187 bytes
-rw-r--r--desktop/assets/images/gui/up.pngbin0 -> 239 bytes
-rw-r--r--desktop/assets/images/gui/window-close-active.pngbin0 -> 283 bytes
-rw-r--r--desktop/assets/images/gui/window-close-hover.gifbin0 -> 1594 bytes
-rw-r--r--desktop/assets/images/gui/window-close-hover.pngbin0 -> 403 bytes
-rw-r--r--desktop/assets/images/gui/window-close.gifbin0 -> 1318 bytes
-rw-r--r--desktop/assets/images/gui/window-close.pngbin0 -> 396 bytes
-rw-r--r--desktop/assets/images/gui/window-maximize-hover.gifbin0 -> 1244 bytes
-rw-r--r--desktop/assets/images/gui/window-maximize-hover.pngbin0 -> 303 bytes
-rw-r--r--desktop/assets/images/gui/window-maximize.gifbin0 -> 725 bytes
-rw-r--r--desktop/assets/images/gui/window-maximize.pngbin0 -> 266 bytes
-rw-r--r--desktop/assets/images/gui/window-minimize-hover.gifbin0 -> 1301 bytes
-rw-r--r--desktop/assets/images/gui/window-minimize-hover.pngbin0 -> 305 bytes
-rw-r--r--desktop/assets/images/gui/window-minimize.gifbin0 -> 698 bytes
-rw-r--r--desktop/assets/images/gui/window-minimize.pngbin0 -> 261 bytes
-rw-r--r--desktop/assets/images/gui/window_content.gifbin0 -> 59 bytes
-rw-r--r--desktop/assets/images/gui/window_corner.gifbin0 -> 56 bytes
-rw-r--r--desktop/assets/images/gui/windows_top.PNGbin0 -> 176 bytes
-rw-r--r--desktop/assets/images/icons/icon_16_computer.pngbin0 -> 3744 bytes
-rw-r--r--desktop/assets/images/icons/icon_16_disc.pngbin0 -> 969 bytes
-rw-r--r--desktop/assets/images/icons/icon_16_documents.pngbin0 -> 333 bytes
-rw-r--r--desktop/assets/images/icons/icon_16_drive.pngbin0 -> 530 bytes
-rw-r--r--desktop/assets/images/icons/icon_16_folder.pngbin0 -> 708 bytes
-rw-r--r--desktop/assets/images/icons/icon_16_folder_home.pngbin0 -> 679 bytes
-rw-r--r--desktop/assets/images/icons/icon_16_folder_remote.pngbin0 -> 926 bytes
-rw-r--r--desktop/assets/images/icons/icon_16_ie.pngbin0 -> 968 bytes
-rw-r--r--desktop/assets/images/icons/icon_16_music.pngbin0 -> 575 bytes
-rw-r--r--desktop/assets/images/icons/icon_16_network.pngbin0 -> 690 bytes
-rw-r--r--desktop/assets/images/icons/icon_16_page.pngbin0 -> 576 bytes
-rw-r--r--desktop/assets/images/icons/icon_16_photo.pngbin0 -> 570 bytes
-rw-r--r--desktop/assets/images/icons/icon_16_server.pngbin0 -> 871 bytes
-rw-r--r--desktop/assets/images/icons/icon_16_system.pngbin0 -> 872 bytes
-rw-r--r--desktop/assets/images/icons/icon_16_trash.pngbin0 -> 1009 bytes
-rw-r--r--desktop/assets/images/icons/icon_16_vpn.pngbin0 -> 695 bytes
-rw-r--r--desktop/assets/images/icons/icon_22_computer.pngbin0 -> 1372 bytes
-rw-r--r--desktop/assets/images/icons/icon_22_desktop.pngbin0 -> 1216 bytes
-rw-r--r--desktop/assets/images/icons/icon_22_disc.pngbin0 -> 1855 bytes
-rw-r--r--desktop/assets/images/icons/icon_22_drive.pngbin0 -> 1053 bytes
-rw-r--r--desktop/assets/images/icons/icon_22_ie.pngbin0 -> 1518 bytes
-rw-r--r--desktop/assets/images/icons/icon_22_network.pngbin0 -> 1647 bytes
-rw-r--r--desktop/assets/images/icons/icon_22_recycle.pngbin0 -> 1884 bytes
-rw-r--r--desktop/assets/images/icons/icon_32_computer.pngbin0 -> 2607 bytes
-rw-r--r--desktop/assets/images/icons/icon_32_disc.pngbin0 -> 2634 bytes
-rw-r--r--desktop/assets/images/icons/icon_32_drive.pngbin0 -> 2747 bytes
-rw-r--r--desktop/assets/images/icons/icon_32_ie.pngbin0 -> 2694 bytes
-rw-r--r--desktop/assets/images/icons/icon_32_network.pngbin0 -> 3054 bytes
-rw-r--r--desktop/assets/images/ie/backforward.pngbin0 -> 1364 bytes
-rw-r--r--desktop/assets/images/ie/controls.pngbin0 -> 1082 bytes
-rw-r--r--desktop/assets/images/ie/controlsori.pngbin0 -> 1010 bytes
-rw-r--r--desktop/assets/images/ie/favicon.pngbin0 -> 382 bytes
-rw-r--r--desktop/assets/images/ie/favourites-active.pngbin0 -> 510 bytes
-rw-r--r--desktop/assets/images/ie/favourites-hover.pngbin0 -> 576 bytes
-rw-r--r--desktop/assets/images/ie/favourites.pngbin0 -> 579 bytes
-rw-r--r--desktop/assets/images/ie/home-active.pngbin0 -> 352 bytes
-rw-r--r--desktop/assets/images/ie/home-hover.pngbin0 -> 350 bytes
-rw-r--r--desktop/assets/images/ie/home.pngbin0 -> 380 bytes
-rw-r--r--desktop/assets/images/ie/newtab.pngbin0 -> 526 bytes
-rw-r--r--desktop/assets/images/ie/settings-active.pngbin0 -> 479 bytes
-rw-r--r--desktop/assets/images/ie/settings-hover.pngbin0 -> 552 bytes
-rw-r--r--desktop/assets/images/ie/settings.pngbin0 -> 460 bytes
-rw-r--r--desktop/assets/images/misc/album_cover.jpgbin0 -> 5048 bytes
-rw-r--r--desktop/assets/images/misc/firehost.pngbin0 -> 1305 bytes
-rw-r--r--desktop/assets/images/misc/wallpaper.jpgbin0 -> 435174 bytes
-rw-r--r--desktop/assets/images/misc/wallpaper.pngbin0 -> 123850 bytes
-rw-r--r--desktop/assets/images/misc/wallpaper2.jpgbin0 -> 56627 bytes
-rw-r--r--desktop/assets/javascripts/jquery.desktop.js315
-rw-r--r--desktop/assets/javascripts/jquery.package.js53
-rw-r--r--desktop/assets/stylesheets/desktop-glass.css656
-rw-r--r--desktop/assets/stylesheets/desktop.css652
-rw-r--r--desktop/assets/stylesheets/html.css99
-rw-r--r--desktop/assets/stylesheets/ie.css14
-rw-r--r--desktop/css/charms.css123
-rw-r--r--desktop/css/scrollbar.css67
-rw-r--r--desktop/desktop.html1212
-rw-r--r--desktop/favicon.icobin0 -> 309 bytes
-rw-r--r--desktop/img/charmsbar/battery.pngbin0 -> 234 bytes
-rw-r--r--desktop/img/charmsbar/close.pngbin0 -> 3516 bytes
-rw-r--r--desktop/img/charmsbar/devices-hover.pngbin0 -> 816 bytes
-rw-r--r--desktop/img/charmsbar/devices.pngbin0 -> 911 bytes
-rw-r--r--desktop/img/charmsbar/network.pngbin0 -> 290 bytes
-rw-r--r--desktop/img/charmsbar/search-hover.pngbin0 -> 1120 bytes
-rw-r--r--desktop/img/charmsbar/search.pngbin0 -> 1101 bytes
-rw-r--r--desktop/img/charmsbar/settings-hover.pngbin0 -> 1045 bytes
-rw-r--r--desktop/img/charmsbar/settings.pngbin0 -> 1162 bytes
-rw-r--r--desktop/img/charmsbar/share-hover.pngbin0 -> 1096 bytes
-rw-r--r--desktop/img/charmsbar/share.pngbin0 -> 1230 bytes
-rw-r--r--desktop/img/charmsbar/start-hover.pngbin0 -> 708 bytes
-rw-r--r--desktop/img/charmsbar/start.pngbin0 -> 845 bytes
-rw-r--r--desktop/img/charmsbar/startbutton.pngbin0 -> 640 bytes
-rw-r--r--desktop/img/scrollbar/down-active.pngbin0 -> 210 bytes
-rw-r--r--desktop/img/scrollbar/down.pngbin0 -> 212 bytes
-rw-r--r--desktop/img/scrollbar/left-active.pngbin0 -> 203 bytes
-rw-r--r--desktop/img/scrollbar/left.pngbin0 -> 216 bytes
-rw-r--r--desktop/img/scrollbar/right-active.pngbin0 -> 205 bytes
-rw-r--r--desktop/img/scrollbar/right.pngbin0 -> 217 bytes
-rw-r--r--desktop/img/scrollbar/up-active.pngbin0 -> 211 bytes
-rw-r--r--desktop/img/scrollbar/up.pngbin0 -> 217 bytes
-rw-r--r--favicon.icobin0 -> 2550 bytes
-rw-r--r--favicon.pngbin0 -> 383 bytes
-rw-r--r--games/battleship/batt1.gifbin0 -> 871 bytes
-rw-r--r--games/battleship/batt10.gifbin0 -> 871 bytes
-rw-r--r--games/battleship/batt100.gifbin0 -> 824 bytes
-rw-r--r--games/battleship/batt101.gifbin0 -> 866 bytes
-rw-r--r--games/battleship/batt102.gifbin0 -> 881 bytes
-rw-r--r--games/battleship/batt103.gifbin0 -> 899 bytes
-rw-r--r--games/battleship/batt2.gifbin0 -> 865 bytes
-rw-r--r--games/battleship/batt201.gifbin0 -> 851 bytes
-rw-r--r--games/battleship/batt202.gifbin0 -> 834 bytes
-rw-r--r--games/battleship/batt203.gifbin0 -> 848 bytes
-rw-r--r--games/battleship/batt204.gifbin0 -> 849 bytes
-rw-r--r--games/battleship/batt205.gifbin0 -> 849 bytes
-rw-r--r--games/battleship/batt206.gifbin0 -> 855 bytes
-rw-r--r--games/battleship/batt3.gifbin0 -> 866 bytes
-rw-r--r--games/battleship/batt4.gifbin0 -> 864 bytes
-rw-r--r--games/battleship/batt5.gifbin0 -> 869 bytes
-rw-r--r--games/battleship/batt6.gifbin0 -> 873 bytes
-rw-r--r--games/battleship/batt7.gifbin0 -> 882 bytes
-rw-r--r--games/battleship/batt8.gifbin0 -> 882 bytes
-rw-r--r--games/battleship/batt9.gifbin0 -> 883 bytes
-rw-r--r--games/battleship/common.css171
-rw-r--r--games/battleship/index.html401
-rw-r--r--games/battleship/splashscreen.pngbin0 -> 5627 bytes
-rw-r--r--games/pixelpaint/clear.gifbin0 -> 142 bytes
-rw-r--r--games/pixelpaint/clear.pngbin0 -> 3576 bytes
-rw-r--r--games/pixelpaint/code.js1
-rw-r--r--games/pixelpaint/css/charms.css167
-rw-r--r--games/pixelpaint/eraser.gifbin0 -> 131 bytes
-rw-r--r--games/pixelpaint/eraser.pngbin0 -> 3530 bytes
-rw-r--r--games/pixelpaint/fill.gifbin0 -> 135 bytes
-rw-r--r--games/pixelpaint/fill.pngbin0 -> 3403 bytes
-rw-r--r--games/pixelpaint/index.html99
-rw-r--r--games/pixelpaint/pen.gifbin0 -> 119 bytes
-rw-r--r--games/pixelpaint/pencil.pngbin0 -> 3449 bytes
-rw-r--r--games/pixelpaint/picker.gifbin0 -> 111 bytes
-rw-r--r--games/pixelpaint/picker.pngbin0 -> 3375 bytes
-rw-r--r--games/pixelpaint/splashscreen.pngbin0 -> 15857 bytes
-rw-r--r--games/pixelpaint/style.css37
-rw-r--r--games/pixelpaint/view.gifbin0 -> 121 bytes
-rw-r--r--games/pixelpaint/view.pngbin0 -> 3535 bytes
-rw-r--r--games/symbolistic/click.mp3bin0 -> 1252 bytes
-rw-r--r--games/symbolistic/css/charms.css166
-rw-r--r--games/symbolistic/index.html141
-rw-r--r--games/symbolistic/script.jsbin0 -> 7202 bytes
-rw-r--r--games/symbolistic/splashscreen.pngbin0 -> 10904 bytes
-rw-r--r--games/symbolistic/style.css1
-rw-r--r--iframeapps/agent8ball.html94
-rw-r--r--iframeapps/angrybirds.html94
-rw-r--r--iframeapps/camera.html97
-rw-r--r--iframeapps/captainforever.html98
-rw-r--r--iframeapps/common.css150
-rw-r--r--iframeapps/contrejour.html94
-rw-r--r--iframeapps/cuttherope.html99
-rw-r--r--iframeapps/fruitninja.html102
-rw-r--r--iframeapps/grooveshark.html99
-rw-r--r--iframeapps/img/battery.pngbin0 -> 234 bytes
-rw-r--r--iframeapps/img/charmsbar/devices-hover.pngbin0 -> 816 bytes
-rw-r--r--iframeapps/img/charmsbar/devices.pngbin0 -> 911 bytes
-rw-r--r--iframeapps/img/charmsbar/search-hover.pngbin0 -> 1120 bytes
-rw-r--r--iframeapps/img/charmsbar/search.pngbin0 -> 1101 bytes
-rw-r--r--iframeapps/img/charmsbar/settings-hover.pngbin0 -> 1045 bytes
-rw-r--r--iframeapps/img/charmsbar/settings.pngbin0 -> 1162 bytes
-rw-r--r--iframeapps/img/charmsbar/share-hover.pngbin0 -> 1096 bytes
-rw-r--r--iframeapps/img/charmsbar/share.pngbin0 -> 1230 bytes
-rw-r--r--iframeapps/img/charmsbar/start-hover.pngbin0 -> 708 bytes
-rw-r--r--iframeapps/img/charmsbar/start.pngbin0 -> 845 bytes
-rw-r--r--iframeapps/img/network.pngbin0 -> 290 bytes
-rw-r--r--iframeapps/img/start.pngbin0 -> 640 bytes
-rw-r--r--iframeapps/img/startbutton.pngbin0 -> 640 bytes
-rw-r--r--iframeapps/instazine.html98
-rw-r--r--iframeapps/metroie.html99
-rw-r--r--iframeapps/pacman.html96
-rw-r--r--iframeapps/photos.html99
-rw-r--r--iframeapps/portal.html102
-rw-r--r--iframeapps/splashscreens/agent8ball.pngbin0 -> 858444 bytes
-rw-r--r--iframeapps/splashscreens/angrybirds.pngbin0 -> 82905 bytes
-rw-r--r--iframeapps/splashscreens/camera.pngbin0 -> 8132 bytes
-rw-r--r--iframeapps/splashscreens/captainforever.pngbin0 -> 137124 bytes
-rw-r--r--iframeapps/splashscreens/contrejour.pngbin0 -> 266969 bytes
-rw-r--r--iframeapps/splashscreens/cuttherope.pngbin0 -> 39336 bytes
-rw-r--r--iframeapps/splashscreens/fruitninja.pngbin0 -> 47430 bytes
-rw-r--r--iframeapps/splashscreens/grooveshark.pngbin0 -> 5078 bytes
-rw-r--r--iframeapps/splashscreens/instazine.pngbin0 -> 25220 bytes
-rw-r--r--iframeapps/splashscreens/metroie.pngbin0 -> 24029 bytes
-rw-r--r--iframeapps/splashscreens/pacman.pngbin0 -> 82058 bytes
-rw-r--r--iframeapps/splashscreens/photos.jpgbin0 -> 15126 bytes
-rw-r--r--iframeapps/splashscreens/portal.pngbin0 -> 16148 bytes
-rw-r--r--iframeapps/splashscreens/weather.pngbin0 -> 10925 bytes
-rw-r--r--iframeapps/weather.html99
-rw-r--r--index.html1
-rw-r--r--lockscreen/bg.jpgbin0 -> 442497 bytes
-rw-r--r--lockscreen/bg.pngbin0 -> 13475 bytes
-rw-r--r--lockscreen/calendar.pngbin0 -> 2885 bytes
-rw-r--r--lockscreen/clear.pngbin0 -> 248 bytes
-rw-r--r--lockscreen/index.html107
-rw-r--r--lockscreen/mail.pngbin0 -> 287 bytes
-rw-r--r--lockscreen/messaging.pngbin0 -> 321 bytes
-rw-r--r--login/eye-active.pngbin0 -> 283 bytes
-rw-r--r--login/eye.pngbin0 -> 395 bytes
-rw-r--r--login/go-active.pngbin0 -> 295 bytes
-rw-r--r--login/go.pngbin0 -> 290 bytes
-rw-r--r--login/img/user.pngbin0 -> 2898 bytes
-rw-r--r--login/index.html36
-rw-r--r--login/style.css152
-rw-r--r--preview.pngbin0 -> 3274667 bytes
-rw-r--r--start/about.css14
-rw-r--r--start/about.html91
-rw-r--r--start/charmsabout.css143
-rw-r--r--start/cursorpagescroll.js237
-rw-r--r--start/desktop.ini2
-rw-r--r--start/images/agent8ball.pngbin0 -> 71024 bytes
-rw-r--r--start/images/angrybirds.pngbin0 -> 48530 bytes
-rw-r--r--start/images/backgrounds/O.pngbin0 -> 86858 bytes
-rw-r--r--start/images/backgrounds/bg.pngbin0 -> 13951 bytes
-rw-r--r--start/images/backgrounds/bird.pngbin0 -> 106077 bytes
-rw-r--r--start/images/backgrounds/bloom.pngbin0 -> 514427 bytes
-rw-r--r--start/images/backgrounds/circleblue.pngbin0 -> 62887 bytes
-rw-r--r--start/images/backgrounds/circlerevisited.pngbin0 -> 550789 bytes
-rw-r--r--start/images/backgrounds/circles.pngbin0 -> 82507 bytes
-rw-r--r--start/images/backgrounds/clouds.pngbin0 -> 121120 bytes
-rw-r--r--start/images/backgrounds/default.pngbin0 -> 67258 bytes
-rw-r--r--start/images/backgrounds/dragon.pngbin0 -> 399858 bytes
-rw-r--r--start/images/backgrounds/fishypink.pngbin0 -> 232336 bytes
-rw-r--r--start/images/backgrounds/flowers.pngbin0 -> 570278 bytes
-rw-r--r--start/images/backgrounds/grass.pngbin0 -> 64701 bytes
-rw-r--r--start/images/backgrounds/greenparrots.pngbin0 -> 111868 bytes
-rw-r--r--start/images/backgrounds/greybird.pngbin0 -> 104778 bytes
-rw-r--r--start/images/backgrounds/hugeflowers.pngbin0 -> 455808 bytes
-rw-r--r--start/images/backgrounds/lightgreenclouds.pngbin0 -> 131324 bytes
-rw-r--r--start/images/backgrounds/lightgreenflowers.pngbin0 -> 553729 bytes
-rw-r--r--start/images/backgrounds/mechanic.pngbin0 -> 927331 bytes
-rw-r--r--start/images/backgrounds/office.pngbin0 -> 530621 bytes
-rw-r--r--start/images/backgrounds/orangeswirly.pngbin0 -> 70450 bytes
-rw-r--r--start/images/backgrounds/paradise.pngbin0 -> 235244 bytes
-rw-r--r--start/images/backgrounds/paradoxalred.pngbin0 -> 594965 bytes
-rw-r--r--start/images/backgrounds/pinkwaves.pngbin0 -> 168774 bytes
-rw-r--r--start/images/backgrounds/plain.pngbin0 -> 977 bytes
-rw-r--r--start/images/backgrounds/plaindarkgrey.pngbin0 -> 421 bytes
-rw-r--r--start/images/backgrounds/plants.pngbin0 -> 110736 bytes
-rw-r--r--start/images/backgrounds/plants2.pngbin0 -> 394328 bytes
-rw-r--r--start/images/backgrounds/redplants.pngbin0 -> 526290 bytes
-rw-r--r--start/images/backgrounds/rollinghills.pngbin0 -> 60667 bytes
-rw-r--r--start/images/backgrounds/shapes.pngbin0 -> 199117 bytes
-rw-r--r--start/images/backgrounds/squares.pngbin0 -> 14808 bytes
-rw-r--r--start/images/backgrounds/swirly.pngbin0 -> 71776 bytes
-rw-r--r--start/images/backgrounds/swirlygrass.pngbin0 -> 64086 bytes
-rw-r--r--start/images/backgrounds/swirlyplants.pngbin0 -> 161063 bytes
-rw-r--r--start/images/backgrounds/thickgrass.pngbin0 -> 39098 bytes
-rw-r--r--start/images/backgrounds/thincircles.pngbin0 -> 45562 bytes
-rw-r--r--start/images/backgrounds/wavy.pngbin0 -> 169161 bytes
-rw-r--r--start/images/backgrounds/windowsdpgreen.pngbin0 -> 278040 bytes
-rw-r--r--start/images/backgrounds/wonderland.pngbin0 -> 207411 bytes
-rw-r--r--start/images/backgrounds/xboxmusic.pngbin0 -> 311115 bytes
-rw-r--r--start/images/backgrounds/yellowparrots.pngbin0 -> 111633 bytes
-rw-r--r--start/images/battleship.pngbin0 -> 2312 bytes
-rw-r--r--start/images/blog.pngbin0 -> 16799 bytes
-rw-r--r--start/images/calc.pngbin0 -> 2040 bytes
-rw-r--r--start/images/calendar.pngbin0 -> 1466 bytes
-rw-r--r--start/images/camera.pngbin0 -> 1632 bytes
-rw-r--r--start/images/captainforever.gifbin0 -> 1030340 bytes
-rw-r--r--start/images/charmsbar/search/apps.pngbin0 -> 398 bytes
-rw-r--r--start/images/charmsbar/search/files.pngbin0 -> 363 bytes
-rw-r--r--start/images/charmsbar/search/grooveshark.pngbin0 -> 1169 bytes
-rw-r--r--start/images/charmsbar/search/reset-black.pngbin0 -> 414 bytes
-rw-r--r--start/images/charmsbar/search/reset.pngbin0 -> 466 bytes
-rw-r--r--start/images/charmsbar/search/search-black.pngbin0 -> 323 bytes
-rw-r--r--start/images/charmsbar/search/search.pngbin0 -> 358 bytes
-rw-r--r--start/images/charmsbar/search/settings.pngbin0 -> 565 bytes
-rw-r--r--start/images/charmsbar/search/smartsearch.pngbin0 -> 685 bytes
-rw-r--r--start/images/charmsbar/search/youtube.pngbin0 -> 1378 bytes
-rw-r--r--start/images/charmsbar/settings/O.pngbin0 -> 7452 bytes
-rw-r--r--start/images/charmsbar/settings/birds.pngbin0 -> 6825 bytes
-rw-r--r--start/images/charmsbar/settings/bloom.pngbin0 -> 15171 bytes
-rw-r--r--start/images/charmsbar/settings/bluecircle.pngbin0 -> 8318 bytes
-rw-r--r--start/images/charmsbar/settings/circle.pngbin0 -> 2486 bytes
-rw-r--r--start/images/charmsbar/settings/circleblue.pngbin0 -> 5856 bytes
-rw-r--r--start/images/charmsbar/settings/circlerevisited.pngbin0 -> 8487 bytes
-rw-r--r--start/images/charmsbar/settings/close-active.pngbin0 -> 3473 bytes
-rw-r--r--start/images/charmsbar/settings/close-hover.pngbin0 -> 3674 bytes
-rw-r--r--start/images/charmsbar/settings/close.pngbin0 -> 3516 bytes
-rw-r--r--start/images/charmsbar/settings/clouds.pngbin0 -> 5651 bytes
-rw-r--r--start/images/charmsbar/settings/default.pngbin0 -> 5832 bytes
-rw-r--r--start/images/charmsbar/settings/dragons.pngbin0 -> 14848 bytes
-rw-r--r--start/images/charmsbar/settings/fishypink.pngbin0 -> 11499 bytes
-rw-r--r--start/images/charmsbar/settings/flowers.pngbin0 -> 19342 bytes
-rw-r--r--start/images/charmsbar/settings/grass.pngbin0 -> 915 bytes
-rw-r--r--start/images/charmsbar/settings/greenparrots.pngbin0 -> 7596 bytes
-rw-r--r--start/images/charmsbar/settings/greybird.pngbin0 -> 3609 bytes
-rw-r--r--start/images/charmsbar/settings/hugeflowers.pngbin0 -> 32521 bytes
-rw-r--r--start/images/charmsbar/settings/lightgreenclouds.pngbin0 -> 3602 bytes
-rw-r--r--start/images/charmsbar/settings/lightgreenflowers.pngbin0 -> 12100 bytes
-rw-r--r--start/images/charmsbar/settings/mechanic.pngbin0 -> 44387 bytes
-rw-r--r--start/images/charmsbar/settings/office.pngbin0 -> 8757 bytes
-rw-r--r--start/images/charmsbar/settings/orangeswirly.pngbin0 -> 5919 bytes
-rw-r--r--start/images/charmsbar/settings/paradise.pngbin0 -> 9734 bytes
-rw-r--r--start/images/charmsbar/settings/paradoxalred.pngbin0 -> 4938 bytes
-rw-r--r--start/images/charmsbar/settings/pinkwaves.pngbin0 -> 5535 bytes
-rw-r--r--start/images/charmsbar/settings/plain.pngbin0 -> 977 bytes
-rw-r--r--start/images/charmsbar/settings/plants.pngbin0 -> 8124 bytes
-rw-r--r--start/images/charmsbar/settings/plants2.pngbin0 -> 22329 bytes
-rw-r--r--start/images/charmsbar/settings/redflowers.pngbin0 -> 6261 bytes
-rw-r--r--start/images/charmsbar/settings/rollinghills.pngbin0 -> 1482 bytes
-rw-r--r--start/images/charmsbar/settings/shapes.pngbin0 -> 11478 bytes
-rw-r--r--start/images/charmsbar/settings/squares.pngbin0 -> 1835 bytes
-rw-r--r--start/images/charmsbar/settings/squares2.pngbin0 -> 2474 bytes
-rw-r--r--start/images/charmsbar/settings/swirly.pngbin0 -> 9318 bytes
-rw-r--r--start/images/charmsbar/settings/swirlygrass.pngbin0 -> 1278 bytes
-rw-r--r--start/images/charmsbar/settings/swirlyplants.pngbin0 -> 15722 bytes
-rw-r--r--start/images/charmsbar/settings/thickgrass.pngbin0 -> 1429 bytes
-rw-r--r--start/images/charmsbar/settings/thincircle.pngbin0 -> 1073 bytes
-rw-r--r--start/images/charmsbar/settings/wavy.pngbin0 -> 7438 bytes
-rw-r--r--start/images/charmsbar/settings/windowsdpgreen.pngbin0 -> 8221 bytes
-rw-r--r--start/images/charmsbar/settings/wonderland.pngbin0 -> 12436 bytes
-rw-r--r--start/images/charmsbar/settings/xboxmusic.pngbin0 -> 15988 bytes
-rw-r--r--start/images/charmsbar/settings/yellowparrots.pngbin0 -> 6866 bytes
-rw-r--r--start/images/contrejour.pngbin0 -> 10976 bytes
-rw-r--r--start/images/cuttherope.pngbin0 -> 72131 bytes
-rw-r--r--start/images/desktop.jpgbin0 -> 32571 bytes
-rw-r--r--start/images/firefox.pngbin0 -> 26854 bytes
-rw-r--r--start/images/fruitninja.pngbin0 -> 75765 bytes
-rw-r--r--start/images/games.pngbin0 -> 3115 bytes
-rw-r--r--start/images/grooveshark.pngbin0 -> 3763 bytes
-rw-r--r--start/images/info.pngbin0 -> 1634 bytes
-rw-r--r--start/images/instazine.pngbin0 -> 20982 bytes
-rw-r--r--start/images/link6155.gifbin0 -> 268919 bytes
-rw-r--r--start/images/mail.pngbin0 -> 8937 bytes
-rw-r--r--start/images/maps.pngbin0 -> 2358 bytes
-rw-r--r--start/images/messaging.pngbin0 -> 8510 bytes
-rw-r--r--start/images/metroie.pngbin0 -> 3907 bytes
-rw-r--r--start/images/music.pngbin0 -> 3253 bytes
-rw-r--r--start/images/notes.pngbin0 -> 27262 bytes
-rw-r--r--start/images/ntim007.gifbin0 -> 26460 bytes
-rw-r--r--start/images/pacman.pngbin0 -> 6841 bytes
-rw-r--r--start/images/people.pngbin0 -> 7185 bytes
-rw-r--r--start/images/photos.pngbin0 -> 1262 bytes
-rw-r--r--start/images/pixelpaint.pngbin0 -> 2396 bytes
-rw-r--r--start/images/portalsmall.pngbin0 -> 12095 bytes
-rw-r--r--start/images/reader.pngbin0 -> 4515 bytes
-rw-r--r--start/images/remotedesktop.pngbin0 -> 2200 bytes
-rw-r--r--start/images/scrollbar/down-active.pngbin0 -> 210 bytes
-rw-r--r--start/images/scrollbar/down.pngbin0 -> 212 bytes
-rw-r--r--start/images/scrollbar/left-active.pngbin0 -> 203 bytes
-rw-r--r--start/images/scrollbar/left.pngbin0 -> 216 bytes
-rw-r--r--start/images/scrollbar/right-active.pngbin0 -> 205 bytes
-rw-r--r--start/images/scrollbar/right.pngbin0 -> 217 bytes
-rw-r--r--start/images/scrollbar/up-active.pngbin0 -> 211 bytes
-rw-r--r--start/images/scrollbar/up.pngbin0 -> 217 bytes
-rw-r--r--start/images/skybookmarks.pngbin0 -> 3144 bytes
-rw-r--r--start/images/skydrive.pngbin0 -> 1474 bytes
-rw-r--r--start/images/smartsearch.pngbin0 -> 4488 bytes
-rw-r--r--start/images/sports.pngbin0 -> 1637 bytes
-rw-r--r--start/images/store.pngbin0 -> 17741 bytes
-rw-r--r--start/images/symbolistic.pngbin0 -> 2098 bytes
-rw-r--r--start/images/user.pngbin0 -> 1019 bytes
-rw-r--r--start/images/videos.pngbin0 -> 1698 bytes
-rw-r--r--start/images/website.pngbin0 -> 3635 bytes
-rw-r--r--start/images/youtube.pngbin0 -> 3835 bytes
-rw-r--r--start/images/youtubechannel.pngbin0 -> 1419 bytes
-rw-r--r--start/index.html609
-rw-r--r--start/jquery-1.8.0.min.js2
-rw-r--r--start/jquery-ui-1.8.23.min.js50
-rw-r--r--start/livetiles/dakoder/DaKoder.pngbin0 -> 16111 bytes
-rw-r--r--start/livetiles/dakoder/MetroJs.lt.js1054
-rw-r--r--start/livetiles/dakoder/index.html77
-rw-r--r--start/livetiles/dakoder/jquery-1.5.1.min.js19
-rw-r--r--start/livetiles/photos/1.jpgbin0 -> 47341 bytes
-rw-r--r--start/livetiles/photos/2.jpgbin0 -> 29819 bytes
-rw-r--r--start/livetiles/photos/MetroJs.lt.js1054
-rw-r--r--start/livetiles/photos/index.html383
-rw-r--r--start/livetiles/photos/jquery-1.5.1.min.js19
-rw-r--r--start/livetiles/rss/MetroJs.lt.js1054
-rw-r--r--start/livetiles/rss/index.html151
-rw-r--r--start/livetiles/rss/jquery-1.5.1.min.js19
-rw-r--r--start/livetiles/rss/rss.pngbin0 -> 491 bytes
-rw-r--r--start/livetiles/weather/MetroJs.lt.js1054
-rw-r--r--start/livetiles/weather/index.html183
-rw-r--r--start/livetiles/weather/jquery-1.5.1.min.js19
-rw-r--r--start/livetiles/weather/jquery.simpleWeather.js132
-rw-r--r--start/mousewheel.js84
-rw-r--r--start/robots.txt5
-rw-r--r--start/scrollbar.css67
-rw-r--r--start/style.css808
-rw-r--r--store/comingsoon.pngbin0 -> 20381 bytes
-rw-r--r--store/css/charms.css165
-rw-r--r--store/img/charmsbar/battery.pngbin0 -> 234 bytes
-rw-r--r--store/img/charmsbar/devices-hover.pngbin0 -> 816 bytes
-rw-r--r--store/img/charmsbar/devices.pngbin0 -> 911 bytes
-rw-r--r--store/img/charmsbar/network.pngbin0 -> 290 bytes
-rw-r--r--store/img/charmsbar/search-hover.pngbin0 -> 1120 bytes
-rw-r--r--store/img/charmsbar/search.pngbin0 -> 1101 bytes
-rw-r--r--store/img/charmsbar/settings-hover.pngbin0 -> 1045 bytes
-rw-r--r--store/img/charmsbar/settings.pngbin0 -> 1162 bytes
-rw-r--r--store/img/charmsbar/share-hover.pngbin0 -> 1096 bytes
-rw-r--r--store/img/charmsbar/share.pngbin0 -> 1230 bytes
-rw-r--r--store/img/charmsbar/start-hover.pngbin0 -> 708 bytes
-rw-r--r--store/img/charmsbar/start.pngbin0 -> 845 bytes
-rw-r--r--store/img/charmsbar/startbutton.pngbin0 -> 640 bytes
-rw-r--r--store/index.html82
-rw-r--r--store/splashscreen.pngbin0 -> 4942 bytes
575 files changed, 20074 insertions, 0 deletions
diff --git a/App API/README.txt b/App API/README.txt
new file mode 100644
index 0000000..8a01a68
--- /dev/null
+++ b/App API/README.txt
@@ -0,0 +1,14 @@
+Online Windows 8 App API by ntim007
+***********************************
+How to ?
+********
+- Make your app using the API
+- Send a note to ntim007 or/and to link6155 on deviantART
+
+Things you should do before submitting your app :
+*************************************************
+- Make sure there's no pornographic/mature content because we won't accept it.
+- Fill in another txt file called about.txt
+- Please make sure that there is a splash screen and a 250x250 tile
+
+
diff --git a/App API/about.txt b/App API/about.txt
new file mode 100644
index 0000000..dba43f6
--- /dev/null
+++ b/App API/about.txt
@@ -0,0 +1,13 @@
+
+ APP NAME :
+
+ CREATED BY :
+
+ DESCRIPTION :
+
+
+
+
+
+
+ HOW CAN WE CONTACT YOU (deviantART username or email):
diff --git a/App API/css/appbase.css b/App API/css/appbase.css
new file mode 100644
index 0000000..75a53ff
--- /dev/null
+++ b/App API/css/appbase.css
@@ -0,0 +1,229 @@
+/* CSS Reset + Font */
+body {
+ font-family:Segoe UI;
+ margin:0px;
+ padding:0px;
+}
+img, a {
+ border:none;
+ outline:none;
+}
+/* App bar */
+#appbar {
+ position:fixed;
+ bottom:0;
+ background-color:#111;
+ width:100%;
+ height:32px;
+ display:none;
+ padding:10px;
+}
+/* Splashscreen */
+#splashscreen {
+ position:fixed;
+ width:100%;
+ height:100%;
+ color:#2974AE;
+ background-image:url('../splashscreen.png') , radial-gradient(#3285C9 0%, #1F5C88 840px);
+ background-position:center;
+ background-color:#2974AE;
+ background-repeat:no-repeat;
+ animation:splash 4s;
+ -ms-animation:splash 4s;
+ -webkit-animation:splash 4s;
+ -o-animation:splash 4s;
+ opacity:0;
+ z-index:-1;
+}
+@keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-webkit-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-ms-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-o-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+/* Charms */
+/* Hover areas */
+#hoverarea {
+ position:fixed;
+ top:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#bottomhoverarea {
+ position:fixed;
+ bottom:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#starthoverarea {
+ position:fixed;
+ bottom:0px;
+ left:0px;
+ width:15px;
+ height:15px;
+}
+/* Charms bar */
+#charmsbar {
+ display:none;
+ background-color:#111111;
+ position:fixed;
+ padding:5% 0;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 86px;
+
+}
+/* Start button */
+#startbutton {
+ display:none;
+ position:fixed;
+ left:0px;
+ bottom:0px;
+ margin:0;
+ padding:0;
+}
+/* Date and time on charms */
+#datetime {
+ display:none;
+ position:fixed;
+ left:50px;
+ bottom:50px;
+ width:490px;
+ height:139px;
+ background-color: rgba(17,17,17,0.96);
+ color:#FFFFFF;
+}
+#ctime {
+ position:absolute;
+ left:70px;
+ bottom:19px;
+ font-family: Segoe UI Light;
+ font-size: 64pt;
+}
+#date {
+ margin-top:20px;
+ margin-right:20px;
+ float:right;
+ font-size:24pt;
+}
+#iconnetwork {
+ position:absolute;
+ top:35px;
+ left:25px;
+}
+#iconbattery {
+ position:absolute;
+ bottom:35px;
+ left:32px;
+}
+
+/* Text styling on Settings, share charms */
+.charms span {
+ line-height:40px;
+}
+.ch1 {
+ font-family:Segoe UI Semilight;
+ font-size:28px;
+ margin-bottom:25px;
+}
+.ch2 {
+ font-size:11pt;
+ margin-bottom:25px;
+}
+.ch2d {
+ font-size:11pt;
+ color:#A8A8A8;
+ margin-bottom:25px;
+}
+.sharing {
+ font-size:14pt;
+}
+/* Close button on settings, share charms */
+.closecharms {
+ float:right;
+ height:32px !important;
+ width:32px !important;
+ box-shadow:none !important;
+ background-image: url(../img/charmsbar/close.png);
+}
+/*.closecharms:hover {
+ background-image: url(../img/charmsbar/close-hover.png);
+}*/
+.closecharms:active {
+ background-image: url(../img/charmsbar/close-active.png);
+}
+/* Charms */
+.charms {
+ z-index:2;
+ background-color:#001E4E;
+ padding : 40px;
+ position:fixed;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 345px;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ display:none;
+ color:#FFF;
+}
+/* Settings charms */
+#settingscharms {
+
+} \ No newline at end of file
diff --git a/App API/img/charmsbar/battery.png b/App API/img/charmsbar/battery.png
new file mode 100644
index 0000000..07b1b4d
--- /dev/null
+++ b/App API/img/charmsbar/battery.png
Binary files differ
diff --git a/App API/img/charmsbar/close-active.png b/App API/img/charmsbar/close-active.png
new file mode 100644
index 0000000..eafc8fb
--- /dev/null
+++ b/App API/img/charmsbar/close-active.png
Binary files differ
diff --git a/App API/img/charmsbar/close.png b/App API/img/charmsbar/close.png
new file mode 100644
index 0000000..7173f58
--- /dev/null
+++ b/App API/img/charmsbar/close.png
Binary files differ
diff --git a/App API/img/charmsbar/devices-hover.png b/App API/img/charmsbar/devices-hover.png
new file mode 100644
index 0000000..ad3fa8e
--- /dev/null
+++ b/App API/img/charmsbar/devices-hover.png
Binary files differ
diff --git a/App API/img/charmsbar/devices.png b/App API/img/charmsbar/devices.png
new file mode 100644
index 0000000..1a81a90
--- /dev/null
+++ b/App API/img/charmsbar/devices.png
Binary files differ
diff --git a/App API/img/charmsbar/network.png b/App API/img/charmsbar/network.png
new file mode 100644
index 0000000..5dc5ef7
--- /dev/null
+++ b/App API/img/charmsbar/network.png
Binary files differ
diff --git a/App API/img/charmsbar/search-hover.png b/App API/img/charmsbar/search-hover.png
new file mode 100644
index 0000000..16a48f9
--- /dev/null
+++ b/App API/img/charmsbar/search-hover.png
Binary files differ
diff --git a/App API/img/charmsbar/search.png b/App API/img/charmsbar/search.png
new file mode 100644
index 0000000..d5cea8e
--- /dev/null
+++ b/App API/img/charmsbar/search.png
Binary files differ
diff --git a/App API/img/charmsbar/settings-hover.png b/App API/img/charmsbar/settings-hover.png
new file mode 100644
index 0000000..c8f9820
--- /dev/null
+++ b/App API/img/charmsbar/settings-hover.png
Binary files differ
diff --git a/App API/img/charmsbar/settings.png b/App API/img/charmsbar/settings.png
new file mode 100644
index 0000000..b63fbc3
--- /dev/null
+++ b/App API/img/charmsbar/settings.png
Binary files differ
diff --git a/App API/img/charmsbar/share-hover.png b/App API/img/charmsbar/share-hover.png
new file mode 100644
index 0000000..bd3a423
--- /dev/null
+++ b/App API/img/charmsbar/share-hover.png
Binary files differ
diff --git a/App API/img/charmsbar/share.png b/App API/img/charmsbar/share.png
new file mode 100644
index 0000000..b743bf0
--- /dev/null
+++ b/App API/img/charmsbar/share.png
Binary files differ
diff --git a/App API/img/charmsbar/start-hover.png b/App API/img/charmsbar/start-hover.png
new file mode 100644
index 0000000..6cc3144
--- /dev/null
+++ b/App API/img/charmsbar/start-hover.png
Binary files differ
diff --git a/App API/img/charmsbar/start.png b/App API/img/charmsbar/start.png
new file mode 100644
index 0000000..6cf722c
--- /dev/null
+++ b/App API/img/charmsbar/start.png
Binary files differ
diff --git a/App API/img/charmsbar/startbutton.png b/App API/img/charmsbar/startbutton.png
new file mode 100644
index 0000000..db9726d
--- /dev/null
+++ b/App API/img/charmsbar/startbutton.png
Binary files differ
diff --git a/App API/index.html b/App API/index.html
new file mode 100644
index 0000000..84a1ef2
--- /dev/null
+++ b/App API/index.html
@@ -0,0 +1,104 @@
+<!--DO NOT REMOVE THE CODE GIVEN HERE, THAT CODE POWERS THE CHARMS AND START MENU !!! -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
+ <!--Title of the app -->
+ <title></title>
+
+ <!--Stylesheet that styles the charms bar and the startbutton -->
+ <link rel="stylesheet" href="css/appbase.css"/>
+
+ <!--Script that powers the charms bar-->
+ <script>
+ function visibility(visibility , target) {
+ document.getElementById(target).style.display=visibility;
+ }
+ </script>
+ <script>
+ function doublevisibility(visibility , target , target2) {
+ document.getElementById(target).style.display=visibility;
+ document.getElementById(target2).style.display=visibility;
+ }
+ </script>
+ </head>
+ <body oncontextmenu="visibility('block','appbar')" onclick="visibility('none','appbar')">
+ <div id="splashscreen"></div>
+ <!--PLACE YOUR CONTENT HERE -->
+<p>Things to do :
+<br/>- Customize the settings charms
+<br/>- Customize the share charms
+<br/>- Customize splashscreen
+<br/>- Customize appbar
+<br/>- Add some content to the app
+<br/>- Read README.txt
+<br/>- Fill in the about.txt
+<br/>- Make a tile for your app (250x250)
+</p>
+ <!-- App bar -->
+ <div id="appbar"></div>
+ <!-- Settings charms -->
+ <div id="settingscharms" class="charms"> <a href="#" onclick="settingscharms.style.display='none';" class="closecharms"/></a>
+ <span class="ch1">Settings</span><br/>
+ </div>
+ <!-- Share charms -->
+ <div id="sharecharms" class="charms"> <a href="#" onclick="sharecharms.style.display='none';" class="closecharms"/></a>
+ <span class="ch1">Share</span><br/>
+ <span class="sharing">You are sharing : Online Windows 8</span><br/>
+ <span>Send</span><br/>
+ <span>Recommend</span><br/>
+ <div class="g-plusone" data-href="http://onlinewindows8.koding.com"></div>
+ <a href="https://twitter.com/share" class="twitter-share-button" data-url="http://onlinewindows8.koding.com" data-text="Online Windows 8" data-via="ntim007">Tweet</a>
+ <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="http://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+ </div>
+ <!-- CHARMS BAR CODE -->
+ <div id="charmsbar" onmouseover="doublevisibility('inline','charmsbar','datetime')" onmouseout="doublevisibility('none','charmsbar','datetime')" >
+ <img src="img/charmsbar/search.png" onclick="visibility('block','searchcharms')" onmouseover="this.src='img/charmsbar/search-hover.png'" onmouseout="this.src='img/charmsbar/search.png'"/><br/>
+ <img src="img/charmsbar/share.png" onclick="visibility('block','sharecharms')" onmouseover="this.src='img/charmsbar/share-hover.png'" onmouseout="this.src='img/charmsbar/share.png'"/><br/>
+ <a href="../start/index.html"><img src="img/charmsbar/start.png" onmouseover="this.src='img/charmsbar/start-hover.png'" onmouseout="this.src='img/charmsbar/start.png'"/></a><br/>
+ <img src="img/charmsbar/devices.png" onmouseover="this.src='img/charmsbar/devices-hover.png'" onmouseout="this.src='img/charmsbar/devices.png'"/><br/>
+ <img src="img/charmsbar/settings.png" onclick="visibility('block','settingscharms')" onmouseover="this.src='img/charmsbar/settings-hover.png'" onmouseout="this.src='img/charmsbar/settings.png'"/><br/>
+ </div>
+ <div id="datetime">
+ <img src="img/charmsbar/network.png" id="iconnetwork" height="24px" width="24px"/>
+ <img src="img/charmsbar/battery.png" id="iconbattery"/>
+ <span id="ctime"></span>
+ <script>
+ function clock() {
+ var digital = new Date();
+ var hours = digital.getHours();
+ var minutes = digital.getMinutes();
+ var seconds = digital.getSeconds();
+ var amOrPm = "AM";
+ if (hours > 11) amOrPm = "PM";
+ if (hours > 12) hours = hours - 12;
+ if (hours == 0) hours = 12;
+ if (minutes <= 9) minutes = "0" + minutes;
+ if (seconds <= 9) seconds = "0" + seconds;
+ dispTime = hours + ":" + minutes ;
+ document.getElementById('ctime').innerHTML = dispTime;
+ setTimeout("clock()", 1000);
+ }
+ window.onload=clock;
+ </script>
+ <div id="date">
+ <script>
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+ </div>
+ </div>
+ <div id="startbutton" onmouseout="visibility('none','startbutton')">
+ <a href="../start/index.html"><img src="img/charmsbar/startbutton.png"/></a>
+ </div>
+ <div id="hoverarea" onmouseover="doublevisibility('inline','charmsbar','datetime')" class="hotcorner"></div>
+ <div id="bottomhoverarea" onmouseover="doublevisibility('inline','charmsbar','datetime')" class="hotcorner"></div>
+ <div id="starthoverarea" onmouseover="visibility('inline','startbutton')" class="hotcorner"></div>
+ </body>
+</html>
diff --git a/App API/splashscreen.png b/App API/splashscreen.png
new file mode 100644
index 0000000..1285e80
--- /dev/null
+++ b/App API/splashscreen.png
Binary files differ
diff --git a/apps/calculator/basic.html b/apps/calculator/basic.html
new file mode 100644
index 0000000..b8702dd
--- /dev/null
+++ b/apps/calculator/basic.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<title>Calculator</title>
+<link rel="stylesheet" href="style.css"/>
+<link rel="stylesheet" href="common.css"/>
+<link rel="shortcut icon" href="favicon32.ico" size="32x32"/>
+ <script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+</script>
+</head>
+<body>
+
+<div align="center">
+<form name="Keypad" action="">
+<!-- Original: http://www.dummyproof.com/javascripts -->
+
+<table border=2 width=50 height=60 cellpadding=1 cellspacing=5>
+<tr>
+<td colspan=3 align=middle>
+<input name="ReadOut" type="Text" size=24 value="0" width=100%>
+</td>
+<td>
+</td>
+<td>
+<input name="btnClear" id="deletebutton" type="Button" value=" C " onClick="Clear()" style="width:74px">
+</td>
+<td><input name="btnClearEntry" type="Button" value="CE" onClick="ClearEntry()" class="actionbutton" style="width:69px;">
+</td>
+</tr>
+<tr>
+<td>
+<input name="btnSeven" type="Button" value="7" onClick="NumPressed(7)">
+</td>
+<td>
+<input name="btnEight" type="Button" value="8" onClick="NumPressed(8)">
+</td>
+<td>
+<input name="btnNine" type="Button" value="9" onClick="NumPressed(9)">
+</td>
+<td>
+</td>
+<td>
+<input name="btnNeg" type="Button" value="+/-" onClick="Neg()" class="actionbutton">
+</td>
+<td>
+<input name="btnPercent" type="Button" value=" % " onClick="Percent()" class="actionbutton" style="width:69px;">
+</td>
+</tr>
+<tr>
+<td>
+<input name="btnFour" type="Button" value="4" onClick="NumPressed(4)">
+</td>
+<td>
+<input name="btnFive" type="Button" value="5" onClick="NumPressed(5)">
+</td>
+<td>
+<input name="btnSix" type="Button" value="6" onClick="NumPressed(6)">
+</td>
+<td>
+</td>
+<td align=middle><input name="btnPlus" type="Button" value=" + " onClick="Operation('+')" class="actionbutton">
+</td>
+<td align=middle><input name="btnMinus" type="Button" value=" - " onClick="Operation('-')" class="actionbutton" style="width:69px;">
+</td>
+</tr>
+<tr>
+<td>
+<input name="btnOne" type="Button" value="1" onClick="NumPressed(1)">
+</td>
+<td>
+<input name="btnTwo" type="Button" value="2" onClick="NumPressed(2)">
+</td>
+<td>
+<input name="btnThree" type="Button" value="3" onClick="NumPressed(3)">
+</td>
+<td>
+</td>
+<td align=middle><input name="btnMultiply" type="Button" value=" * " onClick="Operation('*')" class="actionbutton">
+</td>
+<td align=middle><input name="btnDivide" type="Button" value=" / " onClick="Operation('/')" class="actionbutton" style="width:69px;">
+</td>
+</tr>
+<tr>
+<td>
+<input name="btnZero" type="Button" value="0" onClick="NumPressed(0)">
+</td>
+<td>
+<input name="btnDecimal" type="Button" value=" . " onClick="Decimal()" class="actionbutton" style="width:56px;text-transform:bold;">
+</td>
+<td colspan=3>
+</td>
+<td>
+<input name="btnEquals" class="resultbutton" type="Button" value=" = " onClick="Operation('=')">
+</td>
+</tr>
+</table>
+
+</form>
+</div>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+var FKeyPad = document.Keypad;
+var Accum = 0;
+var FlagNewNum = false;
+var PendingOp = "";
+function NumPressed (Num) {
+if (FlagNewNum) {
+FKeyPad.ReadOut.value = Num;
+FlagNewNum = false;
+ }
+else {
+if (FKeyPad.ReadOut.value == "0")
+FKeyPad.ReadOut.value = Num;
+else
+FKeyPad.ReadOut.value += Num;
+ }
+}
+function Operation (Op) {
+var Readout = FKeyPad.ReadOut.value;
+if (FlagNewNum && PendingOp != "=");
+else
+{
+FlagNewNum = true;
+if ( '+' == PendingOp )
+Accum += parseFloat(Readout);
+else if ( '-' == PendingOp )
+Accum -= parseFloat(Readout);
+else if ( '/' == PendingOp )
+Accum /= parseFloat(Readout);
+else if ( '*' == PendingOp )
+Accum *= parseFloat(Readout);
+else
+Accum = parseFloat(Readout);
+FKeyPad.ReadOut.value = Accum;
+PendingOp = Op;
+ }
+}
+function Decimal () {
+var curReadOut = FKeyPad.ReadOut.value;
+if (FlagNewNum) {
+curReadOut = "0.";
+FlagNewNum = false;
+ }
+else
+{
+if (curReadOut.indexOf(".") == -1)
+curReadOut += ".";
+ }
+FKeyPad.ReadOut.value = curReadOut;
+}
+function ClearEntry () {
+FKeyPad.ReadOut.value = "0";
+FlagNewNum = true;
+}
+function Clear () {
+Accum = 0;
+PendingOp = "";
+ClearEntry();
+}
+function Neg () {
+FKeyPad.ReadOut.value = parseFloat(FKeyPad.ReadOut.value) * -1;
+}
+function Percent () {
+FKeyPad.ReadOut.value = (parseFloat(FKeyPad.ReadOut.value) / 100) * parseFloat(Accum);
+}
+// End -->
+</script>
+</body>
+</html> \ No newline at end of file
diff --git a/apps/calculator/common.css b/apps/calculator/common.css
new file mode 100644
index 0000000..91dee54
--- /dev/null
+++ b/apps/calculator/common.css
@@ -0,0 +1,175 @@
+html, body {
+ font-family:Segoe UI;
+ color:#FFFFFF;
+ margin:0px;
+ padding:0px;
+ width:100%;
+ height:100%;
+}
+img, a {
+ outline:none;
+ border:none;
+}
+#splashscreen {
+ margin:0;
+ padding:0;
+ position:fixed;
+ top:0;
+ width:100%;
+ height:100%;
+ color:#FFFFFF;
+ background-color:#2672EC;
+ background-image:url('splashscreen.png');
+ background-position:center;
+ background-repeat:no-repeat;
+ animation:splash 4s;
+ -ms-animation:splash 4s;
+ -webkit-animation:splash 4s;
+ -o-animation:splash 4s;
+ opacity:0;
+ z-index:-1;
+}
+@keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-webkit-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-ms-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+}
+@-o-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+#hoverarea {
+ position:fixed;
+ top:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#bottomhoverarea {
+ position:fixed;
+ bottom:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#starthoverarea {
+ position:fixed;
+ bottom:0px;
+ left:0px;
+ width:15px;
+ height:15px;
+}
+#charmsbar {
+ display:none;
+ background-color:#111111;
+ position:fixed;
+ padding:5% 0;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 86px;
+
+}
+#settingscharms {
+ padding : 40px;
+ display:none;
+ background-color:#3B66AD;
+ position:fixed;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 345px;
+
+}
+#startbutton {
+ display:none;
+ position:fixed;
+ left:0px;
+ bottom:0px;
+}
+#iconnetwork {
+ position:absolute;
+ top:35px;
+ left:25px;
+}
+#iconbattery {
+ position:absolute;
+ bottom:35px;
+ left:32px;
+}
+#datetime {
+ display:none;
+ position:fixed;
+ left:50px;
+ bottom:50px;
+ width:490px;
+ height:139px;
+ background-color: rgba(17,17,17,1);
+}
+#time {
+ position:absolute;
+ left:70px;
+ bottom:19px;
+ font-family: Segoe UI Light;
+ font-size: 64pt;
+}
+#date {
+ margin-top:20px;
+ margin-right:20px;
+ float:right;
+ font-size:24pt;
+ font-family: Segoe UI;
+ color:#FFFFFF;
+}
+iframe {
+ position:relative;
+ border:none;
+} \ No newline at end of file
diff --git a/apps/calculator/favicon.ico b/apps/calculator/favicon.ico
new file mode 100644
index 0000000..7a50b6e
--- /dev/null
+++ b/apps/calculator/favicon.ico
Binary files differ
diff --git a/apps/calculator/favicon32.ico b/apps/calculator/favicon32.ico
new file mode 100644
index 0000000..876d4ab
--- /dev/null
+++ b/apps/calculator/favicon32.ico
Binary files differ
diff --git a/apps/calculator/index.html b/apps/calculator/index.html
new file mode 100644
index 0000000..05dea33
--- /dev/null
+++ b/apps/calculator/index.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<title>Calculator</title>
+<link rel="stylesheet" href="style.css"/>
+<link rel="stylesheet" href="common.css"/>
+<link rel="shortcut icon" href="favicon32.ico" size="32x32"/>
+<script src="jquery-1.8.0.min.js" type="text/javascript"></script>
+<script src="mousewheel.js" type="text/javascript"></script>
+<script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+</script>
+
+<script>
+
+ function AddMouseWheel(){
+ $("body").mousewheel(function(event, delta){
+ var scroll_value = delta * 50;
+ if (!jQuery.browser.chrome) {
+ document.documentElement.scrollLeft -= scroll_value;
+ } else {
+ this.scrollLeft -= scroll_value;
+ }
+ return false;
+ });
+ }
+
+ $(function(){
+
+ AddMouseWheel();
+
+ })
+</script>
+</head>
+<body>
+<div id="splashscreen"></div>
+<div id="firstblock">
+<div class="blocktitle">Basic</div>
+<iframe src="basic.html" width="41%" height="60%" scrolling="no" frameborder="0">Your browser doesn't support iframes</iframe>
+</div>
+<div id="secondblock">
+<div class="blocktitle">Scientific</div>
+<iframe src="scientific.html" width="35%" height="65%" scrolling="no" frameborder="0">Your browser doesn't support iframes</iframe>
+</div>
+<div id="thirdblock">
+<div class="blocktitle">Tools</div>
+<iframe src="tools.html" width="100%" height="82%" scrolling="no" frameborder="0">Your browser doesn't support iframes</iframe>
+</div>
+<div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="../../common/img/charmsbar/search.png" onmouseover="this.src='../../common/img/charmsbar/search-hover.png'" onmouseout="this.src='../../common/img/charmsbar/search.png'"/><br/>
+<img src="../../common/img/charmsbar/share.png" onmouseover="this.src='../../common/img/charmsbar/share-hover.png'" onmouseout="this.src='../../common/img/charmsbar/share.png'"/><br/>
+<a href="../../start/index.html"><img src="../../common/img/charmsbar/start.png" onmouseover="this.src='../../common/img/charmsbar/start-hover.png'" onmouseout="this.src='../../common/img/charmsbar/start.png'"/></a><br/>
+<img src="../../common/img/charmsbar/devices.png" onmouseover="this.src='../../common/img/charmsbar/devices-hover.png'" onmouseout="this.src='../../common/img/charmsbar/devices.png'"/><br/>
+<img src="../../common/img/charmsbar/settings.png" onmouseover="this.src='../../common/img/charmsbar/settings-hover.png'" onmouseout="this.src='../../common/img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+</div>
+<div id="datetime">
+<img src="../../common/img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="../../common/img/battery.png" id="iconbattery"/>
+<span id="time"></span>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+window.onload=clock;
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../../start/index.html"><img src="../../common/img/start.png"/></a>
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/apps/calculator/jquery-1.8.0.min.js b/apps/calculator/jquery-1.8.0.min.js
new file mode 100644
index 0000000..066d72c
--- /dev/null
+++ b/apps/calculator/jquery-1.8.0.min.js
@@ -0,0 +1,2 @@
+/*! jQuery v@1.8.0 jquery.com | jquery.org/license */
+(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d<e;d++)p.event.add(b,c,h[c][d])}g.data&&(g.data=p.extend({},g.data))}function bE(a,b){var c;if(b.nodeType!==1)return;b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?(b.parentNode&&(b.outerHTML=a.outerHTML),p.support.html5Clone&&a.innerHTML&&!p.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):c==="input"&&bv.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text),b.removeAttribute(p.expando)}function bF(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bG(a){bv.test(a.type)&&(a.defaultChecked=a.checked)}function bX(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=bV.length;while(e--){b=bV[e]+c;if(b in a)return b}return d}function bY(a,b){return a=b||a,p.css(a,"display")==="none"||!p.contains(a.ownerDocument,a)}function bZ(a,b){var c,d,e=[],f=0,g=a.length;for(;f<g;f++){c=a[f];if(!c.style)continue;e[f]=p._data(c,"olddisplay"),b?(!e[f]&&c.style.display==="none"&&(c.style.display=""),c.style.display===""&&bY(c)&&(e[f]=p._data(c,"olddisplay",cb(c.nodeName)))):(d=bH(c,"display"),!e[f]&&d!=="none"&&p._data(c,"olddisplay",d))}for(f=0;f<g;f++){c=a[f];if(!c.style)continue;if(!b||c.style.display==="none"||c.style.display==="")c.style.display=b?e[f]||"":"none"}return a}function b$(a,b,c){var d=bO.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function b_(a,b,c,d){var e=c===(d?"border":"content")?4:b==="width"?1:0,f=0;for(;e<4;e+=2)c==="margin"&&(f+=p.css(a,c+bU[e],!0)),d?(c==="content"&&(f-=parseFloat(bH(a,"padding"+bU[e]))||0),c!=="margin"&&(f-=parseFloat(bH(a,"border"+bU[e]+"Width"))||0)):(f+=parseFloat(bH(a,"padding"+bU[e]))||0,c!=="padding"&&(f+=parseFloat(bH(a,"border"+bU[e]+"Width"))||0));return f}function ca(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=!0,f=p.support.boxSizing&&p.css(a,"boxSizing")==="border-box";if(d<=0){d=bH(a,b);if(d<0||d==null)d=a.style[b];if(bP.test(d))return d;e=f&&(p.support.boxSizingReliable||d===a.style[b]),d=parseFloat(d)||0}return d+b_(a,b,c||(f?"border":"content"),e)+"px"}function cb(a){if(bR[a])return bR[a];var b=p("<"+a+">").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write("<!doctype html><html><body>"),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bR[a]=c,c}function ch(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||cd.test(a)?d(a,e):ch(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ch(a+"["+e+"]",b[e],c,d);else d(a,b)}function cy(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h<i;h++)d=g[h],f=/^\+/.test(d),f&&(d=d.substr(1)||"*"),e=a[d]=a[d]||[],e[f?"unshift":"push"](c)}}function cz(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h,i=a[f],j=0,k=i?i.length:0,l=a===cu;for(;j<k&&(l||!h);j++)h=i[j](c,d,e),typeof h=="string"&&(!l||g[h]?h=b:(c.dataTypes.unshift(h),h=cz(a,c,d,e,h,g)));return(l||!h)&&!g["*"]&&(h=cz(a,c,d,e,"*",g)),h}function cA(a,c){var d,e,f=p.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((f[d]?a:e||(e={}))[d]=c[d]);e&&p.extend(!0,a,e)}function cB(a,c,d){var e,f,g,h,i=a.contents,j=a.dataTypes,k=a.responseFields;for(f in k)f in d&&(c[k[f]]=d[f]);while(j[0]==="*")j.shift(),e===b&&(e=a.mimeType||c.getResponseHeader("content-type"));if(e)for(f in i)if(i[f]&&i[f].test(e)){j.unshift(f);break}if(j[0]in d)g=j[0];else{for(f in d){if(!j[0]||a.converters[f+" "+j[0]]){g=f;break}h||(h=f)}g=g||h}if(g)return g!==j[0]&&j.unshift(g),d[g]}function cC(a,b){var c,d,e,f,g=a.dataTypes.slice(),h=g[0],i={},j=0;a.dataFilter&&(b=a.dataFilter(b,a.dataType));if(g[1])for(c in a.converters)i[c.toLowerCase()]=a.converters[c];for(;e=g[++j];)if(e!=="*"){if(h!=="*"&&h!==e){c=i[h+" "+e]||i["* "+e];if(!c)for(d in i){f=d.split(" ");if(f[1]===e){c=i[h+" "+f[0]]||i["* "+f[0]];if(c){c===!0?c=i[d]:i[d]!==!0&&(e=f[0],g.splice(j--,0,e));break}}}if(c!==!0)if(c&&a["throws"])b=c(b);else try{b=c(b)}catch(k){return{state:"parsererror",error:c?k:"No conversion from "+h+" to "+e}}}h=e}return{state:"success",data:b}}function cK(){try{return new a.XMLHttpRequest}catch(b){}}function cL(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function cT(){return setTimeout(function(){cM=b},0),cM=p.now()}function cU(a,b){p.each(b,function(b,c){var d=(cS[b]||[]).concat(cS["*"]),e=0,f=d.length;for(;e<f;e++)if(d[e].call(a,b,c))return})}function cV(a,b,c){var d,e=0,f=0,g=cR.length,h=p.Deferred().always(function(){delete i.elem}),i=function(){var b=cM||cT(),c=Math.max(0,j.startTime+j.duration-b),d=1-(c/j.duration||0),e=0,f=j.tweens.length;for(;e<f;e++)j.tweens[e].run(d);return h.notifyWith(a,[j,d,c]),d<1&&f?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:p.extend({},b),opts:p.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:cM||cT(),duration:c.duration,tweens:[],createTween:function(b,c,d){var e=p.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(e),e},stop:function(b){var c=0,d=b?j.tweens.length:0;for(;c<d;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;cW(k,j.opts.specialEasing);for(;e<g;e++){d=cR[e].call(j,a,k,j.opts);if(d)return d}return cU(j,k),p.isFunction(j.opts.start)&&j.opts.start.call(a,j),p.fx.timer(p.extend(i,{anim:j,queue:j.opts.queue,elem:a})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function cW(a,b){var c,d,e,f,g;for(c in a){d=p.camelCase(c),e=b[d],f=a[c],p.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=p.cssHooks[d];if(g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}}function cX(a,b,c){var d,e,f,g,h,i,j,k,l=this,m=a.style,n={},o=[],q=a.nodeType&&bY(a);c.queue||(j=p._queueHooks(a,"fx"),j.unqueued==null&&(j.unqueued=0,k=j.empty.fire,j.empty.fire=function(){j.unqueued||k()}),j.unqueued++,l.always(function(){l.always(function(){j.unqueued--,p.queue(a,"fx").length||j.empty.fire()})})),a.nodeType===1&&("height"in b||"width"in b)&&(c.overflow=[m.overflow,m.overflowX,m.overflowY],p.css(a,"display")==="inline"&&p.css(a,"float")==="none"&&(!p.support.inlineBlockNeedsLayout||cb(a.nodeName)==="inline"?m.display="inline-block":m.zoom=1)),c.overflow&&(m.overflow="hidden",p.support.shrinkWrapBlocks||l.done(function(){m.overflow=c.overflow[0],m.overflowX=c.overflow[1],m.overflowY=c.overflow[2]}));for(d in b){f=b[d];if(cO.exec(f)){delete b[d];if(f===(q?"hide":"show"))continue;o.push(d)}}g=o.length;if(g){h=p._data(a,"fxshow")||p._data(a,"fxshow",{}),q?p(a).show():l.done(function(){p(a).hide()}),l.done(function(){var b;p.removeData(a,"fxshow",!0);for(b in n)p.style(a,b,n[b])});for(d=0;d<g;d++)e=o[d],i=l.createTween(e,q?h[e]:0),n[e]=h[e]||p.style(a,e),e in h||(h[e]=i.start,q&&(i.end=i.start,i.start=e==="width"||e==="height"?1:0))}}function cY(a,b,c,d,e){return new cY.prototype.init(a,b,c,d,e)}function cZ(a,b){var c,d={height:a},e=0;for(;e<4;e+=2-b)c=bU[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function c_(a){return p.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}var c,d,e=a.document,f=a.location,g=a.navigator,h=a.jQuery,i=a.$,j=Array.prototype.push,k=Array.prototype.slice,l=Array.prototype.indexOf,m=Object.prototype.toString,n=Object.prototype.hasOwnProperty,o=String.prototype.trim,p=function(a,b){return new p.fn.init(a,b,c)},q=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,r=/\S/,s=/\s+/,t=r.test(" ")?/^[\s\xA0]+|[\s\xA0]+$/g:/^\s+|\s+$/g,u=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.0",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i<j;i++)if((a=arguments[i])!=null)for(c in a){d=h[c],e=a[c];if(h===e)continue;k&&e&&(p.isPlainObject(e)||(f=p.isArray(e)))?(f?(f=!1,g=d&&p.isArray(d)?d:[]):g=d&&p.isPlainObject(d)?d:{},h[c]=p.extend(k,g,e)):e!==b&&(h[c]=e)}return h},p.extend({noConflict:function(b){return a.$===p&&(a.$=i),b&&a.jQuery===p&&(a.jQuery=h),p},isReady:!1,readyWait:1,holdReady:function(a){a?p.readyWait++:p.ready(!0)},ready:function(a){if(a===!0?--p.readyWait:p.isReady)return;if(!e.body)return setTimeout(p.ready,1);p.isReady=!0;if(a!==!0&&--p.readyWait>0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f<g;)if(c.apply(a[f++],d)===!1)break}else if(h){for(e in a)if(c.call(a[e],e,a[e])===!1)break}else for(;f<g;)if(c.call(a[f],f,a[f++])===!1)break;return a},trim:o?function(a){return a==null?"":o.call(a)}:function(a){return a==null?"":a.toString().replace(t,"")},makeArray:function(a,b){var c,d=b||[];return a!=null&&(c=p.type(a),a.length==null||c==="string"||c==="function"||c==="regexp"||p.isWindow(a)?j.call(d,a):p.merge(d,a)),d},inArray:function(a,b,c){var d;if(b){if(l)return l.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=c.length,e=a.length,f=0;if(typeof d=="number")for(;f<d;f++)a[e++]=c[f];else while(c[f]!==b)a[e++]=c[f++];return a.length=e,a},grep:function(a,b,c){var d,e=[],f=0,g=a.length;c=!!c;for(;f<g;f++)d=!!b(a[f],f),c!==d&&e.push(a[f]);return e},map:function(a,c,d){var e,f,g=[],h=0,i=a.length,j=a instanceof p||i!==b&&typeof i=="number"&&(i>0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h<i;h++)e=c(a[h],h,d),e!=null&&(g[g.length]=e);else for(f in a)e=c(a[f],f,d),e!=null&&(g[g.length]=e);return g.concat.apply([],g)},guid:1,proxy:function(a,c){var d,e,f;return typeof c=="string"&&(d=a[c],c=a,a=d),p.isFunction(a)?(e=k.call(arguments,2),f=function(){return a.apply(c,e.concat(k.call(arguments)))},f.guid=a.guid=a.guid||f.guid||p.guid++,f):b},access:function(a,c,d,e,f,g,h){var i,j=d==null,k=0,l=a.length;if(d&&typeof d=="object"){for(k in d)p.access(a,c,k,d[k],1,g,e);f=1}else if(e!==b){i=h===b&&p.isFunction(e),j&&(i?(i=c,c=function(a,b,c){return i.call(p(a),c)}):(c.call(a,e),c=null));if(c)for(;k<l;k++)c(a[k],d,i?e.call(a[k],k,c(a[k],d)):e,h);f=1}return f?a:j?c.call(a):l?c(a[0],d):g},now:function(){return(new Date).getTime()}}),p.ready.promise=function(b){if(!d){d=p.Deferred();if(e.readyState==="complete"||e.readyState!=="loading"&&e.addEventListener)setTimeout(p.ready,1);else if(e.addEventListener)e.addEventListener("DOMContentLoaded",D,!1),a.addEventListener("load",p.ready,!1);else{e.attachEvent("onreadystatechange",D),a.attachEvent("onload",p.ready);var c=!1;try{c=a.frameElement==null&&e.documentElement}catch(f){}c&&c.doScroll&&function g(){if(!p.isReady){try{c.doScroll("left")}catch(a){return setTimeout(g,50)}p.ready()}}()}}return d.promise(b)},p.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){E["[object "+b+"]"]=b.toLowerCase()}),c=p(e);var F={};p.Callbacks=function(a){a=typeof a=="string"?F[a]||G(a):p.extend({},a);var c,d,e,f,g,h,i=[],j=!a.once&&[],k=function(b){c=a.memory&&b,d=!0,h=f||0,f=0,g=i.length,e=!0;for(;i&&h<g;h++)if(i[h].apply(b[0],b[1])===!1&&a.stopOnFalse){c=!1;break}e=!1,i&&(j?j.length&&k(j.shift()):c?i=[]:l.disable())},l={add:function(){if(i){var b=i.length;(function d(b){p.each(b,function(b,c){p.isFunction(c)&&(!a.unique||!l.has(c))?i.push(c):c&&c.length&&d(c)})})(arguments),e?g=i.length:c&&(f=b,k(c))}return this},remove:function(){return i&&p.each(arguments,function(a,b){var c;while((c=p.inArray(b,i,c))>-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return typeof a=="object"?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b<d;b++)c[b]&&p.isFunction(c[b].promise)?c[b].promise().done(g(b,j,c)).fail(f.reject).progress(g(b,i,h)):--e}return e||f.resolveWith(j,c),f.promise()}}),p.support=function(){var b,c,d,f,g,h,i,j,k,l,m,n=e.createElement("div");n.setAttribute("className","t"),n.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length||!d)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="<div></div>",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/^(?:\{.*\}|\[.*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||++p.uuid:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e<f;e++)delete d[b[e]];if(!(c?K:p.isEmptyObject)(d))return}}if(!c){delete h[i].data;if(!K(h[i]))return}g?p.cleanData([a],!0):p.support.deleteExpando||h!=h.window?delete h[i]:h[i]=null},_data:function(a,b,c){return p.data(a,b,c,!0)},acceptData:function(a){var b=a.nodeName&&p.noData[a.nodeName.toLowerCase()];return!b||b!==!0&&a.getAttribute("classid")===b}}),p.fn.extend({data:function(a,c){var d,e,f,g,h,i=this[0],j=0,k=null;if(a===b){if(this.length){k=p.data(i);if(i.nodeType===1&&!p._data(i,"parsedAttrs")){f=i.attributes;for(h=f.length;j<h;j++)g=f[j].name,g.indexOf("data-")===0&&(g=p.camelCase(g.substring(5)),J(i,g,k[g]));p._data(i,"parsedAttrs",!0)}}return k}return typeof a=="object"?this.each(function(){p.data(this,a)}):(d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!",p.access(this,function(c){if(c===b)return k=this.triggerHandler("getData"+e,[d[0]]),k===b&&i&&(k=p.data(i,a),k=J(i,a,k)),k===b&&d[1]?this.data(d[0]):k;d[1]=c,this.each(function(){var b=p(this);b.triggerHandler("setData"+e,d),p.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.shift(),e=p._queueHooks(a,b),f=function(){p.dequeue(a,b)};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),delete e.stop,d.call(a,f,e)),!c.length&&e&&e.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length<d?p.queue(this[0],a):c===b?this:this.each(function(){var b=p.queue(this,a,c);p._queueHooks(this,a),a==="fx"&&b[0]!=="inprogress"&&p.dequeue(this,a)})},dequeue:function(a){return this.each(function(){p.dequeue(this,a)})},delay:function(a,b){return a=p.fx?p.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){var d,e=1,f=p.Deferred(),g=this,h=this.length,i=function(){--e||f.resolveWith(g,[g])};typeof a!="string"&&(c=a,a=b),a=a||"fx";while(h--)(d=p._data(g[h],a+"queueHooks"))&&d.empty&&(e++,d.empty.add(i));return i(),f.promise(c)}});var L,M,N,O=/[\t\r\n]/g,P=/\r/g,Q=/^(?:button|input)$/i,R=/^(?:button|input|object|select|textarea)$/i,S=/^a(?:rea|)$/i,T=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,U=p.support.getSetAttribute;p.fn.extend({attr:function(a,b){return p.access(this,p.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{f=" "+e.className+" ";for(g=0,h=b.length;g<h;g++)~f.indexOf(" "+b[g]+" ")||(f+=b[g]+" ");e.className=p.trim(f)}}}return this},removeClass:function(a){var c,d,e,f,g,h,i;if(p.isFunction(a))return this.each(function(b){p(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(s);for(h=0,i=this.length;h<i;h++){e=this[h];if(e.nodeType===1&&e.className){d=(" "+e.className+" ").replace(O," ");for(f=0,g=c.length;f<g;f++)while(d.indexOf(" "+c[f]+" ")>-1)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(O," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c<d;c++){e=h[c];if(e.selected&&(p.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!p.nodeName(e.parentNode,"optgroup"))){b=p(e).val();if(i)return b;g.push(b)}}return i&&!g.length&&h.length?p(h[f]).val():g},set:function(a,b){var c=p.makeArray(b);return p(a).find("option").each(function(){this.selected=p.inArray(p(this).val(),c)>=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,""+d),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g<d.length;g++)e=d[g],e&&(c=p.propFix[e]||e,f=T.test(e),f||p.attr(a,e,""),a.removeAttribute(U?e:c),f&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(Q.test(a.nodeName)&&a.parentNode)p.error("type property can't be changed");else if(!p.support.radioValue&&b==="radio"&&p.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}},value:{get:function(a,b){return L&&p.nodeName(a,"button")?L.get(a,b):b in a?a.value:null},set:function(a,b,c){if(L&&p.nodeName(a,"button"))return L.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,f,g,h=a.nodeType;if(!a||h===3||h===8||h===2)return;return g=h!==1||!p.isXMLDoc(a),g&&(c=p.propFix[c]||c,f=p.propHooks[c]),d!==b?f&&"set"in f&&(e=f.set(a,d,c))!==b?e:a[c]=d:f&&"get"in f&&(e=f.get(a,c))!==null?e:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):R.test(a.nodeName)||S.test(a.nodeName)&&a.href?0:b}}}}),M={get:function(a,c){var d,e=p.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;return b===!1?p.removeAttr(a,c):(d=p.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase())),c}},U||(N={name:!0,id:!0,coords:!0},L=p.valHooks.button={get:function(a,c){var d;return d=a.getAttributeNode(c),d&&(N[c]?d.value!=="":d.specified)?d.value:b},set:function(a,b,c){var d=a.getAttributeNode(c);return d||(d=e.createAttribute(c),a.setAttributeNode(d)),d.value=b+""}},p.each(["width","height"],function(a,b){p.attrHooks[b]=p.extend(p.attrHooks[b],{set:function(a,c){if(c==="")return a.setAttribute(b,"auto"),c}})}),p.attrHooks.contenteditable={get:L.get,set:function(a,b,c){b===""&&(b="false"),L.set(a,b,c)}}),p.support.hrefNormalized||p.each(["href","src","width","height"],function(a,c){p.attrHooks[c]=p.extend(p.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),p.support.style||(p.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),p.support.optSelected||(p.propHooks.selected=p.extend(p.propHooks.selected,{get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}})),p.support.enctype||(p.propFix.enctype="encoding"),p.support.checkOn||p.each(["radio","checkbox"],function(){p.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),p.each(["radio","checkbox"],function(){p.valHooks[this]=p.extend(p.valHooks[this],{set:function(a,b){if(p.isArray(b))return a.checked=p.inArray(p(a).val(),b)>=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j<c.length;j++){k=W.exec(c[j])||[],l=k[1],m=(k[2]||"").split(".").sort(),r=p.event.special[l]||{},l=(f?r.delegateType:r.bindType)||l,r=p.event.special[l]||{},n=p.extend({type:l,origType:k[1],data:e,handler:d,guid:d.guid,selector:f,namespace:m.join(".")},o),q=i[l];if(!q){q=i[l]=[],q.delegateCount=0;if(!r.setup||r.setup.call(a,e,m,h)===!1)a.addEventListener?a.addEventListener(l,h,!1):a.attachEvent&&a.attachEvent("on"+l,h)}r.add&&(r.add.call(a,n),n.handler.guid||(n.handler.guid=d.guid)),f?q.splice(q.delegateCount++,0,n):q.push(n),p.event.global[l]=!0}a=null},global:{},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,q,r=p.hasData(a)&&p._data(a);if(!r||!(m=r.events))return;b=p.trim(_(b||"")).split(" ");for(f=0;f<b.length;f++){g=W.exec(b[f])||[],h=i=g[1],j=g[2];if(!h){for(h in m)p.event.remove(a,h+b[f],c,d,!0);continue}n=p.event.special[h]||{},h=(d?n.delegateType:n.bindType)||h,o=m[h]||[],k=o.length,j=j?new RegExp("(^|\\.)"+j.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(l=0;l<o.length;l++)q=o[l],(e||i===q.origType)&&(!c||c.guid===q.guid)&&(!j||j.test(q.namespace))&&(!d||d===q.selector||d==="**"&&q.selector)&&(o.splice(l--,1),q.selector&&o.delegateCount--,n.remove&&n.remove.call(a,q));o.length===0&&k!==o.length&&((!n.teardown||n.teardown.call(a,j,r.handle)===!1)&&p.removeEvent(a,h,r.handle),delete m[h])}p.isEmptyObject(m)&&(delete r.handle,p.removeData(a,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,f,g){if(!f||f.nodeType!==3&&f.nodeType!==8){var h,i,j,k,l,m,n,o,q,r,s=c.type||c,t=[];if($.test(s+p.event.triggered))return;s.indexOf("!")>=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j<q.length&&!c.isPropagationStopped();j++)k=q[j][0],c.type=q[j][1],o=(p._data(k,"events")||{})[c.type]&&p._data(k,"handle"),o&&o.apply(k,d),o=m&&k[m],o&&p.acceptData(k)&&o.apply(k,d)===!1&&c.preventDefault();return c.type=s,!g&&!c.isDefaultPrevented()&&(!n._default||n._default.apply(f.ownerDocument,d)===!1)&&(s!=="click"||!p.nodeName(f,"a"))&&p.acceptData(f)&&m&&f[s]&&(s!=="focus"&&s!=="blur"||c.target.offsetWidth!==0)&&!p.isWindow(f)&&(l=f[m],l&&(f[m]=null),p.event.triggered=s,f[s](),p.event.triggered=b,l&&(f[m]=l)),c.result}return},dispatch:function(c){c=p.event.fix(c||a.event);var d,e,f,g,h,i,j,k,l,m,n,o=(p._data(this,"events")||{})[c.type]||[],q=o.delegateCount,r=[].slice.call(arguments),s=!c.exclusive&&!c.namespace,t=p.event.special[c.type]||{},u=[];r[0]=c,c.delegateTarget=this;if(t.preDispatch&&t.preDispatch.call(this,c)===!1)return;if(q&&(!c.button||c.type!=="click")){g=p(this),g.context=this;for(f=c.target;f!=this;f=f.parentNode||this)if(f.disabled!==!0||c.type!=="click"){i={},k=[],g[0]=f;for(d=0;d<q;d++)l=o[d],m=l.selector,i[m]===b&&(i[m]=g.is(m)),i[m]&&k.push(l);k.length&&u.push({elem:f,matches:k})}}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d<u.length&&!c.isPropagationStopped();d++){j=u[d],c.currentTarget=j.elem;for(e=0;e<j.matches.length&&!c.isImmediatePropagationStopped();e++){l=j.matches[e];if(s||!c.namespace&&!l.namespace||c.namespace_re&&c.namespace_re.test(l.namespace))c.data=l.data,c.handleObj=l,h=((p.event.special[l.origType]||{}).handle||l.handler).apply(j.elem,r),h!==b&&(c.result=h,h===!1&&(c.preventDefault(),c.stopPropagation()))}}return t.postDispatch&&t.postDispatch.call(this,c),c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,c){var d,f,g,h=c.button,i=c.fromElement;return a.pageX==null&&c.clientX!=null&&(d=a.target.ownerDocument||e,f=d.documentElement,g=d.body,a.pageX=c.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=c.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?c.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0),a}},fix:function(a){if(a[p.expando])return a;var b,c,d=a,f=p.event.fixHooks[a.type]||{},g=f.props?this.props.concat(f.props):this.props;a=p.Event(d);for(b=g.length;b;)c=g[--b],a[c]=d[c];return a.target||(a.target=d.srcElement||e),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,f.filter?f.filter(a,d):a},special:{ready:{setup:p.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){p.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=p.extend(new p.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?p.event.trigger(e,null,b):p.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},p.event.handle=p.event.dispatch,p.removeEvent=e.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]=="undefined"&&(a[d]=null),a.detachEvent(d,c))},p.Event=function(a,b){if(this instanceof p.Event)a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?bb:ba):this.type=a,b&&p.extend(this,b),this.timeStamp=a&&a.timeStamp||p.now(),this[p.expando]=!0;else return new p.Event(a,b)},p.Event.prototype={preventDefault:function(){this.isDefaultPrevented=bb;var a=this.originalEvent;if(!a)return;a.preventDefault?a.preventDefault():a.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=bb;var a=this.originalEvent;if(!a)return;a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=bb,this.stopPropagation()},isDefaultPrevented:ba,isPropagationStopped:ba,isImmediatePropagationStopped:ba},p.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){p.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj,g=f.selector;if(!e||e!==d&&!p.contains(d,e))a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b;return c}}}),p.support.submitBubbles||(p.event.special.submit={setup:function(){if(p.nodeName(this,"form"))return!1;p.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=p.nodeName(c,"input")||p.nodeName(c,"button")?c.form:b;d&&!p._data(d,"_submit_attached")&&(p.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),p._data(d,"_submit_attached",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&p.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(p.nodeName(this,"form"))return!1;p.event.remove(this,"._submit")}}),p.support.changeBubbles||(p.event.special.change={setup:function(){if(V.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")p.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),p.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),p.event.simulate("change",this,a,!0)});return!1}p.event.add(this,"beforeactivate._change",function(a){var b=a.target;V.test(b.nodeName)&&!p._data(b,"_change_attached")&&(p.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&p.event.simulate("change",this.parentNode,a,!0)}),p._data(b,"_change_attached",!0))})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){return p.event.remove(this,"._change"),V.test(this.nodeName)}}),p.support.focusinBubbles||p.each({focus:"focusin",blur:"focusout"},function(a,b){var c=0,d=function(a){p.event.simulate(b,a.target,p.event.fix(a),!0)};p.event.special[b]={setup:function(){c++===0&&e.addEventListener(a,d,!0)},teardown:function(){--c===0&&e.removeEventListener(a,d,!0)}}}),p.fn.extend({on:function(a,c,d,e,f){var g,h;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(h in a)this.on(h,c,d,a[h],f);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=ba;else if(!e)return this;return f===1&&(g=e,e=function(a){return p().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=p.guid++)),this.each(function(){p.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){var e,f;if(a&&a.preventDefault&&a.handleObj)return e=a.handleObj,p(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler),this;if(typeof a=="object"){for(f in a)this.off(f,c,a[f]);return this}if(c===!1||typeof c=="function")d=c,c=b;return d===!1&&(d=ba),this.each(function(){p.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){return p(this.context).on(a,this.selector,b,c),this},die:function(a,b){return p(this.context).off(a,this.selector||"**",b),this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a||"**",c)},trigger:function(a,b){return this.each(function(){p.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return p.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||p.guid++,d=0,e=function(c){var e=(p._data(this,"lastToggle"+a.guid)||0)%d;return p._data(this,"lastToggle"+a.guid,e+1),c.preventDefault(),b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),p.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){p.fn[b]=function(a,c){return c==null&&(c=a,a=null),arguments.length>0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bd(a,b,c,d){var e=0,f=b.length;for(;e<f;e++)Z(a,b[e],c,d)}function be(a,b,c,d,e,f){var g,h=$.setFilters[b.toLowerCase()];return h||Z.error(b),(a||!(g=e))&&bd(a||"*",d,g=[],e),g.length>0?h(g,c,f):[]}function bf(a,c,d,e,f){var g,h,i,j,k,l,m,n,p=0,q=f.length,s=L.POS,t=new RegExp("^"+s.source+"(?!"+r+")","i"),u=function(){var a=1,c=arguments.length-2;for(;a<c;a++)arguments[a]===b&&(g[a]=b)};for(;p<q;p++){s.exec(""),a=f[p],j=[],i=0,k=e;while(g=s.exec(a)){n=s.lastIndex=g.index+g[0].length;if(n>i){m=a.slice(i,g.index),i=n,l=[c],B.test(m)&&(k&&(l=k),k=e);if(h=H.test(m))m=m.slice(0,-5).replace(B,"$&*");g.length>1&&g[0].replace(t,u),k=be(m,g[1],g[2],l,k,h)}}k?(j=j.concat(k),(m=a.slice(i))&&m!==")"?B.test(m)?bd(m,j,d,e):Z(m,c,d,e?e.concat(k):k):o.apply(d,j)):Z(a,c,d,e)}return q===1?d:Z.uniqueSort(d)}function bg(a,b,c){var d,e,f,g=[],i=0,j=D.exec(a),k=!j.pop()&&!j.pop(),l=k&&a.match(C)||[""],m=$.preFilter,n=$.filter,o=!c&&b!==h;for(;(e=l[i])!=null&&k;i++){g.push(d=[]),o&&(e=" "+e);while(e){k=!1;if(j=B.exec(e))e=e.slice(j[0].length),k=d.push({part:j.pop().replace(A," "),captures:j});for(f in n)(j=L[f].exec(e))&&(!m[f]||(j=m[f](j,b,c)))&&(e=e.slice(j.shift().length),k=d.push({part:f,captures:j}));if(!k)break}}return k||Z.error(a),g}function bh(a,b,e){var f=b.dir,g=m++;return a||(a=function(a){return a===e}),b.first?function(b,c){while(b=b[f])if(b.nodeType===1)return a(b,c)&&b}:function(b,e){var h,i=g+"."+d,j=i+"."+c;while(b=b[f])if(b.nodeType===1){if((h=b[q])===j)return b.sizset;if(typeof h=="string"&&h.indexOf(i)===0){if(b.sizset)return b}else{b[q]=j;if(a(b,e))return b.sizset=!0,b;b.sizset=!1}}}}function bi(a,b){return a?function(c,d){var e=b(c,d);return e&&a(e===!0?c:e,d)}:b}function bj(a,b,c){var d,e,f=0;for(;d=a[f];f++)$.relative[d.part]?e=bh(e,$.relative[d.part],b):(d.captures.push(b,c),e=bi(e,$.filter[d.part].apply(null,d.captures)));return e}function bk(a){return function(b,c){var d,e=0;for(;d=a[e];e++)if(d(b,c))return!0;return!1}}var c,d,e,f,g,h=a.document,i=h.documentElement,j="undefined",k=!1,l=!0,m=0,n=[].slice,o=[].push,q=("sizcache"+Math.random()).replace(".",""),r="[\\x20\\t\\r\\n\\f]",s="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",t=s.replace("w","w#"),u="([*^$|!~]?=)",v="\\["+r+"*("+s+")"+r+"*(?:"+u+r+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+t+")|)|)"+r+"*\\]",w=":("+s+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|((?:[^,]|\\\\,|(?:,(?=[^\\[]*\\]))|(?:,(?=[^\\(]*\\))))*))\\)|)",x=":(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\)|)(?=[^-]|$)",y=r+"*([\\x20\\t\\r\\n\\f>+~])"+r+"*",z="(?=[^\\x20\\t\\r\\n\\f])(?:\\\\.|"+v+"|"+w.replace(2,7)+"|[^\\\\(),])+",A=new RegExp("^"+r+"+|((?:^|[^\\\\])(?:\\\\.)*)"+r+"+$","g"),B=new RegExp("^"+y),C=new RegExp(z+"?(?="+r+"*,|$)","g"),D=new RegExp("^(?:(?!,)(?:(?:^|,)"+r+"*"+z+")*?|"+r+"*(.*?))(\\)|$)"),E=new RegExp(z.slice(19,-6)+"\\x20\\t\\r\\n\\f>+~])+|"+y,"g"),F=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,G=/[\x20\t\r\n\f]*[+~]/,H=/:not\($/,I=/h\d/i,J=/input|select|textarea|button/i,K=/\\(?!\\)/g,L={ID:new RegExp("^#("+s+")"),CLASS:new RegExp("^\\.("+s+")"),NAME:new RegExp("^\\[name=['\"]?("+s+")['\"]?\\]"),TAG:new RegExp("^("+s.replace("[-","[-\\*")+")"),ATTR:new RegExp("^"+v),PSEUDO:new RegExp("^"+w),CHILD:new RegExp("^:(only|nth|last|first)-child(?:\\("+r+"*(even|odd|(([+-]|)(\\d*)n|)"+r+"*(?:([+-]|)"+r+"*(\\d+)|))"+r+"*\\)|)","i"),POS:new RegExp(x,"ig"),needsContext:new RegExp("^"+r+"*[>+~]|"+x,"i")},M={},N=[],O={},P=[],Q=function(a){return a.sizzleFilter=!0,a},R=function(a){return function(b){return b.nodeName.toLowerCase()==="input"&&b.type===a}},S=function(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}},T=function(a){var b=!1,c=h.createElement("div");try{b=a(c)}catch(d){}return c=null,b},U=T(function(a){a.innerHTML="<select></select>";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),V=T(function(a){a.id=q+0,a.innerHTML="<a name='"+q+"'></a><div name='"+q+"'></div>",i.insertBefore(a,i.firstChild);var b=h.getElementsByName&&h.getElementsByName(q).length===2+h.getElementsByName(q+0).length;return g=!h.getElementById(q),i.removeChild(a),b}),W=T(function(a){return a.appendChild(h.createComment("")),a.getElementsByTagName("*").length===0}),X=T(function(a){return a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!==j&&a.firstChild.getAttribute("href")==="#"}),Y=T(function(a){return a.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!a.getElementsByClassName||a.getElementsByClassName("e").length===0?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length!==1)}),Z=function(a,b,c,d){c=c||[],b=b||h;var e,f,g,i,j=b.nodeType;if(j!==1&&j!==9)return[];if(!a||typeof a!="string")return c;g=ba(b);if(!g&&!d)if(e=F.exec(a))if(i=e[1]){if(j===9){f=b.getElementById(i);if(!f||!f.parentNode)return c;if(f.id===i)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(i))&&bb(b,f)&&f.id===i)return c.push(f),c}else{if(e[2])return o.apply(c,n.call(b.getElementsByTagName(a),0)),c;if((i=e[3])&&Y&&b.getElementsByClassName)return o.apply(c,n.call(b.getElementsByClassName(i),0)),c}return bm(a,b,c,d,g)},$=Z.selectors={cacheLength:50,match:L,order:["ID","TAG"],attrHandle:{},createPseudo:Q,find:{ID:g?function(a,b,c){if(typeof b.getElementById!==j&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==j&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==j&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:W?function(a,b){if(typeof b.getElementsByTagName!==j)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(K,""),a[3]=(a[4]||a[5]||"").replace(K,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||Z.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&Z.error(a[0]),a},PSEUDO:function(a){var b,c=a[4];return L.CHILD.test(a[0])?null:(c&&(b=D.exec(c))&&b.pop()&&(a[0]=a[0].slice(0,b[0].length-c.length-1),c=b[0].slice(0,-1)),a.splice(2,3,c||a[3]),a)}},filter:{ID:g?function(a){return a=a.replace(K,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(K,""),function(b){var c=typeof b.getAttributeNode!==j&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(K,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=M[a];return b||(b=M[a]=new RegExp("(^|"+r+")"+a+"("+r+"|$)"),N.push(a),N.length>$.cacheLength&&delete M[N.shift()]),function(a){return b.test(a.className||typeof a.getAttribute!==j&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return b?function(d){var e=Z.attr(d,a),f=e+"";if(e==null)return b==="!=";switch(b){case"=":return f===c;case"!=":return f!==c;case"^=":return c&&f.indexOf(c)===0;case"*=":return c&&f.indexOf(c)>-1;case"$=":return c&&f.substr(f.length-c.length)===c;case"~=":return(" "+f+" ").indexOf(c)>-1;case"|=":return f===c||f.substr(0,c.length+1)===c+"-"}}:function(b){return Z.attr(b,a)!=null}},CHILD:function(a,b,c,d){if(a==="nth"){var e=m++;return function(a){var b,f,g=0,h=a;if(c===1&&d===0)return!0;b=a.parentNode;if(b&&(b[q]!==e||!a.sizset)){for(h=b.firstChild;h;h=h.nextSibling)if(h.nodeType===1){h.sizset=++g;if(h===a)break}b[q]=e}return f=a.sizset-d,c===0?f===0:f%c===0&&f/c>=0}}return function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b,c,d){var e=$.pseudos[a]||$.pseudos[a.toLowerCase()];return e||Z.error("unsupported pseudo: "+a),e.sizzleFilter?e(b,c,d):e}},pseudos:{not:Q(function(a,b,c){var d=bl(a.replace(A,"$1"),b,c);return function(a){return!d(a)}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!$.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},contains:Q(function(a){return function(b){return(b.textContent||b.innerText||bc(b)).indexOf(a)>-1}}),has:Q(function(a){return function(b){return Z(a,b).length>0}}),header:function(a){return I.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:R("radio"),checkbox:R("checkbox"),file:R("file"),password:R("password"),image:R("image"),submit:S("submit"),reset:S("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return J.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b,c){return c?a.slice(1):[a[0]]},last:function(a,b,c){var d=a.pop();return c?a:[d]},even:function(a,b,c){var d=[],e=c?1:0,f=a.length;for(;e<f;e=e+2)d.push(a[e]);return d},odd:function(a,b,c){var d=[],e=c?0:1,f=a.length;for(;e<f;e=e+2)d.push(a[e]);return d},lt:function(a,b,c){return c?a.slice(+b):a.slice(0,+b)},gt:function(a,b,c){return c?a.slice(0,+b+1):a.slice(+b+1)},eq:function(a,b,c){var d=a.splice(+b,1);return c?a:d}}};$.setFilters.nth=$.setFilters.eq,$.filters=$.pseudos,X||($.attrHandle={href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}}),V&&($.order.push("NAME"),$.find.NAME=function(a,b){if(typeof b.getElementsByName!==j)return b.getElementsByName(a)}),Y&&($.order.splice(1,0,"CLASS"),$.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!==j&&!c)return b.getElementsByClassName(a)});try{n.call(i.childNodes,0)[0].nodeType}catch(_){n=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}var ba=Z.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},bb=Z.contains=i.compareDocumentPosition?function(a,b){return!!(a.compareDocumentPosition(b)&16)}:i.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc=Z.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=bc(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=bc(b);return c};Z.attr=function(a,b){var c,d=ba(a);return d||(b=b.toLowerCase()),$.attrHandle[b]?$.attrHandle[b](a):U||d?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},Z.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},[0,0].sort(function(){return l=0}),i.compareDocumentPosition?e=function(a,b){return a===b?(k=!0,0):(!a.compareDocumentPosition||!b.compareDocumentPosition?a.compareDocumentPosition:a.compareDocumentPosition(b)&4)?-1:1}:(e=function(a,b){if(a===b)return k=!0,0;if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],g=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return f(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)g.unshift(j),j=j.parentNode;c=e.length,d=g.length;for(var l=0;l<c&&l<d;l++)if(e[l]!==g[l])return f(e[l],g[l]);return l===c?f(a,g[l],-1):f(e[l],b,1)},f=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),Z.uniqueSort=function(a){var b,c=1;if(e){k=l,a.sort(e);if(k)for(;b=a[c];c++)b===a[c-1]&&a.splice(c--,1)}return a};var bl=Z.compile=function(a,b,c){var d,e,f,g=O[a];if(g&&g.context===b)return g;e=bg(a,b,c);for(f=0;d=e[f];f++)e[f]=bj(d,b,c);return g=O[a]=bk(e),g.context=b,g.runs=g.dirruns=0,P.push(a),P.length>$.cacheLength&&delete O[P.shift()],g};Z.matches=function(a,b){return Z(a,null,null,b)},Z.matchesSelector=function(a,b){return Z(b,null,null,[a]).length>0};var bm=function(a,b,e,f,g){a=a.replace(A,"$1");var h,i,j,k,l,m,p,q,r,s=a.match(C),t=a.match(E),u=b.nodeType;if(L.POS.test(a))return bf(a,b,e,f,s);if(f)h=n.call(f,0);else if(s&&s.length===1){if(t.length>1&&u===9&&!g&&(s=L.ID.exec(t[0]))){b=$.find.ID(s[1],b,g)[0];if(!b)return e;a=a.slice(t.shift().length)}q=(s=G.exec(t[0]))&&!s.index&&b.parentNode||b,r=t.pop(),m=r.split(":not")[0];for(j=0,k=$.order.length;j<k;j++){p=$.order[j];if(s=L[p].exec(m)){h=$.find[p]((s[1]||"").replace(K,""),q,g);if(h==null)continue;m===r&&(a=a.slice(0,a.length-r.length)+m.replace(L[p],""),a||o.apply(e,n.call(h,0)));break}}}if(a){i=bl(a,b,g),d=i.dirruns++,h==null&&(h=$.find.TAG("*",G.test(a)&&b.parentNode||b));for(j=0;l=h[j];j++)c=i.runs++,i(l,b)&&e.push(l)}return e};h.querySelectorAll&&function(){var a,b=bm,c=/'|\\/g,d=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,e=[],f=[":active"],g=i.matchesSelector||i.mozMatchesSelector||i.webkitMatchesSelector||i.oMatchesSelector||i.msMatchesSelector;T(function(a){a.innerHTML="<select><option selected></option></select>",a.querySelectorAll("[selected]").length||e.push("\\["+r+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),T(function(a){a.innerHTML="<p test=''></p>",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+r+"*(?:\"\"|'')"),a.innerHTML="<input type='hidden'>",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=e.length&&new RegExp(e.join("|")),bm=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a)))if(d.nodeType===9)try{return o.apply(f,n.call(d.querySelectorAll(a),0)),f}catch(i){}else if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){var j=d.getAttribute("id"),k=j||q,l=G.test(a)&&d.parentNode||d;j?k=k.replace(c,"\\$&"):d.setAttribute("id",k);try{return o.apply(f,n.call(l.querySelectorAll(a.replace(C,"[id='"+k+"'] $&")),0)),f}catch(i){}finally{j||d.removeAttribute("id")}}return b(a,d,f,g,h)},g&&(T(function(b){a=g.call(b,"div");try{g.call(b,"[test!='']:sizzle"),f.push($.match.PSEUDO)}catch(c){}}),f=new RegExp(f.join("|")),Z.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!ba(b)&&!f.test(c)&&(!e||!e.test(c)))try{var h=g.call(b,c);if(h||a||b.document&&b.document.nodeType!==11)return h}catch(i){}return Z(c,null,null,[b]).length>0})}(),Z.attr=p.attr,p.find=Z,p.expr=Z.selectors,p.expr[":"]=p.expr.pseudos,p.unique=Z.uniqueSort,p.text=Z.getText,p.isXMLDoc=Z.isXML,p.contains=Z.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b<c;b++)if(p.contains(h[b],this))return!0});g=this.pushStack("","find",a);for(b=0,c=this.length;b<c;b++){d=g.length,p.find(a,this[b],g);if(b>0)for(e=d;e<g.length;e++)for(f=0;f<d;f++)if(g[f]===g[e]){g.splice(e--,1);break}}return g},has:function(a){var b,c=p(a,this),d=c.length;return this.filter(function(){for(b=0;b<d;b++)if(p.contains(this,c[b]))return!0})},not:function(a){return this.pushStack(bj(this,a,!1),"not",a)},filter:function(a){return this.pushStack(bj(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?bf.test(a)?p(a,this.context).index(this[0])>=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d<e;d++){c=this[d];while(c&&c.ownerDocument&&c!==b&&c.nodeType!==11){if(g?g.index(c)>-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/<tbody/i,br=/<|&#?\w+;/,bs=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,bu=new RegExp("<(?:"+bl+")[\\s/>]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,bz={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X<div>","</div>"]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1></$2>");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),c.innerHTML=a);c=0}catch(f){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){return bh(this[0])?this.length?this.pushStack(p(p.isFunction(a)?a():a),"replaceWith",a):this:p.isFunction(a)?this.each(function(b){var c=p(this),d=c.html();c.replaceWith(a.call(this,b,d))}):(typeof a!="string"&&(a=p(a).detach()),this.each(function(){var b=this.nextSibling,c=this.parentNode;p(this).remove(),b?p(b).before(a):p(c).append(a)}))},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){a=[].concat.apply([],a);var e,f,g,h,i=0,j=a[0],k=[],l=this.length;if(!p.support.checkClone&&l>1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i<l;i++)d.call(c&&p.nodeName(this[i],"table")?bC(this[i],"tbody"):this[i],i===h?g:p.clone(g,!0,!0))}g=f=null,k.length&&p.each(k,function(a,b){b.src?p.ajax?p.ajax({url:b.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):p.error("no ajax"):p.globalEval((b.text||b.textContent||b.innerHTML||"").replace(by,"")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),p.buildFragment=function(a,c,d){var f,g,h,i=a[0];return c=c||e,c=(c[0]||c).ownerDocument||c[0]||c,typeof c.createDocumentFragment=="undefined"&&(c=e),a.length===1&&typeof i=="string"&&i.length<512&&c===e&&i.charAt(0)==="<"&&!bt.test(i)&&(p.support.checkClone||!bw.test(i))&&(p.support.html5Clone||!bu.test(i))&&(g=!0,f=p.fragments[i],h=f!==b),f||(f=c.createDocumentFragment(),p.clean(a,c,f,d),g&&(p.fragments[i]=h&&f)),{fragment:f,cacheable:g}},p.fragments={},p.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){p.fn[a]=function(c){var d,e=0,f=[],g=p(c),h=g.length,i=this.length===1&&this[0].parentNode;if((i==null||i&&i.nodeType===11&&i.childNodes.length===1)&&h===1)return g[b](this[0]),this;for(;e<h;e++)d=(e>0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=0,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(g=b===e&&bA;(h=a[s])!=null;s++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{g=g||bk(b),l=l||g.appendChild(b.createElement("div")),h=h.replace(bo,"<$1></$2>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]==="<table>"&&!m?l.childNodes:[];for(f=n.length-1;f>=0;--f)p.nodeName(n[f],"tbody")&&!n[f].childNodes.length&&n[f].parentNode.removeChild(n[f])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l=g.lastChild}h.nodeType?t.push(h):t=p.merge(t,h)}l&&(g.removeChild(l),h=l=g=null);if(!p.support.appendChecked)for(s=0;(h=t[s])!=null;s++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(s=0;(h=t[s])!=null;s++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[s+1,0].concat(r)),s+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^margin/,bO=new RegExp("^("+q+")(.*)$","i"),bP=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bQ=new RegExp("^([-+])=("+q+")","i"),bR={},bS={position:"absolute",visibility:"hidden",display:"block"},bT={letterSpacing:0,fontWeight:400,lineHeight:1},bU=["Top","Right","Bottom","Left"],bV=["Webkit","O","Moz","ms"],bW=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return bZ(this,!0)},hide:function(){return bZ(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bW.apply(this,arguments):this.each(function(){(c?a:bY(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bX(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bQ.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bX(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bT&&(f=bT[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(a,b){var c,d,e,f,g=getComputedStyle(a,null),h=a.style;return g&&(c=g[b],c===""&&!p.contains(a.ownerDocument.documentElement,a)&&(c=p.style(a,b)),bP.test(c)&&bN.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=c,c=g.width,h.width=d,h.minWidth=e,h.maxWidth=f)),c}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bP.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0||bH(a,"display")!=="none"?ca(a,b,d):p.swap(a,bS,function(){return ca(a,b,d)})},set:function(a,c,d){return b$(a,c,d?b_(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bP.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bU[d]+b]=e[d]||e[d-2]||e[0];return f}},bN.test(a)||(p.cssHooks[a+b].set=b$)});var cc=/%20/g,cd=/\[\]$/,ce=/\r?\n/g,cf=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,cg=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||cg.test(this.nodeName)||cf.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(ce,"\r\n")}}):{name:b.name,value:c.replace(ce,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ch(d,a[d],c,f);return e.join("&").replace(cc,"+")};var ci,cj,ck=/#.*$/,cl=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cm=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,cn=/^(?:GET|HEAD)$/,co=/^\/\//,cp=/\?/,cq=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,cr=/([?&])_=[^&]*/,cs=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,ct=p.fn.load,cu={},cv={},cw=["*/"]+["*"];try{ci=f.href}catch(cx){ci=e.createElement("a"),ci.href="",ci=ci.href}cj=cs.exec(ci.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&ct)return ct.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("<div>").append(a.replace(cq,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cA(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cA(a,b),a},ajaxSettings:{url:ci,isLocal:cm.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cw},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cy(cu),ajaxTransport:cy(cv),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cB(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cC(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=""+(c||y),k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cl.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(ck,"").replace(co,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=cs.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]==cj[1]&&i[2]==cj[2]&&(i[3]||(i[1]==="http:"?80:443))==(cj[3]||(cj[1]==="http:"?80:443)))),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cz(cu,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!cn.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cp.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cr,"$1_="+z);l.url=A+(A===l.url?(cp.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cw+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cz(cv,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cD=[],cE=/\?/,cF=/(=)\?(?=&|$)|\?\?/,cG=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cD.pop()||p.expando+"_"+cG++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cF.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cF.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cF,"$1"+f):m?c.data=i.replace(cF,"$1"+f):k&&(c.url+=(cE.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cD.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cH,cI=a.ActiveXObject?function(){for(var a in cH)cH[a](0,1)}:!1,cJ=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cK()||cL()}:cK,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cI&&delete cH[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cJ,cI&&(cH||(cH={},p(a).unload(cI)),cH[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cM,cN,cO=/^(?:toggle|show|hide)$/,cP=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cQ=/queueHooks$/,cR=[cX],cS={"*":[function(a,b){var c,d,e,f=this.createTween(a,b),g=cP.exec(b),h=f.cur(),i=+h||0,j=1;if(g){c=+g[2],d=g[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&i){i=p.css(f.elem,a,!0)||c||1;do e=j=j||".5",i=i/j,p.style(f.elem,a,i+d),j=f.cur()/h;while(j!==1&&j!==e)}f.unit=d,f.start=i,f.end=g[1]?i+(g[1]+1)*c:c}return f}]};p.Animation=p.extend(cV,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d<e;d++)c=a[d],cS[c]=cS[c]||[],cS[c].unshift(b)},prefilter:function(a,b){b?cR.unshift(a):cR.push(a)}}),p.Tween=cY,cY.prototype={constructor:cY,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(p.cssNumber[c]?"":"px")},cur:function(){var a=cY.propHooks[this.prop];return a&&a.get?a.get(this):cY.propHooks._default.get(this)},run:function(a){var b,c=cY.propHooks[this.prop];return this.pos=b=p.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration),this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):cY.propHooks._default.set(this),this}},cY.prototype.init.prototype=cY.prototype,cY.propHooks={_default:{get:function(a){var b;return a.elem[a.prop]==null||!!a.elem.style&&a.elem.style[a.prop]!=null?(b=p.css(a.elem,a.prop,!1,""),!b||b==="auto"?0:b):a.elem[a.prop]},set:function(a){p.fx.step[a.prop]?p.fx.step[a.prop](a):a.elem.style&&(a.elem.style[p.cssProps[a.prop]]!=null||p.cssHooks[a.prop])?p.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},cY.propHooks.scrollTop=cY.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},p.each(["toggle","show","hide"],function(a,b){var c=p.fn[b];p.fn[b]=function(d,e,f){return d==null||typeof d=="boolean"||!a&&p.isFunction(d)&&p.isFunction(e)?c.apply(this,arguments):this.animate(cZ(b,!0),d,e,f)}}),p.fn.extend({fadeTo:function(a,b,c,d){return this.filter(bY).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=p.isEmptyObject(a),f=p.speed(b,c,d),g=function(){var b=cV(this,p.extend({},a),f);e&&b.stop(!0)};return e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,c,d){var e=function(a){var b=a.stop;delete a.stop,b(d)};return typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,c=a!=null&&a+"queueHooks",f=p.timers,g=p._data(this);if(c)g[c]&&g[c].stop&&e(g[c]);else for(c in g)g[c]&&g[c].stop&&cQ.test(c)&&e(g[c]);for(c=f.length;c--;)f[c].elem===this&&(a==null||f[c].queue===a)&&(f[c].anim.stop(d),b=!1,f.splice(c,1));(b||!d)&&p.dequeue(this,a)})}}),p.each({slideDown:cZ("show"),slideUp:cZ("hide"),slideToggle:cZ("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){p.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),p.speed=function(a,b,c){var d=a&&typeof a=="object"?p.extend({},a):{complete:c||!c&&b||p.isFunction(a)&&a,duration:a,easing:c&&b||b&&!p.isFunction(b)&&b};d.duration=p.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in p.fx.speeds?p.fx.speeds[d.duration]:p.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";return d.old=d.complete,d.complete=function(){p.isFunction(d.old)&&d.old.call(this),d.queue&&p.dequeue(this,d.queue)},d},p.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},p.timers=[],p.fx=cY.prototype.init,p.fx.tick=function(){var a,b=p.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||p.fx.stop()},p.fx.timer=function(a){a()&&p.timers.push(a)&&!cN&&(cN=setInterval(p.fx.tick,p.fx.interval))},p.fx.interval=13,p.fx.stop=function(){clearInterval(cN),cN=null},p.fx.speeds={slow:600,fast:200,_default:400},p.fx.step={},p.expr&&p.expr.filters&&(p.expr.filters.animated=function(a){return p.grep(p.timers,function(b){return a===b.elem}).length});var c$=/^(?:body|html)$/i;p.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){p.offset.setOffset(this,a,b)});var c,d,e,f,g,h,i,j,k,l,m=this[0],n=m&&m.ownerDocument;if(!n)return;return(e=n.body)===m?p.offset.bodyOffset(m):(d=n.documentElement,p.contains(d,m)?(c=m.getBoundingClientRect(),f=c_(n),g=d.clientTop||e.clientTop||0,h=d.clientLeft||e.clientLeft||0,i=f.pageYOffset||d.scrollTop,j=f.pageXOffset||d.scrollLeft,k=c.top+i-g,l=c.left+j-h,{top:k,left:l}):{top:0,left:0})},p.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;return p.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(p.css(a,"marginTop"))||0,c+=parseFloat(p.css(a,"marginLeft"))||0),{top:b,left:c}},setOffset:function(a,b,c){var d=p.css(a,"position");d==="static"&&(a.style.position="relative");var e=p(a),f=e.offset(),g=p.css(a,"top"),h=p.css(a,"left"),i=(d==="absolute"||d==="fixed")&&p.inArray("auto",[g,h])>-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c$.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c$.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=c_(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window); \ No newline at end of file
diff --git a/apps/calculator/mousewheel.js b/apps/calculator/mousewheel.js
new file mode 100644
index 0000000..f1d5f72
--- /dev/null
+++ b/apps/calculator/mousewheel.js
@@ -0,0 +1,84 @@
+/*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net)
+ * Licensed under the MIT License (LICENSE.txt).
+ *
+ * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
+ * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
+ * Thanks to: Seamus Leahy for adding deltaX and deltaY
+ *
+ * Version: 3.0.6
+ *
+ * Requires: 1.2.2+
+ */
+
+(function($) {
+
+var types = ['DOMMouseScroll', 'mousewheel'];
+
+if ($.event.fixHooks) {
+ for ( var i=types.length; i; ) {
+ $.event.fixHooks[ types[--i] ] = $.event.mouseHooks;
+ }
+}
+
+$.event.special.mousewheel = {
+ setup: function() {
+ if ( this.addEventListener ) {
+ for ( var i=types.length; i; ) {
+ this.addEventListener( types[--i], handler, false );
+ }
+ } else {
+ this.onmousewheel = handler;
+ }
+ },
+
+ teardown: function() {
+ if ( this.removeEventListener ) {
+ for ( var i=types.length; i; ) {
+ this.removeEventListener( types[--i], handler, false );
+ }
+ } else {
+ this.onmousewheel = null;
+ }
+ }
+};
+
+$.fn.extend({
+ mousewheel: function(fn) {
+ return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel");
+ },
+
+ unmousewheel: function(fn) {
+ return this.unbind("mousewheel", fn);
+ }
+});
+
+
+function handler(event) {
+ var orgEvent = event || window.event, args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true, deltaX = 0, deltaY = 0;
+ event = $.event.fix(orgEvent);
+ event.type = "mousewheel";
+
+ // Old school scrollwheel delta
+ if ( orgEvent.wheelDelta ) { delta = orgEvent.wheelDelta/120; }
+ if ( orgEvent.detail ) { delta = -orgEvent.detail/3; }
+
+ // New school multidimensional scroll (touchpads) deltas
+ deltaY = delta;
+
+ // Gecko
+ if ( orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {
+ deltaY = 0;
+ deltaX = -1*delta;
+ }
+
+ // Webkit
+ if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY/120; }
+ if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = -1*orgEvent.wheelDeltaX/120; }
+
+ // Add event and delta to the front of the arguments
+ args.unshift(event, delta, deltaX, deltaY);
+
+ return ($.event.dispatch || $.event.handle).apply(this, args);
+}
+
+})(jQuery); \ No newline at end of file
diff --git a/apps/calculator/scientific.html b/apps/calculator/scientific.html
new file mode 100644
index 0000000..86d5559
--- /dev/null
+++ b/apps/calculator/scientific.html
@@ -0,0 +1,130 @@
+<html>
+<head>
+ <meta http-equiv="x-ua-compatible" content="IE=edge">
+ <title>Calculator</title>
+ <link rel="stylesheet" href="style.css">
+ <link rel="stylesheet" href="common.css">
+ <link rel="shortcut icon" href="favicon32.ico" size="32x32">
+ <script>
+ function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+ }
+ function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+ }
+ function start(){
+ document.getElementById('startbutton').style.display='block';
+ }
+ function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+ }
+ </script>
+</head>
+<body>
+ <script language="javascript" type="text/javascript">
+ <!-- Begin
+ function addChar(input, character) {
+ if(input.value == null || input.value == "0")
+ input.value = character
+ else
+ input.value += character
+ }
+ function cos(form) {
+ form.display.value = Math.cos(form.display.value);}
+ function sin(form) {
+ form.display.value = Math.sin(form.display.value);}
+ function tan(form) {
+ form.display.value = Math.tan(form.display.value);}
+ function sqrt(form) {
+ form.display.value = Math.sqrt(form.display.value);}
+ function ln(form) {
+ form.display.value = Math.log(form.display.value);}
+ function exp(form) {
+ form.display.value = Math.exp(form.display.value);}
+ function sqrt(form) {
+ form.display.value = Math.sqrt(form.display.value);}
+ function deleteChar(input) {
+ input.value = input.value.substring(0, input.value.length - 1)
+ }
+ function changeSign(input) {
+ if(input.value.substring(0, 1) == "-")
+ input.value = input.value.substring(1, input.value.length)
+ else
+ input.value = "-" + input.value
+ }
+ function compute(form) {
+ form.display.value = eval(form.display.value)}
+ function square(form) {
+ form.display.value = eval(form.display.value) *
+ eval(form.display.value)}
+ function checkNum(str) {
+ for (var i = 0; i < str.length; i++) {
+ var ch = str.substring(i, i+1)
+ if (ch < "0" || ch > "9") {
+ if (ch != "/" && ch != "*" && ch != "+" && ch !=
+ "-" && ch != "."
+ && ch != "(" && ch!= ")") {
+ alert("invalid entry!")
+ return false
+ }
+ }
+ }
+ return true
+ }
+ // End -->
+ </script>
+ <div id="scientific" align="center">
+ <table>
+ <form></form>
+ <tbody><tr>
+ <td colspan="6"><input style="width: 400px;" name="display" value="0"></td>
+ </tr>
+ <tr>
+ <td><input style="width: 90px;" value=" exp " onclick="if (checkNum(this.form.display.value)) {
+ exp(this.form) }" class="actionbutton" type="button"></td>
+ <td><input value="7" onclick="addChar(this.form.display, '7')" type="button"></td>
+ <td><input value="8" onclick="addChar(this.form.display, '8')" type="button"></td>
+ <td><input value="9" onclick="addChar(this.form.display, '9')" type="button"></td>
+ <td><input style="width: 60px;" value="/ " onclick="addChar(this.form.display, '/')" class="actionbutton" type="button"></td>
+ </tr>
+ <tr>
+ <td><input style="width: 90px;" value=" ln " onclick="if (checkNum(this.form.display.value)) {
+ ln(this.form) }" class="actionbutton" type="button"></td>
+ <td><input value="4" onclick="addChar(this.form.display, '4')" type="button"></td>
+ <td><input value="5" onclick="addChar(this.form.display, '5')" type="button"></td>
+ <td><input value="6" onclick="addChar(this.form.display, '6')" type="button"></td>
+ <td><input style="width: 60px;" value="* " onclick="addChar(this.form.display, '*')" class="actionbutton" type="button"></td>
+ </tr><tr>
+ <td><input style="width: 90px;" value=" sqrt " onclick="if (checkNum(this.form.display.value)) {
+ sqrt(this.form) }" class="actionbutton" type="button"></td>
+ <td><input value="1" onclick="addChar(this.form.display, '1')" type="button"></td>
+ <td><input value="2" onclick="addChar(this.form.display, '2')" type="button"></td>
+ <td><input value="3" onclick="addChar(this.form.display, '3')" type="button"></td>
+ <td><input style="width: 60px;" value="- " onclick="addChar(this.form.display, '-')" class="actionbutton" type="button"></td>
+ </tr><tr>
+ <td><input style="width: 90px;" value=" sq " onclick="if (checkNum(this.form.display.value)) {
+ square(this.form) }" class="actionbutton" type="button"></td>
+ <td><input value="0" onclick="addChar(this.form.display, '0')" type="button"></td>
+ <td><input style="width: 56px;" value=" . " onclick="addChar(this.form.display, '.')" class="actionbutton" type="button"></td>
+ <td><input style="width: 75px;" value="+/-" onclick="changeSign(this.form.display)" class="actionbutton" type="button"></td>
+ <td><input style="width: 60px;" value="+" onclick="addChar(this.form.display, '+')" class="actionbutton" type="button"></td>
+ </tr><tr>
+ <td><input style="width: 90px;" value=" ( " onclick="addChar(this.form.display, '(')" class="actionbutton" type="button"></td>
+ <td><input style="width: 75px;" value="cos" onclick="if (checkNum(this.form.display.value)) {
+ cos(this.form) }" class="actionbutton" type="button"></td>
+ <td><input value="sin" onclick="if (checkNum(this.form.display.value)) {
+ sin(this.form) }" class="actionbutton" type="button"></td>
+ <td><input style="width: 75px;" value="tan" onclick="if (checkNum(this.form.display.value)) {
+ tan(this.form) }" class="actionbutton" type="button"></td>
+ <td><input style="width: 60px;" value=" ) " onclick="addChar(this.form.display, ')')" class="actionbutton" type="button"></td>
+ </tr><tr>
+ <td><input id="deletebutton" value="Clear" onclick="this.form.display.value = 0 " type="button"></td>
+ <td><input value="<--" onclick="deleteChar(this.form.display)" class="actionbutton" type="button"></td>
+ <td><input style="width: 70px;" class="resultbutton" value="=" name="enter" onclick="if (checkNum(this.form.display.value)) { compute(this.form) }" type="button"></td>
+
+ </tr></tbody></table>
+ </div>
+</body>
+</html> \ No newline at end of file
diff --git a/apps/calculator/splashscreen.png b/apps/calculator/splashscreen.png
new file mode 100644
index 0000000..a892ebe
--- /dev/null
+++ b/apps/calculator/splashscreen.png
Binary files differ
diff --git a/apps/calculator/style.css b/apps/calculator/style.css
new file mode 100644
index 0000000..c6ff639
--- /dev/null
+++ b/apps/calculator/style.css
@@ -0,0 +1,139 @@
+body {
+ background-color:#262626;
+ color:#FFFFFF;
+ font-family:Segoe UI;
+ margin:0;
+ padding:0;
+ width:3000px;
+}
+
+pre {
+ font-family:Segoe UI;
+}
+#firstblock {
+ position:absolute;
+ height:100%;
+ width:100%;
+ bottom:0px;
+}
+#secondblock {
+ position:absolute;
+ left:50%;
+ height:100%;
+ width:100%;
+ bottom:0px;
+}
+#thirdblock {
+ position:absolute;
+ left:90%;
+ height:100%;
+ width:100%;
+ bottom:0px;
+}
+.blocktitle {
+ font-family:Segoe UI Light;
+ font-size: 24pt;
+ margin:25px;
+}
+iframe {position:absolute !important;}
+h2 {
+ font-family: Segoe UI Light;
+ font-weight:normal;
+}
+h3 {
+ font-family: Segoe UI Light;
+ font-weight:normal;
+ margin:0px;
+}
+a {
+ text-decoration:none;
+ color:#FFFFFF;
+}
+a:hover {
+ text-decoration:underline;
+}
+li.selected {
+ color: rgb(0, 114, 198);
+}
+table {
+ border:none;
+}
+td {
+ border:none;
+}
+tr {
+ border:none;
+}
+input {
+ font-family:Segoe UI;
+ font-size:14pt;
+ background-color:rgba(255,255,255,0.6);
+ border:none;
+ padding:15px 20px;
+ transition:all 1s;
+}
+input:hover {
+ background-color: rgba(255,255,255,0.7);
+}
+input:active, input[type="text"]:focus {
+ background-color:rgba(255,255,255,0.9);
+}
+.actionbutton {
+ background-color:#606060;
+ opacity: 0.76;
+}
+.actionbutton:hover {
+ background-color:#606060;
+ opacity: 0.86;
+}
+.actionbutton:active {
+ background-color:#606060;
+ opacity: 0.96;
+}
+#deletebutton {
+ background-color: rgba(219,40,30,0.6);
+}
+#deletebutton:hover {
+ background-color: rgba(219,40,30,0.7);
+}
+#deletebutton:active {
+ background-color: rgba(219,40,30,0.9);
+}
+.resultbutton {
+ background-color: rgba(0, 114, 198, 0.6);
+}
+.resultbutton:hover {
+ background-color: rgba(0, 114, 198, 0.7);
+}
+.resultbutton:active {
+ background-color: rgba(0, 114, 198, 0.9);
+}
+#scientific input {
+ margin:1px;
+}
+#solver {
+ float:left;
+ margin-top:0px;
+ margin-left:30px;
+}
+#datediff {
+ float:right;
+ margin-top:0px;
+ margin-right: 80px;
+}
+#solver input , #datediff input , #binaryconvert input , #circlesolver input {
+ height:30px;
+ padding:3px;
+ font-size:11pt;
+ margin-top:3px;
+}
+#circlesolver {
+ position:absolute;
+ bottom:128px;
+ margin-left:30px;
+}
+#binaryconvert {
+ position:absolute;
+ bottom:20px;
+ margin-left:30px;
+} \ No newline at end of file
diff --git a/apps/calculator/tools.html b/apps/calculator/tools.html
new file mode 100644
index 0000000..8e47c74
--- /dev/null
+++ b/apps/calculator/tools.html
@@ -0,0 +1,284 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<title>Calculator</title>
+<link rel="stylesheet" href="style.css"/>
+<link rel="stylesheet" href="common.css"/>
+<link rel="shortcut icon" href="favicon32.ico" size="32x32"/>
+ <script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+</script>
+</head>
+<body>
+<div id="solver">
+<h2>Expression solver</h2>
+<p>Need to solve an expression ? Just type it in and click "Calculate !" !!</p>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function calc(form) {
+form.result.value=eval(form.expr.value);
+}
+// End -->
+</script>
+
+<form>
+<table border=2 cellspacing=1 cellpadding=5>
+<tr>
+<td align=center>Equation</td>
+<td align=center>Result</td>
+</tr>
+<tr>
+<td align=center><input type=text name=expr size=15></td>
+<td align=center><input type=text name=result size=15></td>
+<td><input type=button value="Calculate!" class="resultbutton" onclick="calc(this.form)"></td>
+</tr>
+</table>
+</form>
+</div>
+<div id="datediff">
+<h2>Date difference</h2>
+ <script language="javascript" type="text/javascript">
+/* Visit http://www.yaldex.com/ for full source code
+and get more free JavaScript, CSS and DHTML scripts! */
+<!-- Begin
+function isValidDate(dateStr) {
+// Date validation function courtesty of
+// Sandeep V. Tamhankar (stamhankar@hotmail.com) -->
+
+// Checks for the following valid date formats:
+// MM/DD/YY MM/DD/YYYY MM-DD-YY MM-DD-YYYY
+
+var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year
+
+var matchArray = dateStr.match(datePat); // is the format ok?
+if (matchArray == null) {
+alert(dateStr + " Date is not in a valid format.")
+return false;
+}
+month = matchArray[1]; // parse date into variables
+day = matchArray[3];
+year = matchArray[4];
+if (month < 1 || month > 12) { // check month range
+alert("Month must be between 1 and 12.");
+return false;
+}
+if (day < 1 || day > 31) {
+alert("Day must be between 1 and 31.");
+return false;
+}
+if ((month==4 || month==6 || month==9 || month==11) && day==31) {
+alert("Month "+month+" doesn't have 31 days!")
+return false;
+}
+if (month == 2) { // check for february 29th
+var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
+if (day>29 || (day==29 && !isleap)) {
+alert("February " + year + " doesn't have " + day + " days!");
+return false;
+}
+}
+return true;
+}
+
+function isValidTime(timeStr) {
+// Time validation function courtesty of
+// Sandeep V. Tamhankar (stamhankar@hotmail.com) -->
+
+// Checks if time is in HH:MM:SS AM/PM format.
+// The seconds and AM/PM are optional.
+
+var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;
+
+var matchArray = timeStr.match(timePat);
+if (matchArray == null) {
+alert("Time is not in a valid format.");
+return false;
+}
+hour = matchArray[1];
+minute = matchArray[2];
+second = matchArray[4];
+ampm = matchArray[6];
+
+if (second=="") { second = null; }
+if (ampm=="") { ampm = null }
+
+if (hour < 0 || hour > 23) {
+alert("Hour must be between 1 and 12. (or 0 and 23 for military time)");
+return false;
+}
+if (hour <= 12 && ampm == null) {
+if (confirm("Please indicate which time format you are using. OK = Standard Time, CANCEL = Military Time")) {
+alert("You must specify AM or PM.");
+return false;
+}
+}
+if (hour > 12 && ampm != null) {
+alert("You can't specify AM or PM for military time.");
+return false;
+}
+if (minute < 0 || minute > 59) {
+alert ("Minute must be between 0 and 59.");
+return false;
+}
+if (second != null && (second < 0 || second > 59)) {
+alert ("Second must be between 0 and 59.");
+return false;
+}
+return true;
+}
+
+function dateDiff(dateform) {
+date1 = new Date();
+date2 = new Date();
+diff = new Date();
+
+if (isValidDate(dateform.firstdate.value) && isValidTime(dateform.firsttime.value)) { // Validates first date
+date1temp = new Date(dateform.firstdate.value + " " + dateform.firsttime.value);
+date1.setTime(date1temp.getTime());
+}
+else return false; // otherwise exits
+
+if (isValidDate(dateform.seconddate.value) && isValidTime(dateform.secondtime.value)) { // Validates second date
+date2temp = new Date(dateform.seconddate.value + " " + dateform.secondtime.value);
+date2.setTime(date2temp.getTime());
+}
+else return false; // otherwise exits
+
+// sets difference date to difference of first date and second date
+
+diff.setTime(Math.abs(date1.getTime() - date2.getTime()));
+
+timediff = diff.getTime();
+
+weeks = Math.floor(timediff / (1000 * 60 * 60 * 24 * 7));
+timediff -= weeks * (1000 * 60 * 60 * 24 * 7);
+
+days = Math.floor(timediff / (1000 * 60 * 60 * 24));
+timediff -= days * (1000 * 60 * 60 * 24);
+
+hours = Math.floor(timediff / (1000 * 60 * 60));
+timediff -= hours * (1000 * 60 * 60);
+
+mins = Math.floor(timediff / (1000 * 60));
+timediff -= mins * (1000 * 60);
+
+secs = Math.floor(timediff / 1000);
+timediff -= secs * 1000;
+
+dateform.difference.value = weeks + " weeks, " + days + " days, " + hours + " hours, " + mins + " minutes, and " + secs + " seconds";
+
+return false; // form should never submit, returns false
+}
+// End -->
+</script>
+<form onSubmit="return dateDiff(this);">
+<table>
+<tr><td>
+<pre>
+<h3>First Date: </h3>
+Date: <input type="text" name=firstdate value="" size=20 maxlength=10> (MM/DD/YYYY format)
+Time: <input type="time" name=firsttime value="" size=20 maxlength=10> (HH:MM:SS format)
+
+<h3>Second Date: </h3>
+Date: <input type="text" name=seconddate value="" size=20 maxlength=10> (MM/DD/YYYY format)
+Time: <input type="time" name=secondtime value="" size=20 maxlength=10> (HH:MM:SS format)
+
+<div align="center"><input type=submit class="resultbutton" value="Calculate Difference!">
+
+<h3>Date Difference:</h3>
+<input type=text name=difference value="" size=30>
+</div>
+</pre>
+</td></tr>
+</table>
+</form>
+</div>
+<div id="binaryconvert">
+<h2>Binary convertion</h2>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function toBin(form) {
+base = parseInt(form.base.value);
+num = parseInt(form.num.value);
+form.amount.value = num.toString(base);
+}
+// End -->
+</script>
+<form name=numform>
+<input type=text name=num size=8> to base
+<input type=text name=base size=8 value=2 onBlur="if ((this.value<1)||(this.value>36)){alert('The base must be between 2 and 36.');this.select();this.focus();}">
+<input type=button class="resultbutton" value="=" onclick="toBin(this.form)">
+<input type=text name=amount size=15>
+</form>
+</div>
+
+<!-- Circle solver -->
+<div id="circlesolver">
+<h2>Circle solver</h2>
+<p>Enter the circle area, diameter, or circumference and it will solve for the other two!
+</p>
+<script language="javascript" type="text/javascript">
+/* Visit http://www.yaldex.com/ for full source code
+and get more free JavaScript, CSS and DHTML scripts! */
+<!-- Begin
+function circle(form,changed) {
+with (Math) {
+var area = form.area.value;
+var diameter = form.diameter.value;
+var circumference = form.circumference.value;
+if (changed == "area") {
+var radius = sqrt(area / PI);
+diameter = 2 * radius;
+circumference = PI * diameter;
+}
+if (changed == "diameter") {
+area = PI * (diameter / 2) * (diameter / 2);
+circumference = PI * diameter;
+}
+if (changed == "circumference") {
+diameter = circumference / PI;
+area = PI * (diameter / 2) * (diameter / 2);
+ }
+form.area.value = area;
+form.diameter.value = diameter;
+form.circumference.value = circumference;
+ }
+}
+var toDegrees = 360 / (Math.PI * 2);
+var toRadians = (Math.PI * 2) / 360;
+// End -->
+</script>
+<form method=post>
+<table border="5">
+<tr>
+<td align=center>Area:</td>
+<td align=center><input type=text name=area size=20 value=0 onFocus="select()"></td>
+<td align=center><input type=button value="Solve Others" onClick="circle(this.form,'area')" class="resultbutton"></td>
+</tr>
+<tr>
+<td align=center>Diameter:</td>
+<td align=center><input type=text name=diameter size=20 value=0 onFocus="select()"></td>
+<td align=center><input type=button value="Solve Others" onClick="circle(this.form,'diameter')" class="resultbutton"></td>
+</tr>
+<tr>
+<td align=center>Circumference:</td>
+<td align=center><input type=text name=circumference size=20 value=0 onFocus="select()"></td>
+<td align=center><input type=button value="Solve Others" onClick="circle(this.form,'circumference')" class="resultbutton"></td>
+</tr>
+</table>
+</form>
+</div>
diff --git a/apps/calendar/css/charms.css b/apps/calendar/css/charms.css
new file mode 100644
index 0000000..54337b7
--- /dev/null
+++ b/apps/calendar/css/charms.css
@@ -0,0 +1,195 @@
+body {
+ font-family:Segoe UI;
+ margin:0px;
+ padding:0px;
+}
+img, a {
+ outline:none;
+ border:none;
+}
+#splashscreen {
+ position:fixed;
+ width:100%;
+ height:100%;
+ color:#FFFFFF;
+ background-image:url('../splashscreen.png');
+ background-position:center;
+ background-color:#5133AB;
+ background-repeat:no-repeat;
+ animation:splash 4s;
+ -ms-animation:splash 4s;
+ -webkit-animation:splash 4s;
+ -o-animation:splash 4s;
+ opacity:0;
+ z-index:-1;
+}
+@keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-webkit-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-ms-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-o-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+#hoverarea {
+ position:fixed;
+ top:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#bottomhoverarea {
+ position:fixed;
+ bottom:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#starthoverarea {
+ position:fixed;
+ bottom:0px;
+ left:0px;
+ width:15px;
+ height:15px;
+}
+#charmsbar {
+ display:none;
+ background-color:#111111;
+ position:fixed;
+ padding:5% 0;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 86px;
+
+}
+#settingscharms {
+ padding : 40px;
+ display:none;
+ background-color:#5133AB;
+ position:fixed;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 345px;
+ font-size:9pt;
+ color:#FFFFFF !important;
+}
+#settingscharms a {
+ color:#FFFFFF !important;
+}
+#startbutton {
+ display:none;
+ position:fixed;
+ left:0px;
+ bottom:0px;
+}
+#iconnetwork {
+ position:absolute;
+ top:35px;
+ left:25px;
+}
+#iconbattery {
+ position:absolute;
+ bottom:35px;
+ left:32px;
+}
+#datetime {
+ display:none;
+ position:fixed;
+ left:50px;
+ bottom:50px;
+ width:490px;
+ height:139px;
+ background-color: rgba(17,17,17,1);
+}
+#ctime {
+ position:absolute;
+ left:70px;
+ bottom:19px;
+ font-family: Segoe UI Light;
+ font-size: 64pt;
+ color:#FFFFFF;
+}
+#date {
+ margin-top:20px;
+ margin-right:20px;
+ float:right;
+ font-size:24pt;
+ font-family: Segoe UI;
+ color:#FFFFFF;
+}
+.cheading1 {
+ font-family:Segoe UI Semilight;
+ font-size:28px;
+ margin-bottom:25px;
+ display:block;
+}
+.cheading2 {
+ font-size:11pt;
+ margin-bottom:25px;
+ display:block;
+}
+.cheading2d {
+ font-size:11pt;
+ color:#A8A8A8;
+ margin-bottom:25px;
+ display:block;
+}
+#settingscharms a {
+ display:block;
+ margin-bottom:25px;
+}
+.closecharms {
+ width:32px;
+ height:32px;
+ float:right;
+} \ No newline at end of file
diff --git a/apps/calendar/img/close-light.png b/apps/calendar/img/close-light.png
new file mode 100644
index 0000000..3ede172
--- /dev/null
+++ b/apps/calendar/img/close-light.png
Binary files differ
diff --git a/apps/calendar/img/close.png b/apps/calendar/img/close.png
new file mode 100644
index 0000000..7173f58
--- /dev/null
+++ b/apps/calendar/img/close.png
Binary files differ
diff --git a/apps/calendar/img/left-light.png b/apps/calendar/img/left-light.png
new file mode 100644
index 0000000..b581ca9
--- /dev/null
+++ b/apps/calendar/img/left-light.png
Binary files differ
diff --git a/apps/calendar/img/left.png b/apps/calendar/img/left.png
new file mode 100644
index 0000000..02d77e1
--- /dev/null
+++ b/apps/calendar/img/left.png
Binary files differ
diff --git a/apps/calendar/img/plus-light.png b/apps/calendar/img/plus-light.png
new file mode 100644
index 0000000..40039c0
--- /dev/null
+++ b/apps/calendar/img/plus-light.png
Binary files differ
diff --git a/apps/calendar/img/plus.png b/apps/calendar/img/plus.png
new file mode 100644
index 0000000..19d9cf6
--- /dev/null
+++ b/apps/calendar/img/plus.png
Binary files differ
diff --git a/apps/calendar/img/right-light.png b/apps/calendar/img/right-light.png
new file mode 100644
index 0000000..0bb359b
--- /dev/null
+++ b/apps/calendar/img/right-light.png
Binary files differ
diff --git a/apps/calendar/img/right.png b/apps/calendar/img/right.png
new file mode 100644
index 0000000..e915318
--- /dev/null
+++ b/apps/calendar/img/right.png
Binary files differ
diff --git a/apps/calendar/index.html b/apps/calendar/index.html
new file mode 100644
index 0000000..fbe49c8
--- /dev/null
+++ b/apps/calendar/index.html
@@ -0,0 +1,170 @@
+<!DOCTYPE html>
+<html lang="en-US">
+<head>
+ <title>Calendar</title>
+ <meta charset="utf-8" />
+ <meta http-equiv="x-ua-compatible" content="IE=edge">
+ <link href="style.css" rel="stylesheet" type="text/css" />
+ <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.2.min.js"></script>
+ <script src="lib.js"></script>
+ <!--Stylesheet that styles the charms bar and the startbutton -->
+ <link rel="stylesheet" href="css/charms.css"/>
+ <!--Script that powers the charms bar-->
+ <script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+ document.getElementById('ctime').style.display='inline';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+ document.getElementById('ctime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+ </script>
+<script>
+var settingscharms = 'document.getElementById('settingscharms')'
+</script>
+</head>
+<body class="dark">
+<div id="splashscreen"></div>
+<div id="calendar-wrap" class="box">
+ <div id="calendar">
+ <h1 id="calendar-title"> </h1>
+ <ul id="controls">
+ <li><a href="#" id="btn-previous"></a></li>
+ <li><a href="#" id="btn-today">Today</a></li>
+ <li><a href="#" id="btn-next"></a></li>
+ </ul>
+ <div class="clear"> </div>
+ <h3 id="time"> </h3>
+ <table id="table">
+ <thead>
+ </thead>
+ <tbody>
+ </tbody>
+ </table>
+ <div class="clear"> </div>
+ <span id="stats"></span>
+ <!--<p class="info">
+ Click on a date to view events. Use arrow keys to browser the calendar.
+ </p>
+ <div class="clear"> </div-->
+ </div>
+ <div class="clear"> </div>
+</div>
+
+<div id="diary-wrap" class="box">
+ <div class="content">
+ <a href="#" id="diary-close"></a>
+ <h2 id="diary-title">&nbsp;</h2>
+ <div class="clear"> </div>
+
+ <ul id="diary"></ul>
+ <p class="info">Click on a time to add an event</p>
+ </div>
+</div>
+
+<div id="dialog">
+ <a href="" id="dialog-close"/></a>
+ <form id="add" class="target">
+ <h2 id="event-date"></h2>
+ <p class="time">
+ <label>Event time</label>
+ Hour <select id="event-hour"></select>
+ Minute <select id="event-minute"></select>
+ </p>
+ <p>
+ <label>Event description</label>
+ <input type="text" id="event-description" maxlength="100" />
+ </p>
+ <div id="event-label">
+ </div>
+ <p class="buttons">
+ <input type="submit" id="event-create" value="ok" class="button" />
+ <input type="button" id="event-close" value="cancel" class="button" />
+ <input type="button" id="event-delete" value="delete" class="button" />
+ <input type="button" id="event-tweet" value="tweet" class="button" />
+ </p>
+ </form>
+
+ <div id="ical2" class="target">
+ Copy the text and save it as calendar.ics file.<br />
+ <small>You can then import the file to Google Calendar, iCal etc.</small>
+ <textarea id="ical-data2"> </textarea>
+ </div>
+</div>
+<div class="clear"> </div>
+ <!-- CHARMS BAR CODE -->
+<div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="../../common/img/charmsbar/search.png" onmouseover="this.src='../../common/img/charmsbar/search-hover.png'" onmouseout="this.src='../../common/img/charmsbar/search.png'"/><br/>
+<img src="../../common/img/charmsbar/share.png" onmouseover="this.src='../../common/img/charmsbar/share-hover.png'" onmouseout="this.src='../../common/img/charmsbar/share.png'"/><br/>
+<a href="../../start/index.html"><img src="../../common/img/charmsbar/start.png" onmouseover="this.src='../../common/img/charmsbar/start-hover.png'" onmouseout="this.src='../../common/img/charmsbar/start.png'"/></a><br/>
+<img src="../../common/img/charmsbar/devices.png" onmouseover="this.src='../../common/img/charmsbar/devices-hover.png'" onmouseout="this.src='../../common/img/charmsbar/devices.png'"/><br/>
+<img src="../../common/img/charmsbar/settings.png" onmouseover="this.src='../../common/img/charmsbar/settings-hover.png'" onmouseout="this.src='../../common/img/charmsbar/settings.png'" onclick="settingscharms.style.display='block'"/><br/>
+</div>
+<div id="datetime">
+<img src="../../common/img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="../../common/img/battery.png" id="iconbattery"/>
+<span id="ctime"></span>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('ctime').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+window.onload=clock;
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../../start/index.html"><img src="../../common/img/start.png"/></a>
+</div>
+<div id="settingscharms">
+<img src="img/close.png" class="closecharms" onclick="settingscharms.style.display='none'"/>
+<span class="cheading1">Settings</span>
+<span class="cheading2d">Calendar</span>
+<span class="cheading2">Theme</span>
+<a href="#" id="btn-theme">light</a>
+<span class="cheading2">Get as iCal</span>
+<a href="#" id="btn-ical">Click here to show code</a>
+<div id="ical">
+<textarea id="ical-data"></textarea>
+</div>
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/apps/calendar/lib.js b/apps/calendar/lib.js
new file mode 100644
index 0000000..43327cc
--- /dev/null
+++ b/apps/calendar/lib.js
@@ -0,0 +1,585 @@
+/*
+ Simple Planner
+ A localStorage based personal planner prototype
+ Made for 10K Apart
+
+ Kailash Nadh, http://kailashnadh.name (August 2011)
+*/
+var Planner = {
+ DAYS: ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday', 'Sunday'],
+ MONTHS: ['January','February','March','April','May','June','July','August','September','October','November','December'],
+ LABELS: ['todo', 'personal', 'work', 'important', 'misc'],
+ Date: new Date(),
+ UI: null,
+ EVENTS: {},
+ diary_open: false,
+
+ init: function() {
+ this.EVENTS = localStorage['events'];
+ if(!this.EVENTS) {
+ this.EVENTS = {};
+ if(!localStorage.setup) {
+ // initial setup
+ var holidays = {'1-0': 'New Year', '8-2': 'Commonwealth Day', '17-2': 'St. Patrick\'s Day', '1-3': 'April fools', '22-3': 'Earth Day', '1-4': 'May Day', '5-4': 'Cinco de Mayo', '4-6': 'Independence Day (US)', '3-7': 'Friendship Day', '10-7': 'Rollercoaster Day', '17-8': 'International Day of Peace', '16-9': 'World Food Day', '31-9': 'Halloween', '4-10': 'Diwali', '17-10': 'World Peace Day', '22-10': 'Thanksgiving', '25-11': 'Christmas'};
+
+ for(var year=this.Date.getFullYear(); year<=this.Date.getFullYear()+1; year++) {
+ for(var id in holidays) {
+ this.createEvent(
+ id + '-' + year,
+ '00',
+ '00',
+ holidays[id],
+ 'misc'
+ );
+ }
+ }
+
+ // random entries
+ for(var i=0; i<7; i++) {
+ this.createEvent(
+ Math.floor(Math.random()*28) + '-'+ this.Date.getMonth() + '-'+ this.Date.getFullYear(),
+ Math.floor(Math.random()*23).pad(2),
+ '00',
+ 'This is a dummy event. The number ' + i + ' is cool!',
+ this.LABELS[Math.floor(Math.random()*(this.LABELS.length-1))]
+ );
+ }
+ localStorage.setup = 1;
+ }
+ } else {
+ try{
+ this.EVENTS = JSON.parse(this.EVENTS);
+ } catch(e) {
+ localStorage.clear();
+ this.EVENTS = {};
+ }
+ }
+
+ this.phone = navigator.userAgent.match(/phone/i) || navigator.userAgent.match(/android/i);
+
+ this.setDate();
+ this.initUI();
+
+ // what month to render first?
+ var hash = document.location.href.match(/([0-9]{1,2})\-([0-9]{4})/i);
+ if(hash && hash[1] >= 1 && hash[1] <= 12 && hash[2] >= 1900 && hash[2] <= 2050) {
+ this.specificMonth(hash[1], hash[2]);
+ } else {
+ this.today();
+ }
+
+ // only load the diary on pageload if there's enough space to render it
+ Planner.renderDiary( $('.day' + this.date).data('id') );
+ this.UI.resize();
+
+ Planner.UI.diary_wrap.show();
+ var covered = (Planner.UI.diary_wrap.offset().left - Planner.UI.calendar_wrap.innerWidth());
+ Planner.UI.diary_wrap.hide();
+ if(!this.phone && covered > -35 && new Date().getMonth() == this.month ) {
+ Planner.showDiary();
+ }
+ },
+ initUI: function() {
+ this.UI = {
+ themes: ['Switch to dark theme', 'Switch to light theme'],
+ 'calendar': $('#calendar'),
+ 'dialog': $('#dialog'),
+ 'add': $('#add'),
+ 'calendar_wrap': $('#calendar-wrap'),
+ 'diary_wrap': $('#diary-wrap'),
+ 'event_label': $('#event-label'),
+ 'event_hour': $('#event-hour'),
+ 'event_minute': $('#event-minute'),
+ 'event_description': $('#event-description'),
+ 'event_delete': $('#event-delete'),
+ 'event_tweet': $('#event-tweet'),
+ 'diary': $('#diary')
+ };
+
+ // time in create event dialog
+ var val = '';
+ for(i=0; i<24; i++) {
+ val = i.pad(2);
+ this.UI.event_hour.append( $('<option value="'+val+'">').html(val) );
+ }
+ for(i=0; i<60; i+=15) {
+ val = i.pad(2);
+ val = val.substr(val.length-2);
+ this.UI.event_minute.append( $('<option value="'+val+'">').html(val) );
+ }
+
+ // label colors in create event dialog
+ var labels = $('<div class="labels">'), lbl = '';
+ for(var i in this.LABELS) {
+ lbl = this.LABELS[i];
+ labels.append( $('<label class="'+lbl+' label" for="label-'+lbl+'">'+lbl+' <input type="radio" name="event-label" value="'+lbl+'" id="label-'+lbl+'" class="'+ lbl +'"></label>') );
+ }
+ this.UI.event_label.append(labels);
+
+ // day names
+ var html = '';
+ for(var i=0; i<7; i++) {
+ html += '<td>'+this.DAYS[i]+'</td>';
+ }
+ $('thead').append( $('<tr>').html(html) );
+
+ // close add prompt
+ $('#event-close').click(function() {
+ Planner.closeAddPrompt();
+ });
+ $('#dialog-close').click(function() {
+ Planner.closeDialog();
+ return false;
+ });
+ $(document).keyup(function(e) {
+ if(e.altKey) return;
+
+ if (e.keyCode == 27) {
+ Planner.closeAddPrompt();
+ } else if (e.keyCode == 37) {
+ Planner.previousMonth();
+ } else if (e.keyCode == 39) {
+ Planner.nextMonth();
+ } else if (e.keyCode == 38 || e.keyCode == 40) {
+ Planner.today();
+ }
+ });
+
+
+ // event form add
+ this.UI.add.submit(function() {
+ Planner.createEvent(
+ Planner.new_id,
+ Planner.UI.event_hour.val(),
+ Planner.UI.event_minute.val(),
+ Planner.UI.event_description.val().replace(/<\/?(?!\!)[^>]*>/gi, ''),
+ Planner.UI.event_label.find('input[name="event-label"]:checked').val(),
+ Planner.event_i
+ );
+ Planner.closeAddPrompt();
+ Planner.renderEvents();
+ if(Planner.diary_open) {
+ Planner.renderDiary(Planner.new_id);
+ }
+ return false;
+ });
+
+ this.UI.event_delete.click(function() {
+ var id = $(this).data('id');
+ Planner.deleteEvent( id, $(this).data('i') );
+ Planner.closeDialog();
+ Planner.renderCalendar();
+ Planner.renderDiary(id);
+ return false;
+ });
+
+ this.UI.event_tweet.click(function() {
+ var id = $(this).data('id');
+ var tweet = Planner.EVENTS[id][$(this).data('i')];
+
+ window.open('http://twitter.com/home?status=' + escape(tweet.description + ' @ ' + tweet.hour + ':' + tweet.minute + ', ' + Planner.dateStringID(id)) );
+ return false;
+ });
+
+ // previous and next buttons
+ $('#btn-previous').click(function() {
+ Planner.previousMonth();
+ return false;
+ });
+ $('#btn-next').click(function() {
+ Planner.nextMonth();
+ return false;
+ });
+ $('#btn-today').click(function() {
+ Planner.today();
+ return false;
+ });
+
+ // theme
+ $('#btn-theme').click(function() {
+ var t = (parseInt($(this).data('theme'))+1) % 2;
+ localStorage.theme = t;
+
+ Planner.theme(t);
+ $(this).data('theme', t).html( Planner.UI.themes[ (t+1)%2 ] );
+ return false;
+ });
+ if(localStorage.theme) {
+ Planner.theme(localStorage.theme);
+ $('#btn-theme').data('theme', localStorage.theme).html( this.UI.themes[(parseInt(localStorage.theme)+1) % 2] );
+ } else {
+ $('#btn-theme').data('theme', 0 ).html( this.UI.themes[1] );
+ }
+
+ // ical
+ $('#ical-data').click(function() {
+ $(this).select();
+ });
+ $('#btn-ical').click(function() {
+ $('#ical-data').text(Planner.exportIcal());
+ return false;
+ });
+
+ // diary close
+ $('#diary-close').click(function() {
+ this.diary_open = true;
+ Planner.UI.diary_wrap.hide();
+ return false;
+ });
+
+ this.updateTime();
+ window.setInterval(function() {
+ Planner.updateTime();
+ }, 1000);
+
+ this.UI.resize = function() {
+ var wh = $(window).height(),
+ ww = $(window).width(),
+ ch = 0;
+ var min = ( Math.min(ww, wh) );
+ min = ( Math.max(min, 400) );
+
+ ch = min/1.2;
+ Planner.UI.calendar.width( ch + 105);
+ Planner.UI.calendar.height( ch + 105);
+
+ $('td').css('width', ch/7);
+
+ Planner.UI.diary_wrap.height('auto');
+ Planner.UI.calendar_wrap.height('auto');
+
+ var box_height = Math.max(Planner.UI.calendar_wrap.outerHeight(), Planner.UI.diary_wrap.outerHeight(), wh);
+
+ Planner.UI.calendar_wrap.height( box_height );
+ Planner.UI.diary_wrap.height( box_height );
+
+ Planner.UI.diary_wrap.width('auto');
+
+ if( Planner.UI.calendar_wrap.outerWidth() + Planner.UI.diary_wrap.outerWidth() > ww ) {
+ $('body').addClass('compact');
+ } else {
+ $('body').removeClass('compact');
+ }
+ };
+ $(window).resize(function() {
+ Planner.UI.resize();
+ });
+ },
+ renderCalendar: function() {
+ document.location.href = '#' + ( this.month+1 + '-' + this.year );
+
+ // rest of the days
+ var wn = 0,
+ tblweek = null,
+ table = $('<tbody class="month'+this.month+'">');
+
+ if(this.weekstart > 0) {
+ tblweek = $('<tr>').addClass('w0');
+
+ // blank days
+ for(var i=0; i<this.weekstart; i++) {
+ tblweek.append($('<td class="day">'));
+ }
+ table.append(tblweek);
+ wn++;
+ }
+
+ for(var d=1; d <=this.num_days; d++) {
+ var w = (this.weekstart+d-1)%7;
+ if(w == 0) { // new week
+ tblweek = $('<tr>');
+ table.append(tblweek);
+ wn++;
+ }
+
+ var id = d+'-'+this.month+'-'+this.year;
+ tblweek.append(
+ $('<td valign="top" class="day">').addClass('day'+d).addClass('day'+id)
+ .append( $('<div class="'+id+'">')
+ .append( $('<span class="d">').html(d) )
+ .append(
+ $('<a href="#" title="add an event" class="add"></a>')
+ .data('id', id)
+ .click(function() {
+ Planner.addPrompt($(this).data('id'));
+ return false;
+ })
+ )
+ ).data('id', id).click(function() {
+ Planner.renderDiary( $(this).data('id') );
+ Planner.showDiary();
+ })
+ );
+ }
+ $('#calendar-title').html(this.MONTHS[this.month] + ' ' + this.year);
+ $('tbody').replaceWith(table);
+
+ // today
+ $('.month' + new Date().getMonth() + ' .day' + this.date).addClass('today');
+ $('.month' + this.month + ' .day' + this.date).addClass('marked');
+
+
+ $('td.day').hover(function() {
+ $(this).find('.add').stop().animate({opacity: 1}, 300);
+ }, function() {
+ $(this).find('.add').stop().animate({opacity: 0}, 200);
+ });
+
+ this.renderEvents();
+ },
+ renderEvents: function() {
+ $('.d .events').remove();
+
+ for(var id in this.EVENTS) {
+ var ul = $('<ul>');
+ $.each(this.EVENTS[id], function() {
+ ul.append(
+ $('<li class="label '+this.label+'">').append(
+ $('<span class="time">' + this.hour + ':' + this.minute + '</span>')
+ ).append(
+ $('<span class="desc">' + this.description + '</span>')
+ )
+ );
+ });
+
+ $('.'+id).append(ul);
+ }
+
+ var stats = this.stats();
+ $('#stats').html( stats.future + ' upcoming events and ' + stats.past + ' past events' );
+ },
+ showDiary: function() {
+ this.diary_open = true;
+ this.UI.diary_wrap.show();
+ },
+ renderDiary: function(id) {
+ $('#diary li').remove();
+ $('#diary-title').html( this.dateStringID(id) );
+
+ $('.day').removeClass('selected');
+ $('.day'+id).addClass('selected');
+
+ for(var i=0; i<24; i++) {
+ var hour = ('0' + i);
+ hour = hour.substr(hour.length-2);
+
+ $('#diary').append(
+ $('<li>').append(
+ $('<a href="#" class="time">' + hour + ':00</a>').data({hour: hour, minute: '00'})
+ .data('hour', hour)
+ .click(function() {
+ Planner.addPrompt(id, null, $(this).data('hour'), '00');
+ return false;
+ })
+ ).append('<div class="clear"> </div>')
+ .addClass('hour'+hour)
+ );
+ }
+
+ if(!this.EVENTS[id]) return;
+
+ var removals={};
+ $.each(this.EVENTS[id], function(i) {
+ $('#diary .hour'+this.hour).after(
+ $('<li>').append(
+ $('<a href="#" class="time label '+this.label+'">' + this.hour + ':' + this.minute + '</a>')
+ .click(function() {
+ Planner.addPrompt(id, i);
+ return false;
+ })
+ ).append(
+ $('<span class="desc">' + this.description + '&nbsp;</span>')
+ ).append('<div class="clear"> </div>')
+ );
+ if(parseInt(this.minute) === 0) {
+ removals[this.hour] = true;
+ }
+ });
+
+ // remove redundant hours
+ for(var r in removals) {
+ $('#diary .hour' + r).remove();
+ }
+ },
+ dialog: function(target) {
+ this.UI.dialog.find('.target').hide();
+ target.show();
+
+ // position
+ this.UI.dialog.width( this.UI.calendar.width()/2 );
+ this.UI.dialog.css('top', ( $(window).height() - this.UI.dialog.height())/2)
+ .css('left', ( this.UI.calendar.width() - this.UI.dialog.width())/2);
+
+ this.UI.dialog.show();
+ },
+ closeDialog: function() {
+ this.UI.dialog.hide();
+ },
+ addPrompt: function(id, i, hour, minute) {
+ this.new_id = id;
+ this.event_i = null;
+
+ this.UI.event_description.val('');
+ this.UI.event_label.find('input:first').attr('checked', 'checked');
+
+ this.UI.event_tweet.hide();
+ this.UI.event_delete.hide();
+
+ // passing an existing item
+ if(id && i != null&& this.EVENTS[id][i]) {
+ this.UI.event_description.val( this.EVENTS[id][i].description );
+ this.UI.event_hour.val( this.EVENTS[id][i].hour );
+ this.UI.event_minute.val( this.EVENTS[id][i].minute );
+ this.UI.event_label.find('.' + this.EVENTS[id][i].label + ' input').attr('checked', 'checked');
+
+ this.event_i = i;
+ this.UI.event_delete.data({id: id, i: i}).show();
+ this.UI.event_tweet.data({id: id, i: i}).show();
+ } else if(hour && minute) {
+ this.UI.event_hour.val( hour );
+ this.UI.event_minute.val( minute );
+ }
+
+ $('#event-date').html( this.dateStringID(id) );
+ this.dialog( this.UI.add );
+ this.UI.event_description.focus();
+
+ return false;
+ },
+ closeAddPrompt: function() {
+ this.closeDialog();
+ },
+ deleteEvent: function(id, i) {
+ this.EVENTS[id].splice(i,1);
+ localStorage['events'] = JSON.stringify(this.EVENTS);
+ },
+ createEvent: function(id, hour, minute, description, label, i) {
+ if(!this.EVENTS[id]) {
+ this.EVENTS[id] = [];
+ }
+
+ var entry = {
+ description: description,
+ hour: hour,
+ minute: minute,
+ label: label
+ };
+ if(!i || i == null) {
+ this.EVENTS[id].push(entry);
+ } else {
+ this.EVENTS[id][i] = entry;
+ }
+
+ this.EVENTS[id].sort(function(a, b) {
+ return parseInt(a.hour+''+a.minute) - parseInt(b.hour+''+b.minute);
+ });
+
+ localStorage['events'] = JSON.stringify(this.EVENTS);
+ },
+
+ exportIcal: function() {
+ var ical = '';
+
+ ical = 'BEGIN:VCALENDAR\nMETHOD:PUBLISH\nVERSION:2.0\nCALSCALE:GREGORIAN\n\n';
+ for(var id in this.EVENTS) {
+ var date = Planner.dateFromID(id);
+
+ $.each(this.EVENTS[id], function() {
+ ical+= 'BEGIN:VEVENT\n';
+ ical+= 'DTSTART:'+ [date.getFullYear(), date.getMonth().pad(2), date.getDate().pad(2), 'T', this.hour, this.minute, '00'].join('') +'\n';
+ ical+= 'SUMMARY:'+this.description+'\n';
+ ical+= 'END:VEVENT\n\n';
+ });
+ }
+ ical+='\nEND:VCALENDAR';
+
+ return ical;
+ },
+
+
+ today: function() {
+ this.Date = new Date();
+ this.setDate();
+ this.renderCalendar();
+ },
+ nextMonth: function() {
+ this.Date.setMonth(this.month+1);
+ this.setDate();
+ this.renderCalendar();
+ },
+ previousMonth: function() {
+ this.Date.setMonth(this.Month-1 < 0 ? 11 : this.month-1);
+ this.setDate();
+ this.renderCalendar();
+ },
+ specificMonth: function(m, y) {
+ this.Date.setMonth(m-1);
+ this.Date.setYear(y);
+ this.setDate();
+ this.renderCalendar();
+ },
+
+ weekDay: function(d) {
+ return (d-1).mod(7);
+ },
+ setDate: function() {
+ this.day = this.Date.getDay();
+ this.weekstart = new Date(this.Date.getTime());
+ this.weekstart.setDate(1);
+ this.weekstart = this.weekDay( this.weekstart.getDay() );
+
+ this.date = this.Date.getDate();
+ this.month = this.Date.getMonth();
+ this.year = this.Date.getFullYear();
+
+ this.num_days = 32 - new Date(this.year, this.month, 32).getDate();
+ },
+ dateStringID: function(id) {
+ var date = this.dateFromID(id),
+ d = date.getDate()
+
+ d+=(d>10 && d<20 ? 'th' : {1:'st', 2:'nd', 3:'rd'}[d % 10] || 'th');
+
+ return this.DAYS[ this.weekDay( date.getDay() ) ] + ', ' +
+ d + ' ' + this.MONTHS[date.getMonth()] + ', ' + date.getFullYear();
+ },
+ dateFromID: function(id) {
+ id = id.split('-');
+ return new Date(id[2], id[1], id[0]);
+ },
+ updateTime: function() {
+ var time = new Date();
+ $('#time').html( time.getHours().pad(2) + ':' + time.getMinutes().pad(2) );
+ },
+ stats: function() {
+ var stats = {past: 0, future: 0};
+
+ var today = new Date();
+ for(var id in this.EVENTS) {
+ var date = Planner.dateFromID(id);
+
+ if(date.getTime() > today.getTime()) {
+ stats.future++;
+ } else {
+ stats.past++;
+ }
+ }
+
+ return stats;
+ },
+ theme: function(theme) {
+ $('body').removeClass(Planner.UI.themes.join(' ')).addClass( Planner.UI.themes[theme] );
+ }
+};
+
+Number.prototype.mod = function(n) {
+ return ((this%n)+n)%n;
+};
+Number.prototype.pad = function(n) {
+ var val = '0' + this;
+ return val.substr(val.length-n);
+};
+
+$(document).ready(function() {
+ Planner.init();
+}); \ No newline at end of file
diff --git a/apps/calendar/splashscreen.png b/apps/calendar/splashscreen.png
new file mode 100644
index 0000000..4e5c822
--- /dev/null
+++ b/apps/calendar/splashscreen.png
Binary files differ
diff --git a/apps/calendar/style.css b/apps/calendar/style.css
new file mode 100644
index 0000000..4e1112a
--- /dev/null
+++ b/apps/calendar/style.css
@@ -0,0 +1,498 @@
+html {
+ height: 100%;
+}
+body {
+ background: #eee;
+ font-family: Segoe UI;
+ font-size: 1em;
+ color: #000;
+ height: 100%;
+ margin: 0;
+ padding: 0;
+ transition:all 1s ease 0s;
+ -moz-transition:all 1s ease 0s;
+ -webkit-transition:all 1s ease 0s;
+}
+a {
+outline:none;
+}
+
+.box {
+ background: #fff;
+ box-shadow: 0 0 30px #ddd;
+}
+
+#calendar-wrap {
+ padding-right: 35px;
+ float: left;
+ z-index: 1;
+ overflow: hidden;
+ transition:all 1s ease 0s;
+ -moz-transition:all 1s ease 0s;
+ -webkit-transition:all 1s ease 0s;
+}
+ #calendar {
+ position: relative;
+ margin: 15px;
+ }
+ #stats {
+ color: #aaa;
+ line-height: 40px;
+ font-size:14pt;
+ }
+ #calendar-title {
+
+ margin-bottom: 10px;
+ float: left;
+ width: 40%;
+ font-family:Segoe UI Light;
+ color: rgb(0, 114, 198);
+ transition:all 1s ease 0s;
+ -moz-transition:all 1s ease 0s;
+ -webkit-transition:all 1s ease 0s;
+ }
+ #time {
+ color: #999;
+ }
+
+table {
+ width: 100%;
+ height: 80%;
+ margin-top: -20px;
+ border-spacing: 0;
+}
+thead td {
+ font-size: 11px;
+ text-transform:uppercase;
+ color: rgb(102, 102, 102);
+
+ height: 40px;
+}
+tbody td {
+ border-width: 0 1px 1px 0;
+ border-style: solid;
+ border-color: #ddd;
+ padding: 10px;
+ overflow: hidden;
+}
+thead td {
+ border-bottom: 1px solid #ddd;
+}
+tbody tr td:nth-child(1) {
+ border-left: 1px solid #ddd;
+}
+
+.day {
+ background: #fff url('w.png') repeat-x bottom left;
+ overflow: hidden;
+ cursor: pointer;
+}
+.day div {
+ position: relative;
+}
+.day:hover {
+ background: #fff;
+}
+.day .d {
+ position: absolute;
+ top: 0;
+ right: 0;
+}
+.selected .d {
+ text-decoration: underline;
+}
+.today {
+ background: #DFEDFA;
+ border-top:3px solid #0072C6;
+}
+ .marked .d {
+ font-weight: bold;
+ }
+#btn-previous {
+ width:32px;
+ height:32px;
+ padding:0px !important;
+ background-image:url(img/left-light.png) !important;
+ background-color:transparent !important;
+ vertical-align:middle;
+ opacity:0.8;
+
+}
+#btn-next {
+ width:32px;
+ height:32px;
+ padding:0px !important;
+ background-image:url(img/right-light.png) !important;
+ background-color:transparent !important;
+ vertical-align:middle;
+ opacity:0.8;
+}
+#btn-previous:hover , #btn-next:hover {
+ opacity:1;
+}
+#btn-today {
+ padding:0px !important;
+ background-color:transparent !important;
+ font-size:14pt !important;
+ vertical-align:middle;
+ margin-left:50px;
+ margin-right:50px;
+ color:#000;
+ transition:all 2s ease 0s;
+ -moz-transition:all 2s ease 0s;
+ -webkit-transition:all 2s ease 0s;
+
+}
+.day .add {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ line-height: 16px;
+ width: 16px;
+ height: 16px;
+ opacity: 0;
+ background-image:url(img/plus-light.png);
+ background-size:16px 16px;
+}
+ .day ul {
+ position: absolute;
+ font-size: 11px;
+ top: 25px;
+ width: 100%;
+ }
+ .day li {
+ padding: 2px;
+ width: 100%;
+ margin-bottom: 1px;
+ overflow: hidden;
+ height: 14px;
+ }
+ .day ul .time {
+ margin-right: 5px;
+ }
+
+
+#diary-wrap {
+ border-left: 1px solid #ddd;
+ float: left;
+ width: 30%;
+ display: none;
+ transition:all 1s ease 0s;
+ -moz-transition:all 1s ease 0s;
+ -webkit-transition:all 1s ease 0s;
+}
+ #diary-title {
+ float: left;
+ color: rgb(0, 114, 198);
+ font-family:Segoe UI Light;
+ }
+ #diary-close {
+ float: left;
+ margin: 1px 15px 10px 0;
+ background-image:url(img/close-light.png);
+ width:32px;
+ height:32px;
+ }
+
+ #diary-wrap .content {
+ margin: 15px;
+ }
+ .compact #diary-wrap {
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: 5;
+ margin-left: 40px;
+ }
+ .compact #calendar-title {
+ float: none;
+ }
+ .compact #controls {
+ float: none;
+ }
+#diary {
+ font-size: 12px;
+ margin: 15px;
+ transition:all 1s ease 0s;
+ -moz-transition:all 1s ease 0s;
+ -webkit-transition:all 1s ease 0s;
+}
+ #diary li {
+ margin-bottom: 3px;
+ }
+ #diary .time {
+ background: #bbb;
+ color: #fff;
+ padding: 2px;
+ display: block;
+ width: 100px;
+ float: left;
+ margin-right: 15px;
+ }
+ #diary .time:hover {
+ background: #000;
+ }
+ #diary .desc {
+ display: inline-block;
+ padding: 0 0 3px 0;
+ overflow: hidden;
+ border-bottom: 1px solid #ddd;
+ }
+
+#dialog {
+ background: #fff url('w.png') repeat-x bottom left;
+ display: none;
+ padding: 15px 25px;
+ position: absolute;
+ z-index: 10;
+
+ box-shadow: 0 0 30px #aaa;
+}
+ #dialog-close {
+ float: right;
+ margin: -5px -15px 10px 10px;
+ background-image:url(img/close-light.png);
+ width:32px;
+ height:32px;
+ }
+ #dialog .target {
+ display: none;
+ }
+
+
+ #add #event-description {
+ width: 90%;
+ }
+ #add label {
+ display: block;
+ font-weight: bold;
+ margin-bottom: 5px;
+ }
+ #add p.time {
+ margin-bottom: 10px;
+ }
+ #add .label {
+ font-size: 11px;
+ font-weight: normal;
+ display: inline-block;
+ margin-right: 10px;
+ }
+ #add #event-label input {
+ padding: 0;
+ }
+ #add .buttons {
+ margin-top: 30px;
+ }
+ #event-tweet,
+ #event-delete {
+ float: right;
+ display: none;
+ margin-left: 5px;
+ }
+ #event-tweet {
+ background-image: url('t.png');
+ background-repeat: no-repeat;
+ background-position: 3px 9px;
+ padding-left: 22px;
+ }
+
+ #ical-data {
+ margin-top: 15px;
+ width: 100%;
+ font-size: 11px;
+ height: 250px;
+ border:1px solid #EBEBEB;
+ transition:all 1s ease 0s;
+ -moz-transition:all 1s ease 0s;
+ -webkit-transition:all 1s ease 0s;
+ }
+
+#controls {
+ float: right;
+ margin-top: 8px;
+}
+ #controls li {
+ display: inline-block;
+ margin-left: 5px;
+ }
+ #controls a {
+ display: inline-block;
+ padding: 5px 12px;
+ }
+ #controls .sep {
+ margin-right: 35px;
+ }
+ .button {
+ border: 0;
+ margin: 0;
+ font-weight: bold;
+ font-size: 15px;
+ cursor: pointer;
+ }
+
+
+#credit {
+ background: #eee;
+ border-radius: 3px;
+ padding: 3px 5px;
+ margin-top: 15px;
+ display: inline-block;
+}
+
+/* ____________ */
+.label {
+ padding: 3px;
+ color: #fff !important;
+}
+.important {
+ background: #ff0000 !important;
+}
+.todo {
+ background: #3366cc !important;
+}
+.personal {
+ background: #35A200 !important;
+}
+.work {
+ background: #D89700 !important;
+}
+.misc {
+ background: #48BFF2 !important;
+}
+
+.clear {
+ clear: both;
+}
+
+.info {
+ font-size: 12px;
+ color: #666;
+}
+
+.round {
+ display: block;
+ width: 20px;
+ height: 20px;
+
+ border: 3px solid #000;
+ border-radius: 20px;
+ font-weight: bold;
+ text-align: center;
+ overflow: hidden;
+}
+ .round:hover {
+ border-color: #3366cc;
+ color: #3366cc;
+ }
+
+h1, h2, h3, h4 {
+ margin: 0 0 25px 0;
+ font-weight: normal;
+}
+a {
+ color: #000;
+ text-decoration: none;
+}
+input, select {
+ padding: 10px;
+ font-family:Segoe UI Light;
+ font-size:14pt;
+}
+ul {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+
+
+
+/* ___________ colour schemes */
+.dark {
+ background: #414141;
+ color: #FFF;
+ transition:all 2s ease 0s;
+}
+.dark #time {
+ color: #FFF;
+}
+.dark #stats {
+ color: #666;
+}
+.dark .box {
+ background: #212121;
+ box-shadow: 0 0 30px #111;
+}
+.dark #calendar-title , .dark #diary-title {
+ color: #FFF;
+}
+.dark #dialog {
+ background: #212121;
+ border: 1px solid #444;
+ box-shadow: 0 0 30px #000;
+}
+.dark #diary-wrap {
+ border: 0;
+ border-right: 1px solid #1e1e1e;
+}
+
+
+.dark .round {
+ border-color: #ff4800;
+ color: #ff4800;
+}
+ .dark .round:hover {
+ border-color: #aaa;
+ color: #aaa;
+ }
+.dark .day {
+ background: #191919;
+}
+.dark .day .add {
+ background-image:url(img/plus.png);
+ background-size:16px 16px;
+}
+.dark tbody td,
+.dark thead td,
+.dark tbody tr td:nth-child(1) {
+ border-color: #2e2e2e;
+}
+.dark #diary .time {
+ background: #444;
+ color: #ccc;
+}
+.dark #diary .desc {
+ border-color: #444;
+}
+
+.dark #credit {
+ background: #111;
+}
+.dark #credit a {
+ color: #ddd;
+}
+.dark .today {
+ background: #333;
+}
+.dark .info {
+ color: #999;
+}
+.dark #ical-data {
+ background: #222;
+ color: #aaa;
+ border: 1px solid #333;
+}
+.dark .button {
+ background: #666;
+}
+.dark #dialog-close , .dark #diary-close {
+ background-image:url(img/close.png);
+}
+.dark #btn-today {
+ color:#FFF;
+}
+.dark #btn-previous {
+ background-image:url(img/left.png) !important;
+}
+.dark #btn-next {
+ background-image:url(img/right.png) !important;
+} \ No newline at end of file
diff --git a/apps/firefox/css/charms.css b/apps/firefox/css/charms.css
new file mode 100644
index 0000000..a0b00bd
--- /dev/null
+++ b/apps/firefox/css/charms.css
@@ -0,0 +1,218 @@
+/* CSS Reset + Font */
+body {
+ font-family:Segoe UI;
+ margin:0px;
+ padding:0px;
+}
+img, a {
+ outline:none;
+ border:none;
+}
+/* Splashscreen */
+#splashscreen {
+ position:fixed;
+ width:100%;
+ height:100%;
+ color:#2974AE;
+ background-image:url('../splashscreen.png') , radial-gradient(#3285C9 0%, #1F5C88 840px);
+ background-position:center;
+ background-color:#2974AE;
+ background-repeat:no-repeat;
+ animation:splash 4s;
+ -ms-animation:splash 4s;
+ -webkit-animation:splash 4s;
+ -o-animation:splash 4s;
+ opacity:0;
+ z-index:-1;
+}
+@keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-webkit-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-ms-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-o-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+/* Charms */
+/* Hover areas */
+#hoverarea {
+ position:fixed;
+ top:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#bottomhoverarea {
+ position:fixed;
+ bottom:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#starthoverarea {
+ position:fixed;
+ bottom:0px;
+ left:0px;
+ width:15px;
+ height:15px;
+}
+/* Charms bar */
+#charmsbar {
+ z-index:2;
+ display:none;
+ background-color:#111111;
+ position:fixed;
+ padding:5% 0;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 86px;
+
+}
+/* Start button */
+#startbutton {
+ display:none;
+ position:fixed;
+ left:0px;
+ bottom:0px;
+ margin:0;
+ padding:0;
+}
+/* Date and time on charms */
+#datetime {
+ display:none;
+ position:fixed;
+ left:50px;
+ bottom:50px;
+ width:490px;
+ height:139px;
+ background-color: rgba(17,17,17,0.96);
+ color:#FFFFFF;
+}
+#ctime {
+ position:absolute;
+ left:70px;
+ bottom:19px;
+ font-family: Segoe UI Light;
+ font-size: 64pt;
+}
+#date {
+ margin-top:20px;
+ margin-right:20px;
+ float:right;
+ font-size:24pt;
+}
+#iconnetwork {
+ position:absolute;
+ top:35px;
+ left:25px;
+}
+#iconbattery {
+ position:absolute;
+ bottom:35px;
+ left:32px;
+}
+
+/* Text styling on Settings, share charms */
+
+.ch1 {
+ font-family:Segoe UI Semilight;
+ font-size:28px;
+ margin-bottom:25px;
+}
+.ch2 {
+ font-size:11pt;
+ margin-bottom:25px;
+}
+.ch2d {
+ font-size:11pt;
+ color:#A8A8A8;
+ margin-bottom:25px;
+}
+.sharing {
+ font-size:14pt;
+}
+/* Close button on settings, share charms */
+.closesettings {
+ float:right;
+ height:32px !important;
+ width:32px !important;
+ box-shadow:none !important;
+ background-image: url(images/charmsbar/settings/close.png);
+}
+/*.closesettings:hover {
+ background-image: url(images/charmsbar/settings/close-hover.png);
+}*/
+.closesettings:active {
+ background-image: url(images/charmsbar/settings/close-active.png);
+}
+/* Charms */
+.charms {
+ z-index:2;
+ background-color:#001E4E;
+ padding : 40px;
+ position:fixed;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 345px;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ display:none;
+ color:#FFF;
+}
+/* Settings charms */
+#settingscharms {
+
+} \ No newline at end of file
diff --git a/apps/firefox/css/style.css b/apps/firefox/css/style.css
new file mode 100644
index 0000000..1761aaa
--- /dev/null
+++ b/apps/firefox/css/style.css
@@ -0,0 +1,176 @@
+body {
+ margin:0;
+ padding:0;
+ background-color:#F8F8F8;
+}
+iframe {
+ position:absolute;
+ background-color:#FFF;
+ background-image: url('../img/firefox-watermark.png');
+ background-position: center;
+ background-repeat: no-repeat;
+}
+#navbar {
+ padding-top:10px;
+ padding-left:28px;
+ min-height:57px;
+ max-height:57px;
+}
+#back {
+ border-radius:100px;
+ display:inline-block;
+ background-image: url("../img/back.png");
+ width:48px;
+ height:48px;
+ cursor:pointer;
+}
+#forward {
+ display:inline-block;
+ width: 22px;
+ height: 25px;
+ background-image: url("../img/forward.png");
+ background-position:18px center;
+ background-repeat:no-repeat;
+ vertical-align: top;
+ margin-top: 5px;
+ margin-left:-14px;
+ border:2px solid #C0C6CC;
+ border-left:none;
+ padding: 5px 0px 5px 28px;
+ cursor:pointer;
+ z-index: -1;
+}
+#addressbar {
+ outline:none;
+ height:25px;
+ width:78%;
+ vertical-align: top;
+ margin-top: 5px;
+ margin-left:-4px;
+ padding:5px;
+ padding-left: 42px;
+ border:2px solid #C0C6CC;
+ border-left:none;
+ font-size:13pt;
+ font-family:Segoe UI;
+ background-image: url("../img/identity-icon.png");
+ background-position:10px center;
+ background-repeat:no-repeat;
+}
+#reload {
+ display:inline-block;
+ width: 23px;
+ height: 25px;
+ background-image: url("../img/reload.png");
+ background-position:0px center;
+ background-repeat:no-repeat;
+ vertical-align: top;
+ margin-top: 7px;
+ margin-left: 16px;
+ padding:5px;
+ cursor:pointer;
+}
+#go {
+ display:inline-block;
+ width: 23px;
+ height: 25px;
+ background-image: url("../img/forward.png");
+ background-position:center;
+ background-repeat:no-repeat;
+ vertical-align: top;
+ margin-top: 7px;
+ margin-left: 16px;
+ padding:5px;
+ cursor:pointer;
+}
+#newtab {
+ display:inline-block;
+ width:128px;
+ height:68px;
+ position: absolute;
+ top:-8px;
+ right:0;
+ background-image: url("../img/newtab.png"), url("../img/rightbg.png");
+ background-size:auto;
+ background-position:100px center, 40px center;
+ background-repeat:no-repeat;
+ padding:5px;
+ cursor:pointer;
+}
+#appbar {
+ position:fixed;
+ bottom:0;
+ height:66px;
+ width:100%;
+ background-color:#FF8000;
+ display:none;
+}
+#downloadbutton, #addonbutton, #bookmarkbutton, #settingsbutton, #pinbutton, #zoomin, #zoomout {
+ display:inline-block;
+ width:40px;
+ height:40px;
+ margin:13px;
+ background-image:url(../img/appbar-icons.png);
+ border:none;
+ outline:none;
+}
+#downloadbutton:hover {
+ background-position:0px -40px;
+}
+#downloadbutton:active {
+ background-position:0px -80px;
+}
+#addonbutton {
+ background-position:-40px 0px;
+}
+#addonbutton:hover {
+ background-position:-40px -40px;
+}
+#addonbutton:active {
+ background-position:-40px -80px;
+}
+#settingsbutton {
+ background-position:-160px 0px;
+}
+#settingsbutton:hover {
+ background-position:-160px -40px;
+}
+#settingsbutton:active {
+ background-position:-160px -80px;
+}
+#zoomin{
+ background-position:-80px 0px;
+}
+#zoomin:hover {
+ background-position:-80px -40px;
+}
+#zoomin:active {
+ background-position:-80px -80px;
+}
+#zoomout {
+ background-position:-120px 0px;
+}
+#zoomout:hover {
+ background-position:-120px -40px;
+}
+#zoomout:active {
+ background-position:-120px -80px;
+}
+#bookmarkbutton {
+ background-position:-320px 0px;
+}
+#bookmarkbutton:hover {
+ background-position:-320px -40px;
+}
+#bookmarkbutton:active {
+ background-position:-320px -80px;
+}
+#pinbutton {
+ background-position:-200px 0px;
+}
+#pinbutton:hover {
+ background-position:-200px -40px;
+}
+#pinbutton:active {
+ background-position:-200px -80px;
+} \ No newline at end of file
diff --git a/apps/firefox/img/appbar-icons.png b/apps/firefox/img/appbar-icons.png
new file mode 100644
index 0000000..d33e18e
--- /dev/null
+++ b/apps/firefox/img/appbar-icons.png
Binary files differ
diff --git a/apps/firefox/img/back.png b/apps/firefox/img/back.png
new file mode 100644
index 0000000..12b1906
--- /dev/null
+++ b/apps/firefox/img/back.png
Binary files differ
diff --git a/apps/firefox/img/firefox-watermark.png b/apps/firefox/img/firefox-watermark.png
new file mode 100644
index 0000000..7e86268
--- /dev/null
+++ b/apps/firefox/img/firefox-watermark.png
Binary files differ
diff --git a/apps/firefox/img/forward.png b/apps/firefox/img/forward.png
new file mode 100644
index 0000000..f811984
--- /dev/null
+++ b/apps/firefox/img/forward.png
Binary files differ
diff --git a/apps/firefox/img/identity-icon.png b/apps/firefox/img/identity-icon.png
new file mode 100644
index 0000000..1ec7027
--- /dev/null
+++ b/apps/firefox/img/identity-icon.png
Binary files differ
diff --git a/apps/firefox/img/newtab.png b/apps/firefox/img/newtab.png
new file mode 100644
index 0000000..3154764
--- /dev/null
+++ b/apps/firefox/img/newtab.png
Binary files differ
diff --git a/apps/firefox/img/reload.png b/apps/firefox/img/reload.png
new file mode 100644
index 0000000..f3b89df
--- /dev/null
+++ b/apps/firefox/img/reload.png
Binary files differ
diff --git a/apps/firefox/img/rightbg.png b/apps/firefox/img/rightbg.png
new file mode 100644
index 0000000..78ce96a
--- /dev/null
+++ b/apps/firefox/img/rightbg.png
Binary files differ
diff --git a/apps/firefox/index.html b/apps/firefox/index.html
new file mode 100644
index 0000000..4edad75
--- /dev/null
+++ b/apps/firefox/index.html
@@ -0,0 +1,116 @@
+<!--DO NOT REMOVE THE CODE GIVEN HERE, THAT CODE POWERS THE CHARMS AND START MENU !!! -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="x-ua-compatible" content="IE=edge">
+ <!--Title of the app -->
+ <title>Firefox</title>
+
+ <!--Stylesheet that styles the charms bar and the startbutton -->
+ <link rel="stylesheet" href="css/charms.css"/>
+ <link rel="stylesheet" href="css/style.css"/>
+
+ <!--Script that powers the charms bar-->
+ <script>
+ function visibility(visibility , target) {
+ document.getElementById(target).style.display=visibility;
+ }
+ </script>
+ <script>
+ function doublevisibility(visibility , target , target2) {
+ document.getElementById(target).style.display=visibility;
+ document.getElementById(target2).style.display=visibility;
+ }
+ </script>
+ <!--END Charm bar script-->
+ <script>
+ function hidereload() {
+ document.getElementById('reload').style.display='none';
+ document.getElementById('go').style.display='inline-block';
+ }
+ function showreload() {
+ document.getElementById('reload').style.display='inline-block';
+ document.getElementById('go').style.display='none';
+ }
+ </script>
+ <script>
+ var appbar = 'document.getElementById('appbar')';
+ </script>
+ </head>
+ <body oncontextmenu="appbar.style.display='inline-block';return false;" onclick="appbar.style.display='none';">
+ <div id="splashscreen"></div>
+ <!--PLACE YOUR CONTENT HERE -->
+ <div id="navbar">
+ <a id="back" onclick="content.history.back()"></a>
+ <a id="forward" onclick="content.history.forward()"></a>
+ <input id="addressbar" value="http://" class="frmUrlVal" id="URL1" onkeypress="return enableEnterKey(event)" type="text" onfocus="hidereload();" onblur="showreload();" >
+ <a id="go" onclick="document.getElementById('content').src='document.getElementById('addressbar').value;'" style="display:none;"></a>
+ <a id="reload" onclick="window.location.reload()"></a>
+ <a id="newtab"></a>
+ </div>
+ <iframe src="http://bing.com" id="content" name="content" frameborder="0" width="100%" height="90%" >Your browser doesn't support iframes.</iframe>
+ <div id="appbar">
+ <div style="float:left;">
+ <a id="downloadbutton"></a>
+ <a id="addonbutton"></a>
+ </div>
+ <div style="float:right">
+ <a id="settingsbutton"></a>
+ <a id="zoomin"></a>
+ <a id="zoomout"></a>
+ <a id="bookmarkbutton"></a>
+ <a id="pinbutton"></a>
+ </div>
+ </div>
+ </div>
+ <!-- CHARMS BAR CODE -->
+ <div id="charmsbar" onmouseover="doublevisibility('inline','charmsbar','datetime')" onmouseout="doublevisibility('none','charmsbar','datetime')" >
+ <img src="../../common/img/charmsbar/search.png" onclick="visibility('block','searchcharms')" onmouseover="this.src='../../common/img/charmsbar/search-hover.png'" onmouseout="this.src='../../common/img/charmsbar/search.png'"/><br/>
+ <img src="../../common/img/charmsbar/share.png" onclick="visibility('block','sharecharms')" onmouseover="this.src='../../common/img/charmsbar/share-hover.png'" onmouseout="this.src='../../common/img/charmsbar/share.png'"/><br/>
+ <a href="../../start/index.html"><img src="../../common/img/charmsbar/start.png" onmouseover="this.src='../../common/img/charmsbar/start-hover.png'" onmouseout="this.src='../../common/img/charmsbar/start.png'"/></a><br/>
+ <img src="../../common/img/charmsbar/devices.png" onmouseover="this.src='../../common/img/charmsbar/devices-hover.png'" onmouseout="this.src='../../common/img/charmsbar/devices.png'"/><br/>
+ <img src="../../common/img/charmsbar/settings.png" onclick="visibility('block','settingscharms')" onmouseover="this.src='../../common/img/charmsbar/settings-hover.png'" onmouseout="this.src='../../common/img/charmsbar/settings.png'"/><br/>
+ </div>
+ <div id="datetime">
+ <img src="../../common/img/charmsbar/network.png" id="iconnetwork" height="24px" width="24px"/>
+ <img src="../../common/img/charmsbar/battery.png" id="iconbattery"/>
+ <span id="ctime"></span>
+ <script>
+ function clock() {
+ var digital = new Date();
+ var hours = digital.getHours();
+ var minutes = digital.getMinutes();
+ var seconds = digital.getSeconds();
+ var amOrPm = "AM";
+ if (hours > 11) amOrPm = "PM";
+ if (hours > 12) hours = hours - 12;
+ if (hours == 0) hours = 12;
+ if (minutes <= 9) minutes = "0" + minutes;
+ if (seconds <= 9) seconds = "0" + seconds;
+ dispTime = hours + ":" + minutes ;
+ document.getElementById('ctime').innerHTML = dispTime;
+ setTimeout("clock()", 1000);
+ }
+ window.onload=clock;
+ </script>
+ <div id="date">
+ <script>
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+ </div>
+ </div>
+ <div id="startbutton" onmouseout="visibility('none','startbutton')">
+ <a href="../../start/index.html"><img src="../../common/img/charmsbar/startbutton.png"/></a>
+ </div>
+ <div id="hoverarea" onmouseover="doublevisibility('inline','charmsbar','datetime')" class="hotcorner"></div>
+ <div id="bottomhoverarea" onmouseover="doublevisibility('inline','charmsbar','datetime')" class="hotcorner"></div>
+ <div id="starthoverarea" onmouseover="visibility('inline','startbutton')" class="hotcorner"></div>
+ </body>
+</html>
diff --git a/apps/firefox/splashscreen.png b/apps/firefox/splashscreen.png
new file mode 100644
index 0000000..00ecb3b
--- /dev/null
+++ b/apps/firefox/splashscreen.png
Binary files differ
diff --git a/apps/maps/css/charms.css b/apps/maps/css/charms.css
new file mode 100644
index 0000000..b9d9db4
--- /dev/null
+++ b/apps/maps/css/charms.css
@@ -0,0 +1,98 @@
+body {
+ font-family:Segoe UI;
+ margin:0px;
+ padding:0px;
+}
+img, a {
+ outline:none;
+ border:none;
+}
+iframe {
+ position:absolute;
+ border:none;
+}
+#hoverarea {
+ cursor:pointer;
+ position:fixed;
+ top:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#bottomhoverarea {
+ position:fixed;
+ bottom:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#starthoverarea {
+ position:fixed;
+ bottom:0px;
+ left:0px;
+ width:15px;
+ height:15px;
+}
+#charmsbar {
+ display:none;
+ background-color:#111111;
+ position:fixed;
+ padding:5% 0;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 86px;
+
+}
+#settingscharms {
+ padding : 40px;
+ display:none;
+ background-color:#3B66AD;
+ position:fixed;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 345px;
+
+}
+#startbutton {
+ display:none;
+ position:fixed;
+ left:0px;
+ bottom:0px;
+}
+#iconnetwork {
+ position:absolute;
+ top:35px;
+ left:25px;
+}
+#iconbattery {
+ position:absolute;
+ bottom:35px;
+ left:32px;
+}
+#datetime {
+ display:none;
+ position:fixed;
+ left:50px;
+ bottom:50px;
+ width:433px;
+ height:139px;
+ background-color: rgba(17,17,17,1);
+}
+#time {
+ position:absolute;
+ left:70px;
+ bottom:19px;
+ font-family: Segoe UI Light;
+ font-size: 64pt;
+ color:#FFFFFF;
+}
+#date {
+ margin-top:20px;
+ margin-right:20px;
+ float:right;
+ font-size:24pt;
+ font-family: Segoe UI;
+ color:#FFFFFF;
+}
diff --git a/apps/maps/img/print.png b/apps/maps/img/print.png
new file mode 100644
index 0000000..d07c7d6
--- /dev/null
+++ b/apps/maps/img/print.png
Binary files differ
diff --git a/apps/maps/img/reload.png b/apps/maps/img/reload.png
new file mode 100644
index 0000000..5260f25
--- /dev/null
+++ b/apps/maps/img/reload.png
Binary files differ
diff --git a/apps/maps/index.html b/apps/maps/index.html
new file mode 100644
index 0000000..5390883
--- /dev/null
+++ b/apps/maps/index.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Maps</title>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<link rel="stylesheet" href="css/charms.css"/>
+<link rel="shortcut icon" href="favicon.ico"/>
+<script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+</script>
+<script>
+function splash() {
+setTimeout(function() {document.getElementById('splashscreen').style.animation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.oAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.webkitAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.msAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.display='none';},2000);
+}
+</script>
+<style>
+#splashscreen {
+ background-color:#8C0095;
+ background-image:url(splashscreen.png);
+ background-position:center;
+ background-repeat:no-repeat;
+}
+</style>
+</head>
+<body onmouseover="clock()" onload="splash()">
+<div id="splashscreen"></div>
+<iframe src="map.html" width="100%" height="100%"></iframe>
+<div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="../../common/img/charmsbar/search.png" onmouseover="this.src='../../common/img/charmsbar/search-hover.png'" onmouseout="this.src='../../common/img/charmsbar/search.png'"/><br/>
+<img src="../../common/img/charmsbar/share.png" onmouseover="this.src='../../common/img/charmsbar/share-hover.png'" onmouseout="this.src='../../common/img/charmsbar/share.png'"/><br/>
+<a href="../../start/index.html"><img src="../../common/img/charmsbar/start.png" onmouseover="this.src='../../common/img/charmsbar/start-hover.png'" onmouseout="this.src='../../common/img/charmsbar/start.png'"/></a><br/>
+<img src="../../common/img/charmsbar/devices.png" onmouseover="this.src='../../common/img/charmsbar/devices-hover.png'" onmouseout="this.src='../../common/img/charmsbar/devices.png'"/><br/>
+<img src="../../common/img/charmsbar/settings.png" onmouseover="this.src='../../common/img/charmsbar/settings-hover.png'" onmouseout="this.src='../../common/img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+</div>
+<div id="datetime">
+<img src="../../common/img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="../../common/img/battery.png" id="iconbattery"/>
+<span id="time"></span>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../../start/index.html"><img src="../../common/img/charmsbar/startbutton.png"/></a>
+</div>
+</body>
+</html>
+
diff --git a/apps/maps/map.html b/apps/maps/map.html
new file mode 100644
index 0000000..19bf1bf
--- /dev/null
+++ b/apps/maps/map.html
@@ -0,0 +1,116 @@
+ <!DOCTYPE html>
+ <html lang="en">
+ <head>
+ <title>Maps</title>
+ <meta http-equiv="x-ua-compatible" content="IE=edge">
+ <meta charset="utf-8" />
+<link rel="stylesheet" href="style.css"/>
+<link rel="shortcut icon" href="favicon.ico"/>
+
+<script type="text/javascript">
+function printpage()
+{
+window.print();
+}
+function showbar(){
+document.getElementById('commands').style.display='inline';
+}
+function hidebar(){
+document.getElementById('commands').style.display='none';
+}
+</script>
+ </head>
+
+ <body onload="GetMap()">
+<div id="splashscreen"></div>
+ <div id="mapDiv" style="" oncontextmenu="showbar();return false;" onclick="hidebar()"></div>
+
+ <div class="commands" id="commands">
+ <ul class="commands-list place-left">
+
+
+ <li>
+ <a class="command" onclick="document.location.reload()">
+ <img src="img/reload.png" alt="Refresh"/>
+ <span>Refresh</span>
+ </a>
+
+ </li>
+ <li>
+ <a class="command" onclick="printpage();hidebar();">
+ <img src="img/print.png" alt="Print"/>
+ <span>Print</span>
+ </a>
+ </li>
+
+ </ul>
+ </div>
+ <script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"></script>
+ <script type="text/javascript">
+ var map = null;
+ function GetMap() {
+ /* Replace YOUR_BING_MAPS_KEY with your own credentials.
+ Obtain a key by signing up for a developer account at
+ http://www.microsoft.com/maps/developers/ */
+ var cred = "AlGKiCV2-DPhuwAoWfDfBPLg4VEnsHDLkrLWbNmsAXJ5c6KEVPgubMg47GeGkHDt";
+ // Initialize map
+ map = new Microsoft.Maps.Map(document.getElementById("mapDiv"),
+ { credentials: cred });
+ // Check if browser supports geolocation
+ if (navigator.geolocation) {
+ navigator.geolocation.getCurrentPosition(locateSuccess, locateFail);
+ }
+ else {
+ alert('I\'m sorry, but Geolocation is not supported in your current browser. Have you tried running this demo in IE9?');
+ }
+ }
+ // Successful geolocation
+ function locateSuccess(loc) {
+ // Set the user's location
+ var userLocation = new Microsoft.Maps.Location(loc.coords.latitude, loc.coords.longitude);
+ // Zoom in on user's location on map
+ map.setView({ center: userLocation, zoom: 17 });
+ // Draw circle of area where user is located
+ var locationArea = drawCircle(userLocation);
+ map.entities.push(locationArea);
+ }
+ // Unsuccessful geolocation
+ function locateFail(geoPositionError) {
+ switch (geoPositionError.code) {
+ case 0: // UNKNOWN_ERROR
+ alert('An unknown error occurred, sorry');
+ break;
+ case 1: // PERMISSION_DENIED
+ alert('Permission to use Geolocation was denied');
+ break;
+ case 2: // POSITION_UNAVAILABLE
+ alert('Couldn\'t find you...');
+ break;
+ case 3: // TIMEOUT
+ alert('The Geolocation request took too long and timed out');
+ break;
+ default:
+ }
+ }
+ // Draw blue circle on top of user's location
+ function drawCircle(loc) {
+ var radius = 100;
+ var R = 6378137;
+ var lat = (loc.latitude * Math.PI) / 180;
+ var lon = (loc.longitude * Math.PI) / 180;
+ var d = parseFloat(radius) / R;
+ var locs = new Array();
+ for (x = 0; x <= 360; x++) {
+ var p = new Microsoft.Maps.Location();
+ brng = x * Math.PI / 180;
+ p.latitude = Math.asin(Math.sin(lat) * Math.cos(d) + Math.cos(lat) * Math.sin(d) * Math.cos(brng));
+ p.longitude = ((lon + Math.atan2(Math.sin(brng) * Math.sin(d) * Math.cos(lat), Math.cos(d) - Math.sin(lat) * Math.sin(p.latitude))) * 180) / Math.PI;
+ p.latitude = (p.latitude * 180) / Math.PI;
+ locs.push(p);
+ }
+ return new Microsoft.Maps.Polygon(locs, { fillColor: new Microsoft.Maps.Color(125, 0, 0, 255), strokeColor: new Microsoft.Maps.Color(0, 0, 0, 255) });
+ }
+ </script>
+
+ </body>
+ </html> \ No newline at end of file
diff --git a/apps/maps/splashscreen.png b/apps/maps/splashscreen.png
new file mode 100644
index 0000000..1b16c9e
--- /dev/null
+++ b/apps/maps/splashscreen.png
Binary files differ
diff --git a/apps/maps/style.css b/apps/maps/style.css
new file mode 100644
index 0000000..12e8051
--- /dev/null
+++ b/apps/maps/style.css
@@ -0,0 +1,143 @@
+body {
+ margin:0px;
+ padding:0px;
+}
+#splashscreen {
+ position:fixed;
+ width:100%;
+ height:100%;
+ color:#FFFFFF;
+ background-image:url('splashscreen.png');
+ background-size:contain;
+ animation:splash 4s;
+ -ms-animation:splash 4s;
+ -webkit-animation:splash 4s;
+ -o-animation:splash 4s;
+ opacity:0;
+ z-index:-1;
+}
+@keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-webkit-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-ms-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-o-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+.commands {
+ background: #1e1e1e !important;
+ position:fixed;
+ bottom:0px;
+ width:100%;
+}
+.commands span {
+ line-height:14pt;
+ padding-bottom:20px;
+}
+#commands {
+ display:none;
+ color:#FFFFFF;
+}
+.commands-list {
+ margin:0;
+ padding:0;
+ margin-top:20px;
+ list-style:none;
+}
+.commands-list li{
+ display:inline-block;
+ float:left;
+ margin-right:20px;
+ margin-left:20px;
+}
+.commands-list li .command{
+ display:block;
+ text-align:center;
+ float:left;
+ cursor:pointer;
+ text-decoration:none;
+}
+.commands-list li .command img{
+ height:32px;
+ width:32px;
+}
+.commands-list li .command span{
+ display:block;
+ font-size:9pt;
+ font-family:'Segoe UI',sans-serif;
+}
+.commands-list li.divider{
+ width:1px;
+ border-right:1px #c3c3c3 solid;
+ height:48px;
+}
+.commands-list.margin-10 li{
+ margin-left:5px;
+ margin-right:5px;
+}
+.commands-list.margin-20 li{
+ margin-left:10px;
+ margin-right:10px;
+}
+.commands-list.margin-30 li{
+ margin-left:15px;
+ margin-right:15px;
+}
+.commands-list.margin-40 li{
+ margin-left:20px;
+ margin-right:20px;
+}
+.commands-list.place-left{
+ margin-left:20px;
+}
+.commands-list.place-right{
+ margin-right:20px;
+} \ No newline at end of file
diff --git a/apps/notes/common.css b/apps/notes/common.css
new file mode 100644
index 0000000..703600b
--- /dev/null
+++ b/apps/notes/common.css
@@ -0,0 +1,169 @@
+body {
+ font-family:Segoe UI;
+ color:#FFFFFF;
+ margin:0px;
+ padding:0px;
+}
+img, a {
+ outline:none;
+ border:none;
+}
+#splashscreen {
+ position:fixed;
+ width:100%;
+ height:100%;
+ color:#FFFFFF;
+ background-image:url('splashscreen.png');
+ background-position:center;
+ background-color:#5B4C39;
+ background-repeat:no-repeat;
+ animation:splash 4s;
+ -ms-animation:splash 4s;
+ -webkit-animation:splash 4s;
+ -o-animation:splash 4s;
+ opacity:0;
+ z-index:-1;
+}
+@keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-webkit-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-ms-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-o-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+#hoverarea {
+ position:fixed;
+ top:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#bottomhoverarea {
+ position:fixed;
+ bottom:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#starthoverarea {
+ position:fixed;
+ bottom:0px;
+ left:0px;
+ width:15px;
+ height:15px;
+}
+#charmsbar {
+ display:none;
+ background-color:#111111;
+ position:fixed;
+ padding:5% 0;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 86px;
+
+}
+#settingscharms {
+ padding : 40px;
+ display:none;
+ background-color:#3B66AD;
+ position:fixed;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 345px;
+
+}
+#startbutton {
+ display:none;
+ position:fixed;
+ left:0px;
+ bottom:0px;
+}
+#iconnetwork {
+ position:absolute;
+ top:35px;
+ left:25px;
+}
+#iconbattery {
+ position:absolute;
+ bottom:35px;
+ left:32px;
+}
+#datetime {
+ display:none;
+ position:fixed;
+ left:50px;
+ bottom:50px;
+ width:490px;
+ height:139px;
+ background-color: rgba(17,17,17,1);
+}
+#time {
+ position:absolute;
+ left:70px;
+ bottom:19px;
+ font-family: Segoe UI Light;
+ font-size: 64pt;
+}
+#date {
+ margin-top:20px;
+ margin-right:20px;
+ float:right;
+ font-size:24pt;
+ font-family: Segoe UI;
+ color:#FFFFFF;
+}
+iframe {
+ position:relative;
+ border:none;
+} \ No newline at end of file
diff --git a/apps/notes/index.html b/apps/notes/index.html
new file mode 100644
index 0000000..92ff034
--- /dev/null
+++ b/apps/notes/index.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8" />
+
+ <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
+ Remove this if you use the .htaccess -->
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
+ <title>Notes</title>
+<!--[if lt IE 9]>
+<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+<![endif]-->
+ <link rel="stylesheet" href="common.css"/>
+ <link rel="stylesheet" rev="stylesheet" href="styles.css">
+ <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.3/themes/base/jquery-ui.css" type="text/css" media="all" />
+
+ <script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+</script>
+</head>
+<body>
+<div id="splashscreen">
+</div>
+ <button id="btn-addNote"/><img src="plus.png"/> Add note</button>
+<div id="board">
+
+
+</div>
+ <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
+ <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.10/jquery-ui.min.js"></script>
+ <script type="text/javascript" src="js/scripts.js"></script>
+
+
+</div>
+<div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="../../common/img/charmsbar/search.png" onmouseover="this.src='../../common/img/charmsbar/search-hover.png'" onmouseout="this.src='../../common/img/charmsbar/search.png'"/><br/>
+<img src="../../common/img/charmsbar/share.png" onmouseover="this.src='../../common/img/charmsbar/share-hover.png'" onmouseout="this.src='../../common/img/charmsbar/share.png'"/><br/>
+<a href="../../start/index.html"><img src="../../common/img/charmsbar/start.png" onmouseover="this.src='../../common/img/charmsbar/start-hover.png'" onmouseout="this.src='../../common/img/charmsbar/start.png'"/></a><br/>
+<img src="../../common/img/charmsbar/devices.png" onmouseover="this.src='../../common/img/charmsbar/devices-hover.png'" onmouseout="this.src='../../common/img/charmsbar/devices.png'"/><br/>
+<img src="../../common/img/charmsbar/settings.png" onmouseover="this.src='../../common/img/charmsbar/settings-hover.png'" onmouseout="this.src='../../common/img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+</div>
+<div id="datetime">
+<img src="../../common/img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="../../common/img/battery.png" id="iconbattery"/>
+<span id="time"></span>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+window.onload=clock;
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../../start/index.html"><img src="../../common/img/start.png"/></a>
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/apps/notes/js/scripts.js b/apps/notes/js/scripts.js
new file mode 100644
index 0000000..28963b2
--- /dev/null
+++ b/apps/notes/js/scripts.js
@@ -0,0 +1,103 @@
+(function ($, $S) {
+ //$ jQuery
+ //$S window.localStorage
+ //Variables Declaration
+ var $board = $('#board'),
+ //Board where the Posticks are sticked
+ Postick, //Singleton Object containing the Functions to work with the LocalStorage
+ len = 0,
+ //Length of Objects in the LocalStorage
+ currentNotes = '',
+ //Storage the html construction of the posticks
+ o; //Actual Postick data in the localStorage
+
+
+
+ //Manage the Posticks in the Local Storage
+ //Each postick is saved in the localStorage as an Object
+ Postick = {
+ add: function (obj) {
+ obj.id = $S.length;
+ $S.setItem(obj.id, JSON.stringify(obj));
+ },
+
+ retrive: function (id) {
+ return JSON.parse($S.getItem(id));
+ },
+
+ remove: function (id) {
+ $S.removeItem(id);
+ },
+
+ removeAll: function () {
+ $S.clear();
+ }
+
+ };
+
+ //If exist any postick, Create it/them
+ len = $S.length;
+ if (len) {
+ for (var i = 0; i < len; i++) {
+ //Create all posticks saved in localStorage
+ var key = $S.key(i);
+ o = Postick.retrive(key);
+ currentNotes += '<div class="postick"';
+ currentNotes += ' style="left:' + o.left;
+ currentNotes += 'px; top:' + o.top;
+ //data-key is the attribute to know what item delete in the localStorage
+ currentNotes += 'px"><div class="toolbar"><span class="delete" data-key="' + key;
+ currentNotes += '">x</span></div><div contenteditable="true" class="editable">';
+ currentNotes += o.text;
+ currentNotes += '</div></div>';
+ }
+
+ //Append all the posticks to the board
+ $board.html(currentNotes);
+ }
+
+ //When the document is ready, make all posticks Draggable
+ $(document).ready(function () {
+ $(".postick").draggable({
+ cancel: '.editable',
+ "zIndex": 3000,
+ "stack" : '.postick'
+ });
+ });
+
+ //Remove Postick
+ $('span.delete').live('click', function () {
+ if (confirm('Are you sure you want to delete this Note?')) {
+ var $this = $(this);
+ //data-key is the attribute to know what item delete in the localStorage
+ Postick.remove($this.attr('data-key'));
+ $this.closest('.postick').fadeOut('slow', function () {
+ $(this).remove();
+ });
+ }
+ });
+
+ //Create postick
+ $('#btn-addNote').click(function () {
+ $board.append('<div class="postick" style="left:20px;top:70px"><div class="toolbar"><span class="delete" title="Close">x</span></div><div contenteditable class="editable"></div></div>');
+ $(".postick").draggable({
+ cancel: '.editable'
+ });
+ });
+
+ //Save all the posticks when the user leaves the page
+ window.onbeforeunload = function () {
+ //Clean the localStorage
+ Postick.removeAll();
+ //Then insert each postick into the LocalStorage
+ //Saving their position on the page, in order to position them when the page is loaded again
+ $('.postick').each(function () {
+ var $this = $(this);
+ Postick.add({
+ top: parseInt($this.position().top),
+ left: parseInt($this.position().left),
+ text: $this.children('.editable').text()
+ });
+ });
+ }
+})(jQuery, window.localStorage); \ No newline at end of file
diff --git a/apps/notes/plus.png b/apps/notes/plus.png
new file mode 100644
index 0000000..19d9cf6
--- /dev/null
+++ b/apps/notes/plus.png
Binary files differ
diff --git a/apps/notes/splashscreen.png b/apps/notes/splashscreen.png
new file mode 100644
index 0000000..0f9e360
--- /dev/null
+++ b/apps/notes/splashscreen.png
Binary files differ
diff --git a/apps/notes/styles.css b/apps/notes/styles.css
new file mode 100644
index 0000000..55af607
--- /dev/null
+++ b/apps/notes/styles.css
@@ -0,0 +1,80 @@
+/************ Tags ************/
+body {
+ background-image:url('wood.png');
+ padding:0;
+ margin:0;
+ font-family: Segoe UI;
+}
+button {
+ color:white;
+ background:rgba(64,64,64,0.6);
+ float:left;
+ border: 0px;
+ height: 50px;
+ width: 150px;
+ margin-left: 5px;
+ margin-top: 5px;
+ font-family: Segoe UI Light;
+ font-size:18pt;
+}
+button:hover {
+ background:rgba(64,64,64,0.8);
+
+}
+button:active {
+ background:rgba(64,64,64,1);
+
+}
+button img {
+ vertical-align:middle;
+}
+button p {
+ vertical-align:middle;
+}
+/************ Classes ************/
+
+/* Postick's button "delete" */
+.delete {
+ cursor:pointer;
+ font-size:120%;
+ color:#000000;
+}
+
+
+.postick {
+ border:1px solid gray;
+ width:200px;
+ height:200px;
+ padding:4px;
+ font-size:85%;
+ background:#FFFC7F;
+ -moz-box-shadow:2px 2px 2px #999999;
+ -webkit-box-shadow:2px 2px 2px #999999;
+ box-shadow:2px 2px 2px #999999;
+ position:absolute;
+}
+
+.toolbar {
+ text-align:right;
+ font-weight:bold;
+}
+
+/* Content to be editable inside the postick */
+
+.editable {
+ cursor:pointer;
+ height:180px;
+ marging:0 auto;
+ width:100%;
+ overflow:hidden;
+ position:relative;
+ -moz-text-shadow: 1px 1px 0px white;
+ text-shadow: 1px 1px 0px white;
+ color:#000000;
+}
+
+.editable:hover {
+ border:1px dotted gray;
+}
+
+
diff --git a/apps/notes/wood.png b/apps/notes/wood.png
new file mode 100644
index 0000000..021643f
--- /dev/null
+++ b/apps/notes/wood.png
Binary files differ
diff --git a/apps/remotedesktop/bg.jpg b/apps/remotedesktop/bg.jpg
new file mode 100644
index 0000000..d241d88
--- /dev/null
+++ b/apps/remotedesktop/bg.jpg
Binary files differ
diff --git a/apps/remotedesktop/css/charms.css b/apps/remotedesktop/css/charms.css
new file mode 100644
index 0000000..1aadee9
--- /dev/null
+++ b/apps/remotedesktop/css/charms.css
@@ -0,0 +1,167 @@
+html, body {
+font-family:Segoe UI;
+margin:0px;
+padding:0px;
+}
+img, a {
+ outline:none;
+ border:none;
+}
+#splashscreen {
+margin:0;
+position:fixed;
+width:100%;
+height:100%;
+top:0;
+color:#FFFFFF;
+background-image:url('../splashscreen.png');
+background-position:center;
+background-color:#FFD500;
+background-repeat:no-repeat;
+animation:splash 4s;
+-ms-animation:splash 4s;
+-webkit-animation:splash 4s;
+-o-animation:splash 4s;
+opacity:0;
+z-index:-1;
+}
+@keyframes splash {
+from {
+z-index:2;
+opacity: 1;
+}
+66% {
+opacity: 1;
+}
+to {
+opacity:0;
+z-index:1;
+display:none;
+}
+}
+@-webkit-keyframes splash {
+from {
+z-index:2;
+opacity: 1;
+}
+66% {
+opacity: 1;
+}
+to {
+opacity:0;
+z-index:1;
+display:none;
+}
+}
+@-ms-keyframes splash {
+from {
+z-index:2;
+opacity: 1;
+}
+66% {
+opacity: 1;
+}
+to {
+opacity:0;
+z-index:1;
+display:none;
+}
+}
+@-o-keyframes splash {
+from {
+z-index:2;
+opacity: 1;
+}
+66% {
+opacity: 1;
+}
+to {
+opacity:0;
+z-index:1;
+display:none;
+}
+}
+#hoverarea {
+ position:fixed;
+ top:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#bottomhoverarea {
+ position:fixed;
+ bottom:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#starthoverarea {
+ position:fixed;
+ bottom:0px;
+ left:0px;
+ width:15px;
+ height:15px;
+}
+#charmsbar {
+ display:none;
+ background-color:#111111;
+ position:fixed;
+ padding:5% 0;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 86px;
+
+}
+#settingscharms {
+ padding : 40px;
+ display:none;
+ background-color:#3B66AD;
+ position:fixed;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 345px;
+
+}
+#startbutton {
+ display:none;
+ position:fixed;
+ left:0px;
+ bottom:0px;
+}
+#iconnetwork {
+ position:absolute;
+ top:35px;
+ left:25px;
+}
+#iconbattery {
+ position:absolute;
+ bottom:35px;
+ left:32px;
+}
+#datetime {
+ display:none;
+ position:fixed;
+ left:50px;
+ bottom:50px;
+ width:490px;
+ height:139px;
+ background-color: rgba(17,17,17,1);
+}
+#time {
+ position:absolute;
+ left:70px;
+ bottom:19px;
+ font-family: Segoe UI Light;
+ font-size: 64pt;
+ color:#FFFFFF;
+}
+#date {
+ margin-top:20px;
+ margin-right:20px;
+ float:right;
+ font-size:24pt;
+ font-family: Segoe UI;
+ color:#FFFFFF;
+}
diff --git a/apps/remotedesktop/index.html b/apps/remotedesktop/index.html
new file mode 100644
index 0000000..0530d10
--- /dev/null
+++ b/apps/remotedesktop/index.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Remote Desktop</title>
+ <!--Stylesheet that styles the charms bar and the startbutton -->
+ <link rel="stylesheet" href="css/charms.css"/>
+ <meta http-equiv="x-ua-compatible" content="IE=edge">
+ <!--Script that powers the charms bar-->
+ <script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+ document.getElementById('time').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+ document.getElementById('time').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+ </script>
+<style>
+body {
+ background-image: url(bg.jpg);
+ background-repeat: no-repeat;
+ background-size: 100%;
+ background-color: #515151;
+ font-family: Segoe UI Light, Segoe UI, Open Sans, Microsoft Jheng Hei;
+}
+#connect {
+ padding:10px;
+ height: 40px;
+ color: white;
+ font-weight:normal;
+ background:#212121;
+ border:2px solid white;
+ margin-left:10px;
+ font-family:Segoe UI Semibold;
+}
+
+#connect:hover {
+ background:#3e3e3e;
+ cursor:pointer;
+}
+#connect:active {
+ background: white;
+ color: black;
+ cursor:pointer;
+}
+#text {
+ font-family:Segoe UI;
+ padding: 10px;
+ width: 1000px;
+ max-height: 50px;
+ background-color: #d3d3d3;
+ border: 0px;
+ margin-left: 100px;
+ margin-top: 15px;
+ margin-bottom: 15px;
+ color: #555555;
+}
+#text:focus {
+ background: white;
+ color: black;
+ cursor:pointer;
+}
+</style>
+</head>
+<body>
+<div id="splashscreen"></div>
+<div style="margin-left: 100px; margin-top: 40px;">
+<span style="color:white; font-size:72px;">Remote Desktop</span>
+</div>
+<div style="margin-left: 100px; margin-top: 50px;">
+<span style="color:white;">To connect to a PC enter the PC name below.</span>
+</div>
+<div style="margin-left: 100px; margin-top: 10px;">
+<span style="color:white;">With Remote Desktop, you can do more than connect to other PCs.</span>
+<ul>
+<span style="color:white;">
+<li>Work with apps and desktops that the administrator has set up for you.</li>
+</span>
+<span style="color:#2e93c3">
+Access RemoteApp and Desktop Connections
+</span>
+<span style="color:white;">
+<li>Connect to PCs on your corporate network without setting up a VPN.</li>
+</span>
+<span style="color:#2e93c3">
+Use a Remote Desktop Gateway server
+</span>
+</ul>
+</div>
+<div style="height: 70px; width: 100%; background-color: #212121; position:absolute; left: 0; bottom:0;">
+<input id="text" value="PC name" onFocus="this.value=''">
+<input type="button" id="connect" value="Connect">
+<!-- CHARMS BAR CODE -->
+ <div id="hoverarea" onmouseover="charms()" class="hotcorner">
+ </div>
+ <div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+ <img src="../../common/img/charmsbar/search.png" onmouseover="this.src='../../common/img/charmsbar/search-hover.png'" onmouseout="this.src='../../common/img/charmsbar/search.png'"/><br/>
+ <img src="../../common/img/charmsbar/share.png" onmouseover="this.src='../../common/img/charmsbar/share-hover.png'" onmouseout="this.src='../../common/img/charmsbar/share.png'"/><br/>
+ <a href="../../start/index.html"><img src="img/charmsbar/start.png" onmouseover="this.src='img/charmsbar/start-hover.png'" onmouseout="this.src='../../common/img/charmsbar/start.png'"/></a><br/>
+ <img src="../../common/img/charmsbar/devices.png" onmouseover="this.src='../../common/img/charmsbar/devices-hover.png'" onmouseout="this.src='../../common/img/charmsbar/devices.png'"/><br/>
+ <img src="../../common/img/charmsbar/settings.png" onmouseover="this.src='../../common/img/charmsbar/settings-hover.png'" onmouseout="this.src='../../common/img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+ </div>
+ <div id="datetime">
+ <img src="../../common/img/charmsbar/network.png" id="iconnetwork" height="24px" width="24px"/>
+ <img src="../../common/img/charmsbar/battery.png" id="iconbattery"/>
+ <span id="time"></span>
+ <script>
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+window.onmouseover=clock;
+// End -->
+ </script>
+ <div id="date">
+ <script>
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+ </div>
+ </div>
+ <div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+ </div>
+ <div id="starthoverarea" onmouseover="start()" class="hotcorner">
+ </div>
+ <div id="startbutton" onmouseout="destroystart()">
+ <a href="../../start/index.html"><img src="../../common/img/charmsbar/startbutton.png"/></a>
+ </div>
+</div> \ No newline at end of file
diff --git a/apps/remotedesktop/splashscreen.png b/apps/remotedesktop/splashscreen.png
new file mode 100644
index 0000000..ac93a5b
--- /dev/null
+++ b/apps/remotedesktop/splashscreen.png
Binary files differ
diff --git a/apps/skybookmarks/css/charms.css b/apps/skybookmarks/css/charms.css
new file mode 100644
index 0000000..8eaeac4
--- /dev/null
+++ b/apps/skybookmarks/css/charms.css
@@ -0,0 +1,165 @@
+body {
+ font-family:Segoe UI;
+ margin:0px;
+ padding:0px;
+}
+img, a {
+ outline:none;
+ border:none;
+}
+#splashscreen {
+ position:fixed;
+ width:100%;
+ height:100%;
+ color:#FFFFFF;
+ background-color:#FFAC2B;
+ background-image:url('../splashscreen.png');
+ background-repeat:no-repeat;
+ background-position:center;
+ animation:splash 5s;
+ -ms-animation:splash 5s;
+ -webkit-animation:splash 5s;
+ -o-animation:splash 5s;
+ opacity:0;
+ z-index:-1;
+}
+@keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-webkit-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-ms-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-o-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+#hoverarea {
+ position:fixed;
+ top:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#bottomhoverarea {
+ position:fixed;
+ bottom:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#starthoverarea {
+ position:fixed;
+ bottom:0px;
+ left:0px;
+ width:15px;
+ height:15px;
+}
+#charmsbar {
+ display:none;
+ background-color:#111111;
+ position:fixed;
+ padding:5% 0;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 86px;
+
+}
+#settingscharms {
+ padding : 40px;
+ display:none;
+ background-color:#3B66AD;
+ position:fixed;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 345px;
+
+}
+#startbutton {
+ display:none;
+ position:fixed;
+ left:0px;
+ bottom:0px;
+}
+#iconnetwork {
+ position:absolute;
+ top:35px;
+ left:25px;
+}
+#iconbattery {
+ position:absolute;
+ bottom:35px;
+ left:32px;
+}
+#datetime {
+ display:none;
+ position:fixed;
+ left:50px;
+ bottom:50px;
+ width:490px;
+ height:139px;
+ background-color: rgba(17,17,17,1);
+}
+#time {
+ position:absolute;
+ left:70px;
+ bottom:19px;
+ font-family: Segoe UI Light;
+ font-size: 64pt;
+ color:#FFFFFF;
+}
+#date {
+ margin-top:20px;
+ margin-right:20px;
+ float:right;
+ font-size:24pt;
+ font-family: Segoe UI;
+ color:#FFFFFF;
+}
diff --git a/apps/skybookmarks/index.html b/apps/skybookmarks/index.html
new file mode 100644
index 0000000..c19dd83
--- /dev/null
+++ b/apps/skybookmarks/index.html
@@ -0,0 +1,275 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+ <meta http-equiv="x-ua-compatible" content="IE=edge">
+ <title>SkyBookmarks</title>
+ <!--Stylesheet that styles the charms bar and the startbutton -->
+ <link rel="stylesheet" href="css/charms.css"/>
+
+ <!--Script that powers the charms bar-->
+ <script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+ </script>
+ <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js" type="text/javascript"></script>
+ <script type="text/javascript">
+
+var int=parseInt;function r(f,t){if(!t){t=f+1;f=0;}
+return Math.floor((Math.random()*t)+f);}
+var d=m=zi=0;$.fn.d=function(a){return $(this).each(function(){$(this).css("position","absolute").mousedown(function(e){d=$(this);d.css("z-index",++zi);$(a).css("z-index",zi+1);d.x=int(d.css("left"));d.y=int(d.css("top"));d.ex=e.clientX;d.ey=e.clientY;e.preventDefault();});});}
+$(document).mousemove(function(e){if(d){m=1;x=e.clientX;y=e.clientY;nx=x-(d.ex-d.x);ny=y-(d.ey-d.y);d.css({"left":nx+"px","top":ny+"px"});}}).click(function(e){if(m)e.preventDefault();d=0;m=0;});var z=0,zf=4;function zm(e){dir=e.detail?e.detail*-1:e.wheelDelta/40;dir=dir<0?1:-1;if(dir>0){z--;}else{z++;}
+if(z<-5){z=-5;}else if(z>0){z=0;}else{cols=['CAFFFF','D0FFFF','D5FFFF','DAFFFF','E0FFFF','E5FFFF']
+$('#d').css('background',"-moz-linear-gradient(top, #FFFFFF, #"+cols[Math.abs(z)]+")");if(z==0){$('.d').show();$('.i').width(200).height(64);$('.i img').width(64).height(64);}else{h=64-(Math.abs(z)*2*zf);$('.i img, .i').width(h).height(h);$('.d').hide();}
+$('.i').each(function(i){old_left=int($(this).css('left'));old_top=int($(this).css('top'));if(dir>0){dist=((e.clientX>old_left)?e.clientX-old_left:old_left-e.clientX)/zf;new_left=(e.clientX>old_left)?old_left+dist:old_left-dist;dist=((e.clientY>old_top)?e.clientY-old_top:old_top-e.clientY)/zf;new_top=(e.clientY>old_top)?old_top+dist:old_top-dist;}else{dist=((e.clientX>old_left)?e.clientX-old_left:old_left-e.clientX)/(zf-1);new_left=(e.clientX>old_left)?old_left-dist:old_left+dist;dist=((e.clientY>old_top)?e.clientY-old_top:old_top-e.clientY)/(zf-1);new_top=(e.clientY>old_top)?old_top-dist:old_top+dist;}
+$(this).css('left',new_left+"px");$(this).css('top',new_top+"px");});sv();}}
+var pp=0;var pxy={};function pn(e){if(pp&&!d){$('.i').each(function(){$(this).css('left',((e.clientX-pxy.x)+int($(this).css('left')))+"px");$(this).css('top',((e.clientY-pxy.y)+int($(this).css('top')))+"px");});sv();}
+pxy={x:e.clientX,y:e.clientY};}
+function sv(){var es={"z":z,"x":pxy.x,"y":pxy.y};var is=[];$(".i:not(#t,.d)").each(function(){s=$(this);o={}
+o.u=s.find('a').attr("href");o.x=int(s.css("left"));o.y=int(s.css("top"));o.d=s.find('textarea').val();is.push(o);});es.is=is;localStorage.setItem("u24_e",JSON.stringify(es));}
+function l(){ld=localStorage.getItem('u24_e');if(ld==null)return 0;es=$.parseJSON(ld);for(e in es.is){i(es.is[e]);}
+z=es.z;if(z<0){$('.d').hide();h=64-(Math.abs(z)*2*zf);$('.i img, .i').width(h).height(h);}
+return(es!=null);}
+var a;function i(n){a=a||document.createElement('a');a.href=n.u;dm=a.hostname.replace(/^www./,'');var t=n.d;if(!n.d&&a.pathname!='/')t=a.pathname;x=n.x||r(500);y=n.y||r(500);ni=$('#t').hide().clone().addClass('i').removeAttr("id").height(64).mouseup(function(){sv();});ni.css({"top":y+"px","left":x+"px"}).children('a').attr({href:n.u,title:n.u}).children('img').error(function(){$(this).attr("src","u.gif");}).attr('src','http://'+dm+'/favicon.ico').parent().find('b').text(dm).parents().find('textarea').val(t).click(function(e){this.focus();e.preventDefault();}).blur(function(e){e.preventDefault();}).parents().find('.x').click(function(){if(!m){$(this).parent().addClass('d').fadeOut();sv();}}).hide().parent().mouseenter(function(){if(!m&&!z)$(this).children('.x').show();}).mouseleave(function(){if(!m)$(this).children('.x').hide()}).keyup(function(){sv();});ni.appendTo("#d").d('#c').fadeIn(500);}
+function p(){localStorage.setItem("u24_e",'{"z":-5,"x":376,"y":319,"is":[{"u":"http://puremango.co.uk","x":1013,"y":256,"d":"SkyTop maker\'s blog"},{"u":"http://reddit.com","x":386,"y":507,"d":""},{"u":"http://facebook.com","x":366,"y":443,"d":""},{"u":"http://bing.com","x":211,"y":108,"d":""},{"u":"http://google.com","x":153,"y":96,"d":""},{"u":"http://news.ycombinator.com","x":332,"y":497,"d":""},{"u":"http://10k.aneventapart.com","x":959,"y":227,"d":""},{"u":"http://news.bbc.co.uk","x":143,"y":147,"d":""},{"u":"http://jquery.com","x":970,"y":309,"d":""},{"u":"http://twitter.com/puremango","x":1075,"y":220,"d":"/puremango"},{"u":"http://reddit.com/r/programming/comments/d13v2/create_a_web_app_under_10kb/","x":1048,"y":313,"d":"/r/programming/comments/d13v2/create_a_web_app_under_10kb/"},{"u":"http://flickr.com","x":185,"y":156,"d":""},{"u":"http://lifehacker.com","x":363,"y":265,"d":""},{"u":"http://digg.com","x":419,"y":453,"d":""},{"u":"http://twitter.com/","x":307,"y":447,"d":""},{"u":"http://ajaxian.com/","x":364,"y":306,"d":""}]}');l();}
+$(document).ready(function(){$(window).bind({DOMMouseScroll:zm,mousewheel:zm});$('#d').mousedown(function(){pp=1;$('#d').css('cursor','url("grabbing.cur"), default');}).mousemove(pn).mouseup(function(){pp=0;$('#d').css('cursor','default');});$('INPUT').click(function(){if(!this.c)$(this).select();this.c=true;}).blur(function(){this.c=false;});$('#u').keyup(function(e){if(e.which==13)i({"u":this.value,"d":"edit"})});$('#c #l').click(function(){if(confirm("Reset all bookmarks ?")){saved=localStorage.getItem("u24_e");if(saved!=null){localStorage.removeItem("u24_e");}
+$('.i').animate({top:$(document).height()-100,opacity:0},1500,"",function(){$(this).remove();if($('.i:animated').length==0){z=0;p();}});}});$('#c b').click(function(){if($(this).text()=="[+]")$(this).text("[-]");else $(this).text("[+]");$('#cc').slideToggle();});l()||p();});
+ </script>
+ <style>
+ html,body{
+ overflow: hidden;
+ cursor: default;
+ font-family: Segoe UI Light;
+ font-size: 11pt;
+ margin: 0;
+ height: 100%;
+ }
+ #d{
+ cursor: default;
+ display: block;
+ background:#FFF;
+ width: 100%;
+ height: 100%;
+ }
+ #c{
+ position: absolute;
+ // initial z-index to ensure if they expand before they drag anything, it's on top.
+ z-index: 1;
+ top: 0;
+ left: 0;
+ width: 100%;
+ padding: 10px 0px 10px 0px;
+ background: #404040;
+ color: #FFFFFF;
+ }
+ #c u, #c b{
+ cursor: pointer;
+ }
+ #c b{
+ display: block;
+ width: 20px;
+ }
+ #cc{
+ display:none;
+ height: 30px;
+ padding-top: 5px;
+ padding-left: 30px;
+ }
+ .i{
+ background:#FFF;
+ width: 200px;
+ height: 64px;
+ }
+ .i a{
+ cursor: alias;
+ }
+ a img{
+ margin-right: 2px;
+ float: left;
+ }
+ a .d{
+ overflow: hidden;
+ }
+ textarea{
+ color: #777;
+ font-size: 8pt;
+ width: 129px;
+ height: 46px;
+ border: none;
+ overflow: hidden;
+ }
+ a{
+ color: #000;
+ text-decoration: none;
+ }
+ .x{
+ position: absolute;
+ top: 0;
+ right: 0px;
+ width: 20px;
+ height: 15px;
+ text-align: center;
+ background: #AAA;
+ font-weight: bold;
+ font-family: Arial;
+ font-size: 14px;
+ color: #FFF;
+ border-bottom: 1px solid #FFF;
+ border-left: 1px solid #FFF;
+ }
+ input{
+ width: 300px;
+ }
+ label{
+ display: block;
+ float: left;
+ width: 100px;
+ }
+ #c div{
+ padding-left: 9px;
+ float: left;
+ }
+ #c div p{
+ margin:0;
+ padding-top: 3px;
+ }
+ h1{
+ margin:0;
+ padding:0;
+ font-size: 15pt;
+ color: #FFF;
+ font-family:Segoe UI Light;
+ font-weight:normal;
+ }
+ #u {
+margin-left:40px;
+ background-color: rgba(255, 255, 255, 0.6);
+ border:none;
+ width: 500px;
+ padding: 4px;
+ font-family:Segoe UI;
+ font-size:11pt;
+ }
+ #u:hover {
+ background-color: rgba(255, 255, 255, 0.8);
+}
+ #u:focus{
+ background-color: rgb(255, 255, 255);
+}
+ #l {
+ position: absolute;
+ right:10px;
+ background-color: rgba(219, 40, 30, 0.7);
+ border:none;
+ padding: 4px;
+ font-family:Segoe UI;
+ font-size:11pt;
+color: rgba(255, 255, 255, 0.9);
+ }
+ #l:hover {
+ background-color: rgba(219, 40, 30, 0.8);
+}
+ #l:active{
+ background-color: rgb(219, 40, 30);
+}
+
+#description {
+margin-left:20px;
+margin-top:4px;
+}
+ </style>
+</head>
+<body>
+<div id="splashscreen"></div>
+ <!-- controls -->
+ <header id="c">
+ <div><h1>SkyBookmarks</h1></div>
+ <div><input type="text" id="u" value="http://" /></div>
+ <div id="description">Your bookmarks, in the sky...</div>
+<button id="l">Reset</button>
+ </header>
+ <!-- /controls -->
+ <!-- desktop -->
+ <section id="d">
+ <!-- icon template -->
+ <div id="t">
+ <a target="_blank">
+ <img width="64" height="64" border="none" />
+ <div class='d'>
+ <b></b><br />
+ <TEXTAREA></TEXTAREA>
+ </div>
+ </a>
+ <div class='x'>X</div>
+ </div>
+ <!-- /icon template -->
+ </section>
+ <!-- /desktop -->
+ <!-- CHARMS BAR CODE -->
+ <div id="hoverarea" onmouseover="charms()" class="hotcorner">
+ </div>
+ <div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+ <img src="../../common/img/charmsbar/search.png" onmouseover="this.src='../../common/img/charmsbar/search-hover.png'" onmouseout="this.src='../../common/img/charmsbar/search.png'"/><br/>
+ <img src="../../common/img/charmsbar/share.png" onmouseover="this.src='../../common/img/charmsbar/share-hover.png'" onmouseout="this.src='../../common/img/charmsbar/share.png'"/><br/>
+ <a href="../../start/index.html"><img src="../../common/img/charmsbar/start.png" onmouseover="this.src='../../common/img/charmsbar/start-hover.png'" onmouseout="this.src='../../common/img/charmsbar/start.png'"/></a><br/>
+ <img src="../../common/img/charmsbar/devices.png" onmouseover="this.src='../../common/img/charmsbar/devices-hover.png'" onmouseout="this.src='../../common/img/charmsbar/devices.png'"/><br/>
+ <img src="../../common/img/charmsbar/settings.png" onmouseover="this.src='../../common/img/charmsbar/settings-hover.png'" onmouseout="this.src='../../common/img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+ </div>
+ <div id="datetime">
+ <img src="../../common/img/charmsbar/network.png" id="iconnetwork" height="24px" width="24px"/>
+ <img src="../../common/img/charmsbar/battery.png" id="iconbattery"/>
+ <span id="time"></span>
+ <script>
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+window.onmouseover=clock;
+// End -->
+ </script>
+ <div id="date">
+ <script>
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+ </div>
+ </div>
+ <div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+ </div>
+ <div id="starthoverarea" onmouseover="start()" class="hotcorner">
+ </div>
+ <div id="startbutton" onmouseout="destroystart()">
+ <a href="../../start/index.html"><img src="../../common/img/charmsbar/startbutton.png"/></a>
+ </div>
+</body>
+</html> \ No newline at end of file
diff --git a/apps/skybookmarks/splashscreen.png b/apps/skybookmarks/splashscreen.png
new file mode 100644
index 0000000..fb0487a
--- /dev/null
+++ b/apps/skybookmarks/splashscreen.png
Binary files differ
diff --git a/apps/smartsearch/ask.png b/apps/smartsearch/ask.png
new file mode 100644
index 0000000..a80fbdf
--- /dev/null
+++ b/apps/smartsearch/ask.png
Binary files differ
diff --git a/apps/smartsearch/back-active.png b/apps/smartsearch/back-active.png
new file mode 100644
index 0000000..2f5b932
--- /dev/null
+++ b/apps/smartsearch/back-active.png
Binary files differ
diff --git a/apps/smartsearch/back.png b/apps/smartsearch/back.png
new file mode 100644
index 0000000..c2340fa
--- /dev/null
+++ b/apps/smartsearch/back.png
Binary files differ
diff --git a/apps/smartsearch/bimages.png b/apps/smartsearch/bimages.png
new file mode 100644
index 0000000..290928f
--- /dev/null
+++ b/apps/smartsearch/bimages.png
Binary files differ
diff --git a/apps/smartsearch/bing.png b/apps/smartsearch/bing.png
new file mode 100644
index 0000000..0ff3c15
--- /dev/null
+++ b/apps/smartsearch/bing.png
Binary files differ
diff --git a/apps/smartsearch/bmaps.png b/apps/smartsearch/bmaps.png
new file mode 100644
index 0000000..d0d32c7
--- /dev/null
+++ b/apps/smartsearch/bmaps.png
Binary files differ
diff --git a/apps/smartsearch/bvideos.png b/apps/smartsearch/bvideos.png
new file mode 100644
index 0000000..d040fd7
--- /dev/null
+++ b/apps/smartsearch/bvideos.png
Binary files differ
diff --git a/apps/smartsearch/css/appbase.css b/apps/smartsearch/css/appbase.css
new file mode 100644
index 0000000..683544f
--- /dev/null
+++ b/apps/smartsearch/css/appbase.css
@@ -0,0 +1,228 @@
+/* CSS Reset + Font */
+body {
+ font-family:Segoe UI;
+ margin:0px;
+ padding:0px;
+}
+img, a {
+ border:none;
+ outline:none;
+}
+
+/* Splashscreen */
+#splashscreen {
+ position:fixed;
+ width:100%;
+ height:100%;
+ color:#FFF;
+ background-image:url('../splashscreen.png');
+ background-position:center;
+ background-color:#FFF;
+ background-repeat:no-repeat;
+ animation:splash 4s;
+ -ms-animation:splash 4s;
+ -webkit-animation:splash 4s;
+ -o-animation:splash 4s;
+ opacity:0;
+ z-index:-1;
+}
+@keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-webkit-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-ms-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-o-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+/* Charms */
+/* Hover areas */
+#hoverarea {
+ position:fixed;
+ top:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#bottomhoverarea {
+ position:fixed;
+ bottom:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#starthoverarea {
+ position:fixed;
+ bottom:0px;
+ left:0px;
+ width:15px;
+ height:15px;
+}
+/* Charms bar */
+#charmsbar {
+ display:none;
+ background-color:#111111;
+ position:fixed;
+ padding:5% 0;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 86px;
+
+}
+/* Start button */
+#startbutton {
+ display:none;
+ position:fixed;
+ left:0px;
+ bottom:0px;
+ margin:0;
+ padding:0;
+}
+/* Date and time on charms */
+#datetime {
+ display:none;
+ position:fixed;
+ left:50px;
+ bottom:50px;
+ width:490px;
+ height:139px;
+ background-color: rgba(17,17,17,0.96);
+ color:#FFFFFF;
+}
+#ctime {
+ position:absolute;
+ left:70px;
+ bottom:19px;
+ font-family: Segoe UI Light;
+ font-size: 64pt;
+}
+#date {
+ margin-top:20px;
+ margin-right:20px;
+ float:right;
+ font-size:24pt;
+}
+#iconnetwork {
+ position:absolute;
+ top:35px;
+ left:25px;
+}
+#iconbattery {
+ position:absolute;
+ bottom:35px;
+ left:32px;
+}
+
+/* Text styling on Settings, share charms */
+.charms span {
+ line-height:40px;
+}
+.ch1 {
+ font-family:Segoe UI Semilight;
+ font-size:28px;
+ margin-bottom:25px;
+}
+.ch2 {
+ font-size:11pt;
+ margin-bottom:25px;
+}
+.ch2d {
+ font-size:11pt;
+ color:#A8A8A8;
+ margin-bottom:25px;
+}
+.ch3 {
+ font-size:9pt;
+}
+.sharing {
+ font-size:14pt;
+}
+/* Close button on settings, share charms */
+.closecharms {
+ float:right;
+ height:32px !important;
+ width:32px !important;
+ box-shadow:none !important;
+ background-image: url(../img/charmsbar/close.png);
+}
+/*.closecharms:hover {
+ background-image: url(../img/charmsbar/close-hover.png);
+}*/
+.closecharms:active {
+ background-image: url(../img/charmsbar/close-active.png);
+}
+/* Charms */
+.charms {
+ z-index:2;
+ background-color:#001E4E;
+ padding : 40px;
+ position:fixed;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 345px;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ display:none;
+ color:#FFF;
+}
+/* Settings charms */
+#settingscharms {
+
+}
+.charms input[type="text"] {
+ width:200px;
+ height:32px;
+ border:none;
+} \ No newline at end of file
diff --git a/apps/smartsearch/cssdeck.png b/apps/smartsearch/cssdeck.png
new file mode 100644
index 0000000..da845b0
--- /dev/null
+++ b/apps/smartsearch/cssdeck.png
Binary files differ
diff --git a/apps/smartsearch/deviant.png b/apps/smartsearch/deviant.png
new file mode 100644
index 0000000..574b58e
--- /dev/null
+++ b/apps/smartsearch/deviant.png
Binary files differ
diff --git a/apps/smartsearch/dribbble.png b/apps/smartsearch/dribbble.png
new file mode 100644
index 0000000..d001edd
--- /dev/null
+++ b/apps/smartsearch/dribbble.png
Binary files differ
diff --git a/apps/smartsearch/dropdown.png b/apps/smartsearch/dropdown.png
new file mode 100644
index 0000000..cd359ac
--- /dev/null
+++ b/apps/smartsearch/dropdown.png
Binary files differ
diff --git a/apps/smartsearch/favicon.ico b/apps/smartsearch/favicon.ico
new file mode 100644
index 0000000..db6fcc7
--- /dev/null
+++ b/apps/smartsearch/favicon.ico
Binary files differ
diff --git a/apps/smartsearch/flickr.png b/apps/smartsearch/flickr.png
new file mode 100644
index 0000000..ebd72d1
--- /dev/null
+++ b/apps/smartsearch/flickr.png
Binary files differ
diff --git a/apps/smartsearch/forward-active.png b/apps/smartsearch/forward-active.png
new file mode 100644
index 0000000..09d341a
--- /dev/null
+++ b/apps/smartsearch/forward-active.png
Binary files differ
diff --git a/apps/smartsearch/forward.png b/apps/smartsearch/forward.png
new file mode 100644
index 0000000..6b63de0
--- /dev/null
+++ b/apps/smartsearch/forward.png
Binary files differ
diff --git a/apps/smartsearch/grooveshark.png b/apps/smartsearch/grooveshark.png
new file mode 100644
index 0000000..a17b7ae
--- /dev/null
+++ b/apps/smartsearch/grooveshark.png
Binary files differ
diff --git a/apps/smartsearch/images.png b/apps/smartsearch/images.png
new file mode 100644
index 0000000..292d0cc
--- /dev/null
+++ b/apps/smartsearch/images.png
Binary files differ
diff --git a/apps/smartsearch/imdb.png b/apps/smartsearch/imdb.png
new file mode 100644
index 0000000..c979672
--- /dev/null
+++ b/apps/smartsearch/imdb.png
Binary files differ
diff --git a/apps/smartsearch/imgur.png b/apps/smartsearch/imgur.png
new file mode 100644
index 0000000..8ae815c
--- /dev/null
+++ b/apps/smartsearch/imgur.png
Binary files differ
diff --git a/apps/smartsearch/inagist.png b/apps/smartsearch/inagist.png
new file mode 100644
index 0000000..ebd2c78
--- /dev/null
+++ b/apps/smartsearch/inagist.png
Binary files differ
diff --git a/apps/smartsearch/index.html b/apps/smartsearch/index.html
new file mode 100644
index 0000000..3f209ce
--- /dev/null
+++ b/apps/smartsearch/index.html
@@ -0,0 +1,220 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>SmartSearch</title>
+ <link rel="shortcut icon" href="favicon.ico" size="32x32" />
+ <!-- Stylesheet (file used to style the search box) -->
+ <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
+ <link rel="stylesheet" href="css/appbase.css" type="text/css" media="screen" />
+ <!-- Some JS -->
+ <script>
+ function forIconSearch(action,naction,img){
+ document.getElementById('multisearchFormIcon').action = action;
+ document.getElementById('Iconselectedsearch').src=img;
+ document.getElementById('input').name = naction;
+ }
+ function forWebSearch(action,text){
+ document.getElementById('multisearchForm').action = action;
+ document.getElementById('selectedsearch').innerHTML=text;
+ }
+ function show() {
+ document.getElementById('engines').style.visibility='visible';
+ document.getElementById('engines').style.display='inline-block';
+ document.getElementById('input').style.visibility='hidden';
+ document.getElementById('input').style.display='none';
+ document.getElementById('submit').style.visibility='hidden';
+ document.getElementById('submit').style.display='none'
+ document.getElementById('reset').style.visibility='hidden';
+ document.getElementById('reset').style.display='none';
+ document.getElementById('dropdown').style.visibility='hidden';
+ document.getElementById('dropdown').style.display='none';
+ document.getElementById('multisearchFormIcon').style.width='auto';
+
+ };
+ function hide() {
+ document.getElementById('input').style.visibility='visible';
+ document.getElementById('input').style.display='inline';
+ document.getElementById('engines').style.visibility='hidden';
+ document.getElementById('engines').style.display='none';
+ document.getElementById('submit').style.visibility='visible';
+ document.getElementById('submit').style.display='inline'
+ document.getElementById('reset').style.visibility='visible';
+ document.getElementById('reset').style.display='inline';
+ document.getElementById('dropdown').style.visibility='visible';
+ document.getElementById('dropdown').style.display='inline';
+ document.getElementById('multisearchFormIcon').style.width='auto';
+ };
+ </script>
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
+ <script>
+ $(document).ready(function() {
+ // if text input field value is not empty show the "X" button
+ $("#input").keyup(function() {
+ $("#reset").fadeIn();
+ if ($.trim($("#input").val()) == "") {
+ $("#reset").fadeOut();
+ }
+ });
+ $("#reset").click(function() {
+ $("#input").val("");
+ $(this).hide();
+ });
+ });
+ $(document).ready(function() {
+ $("#input").ready(function() {
+ $("#reset").fadeIn();
+ if ($.trim($("#input").val()) == "") {
+ $("#reset").fadeOut();
+ }
+ });
+ });
+ </script>
+ <script>
+ function visibility(visibility,id) {
+ document.getElementById(id).style.display = visibility;
+ }
+ </script>
+ <script>
+ function doublevisibility(visibility , target , target2) {
+ document.getElementById(target).style.display=visibility;
+ document.getElementById(target2).style.display=visibility;
+ }
+ </script>
+</head>
+<body>
+ <div id="splashscreen"></div>
+ <div id="appbar">
+ <div class="appbaricon" onclick="window.history.back()" id="back" title="Previous search"></div>
+ <div class="appbaricon" onclick="window.history.forward()" id="forward" title="Next search"></div>
+ <!-- Default search engine -->
+ <form name="multisearch" action="http://www.bing.com/search?q=" id="multisearchFormIcon" method="get" target="results">
+ <ul class="ws_drop_down" id="dropdown" onclick="show()">
+ <li><a style="width:40px;" title="Search"><img src="bing.png" width="16px" height="16px" id="Iconselectedsearch"></span>
+ <![if gt IE 6]>
+ </a>
+ <![endif]>
+ <!--[if lte IE 6]><table><tr><td><![endif]-->
+
+ <!--[if lte IE 6]></td></tr></table></a><![endif]-->
+ </li>
+ <!-- The form (where you type text) -->
+ </ul><input class="multisearchInput" id="input" list="autocomplete" name="q" type="text" placeholder="Search"/>
+ <div id="engines" style="visibility:hidden;display:none;">
+ <a href="javascript:void(0);" onclick="forIconSearch('http://search.yahoo.com/search?q=','q','yahoo.png');hide();" title="Search Yahoo !"><img src="yahoo.png"/></a>
+ <a href="javascript:void(0);" onclick="forIconSearch('http://www.bing.com/search?q=','q','bing.png');hide();" title="Search Bing"><img src="bing.png"/></a>
+ <a href="javascript:void(0);" onclick="forIconSearch('http://en.wikipedia.org/w/index.php?','search','wikipedia.png');hide();" title="Search Wikipedia"><img src="wikipedia.png"/></a>
+ <a href="javascript:void(0);" onclick="forIconSearch('http://us.ask.com/web?q=','q','ask.png');hide();" title="Search Ask"><img src="ask.png"/></a>
+ <a href="javascript:void(0);" onclick="forIconSearch('https://www.ixquick.com/do/search?q=','q','ixquick.png');hide();" title="Search Ixquick"><img src="ixquick.png"/></a>
+ <a href="javascript:void(0);" onclick="forIconSearch('http://images.search.yahoo.com/search/images;_ylt=A2KJkPoGNPhPBUMAuaaLuLkF?q=','q','yimages.png');hide();" title="Search Yahoo ! Images"><img src="yimages.png"/></a>
+ <a href="javascript:void(0);" onclick="forIconSearch('http://www.bing.com/images/search?q=','q','bimages.png');hide();" title="Search Bing Images"><img src="bimages.png"/></a>
+ <a href="javascript:void(0);" onclick="forIconSearch('http://imgur.com/gallery?q=','q','imgur.png');hide();" title="Search Imgur"><img src="imgur.png"/></a>
+ <a href="javascript:void(0);" onclick="forIconSearch('https://picasaweb.google.com/lh/view?q=','q','picasa.png');hide();" title="Search Picasa"><img src="picasa.png"/></a>
+ <a href="javascript:void(0);" onclick="forIconSearch('http://www.flickr.com/search/?q=','q','flickr.png');hide();" title="Search Flickr"><img src="flickr.png"/></a>
+ <a href="javascript:void(0);" onclick="forIconSearch('http://grooveshark.com/search?q=','q','grooveshark.png');hide();" title="Search Grooveshark"><img src="grooveshark.png"/></a>
+ <a href="javascript:void(0);" onclick="forIconSearch('http://vimeo.com/search?q=','q','vimeo.png');hide();" title="Search Vimeo"><img src="vimeo.png"/></a>
+ <a href="javascript:void(0);" onclick="forIconSearch('http://www.imdb.com/find?q=','q','imdb.png');hide();" title="Search IMDb"><img src="imdb.png"/></a>
+ <a href="javascript:void(0);" onclick="forIconSearch('http://www.bing.com/videos/search?q=','q','bvideos.png');hide();" title="Search Bing Videos"><img src="bvideos.png"/></a>
+ <a href="javascript:void(0);" onclick="forIconSearch('http://www.bing.com/maps/?q=','q','bmaps.png');hide();" title="Search Bing Maps"><img src="bmaps.png"/></a>
+ <a href="javascript:void(0);" onclick="forIconSearch('http://browse.deviantart.com/?qh=&section=&global=1&q=','q','deviant.png');hide();" title="Search deviantART"><img src="deviant.png"/></a>
+ <a href="javascript:void(0);" onclick="forIconSearch('http://dribbble.com/search?q=','q','dribbble.png');hide();" title="Search Dribbble"><img src="dribbble.png"/></a>
+ <a href="javascript:void(0);" onclick="forIconSearch('http://www.reddit.com/search?q=','q','reddit.png');hide();" title="Search Reddit"><img src="reddit.png"/></a>
+ <a href="javascript:void(0);" onclick="forIconSearch('http://www.livejournal.com/search/?q=','q','livejournal.png');hide();" title="Search LiveJournal"><img src="livejournal.png"/></a>
+ <a href="javascript:void(0);" onclick="forIconSearch('http://s.maxthon.com/?q=','q','multisearch.png');hide();" title="Search Maxthon Multi-search"><img src="multisearch.png"/></a>
+ </div>
+ <!-- Autocomplete -->
+ <!-- Add unlimited suggestions using <option value=""/> -->
+ <datalist id="autocomplete">
+ <option value="Google"/>
+ <option value="Yahoo !"/>
+ <option value="Bing"/>
+ <option value="Yahoo Mail"/>
+ <option value="GMail"/>
+ <option value="Hotmail"/>
+ <option value="MSN"/>
+ <option value="News"/>
+ <option value="Facebook"/>
+ <option value="Twitter"/>
+ <option value="Google+"/>
+ <option value="G+"/>
+ <option value="Suggestions are fully customizable"/>
+ </datalist>
+ <!-- The "X" button -->
+ <input id="reset" name="reset" type="reset" value="" />
+ <!-- The submit button (search button) -->
+ <input id="submit" name="submit" type="submit" value="" />
+ </form>
+ <div class="appbaricon" onclick="window.location.reload()" id="reload" title="Reload"></div>
+ </div>
+ <iframe width="100%" height="81.5%" id="results" name="results" frameborder="0"></iframe>
+
+ <!-- CHARMS BAR CODE -->
+ <div id="charmsbar" onmouseover="doublevisibility('inline','charmsbar','datetime')" onmouseout="doublevisibility('none','charmsbar','datetime')" >
+ <img src="../../common/img/charmsbar/search.png" onclick="visibility('block','searchcharms')" onmouseover="this.src='../../common/img/charmsbar/search-hover.png'" onmouseout="this.src='../../common/img/charmsbar/search.png'"/><br/>
+ <img src="../../common/img/charmsbar/share.png" onclick="visibility('block','sharecharms')" onmouseover="this.src='../../common/img/charmsbar/share-hover.png'" onmouseout="this.src='../../common/img/charmsbar/share.png'"/><br/>
+ <a href="../../start/index.html"><img src="../../common/img/charmsbar/start.png" onmouseover="this.src='../../common/img/charmsbar/start-hover.png'" onmouseout="this.src='../../common/img/charmsbar/start.png'"/></a><br/>
+ <img src="../../common/img/charmsbar/devices.png" onmouseover="this.src='../../common/img/charmsbar/devices-hover.png'" onmouseout="this.src='../../common/img/charmsbar/devices.png'"/><br/>
+ <img src="../../common/img/charmsbar/settings.png" onclick="visibility('block','settingscharms')" onmouseover="this.src='../../common/img/charmsbar/settings-hover.png'" onmouseout="this.src='../../common/img/charmsbar/settings.png'"/><br/>
+ </div>
+ <div id="datetime">
+ <img src="../../common/img/charmsbar/network.png" id="iconnetwork" height="24px" width="24px"/>
+ <img src="../../common/img/charmsbar/battery.png" id="iconbattery"/>
+ <span id="ctime"></span>
+ <script>
+ function clock() {
+ var digital = new Date();
+ var hours = digital.getHours();
+ var minutes = digital.getMinutes();
+ var seconds = digital.getSeconds();
+ var amOrPm = "AM";
+ if (hours > 11) amOrPm = "PM";
+ if (hours > 12) hours = hours - 12;
+ if (hours == 0) hours = 12;
+ if (minutes <= 9) minutes = "0" + minutes;
+ if (seconds <= 9) seconds = "0" + seconds;
+ dispTime = hours + ":" + minutes ;
+ document.getElementById('ctime').innerHTML = dispTime;
+ setTimeout("clock()", 1000);
+ }
+ window.onload=clock;
+ </script>
+ <div id="date">
+ <script>
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+ </div>
+ </div>
+ <div id="startbutton" onmouseout="visibility('none','startbutton')">
+ <a href="../../start/index.html"><img src="../../common/img/charmsbar/startbutton.png"/></a>
+ </div>
+ <div id="hoverarea" onmouseover="doublevisibility('inline','charmsbar','datetime')" class="hotcorner"></div>
+ <div id="bottomhoverarea" onmouseover="doublevisibility('inline','charmsbar','datetime')" class="hotcorner"></div>
+ <div id="starthoverarea" onmouseover="visibility('inline','startbutton')" class="hotcorner"></div>
+</body>
+</html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/smartsearch/ixquick.png b/apps/smartsearch/ixquick.png
new file mode 100644
index 0000000..fcc3ef6
--- /dev/null
+++ b/apps/smartsearch/ixquick.png
Binary files differ
diff --git a/apps/smartsearch/livejournal.png b/apps/smartsearch/livejournal.png
new file mode 100644
index 0000000..ef151fe
--- /dev/null
+++ b/apps/smartsearch/livejournal.png
Binary files differ
diff --git a/apps/smartsearch/multisearch.png b/apps/smartsearch/multisearch.png
new file mode 100644
index 0000000..16a125b
--- /dev/null
+++ b/apps/smartsearch/multisearch.png
Binary files differ
diff --git a/apps/smartsearch/picasa.png b/apps/smartsearch/picasa.png
new file mode 100644
index 0000000..ff6dfc7
--- /dev/null
+++ b/apps/smartsearch/picasa.png
Binary files differ
diff --git a/apps/smartsearch/pinterest.png b/apps/smartsearch/pinterest.png
new file mode 100644
index 0000000..a2a7da5
--- /dev/null
+++ b/apps/smartsearch/pinterest.png
Binary files differ
diff --git a/apps/smartsearch/play.png b/apps/smartsearch/play.png
new file mode 100644
index 0000000..515425f
--- /dev/null
+++ b/apps/smartsearch/play.png
Binary files differ
diff --git a/apps/smartsearch/reddit.png b/apps/smartsearch/reddit.png
new file mode 100644
index 0000000..8390e20
--- /dev/null
+++ b/apps/smartsearch/reddit.png
Binary files differ
diff --git a/apps/smartsearch/reload-active.png b/apps/smartsearch/reload-active.png
new file mode 100644
index 0000000..3fcdd93
--- /dev/null
+++ b/apps/smartsearch/reload-active.png
Binary files differ
diff --git a/apps/smartsearch/reload.png b/apps/smartsearch/reload.png
new file mode 100644
index 0000000..5628067
--- /dev/null
+++ b/apps/smartsearch/reload.png
Binary files differ
diff --git a/apps/smartsearch/reset-big-black.png b/apps/smartsearch/reset-big-black.png
new file mode 100644
index 0000000..3c8ddfb
--- /dev/null
+++ b/apps/smartsearch/reset-big-black.png
Binary files differ
diff --git a/apps/smartsearch/reset-white.png b/apps/smartsearch/reset-white.png
new file mode 100644
index 0000000..7e033c5
--- /dev/null
+++ b/apps/smartsearch/reset-white.png
Binary files differ
diff --git a/apps/smartsearch/reset.png b/apps/smartsearch/reset.png
new file mode 100644
index 0000000..3c8ddfb
--- /dev/null
+++ b/apps/smartsearch/reset.png
Binary files differ
diff --git a/apps/smartsearch/scholar.png b/apps/smartsearch/scholar.png
new file mode 100644
index 0000000..9adf83c
--- /dev/null
+++ b/apps/smartsearch/scholar.png
Binary files differ
diff --git a/apps/smartsearch/search-active.png b/apps/smartsearch/search-active.png
new file mode 100644
index 0000000..126db09
--- /dev/null
+++ b/apps/smartsearch/search-active.png
Binary files differ
diff --git a/apps/smartsearch/search.png b/apps/smartsearch/search.png
new file mode 100644
index 0000000..cce1b49
--- /dev/null
+++ b/apps/smartsearch/search.png
Binary files differ
diff --git a/apps/smartsearch/splashscreen.png b/apps/smartsearch/splashscreen.png
new file mode 100644
index 0000000..ac97d29
--- /dev/null
+++ b/apps/smartsearch/splashscreen.png
Binary files differ
diff --git a/apps/smartsearch/style.css b/apps/smartsearch/style.css
new file mode 100644
index 0000000..99e75a3
--- /dev/null
+++ b/apps/smartsearch/style.css
@@ -0,0 +1,185 @@
+body {margin:0;padding:0;}
+::selection {
+ border:2px solid #CBE8F6;
+ background-color:#26A0DA;
+}
+::-moz-selection {
+ border:2px solid #CBE8F6;
+ opacity:0.4;
+ background-color:#26A0DA;
+}
+iframe {
+ width:100%;
+ height:100%;
+ position:absolute;
+ z-index:-1;
+}
+#appbar {
+ background:#111;
+ bottom:0;
+ position:fixed;
+ width:100%;
+ padding:10px 0;
+}
+.appbaricon {
+ width:32px;
+ height:32px;
+ background-size:cover;
+ display:inline-block;
+ border-radius:10000px;
+ margin:0 10px;
+ cursor:pointer;
+}
+.appbaricon:hover {
+ background-color:rgba(255,255,255,0.2);
+}
+.appbaricon:hover:active {
+ background-color:transparent !important;
+}
+#back {
+ background-image:url('back.png');
+}
+#back:active {
+ background-image:url('back-active.png');
+}
+#forward {
+ background-image:url('forward.png');
+}
+#forward:active {
+ background-image:url('forward-active.png');
+}
+#reload {
+ background-image:url('reload.png');
+}
+#reload:active {
+ background-image:url('reload-active.png');
+}
+#link {
+ background-image:url('link.png');
+}
+#link:active {
+ background-image:url('link-active.png');
+}
+#multisearchForm, #multisearchFormIcon {
+ font-family: Open Sans,Open Sans;
+ padding: 0px;
+ border:none;
+ display: inline-block;
+ width: auto;
+ height: 32px;
+ background-color: rgb(255, 255, 255);
+ transition-property: all;
+ transition-duration: 1s;
+ vertical-align:top;
+}
+#input {
+ border:none;
+ height:24px;
+ width:900px;
+ font: normal 11pt Segoe UI;
+ line-height:32px;
+}
+ul.ws_drop_down {
+ display:block;
+ float: left;
+
+}
+ul.ws_drop_down li img{
+ border: 0px;
+ vertical-align: middle;
+ padding: 1px
+}
+ul.ws_drop_down li {
+ display:block;
+ margin:0px 0px 0px 0px;
+ float:left;
+}
+ul.ws_drop_down a:hover ul, ul.ws_drop_down a:hover a:hover ul, ul.ws_drop_down a:hover a:hover a:hover ul {
+ display:block;
+}
+ul.ws_drop_down li a {
+ display:block;
+ vertical-align:middle;
+ text-decoration:none;
+ text-align:left;
+ font-size: 13px;
+ line-height: 28px;
+ padding: 5px 3px 6px 10px;
+ margin: 0px;
+ color: #666666;
+ background-image: url('dropdown.png');
+ background-repeat: no-repeat;
+ background-position: 75px center;
+ width: 80px;
+ outline: none;
+}
+#multisearchFormIcon ul.ws_drop_down li a {
+ background-position: 35px center;
+}
+ul.ws_drop_downm li a:hover, ul.ws_drop_downm li a {
+ color: #000;
+}
+ul.ws_drop_down ul {
+ position: absolute;
+ left:-1px;
+ top:100%;
+ background-color:#fff;
+ margin: -2px 0px 0px 0px;
+ border-bottom: 1px solid #3366CC;
+ border-left: 1px solid #3366CC;
+ border-top: 1px solid #3366CC;
+}
+ul.ws_drop_down, ul.ws_drop_down ul {
+ margin:0px;
+ list-style:none;
+ padding:0px;
+}
+ul.ws_drop_down a:active, ul.ws_drop_down a:focus {
+ outline-style:none;
+}
+ul.ws_drop_down ul li {
+ float: left;
+ margin: 0px 0px 0px -1px;
+}
+ul.ws_drop_down ul a {
+ white-space:nowrap;
+ text-align:left;
+ border-right: 1px solid #3366CC;
+ border-left: 1px solid #3366CC;
+
+ width: 200px;
+ background-image: none;
+ padding: 3px 0px 3px 10px;
+}
+#reset {
+ height:24px;
+ width:24px;
+ vertical-align:middle;
+ margin-right:10px;
+ background-color:#FFFFFF;
+ background-image:url('reset.png');
+ background-repeat:no-repeat;
+ background-position:center;
+ border:none;
+}
+#reset:hover {
+ background-color:#DFDFDF;
+}
+#reset:active {
+ background-color:#000;
+ background-image:url('reset-white.png');
+}
+#submit {
+ vertical-align:top;
+ background: url('search.png') #111 center no-repeat;
+ height:34px;
+ width:50px;
+ border:1px solid #111;
+ outline:1px solid #111;
+}
+#submit:active {
+ background: url('search-active.png') #111 center no-repeat;
+}
+#engines img {
+ margin:7px 10px 0px 10px;
+} \ No newline at end of file
diff --git a/apps/smartsearch/translate.png b/apps/smartsearch/translate.png
new file mode 100644
index 0000000..bdd5588
--- /dev/null
+++ b/apps/smartsearch/translate.png
Binary files differ
diff --git a/apps/smartsearch/twitter.png b/apps/smartsearch/twitter.png
new file mode 100644
index 0000000..3e94e0e
--- /dev/null
+++ b/apps/smartsearch/twitter.png
Binary files differ
diff --git a/apps/smartsearch/vimeo.png b/apps/smartsearch/vimeo.png
new file mode 100644
index 0000000..4fc5000
--- /dev/null
+++ b/apps/smartsearch/vimeo.png
Binary files differ
diff --git a/apps/smartsearch/wikipedia.png b/apps/smartsearch/wikipedia.png
new file mode 100644
index 0000000..4b3f20e
--- /dev/null
+++ b/apps/smartsearch/wikipedia.png
Binary files differ
diff --git a/apps/smartsearch/yahoo.png b/apps/smartsearch/yahoo.png
new file mode 100644
index 0000000..d7761e5
--- /dev/null
+++ b/apps/smartsearch/yahoo.png
Binary files differ
diff --git a/apps/smartsearch/yimages.png b/apps/smartsearch/yimages.png
new file mode 100644
index 0000000..166f740
--- /dev/null
+++ b/apps/smartsearch/yimages.png
Binary files differ
diff --git a/apps/smartsearch/youtube.png b/apps/smartsearch/youtube.png
new file mode 100644
index 0000000..98a4b76
--- /dev/null
+++ b/apps/smartsearch/youtube.png
Binary files differ
diff --git a/apps/youtube/css/appbase.css b/apps/youtube/css/appbase.css
new file mode 100644
index 0000000..ad45a26
--- /dev/null
+++ b/apps/youtube/css/appbase.css
@@ -0,0 +1,219 @@
+/* CSS Reset + Font */
+body {
+ font-family:Segoe UI;
+ margin:0px;
+ padding:0px;
+}
+img, a {
+ border:none;
+ outline:none;
+}
+/* Splashscreen */
+#splashscreen {
+ position:fixed;
+ top:0;
+ width:100%;
+ height:100%;
+ color:#1E1E1E;
+ background-image:url('../splashscreen.png');
+ background-position:center;
+ background-color:#1E1E1E;
+ background-repeat:no-repeat;
+ animation:splash 4s;
+ -ms-animation:splash 4s;
+ -webkit-animation:splash 4s;
+ -o-animation:splash 4s;
+ opacity:0;
+ z-index:-1;
+}
+@keyframes splash {
+ from {
+ z-index:6;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-webkit-keyframes splash {
+ from {
+ z-index:6;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-ms-keyframes splash {
+ from {
+ z-index:6;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-o-keyframes splash {
+ from {
+ z-index:2;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+/* Charms */
+/* Hover areas */
+#hoverarea {
+ position:fixed;
+ top:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#bottomhoverarea {
+ position:fixed;
+ bottom:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#starthoverarea {
+ position:fixed;
+ bottom:0px;
+ left:0px;
+ width:15px;
+ height:15px;
+}
+/* Charms bar */
+#charmsbar {
+ display:none;
+ background-color:#111111;
+ position:fixed;
+ padding:5% 0;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 86px;
+}
+/* Start button */
+#startbutton {
+ display:none;
+ position:fixed;
+ left:0px;
+ bottom:0px;
+ margin:0;
+ padding:0;
+}
+/* Date and time on charms */
+#datetime {
+ display:none;
+ position:fixed;
+ left:50px;
+ bottom:50px;
+ width:490px;
+ height:139px;
+ background-color: rgba(17,17,17,0.96);
+ color:#FFFFFF;
+}
+#ctime {
+ position:absolute;
+ left:70px;
+ bottom:19px;
+ font-family: Segoe UI Light;
+ font-size: 64pt;
+}
+#date {
+ margin-top:20px;
+ margin-right:20px;
+ float:right;
+ font-size:24pt;
+}
+#iconnetwork {
+ position:absolute;
+ top:35px;
+ left:25px;
+}
+#iconbattery {
+ position:absolute;
+ bottom:35px;
+ left:32px;
+}
+
+/* Text styling on Settings, share charms */
+.charms span {
+ line-height:40px;
+}
+.ch1 {
+ font-family:Segoe UI Semilight;
+ font-size:28px;
+ margin-bottom:25px;
+}
+.ch2 {
+ font-size:11pt;
+ margin-bottom:25px;
+}
+.ch2d {
+ font-size:11pt;
+ color:#A8A8A8;
+ margin-bottom:25px;
+}
+.sharing {
+ font-size:14pt;
+}
+/* Close button on settings, share charms */
+.closecharms {
+ float:right;
+ height:32px !important;
+ width:32px !important;
+ box-shadow:none !important;
+ background-image: url(../img/charmsbar/close.png);
+}
+/*.closecharms:hover {
+ background-image: url(../img/charmsbar/close-hover.png);
+}*/
+.closecharms:active {
+ background-image: url(../img/charmsbar/close-active.png);
+}
+/* Charms */
+.charms {
+ z-index:2;
+ background-color:#001E4E;
+ padding : 40px;
+ position:fixed;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 345px;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ display:none;
+ color:#FFF;
+}
+/* Settings charms */
+#settingscharms {
+
+} \ No newline at end of file
diff --git a/apps/youtube/css/style.css b/apps/youtube/css/style.css
new file mode 100644
index 0000000..6f70a3c
--- /dev/null
+++ b/apps/youtube/css/style.css
@@ -0,0 +1,120 @@
+body {
+ background-image:url('img/bg.png');
+ background-color:rgb(235, 235, 235);
+ color:#000000;
+ font-family:Segoe UI;
+ margin:0px;
+ padding:0px;
+}
+
+.search_input {
+ font-family: Segoe UI;
+ position: relative;
+ overflow: hidden;
+ height: 35px;
+ margin-left:15%;
+ margin-top:15px;
+ padding:8px;
+ width:70%;
+ font-size: 14px;
+ line-height: 30px;
+ background-color: rgb(255, 255, 255);
+ -moz-box-sizing: border-box;
+ border-radius:3px;
+ transition: border-color 0.2s ease 0s;
+ border: 1px solid rgb(204, 204, 204);
+ box-shadow: 0px 1px 2px rgb(238, 238, 238) inset;
+ outline: medium none;
+ display:inline-block;
+ transition:all 1s;
+}
+.search_input:hover {
+ border-color:rgb(185, 185, 185);
+ box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3) inset;
+}
+.search_input:focus {
+ border-color:rgb(28, 98, 185);
+ box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3) inset;
+}
+#hugelogo {
+ margin-top:70px;
+ margin-bottom: 60px;
+ display:block;
+ margin-left:auto;
+ margin-right:auto;
+ width:400px;
+}
+#logo {
+ display: none;
+ position:absolute;
+ margin:10px;
+}
+#input_box {
+ text-align:left;
+}
+#viewer {
+ display:none;
+ position:absolute;
+ background-color:#FFF;
+ bottom:0px;
+ border:none;
+}
+.result {
+ background-color:#000;
+ margin-top:25px;
+ min-height:218px;
+ width:340px;
+ border:solid 10px #ffffff;
+ float:left;
+ margin-left:10px;
+ overflow:hidden;
+ overflow:auto;
+ border-radius:3px;
+}
+.result:hover {
+ box-shadow:0px 1px 2px #CCC;
+}
+.result a {
+ display:inline-block;
+ width:340px;
+ color:#36C;
+ text-decoration:none;
+}
+.result a:hover {
+ text-decoration:underline;
+}
+#video {
+ background-color:#FFFFFF;
+ margin-left:auto;
+ margin-right: auto;
+ width:90%;
+}
+#close {
+ float:right;
+ display:none;
+ margin:1.5%;
+}
+
+#title {
+ background-color:#fff;
+ font-size:14px;
+ text-align:left;
+ padding-bottom:8px;
+ height:30px;
+ overflow:hidden;
+}
+#no {
+ margin-top:50px;
+ padding:20px;
+ background-color:#F23838;
+ font-size:25px;
+ font-family: Segoe UI Light;
+ color:#FFF;
+ border:1px solid #C40000;
+ border-radius:3px;
+}
+#tipbox {
+ font-size:10pt;
+ width:600px;
+ margin-top:40px;
+} \ No newline at end of file
diff --git a/apps/youtube/favicon.ico b/apps/youtube/favicon.ico
new file mode 100644
index 0000000..977887d
--- /dev/null
+++ b/apps/youtube/favicon.ico
Binary files differ
diff --git a/apps/youtube/img/bg.png b/apps/youtube/img/bg.png
new file mode 100644
index 0000000..8eee515
--- /dev/null
+++ b/apps/youtube/img/bg.png
Binary files differ
diff --git a/apps/youtube/img/close.png b/apps/youtube/img/close.png
new file mode 100644
index 0000000..3ede172
--- /dev/null
+++ b/apps/youtube/img/close.png
Binary files differ
diff --git a/apps/youtube/img/hugelogo.png b/apps/youtube/img/hugelogo.png
new file mode 100644
index 0000000..6acbd1e
--- /dev/null
+++ b/apps/youtube/img/hugelogo.png
Binary files differ
diff --git a/apps/youtube/img/smalllogo.png b/apps/youtube/img/smalllogo.png
new file mode 100644
index 0000000..be16752
--- /dev/null
+++ b/apps/youtube/img/smalllogo.png
Binary files differ
diff --git a/apps/youtube/index.html b/apps/youtube/index.html
new file mode 100644
index 0000000..3caa19d
--- /dev/null
+++ b/apps/youtube/index.html
@@ -0,0 +1,131 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+ <title>YouTube</title>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
+ <!--Title of the app -->
+ <title></title>
+
+ <!--Stylesheet that styles the charms bar and the startbutton -->
+ <link rel="stylesheet" href="css/appbase.css"/>
+ <link rel="shortcut icon" href="favicon.ico"/>
+
+ <!--Script that powers the charms bar-->
+ <script>
+ function visibility(visibility , target) {
+ document.getElementById(target).style.display=visibility;
+ }
+ </script>
+ <script>
+ function doublevisibility(visibility , target , target2) {
+ document.getElementById(target).style.display=visibility;
+ document.getElementById(target2).style.display=visibility;
+ }
+ </script>
+ <link rel="stylesheet" href="css/style.css"/>
+ <link rel="stylesheet" href="css/appbase.css"/>
+ <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
+ <script src="js/youtubeapi.js"></script>
+
+ <script>
+ $(document).ready(function() {
+ $(".search_input").keyup(function() {
+ $("#hugelogo").fadeOut();
+ $("#viewer").fadeOut();
+ $("#close").fadeOut();
+ $("#tipbox").fadeOut();
+ $("#logo").fadeIn();
+ $("#video").fadeIn();
+ $("viewer").src='';
+ });
+ $("#close").click(function() {
+ $("#close").fadeOut();
+ $("#viewer").fadeOut();
+ $("#video").fadeIn();
+ $("viewer").src='';
+ });
+ });
+ </script>
+ <script>
+ function showframe() {
+ document.getElementById('viewer').style.display='block';
+ document.getElementById('close').style.display='block';
+ document.getElementById('video').style.display='none';
+ }
+ </script>
+</head>
+<body>
+<div id="splashscreen"></div>
+<div align="center">
+
+ <div id="input_box">
+ <img src="img/hugelogo.png" width="400px" height="161.5px" id="hugelogo"/>
+ <img src="img/smalllogo.png" id="logo"/>
+ <input type="text" class='search_input' placeholder="Search"/>
+ <img src="img/close.png" id="close"/>
+ </div>
+ <div id="tipbox">
+ Welcome to the YouTube App! To start a search, type in the search box. The results should automatically appear. To view a video, click on the video title. To close the video, click on the close button located on the top-right corner. Enjoy!
+ </div>
+
+ <iframe src="" id="viewer" name="viewer" height="90%" width="100%" frameborder="0">Your browser doesn't support iframes.</iframe>
+ <div id="video">
+
+ </div>
+
+</div>
+ <!-- CHARMS BAR CODE -->
+<div id="charmsbar" onmouseover="doublevisibility('inline','charmsbar','datetime')" onmouseout="doublevisibility('none','charmsbar','datetime')" >
+ <img src="../../common/img/charmsbar/search.png" onclick="visibility('block','searchcharms')" onmouseover="this.src='../../common/img/charmsbar/search-hover.png'" onmouseout="this.src='../../common/img/charmsbar/search.png'"/><br/>
+ <img src="../../common/img/charmsbar/share.png" onclick="visibility('block','sharecharms')" onmouseover="this.src='../../common/img/charmsbar/share-hover.png'" onmouseout="this.src='../../common/img/charmsbar/share.png'"/><br/>
+ <a href="../../start/index.html"><img src="../../common/img/charmsbar/start.png" onmouseover="this.src='../../common/img/charmsbar/start-hover.png'" onmouseout="this.src='../../common/img/charmsbar/start.png'"/></a><br/>
+ <img src="../../common/img/charmsbar/devices.png" onmouseover="this.src='../../common/img/charmsbar/devices-hover.png'" onmouseout="this.src='../../common/img/charmsbar/devices.png'"/><br/>
+ <img src="../../common/img/charmsbar/settings.png" onclick="visibility('block','settingscharms')" onmouseover="this.src='../../common/img/charmsbar/settings-hover.png'" onmouseout="this.src='../../common/img/charmsbar/settings.png'"/><br/>
+ </div>
+ <div id="datetime">
+ <img src="../../common/img/charmsbar/network.png" id="iconnetwork" height="24px" width="24px"/>
+ <img src="../../common/img/charmsbar/battery.png" id="iconbattery"/>
+ <span id="ctime"></span>
+ <script>
+ function clock() {
+ var digital = new Date();
+ var hours = digital.getHours();
+ var minutes = digital.getMinutes();
+ var seconds = digital.getSeconds();
+ var amOrPm = "AM";
+ if (hours > 11) amOrPm = "PM";
+ if (hours > 12) hours = hours - 12;
+ if (hours == 0) hours = 12;
+ if (minutes <= 9) minutes = "0" + minutes;
+ if (seconds <= 9) seconds = "0" + seconds;
+ dispTime = hours + ":" + minutes ;
+ document.getElementById('ctime').innerHTML = dispTime;
+ setTimeout("clock()", 1000);
+ }
+ window.onload=clock;
+ </script>
+ <div id="date">
+ <script>
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+ </div>
+ </div>
+ <div id="startbutton" onmouseout="visibility('none','startbutton')">
+ <a href="../../start/index.html"><img src="../../common/img/charmsbar/startbutton.png"/></a>
+ </div>
+ <div id="hoverarea" onmouseover="doublevisibility('inline','charmsbar','datetime')" class="hotcorner"></div>
+ <div id="bottomhoverarea" onmouseover="doublevisibility('inline','charmsbar','datetime')" class="hotcorner"></div>
+ <div id="starthoverarea" onmouseover="visibility('inline','startbutton')" class="hotcorner"></div>
+
+</body>
+</html>
+
diff --git a/apps/youtube/js/youtubeapi.js b/apps/youtube/js/youtubeapi.js
new file mode 100644
index 0000000..e2c63e4
--- /dev/null
+++ b/apps/youtube/js/youtubeapi.js
@@ -0,0 +1,51 @@
+$(document).ready(function()
+ {
+ $(".search_input").focus();
+ $(".search_input").keyup(function()
+ {
+
+ $("#video").html('');
+ var search_input = $(this).val();
+ var keyword= encodeURIComponent(search_input);
+
+ var yt_url='http://gdata.youtube.com/feeds/api/videos?q='+keyword+'&format=5&max-results=12&v=2&alt=jsonc';
+
+
+ $.ajax({
+ type: "GET",
+ url: yt_url,
+ dataType:"jsonp",
+ success: function(response)
+ {
+ if(response.data.items)
+ {
+
+
+
+ $.each(response.data.items, function(i,data)
+ {
+ var video_id=data.id;
+ var video_title=data.title;
+ var video_viewCount=data.viewCount;
+
+
+
+ var video_frame="<img src='http://i.ytimg.com/vi/"+video_id+"/mqdefault.jpg'/>";
+ var final="<div class='result'><div>"+video_frame+"</div><a href='http://www.youtube.com/embed/"+video_id+"' target='viewer' id='title' onclick='showframe()' title='"+video_title+"'>"+video_title+"</a></div>";
+
+ $("#video").append(final);
+
+ });
+
+
+ }
+ else
+ {
+ $("#video").html("<div id='no'>No video found.</div>");
+ }
+ }
+
+ });
+ });
+ });
+ \ No newline at end of file
diff --git a/apps/youtube/splashscreen.png b/apps/youtube/splashscreen.png
new file mode 100644
index 0000000..83a9209
--- /dev/null
+++ b/apps/youtube/splashscreen.png
Binary files differ
diff --git a/common/img/battery.png b/common/img/battery.png
new file mode 100644
index 0000000..07b1b4d
--- /dev/null
+++ b/common/img/battery.png
Binary files differ
diff --git a/common/img/charmsbar/battery.png b/common/img/charmsbar/battery.png
new file mode 100644
index 0000000..07b1b4d
--- /dev/null
+++ b/common/img/charmsbar/battery.png
Binary files differ
diff --git a/common/img/charmsbar/devices-hover.png b/common/img/charmsbar/devices-hover.png
new file mode 100644
index 0000000..ad3fa8e
--- /dev/null
+++ b/common/img/charmsbar/devices-hover.png
Binary files differ
diff --git a/common/img/charmsbar/devices.png b/common/img/charmsbar/devices.png
new file mode 100644
index 0000000..1a81a90
--- /dev/null
+++ b/common/img/charmsbar/devices.png
Binary files differ
diff --git a/common/img/charmsbar/network.png b/common/img/charmsbar/network.png
new file mode 100644
index 0000000..5dc5ef7
--- /dev/null
+++ b/common/img/charmsbar/network.png
Binary files differ
diff --git a/common/img/charmsbar/search-hover.png b/common/img/charmsbar/search-hover.png
new file mode 100644
index 0000000..16a48f9
--- /dev/null
+++ b/common/img/charmsbar/search-hover.png
Binary files differ
diff --git a/common/img/charmsbar/search.png b/common/img/charmsbar/search.png
new file mode 100644
index 0000000..d5cea8e
--- /dev/null
+++ b/common/img/charmsbar/search.png
Binary files differ
diff --git a/common/img/charmsbar/settings-hover.png b/common/img/charmsbar/settings-hover.png
new file mode 100644
index 0000000..c8f9820
--- /dev/null
+++ b/common/img/charmsbar/settings-hover.png
Binary files differ
diff --git a/common/img/charmsbar/settings.png b/common/img/charmsbar/settings.png
new file mode 100644
index 0000000..b63fbc3
--- /dev/null
+++ b/common/img/charmsbar/settings.png
Binary files differ
diff --git a/common/img/charmsbar/share-hover.png b/common/img/charmsbar/share-hover.png
new file mode 100644
index 0000000..bd3a423
--- /dev/null
+++ b/common/img/charmsbar/share-hover.png
Binary files differ
diff --git a/common/img/charmsbar/share.png b/common/img/charmsbar/share.png
new file mode 100644
index 0000000..b743bf0
--- /dev/null
+++ b/common/img/charmsbar/share.png
Binary files differ
diff --git a/common/img/charmsbar/start-hover.png b/common/img/charmsbar/start-hover.png
new file mode 100644
index 0000000..6cc3144
--- /dev/null
+++ b/common/img/charmsbar/start-hover.png
Binary files differ
diff --git a/common/img/charmsbar/start.png b/common/img/charmsbar/start.png
new file mode 100644
index 0000000..6cf722c
--- /dev/null
+++ b/common/img/charmsbar/start.png
Binary files differ
diff --git a/common/img/charmsbar/startbutton.png b/common/img/charmsbar/startbutton.png
new file mode 100644
index 0000000..db9726d
--- /dev/null
+++ b/common/img/charmsbar/startbutton.png
Binary files differ
diff --git a/common/img/network.png b/common/img/network.png
new file mode 100644
index 0000000..5dc5ef7
--- /dev/null
+++ b/common/img/network.png
Binary files differ
diff --git a/common/img/start.png b/common/img/start.png
new file mode 100644
index 0000000..db9726d
--- /dev/null
+++ b/common/img/start.png
Binary files differ
diff --git a/desktop/_jQD.tmproj b/desktop/_jQD.tmproj
new file mode 100644
index 0000000..fc5380e
--- /dev/null
+++ b/desktop/_jQD.tmproj
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>currentDocument</key>
+ <string>assets/javascripts/jquery.desktop.js</string>
+ <key>documents</key>
+ <array>
+ <dict>
+ <key>expanded</key>
+ <true/>
+ <key>name</key>
+ <string>jquery-desktop</string>
+ <key>regexFolderFilter</key>
+ <string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
+ <key>sourceDirectory</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>fileHierarchyDrawerWidth</key>
+ <integer>200</integer>
+ <key>metaData</key>
+ <dict>
+ <key>assets/javascripts/jquery.desktop.js</key>
+ <dict>
+ <key>caret</key>
+ <dict>
+ <key>column</key>
+ <integer>0</integer>
+ <key>line</key>
+ <integer>167</integer>
+ </dict>
+ <key>firstVisibleColumn</key>
+ <integer>0</integer>
+ <key>firstVisibleLine</key>
+ <integer>148</integer>
+ </dict>
+ </dict>
+ <key>openDocuments</key>
+ <array>
+ <string>assets/javascripts/jquery.desktop.js</string>
+ </array>
+ <key>showFileHierarchyDrawer</key>
+ <true/>
+ <key>windowFrame</key>
+ <string>{{1650, 0}, {1470, 1050}}</string>
+</dict>
+</plist>
diff --git a/desktop/assets/images/gui/back-active.png b/desktop/assets/images/gui/back-active.png
new file mode 100644
index 0000000..89183ab
--- /dev/null
+++ b/desktop/assets/images/gui/back-active.png
Binary files differ
diff --git a/desktop/assets/images/gui/back-hover.png b/desktop/assets/images/gui/back-hover.png
new file mode 100644
index 0000000..b27e04c
--- /dev/null
+++ b/desktop/assets/images/gui/back-hover.png
Binary files differ
diff --git a/desktop/assets/images/gui/back.png b/desktop/assets/images/gui/back.png
new file mode 100644
index 0000000..2b59e9b
--- /dev/null
+++ b/desktop/assets/images/gui/back.png
Binary files differ
diff --git a/desktop/assets/images/gui/bar_bottom.png b/desktop/assets/images/gui/bar_bottom.png
new file mode 100644
index 0000000..b93327e
--- /dev/null
+++ b/desktop/assets/images/gui/bar_bottom.png
Binary files differ
diff --git a/desktop/assets/images/gui/bar_top-active.png b/desktop/assets/images/gui/bar_top-active.png
new file mode 100644
index 0000000..da9d59c
--- /dev/null
+++ b/desktop/assets/images/gui/bar_top-active.png
Binary files differ
diff --git a/desktop/assets/images/gui/bar_top-hover.png b/desktop/assets/images/gui/bar_top-hover.png
new file mode 100644
index 0000000..d65e308
--- /dev/null
+++ b/desktop/assets/images/gui/bar_top-hover.png
Binary files differ
diff --git a/desktop/assets/images/gui/bar_top.png b/desktop/assets/images/gui/bar_top.png
new file mode 100644
index 0000000..1990982
--- /dev/null
+++ b/desktop/assets/images/gui/bar_top.png
Binary files differ
diff --git a/desktop/assets/images/gui/bar_top_link.png b/desktop/assets/images/gui/bar_top_link.png
new file mode 100644
index 0000000..b48478e
--- /dev/null
+++ b/desktop/assets/images/gui/bar_top_link.png
Binary files differ
diff --git a/desktop/assets/images/gui/dropdown-active.png b/desktop/assets/images/gui/dropdown-active.png
new file mode 100644
index 0000000..8d5bd53
--- /dev/null
+++ b/desktop/assets/images/gui/dropdown-active.png
Binary files differ
diff --git a/desktop/assets/images/gui/dropdown-hover.png b/desktop/assets/images/gui/dropdown-hover.png
new file mode 100644
index 0000000..7493694
--- /dev/null
+++ b/desktop/assets/images/gui/dropdown-hover.png
Binary files differ
diff --git a/desktop/assets/images/gui/dropdown.png b/desktop/assets/images/gui/dropdown.png
new file mode 100644
index 0000000..1981e70
--- /dev/null
+++ b/desktop/assets/images/gui/dropdown.png
Binary files differ
diff --git a/desktop/assets/images/gui/forward-active.png b/desktop/assets/images/gui/forward-active.png
new file mode 100644
index 0000000..ebff17d
--- /dev/null
+++ b/desktop/assets/images/gui/forward-active.png
Binary files differ
diff --git a/desktop/assets/images/gui/forward-hover.png b/desktop/assets/images/gui/forward-hover.png
new file mode 100644
index 0000000..8e8fc39
--- /dev/null
+++ b/desktop/assets/images/gui/forward-hover.png
Binary files differ
diff --git a/desktop/assets/images/gui/forward.png b/desktop/assets/images/gui/forward.png
new file mode 100644
index 0000000..b3d9b32
--- /dev/null
+++ b/desktop/assets/images/gui/forward.png
Binary files differ
diff --git a/desktop/assets/images/gui/glass/window-close-active.png b/desktop/assets/images/gui/glass/window-close-active.png
new file mode 100644
index 0000000..61e071c
--- /dev/null
+++ b/desktop/assets/images/gui/glass/window-close-active.png
Binary files differ
diff --git a/desktop/assets/images/gui/glass/window-close-hover.png b/desktop/assets/images/gui/glass/window-close-hover.png
new file mode 100644
index 0000000..bbf13b3
--- /dev/null
+++ b/desktop/assets/images/gui/glass/window-close-hover.png
Binary files differ
diff --git a/desktop/assets/images/gui/glass/window-close.png b/desktop/assets/images/gui/glass/window-close.png
new file mode 100644
index 0000000..58b7645
--- /dev/null
+++ b/desktop/assets/images/gui/glass/window-close.png
Binary files differ
diff --git a/desktop/assets/images/gui/glass/window-maximize-active.png b/desktop/assets/images/gui/glass/window-maximize-active.png
new file mode 100644
index 0000000..7b7b42a
--- /dev/null
+++ b/desktop/assets/images/gui/glass/window-maximize-active.png
Binary files differ
diff --git a/desktop/assets/images/gui/glass/window-maximize-hover.png b/desktop/assets/images/gui/glass/window-maximize-hover.png
new file mode 100644
index 0000000..5109dfb
--- /dev/null
+++ b/desktop/assets/images/gui/glass/window-maximize-hover.png
Binary files differ
diff --git a/desktop/assets/images/gui/glass/window-maximize.png b/desktop/assets/images/gui/glass/window-maximize.png
new file mode 100644
index 0000000..bcfb714
--- /dev/null
+++ b/desktop/assets/images/gui/glass/window-maximize.png
Binary files differ
diff --git a/desktop/assets/images/gui/glass/window-minimize-active.png b/desktop/assets/images/gui/glass/window-minimize-active.png
new file mode 100644
index 0000000..51a8623
--- /dev/null
+++ b/desktop/assets/images/gui/glass/window-minimize-active.png
Binary files differ
diff --git a/desktop/assets/images/gui/glass/window-minimize-hover.png b/desktop/assets/images/gui/glass/window-minimize-hover.png
new file mode 100644
index 0000000..3ff4cef
--- /dev/null
+++ b/desktop/assets/images/gui/glass/window-minimize-hover.png
Binary files differ
diff --git a/desktop/assets/images/gui/glass/window-minimize.png b/desktop/assets/images/gui/glass/window-minimize.png
new file mode 100644
index 0000000..bac324a
--- /dev/null
+++ b/desktop/assets/images/gui/glass/window-minimize.png
Binary files differ
diff --git a/desktop/assets/images/gui/go.png b/desktop/assets/images/gui/go.png
new file mode 100644
index 0000000..1343a81
--- /dev/null
+++ b/desktop/assets/images/gui/go.png
Binary files differ
diff --git a/desktop/assets/images/gui/reload.png b/desktop/assets/images/gui/reload.png
new file mode 100644
index 0000000..d1fcea1
--- /dev/null
+++ b/desktop/assets/images/gui/reload.png
Binary files differ
diff --git a/desktop/assets/images/gui/search.png b/desktop/assets/images/gui/search.png
new file mode 100644
index 0000000..bfc9979
--- /dev/null
+++ b/desktop/assets/images/gui/search.png
Binary files differ
diff --git a/desktop/assets/images/gui/trans_black.png b/desktop/assets/images/gui/trans_black.png
new file mode 100644
index 0000000..43af3d3
--- /dev/null
+++ b/desktop/assets/images/gui/trans_black.png
Binary files differ
diff --git a/desktop/assets/images/gui/trans_white.png b/desktop/assets/images/gui/trans_white.png
new file mode 100644
index 0000000..fe464ac
--- /dev/null
+++ b/desktop/assets/images/gui/trans_white.png
Binary files differ
diff --git a/desktop/assets/images/gui/up.png b/desktop/assets/images/gui/up.png
new file mode 100644
index 0000000..03f8a89
--- /dev/null
+++ b/desktop/assets/images/gui/up.png
Binary files differ
diff --git a/desktop/assets/images/gui/window-close-active.png b/desktop/assets/images/gui/window-close-active.png
new file mode 100644
index 0000000..0af8dde
--- /dev/null
+++ b/desktop/assets/images/gui/window-close-active.png
Binary files differ
diff --git a/desktop/assets/images/gui/window-close-hover.gif b/desktop/assets/images/gui/window-close-hover.gif
new file mode 100644
index 0000000..e2bb3fa
--- /dev/null
+++ b/desktop/assets/images/gui/window-close-hover.gif
Binary files differ
diff --git a/desktop/assets/images/gui/window-close-hover.png b/desktop/assets/images/gui/window-close-hover.png
new file mode 100644
index 0000000..e29444a
--- /dev/null
+++ b/desktop/assets/images/gui/window-close-hover.png
Binary files differ
diff --git a/desktop/assets/images/gui/window-close.gif b/desktop/assets/images/gui/window-close.gif
new file mode 100644
index 0000000..6031552
--- /dev/null
+++ b/desktop/assets/images/gui/window-close.gif
Binary files differ
diff --git a/desktop/assets/images/gui/window-close.png b/desktop/assets/images/gui/window-close.png
new file mode 100644
index 0000000..a4e2e93
--- /dev/null
+++ b/desktop/assets/images/gui/window-close.png
Binary files differ
diff --git a/desktop/assets/images/gui/window-maximize-hover.gif b/desktop/assets/images/gui/window-maximize-hover.gif
new file mode 100644
index 0000000..344e7f4
--- /dev/null
+++ b/desktop/assets/images/gui/window-maximize-hover.gif
Binary files differ
diff --git a/desktop/assets/images/gui/window-maximize-hover.png b/desktop/assets/images/gui/window-maximize-hover.png
new file mode 100644
index 0000000..107ef76
--- /dev/null
+++ b/desktop/assets/images/gui/window-maximize-hover.png
Binary files differ
diff --git a/desktop/assets/images/gui/window-maximize.gif b/desktop/assets/images/gui/window-maximize.gif
new file mode 100644
index 0000000..f892441
--- /dev/null
+++ b/desktop/assets/images/gui/window-maximize.gif
Binary files differ
diff --git a/desktop/assets/images/gui/window-maximize.png b/desktop/assets/images/gui/window-maximize.png
new file mode 100644
index 0000000..1c6551d
--- /dev/null
+++ b/desktop/assets/images/gui/window-maximize.png
Binary files differ
diff --git a/desktop/assets/images/gui/window-minimize-hover.gif b/desktop/assets/images/gui/window-minimize-hover.gif
new file mode 100644
index 0000000..5d1f2f9
--- /dev/null
+++ b/desktop/assets/images/gui/window-minimize-hover.gif
Binary files differ
diff --git a/desktop/assets/images/gui/window-minimize-hover.png b/desktop/assets/images/gui/window-minimize-hover.png
new file mode 100644
index 0000000..3b26d7b
--- /dev/null
+++ b/desktop/assets/images/gui/window-minimize-hover.png
Binary files differ
diff --git a/desktop/assets/images/gui/window-minimize.gif b/desktop/assets/images/gui/window-minimize.gif
new file mode 100644
index 0000000..b7ec17b
--- /dev/null
+++ b/desktop/assets/images/gui/window-minimize.gif
Binary files differ
diff --git a/desktop/assets/images/gui/window-minimize.png b/desktop/assets/images/gui/window-minimize.png
new file mode 100644
index 0000000..67826dd
--- /dev/null
+++ b/desktop/assets/images/gui/window-minimize.png
Binary files differ
diff --git a/desktop/assets/images/gui/window_content.gif b/desktop/assets/images/gui/window_content.gif
new file mode 100644
index 0000000..daff5af
--- /dev/null
+++ b/desktop/assets/images/gui/window_content.gif
Binary files differ
diff --git a/desktop/assets/images/gui/window_corner.gif b/desktop/assets/images/gui/window_corner.gif
new file mode 100644
index 0000000..bc8ce33
--- /dev/null
+++ b/desktop/assets/images/gui/window_corner.gif
Binary files differ
diff --git a/desktop/assets/images/gui/windows_top.PNG b/desktop/assets/images/gui/windows_top.PNG
new file mode 100644
index 0000000..635d4e7
--- /dev/null
+++ b/desktop/assets/images/gui/windows_top.PNG
Binary files differ
diff --git a/desktop/assets/images/icons/icon_16_computer.png b/desktop/assets/images/icons/icon_16_computer.png
new file mode 100644
index 0000000..22c139a
--- /dev/null
+++ b/desktop/assets/images/icons/icon_16_computer.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_16_disc.png b/desktop/assets/images/icons/icon_16_disc.png
new file mode 100644
index 0000000..7f14a70
--- /dev/null
+++ b/desktop/assets/images/icons/icon_16_disc.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_16_documents.png b/desktop/assets/images/icons/icon_16_documents.png
new file mode 100644
index 0000000..5c84902
--- /dev/null
+++ b/desktop/assets/images/icons/icon_16_documents.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_16_drive.png b/desktop/assets/images/icons/icon_16_drive.png
new file mode 100644
index 0000000..cfe7da9
--- /dev/null
+++ b/desktop/assets/images/icons/icon_16_drive.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_16_folder.png b/desktop/assets/images/icons/icon_16_folder.png
new file mode 100644
index 0000000..2ce52b7
--- /dev/null
+++ b/desktop/assets/images/icons/icon_16_folder.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_16_folder_home.png b/desktop/assets/images/icons/icon_16_folder_home.png
new file mode 100644
index 0000000..7b9110d
--- /dev/null
+++ b/desktop/assets/images/icons/icon_16_folder_home.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_16_folder_remote.png b/desktop/assets/images/icons/icon_16_folder_remote.png
new file mode 100644
index 0000000..44ed056
--- /dev/null
+++ b/desktop/assets/images/icons/icon_16_folder_remote.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_16_ie.png b/desktop/assets/images/icons/icon_16_ie.png
new file mode 100644
index 0000000..2cc979d
--- /dev/null
+++ b/desktop/assets/images/icons/icon_16_ie.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_16_music.png b/desktop/assets/images/icons/icon_16_music.png
new file mode 100644
index 0000000..89a6674
--- /dev/null
+++ b/desktop/assets/images/icons/icon_16_music.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_16_network.png b/desktop/assets/images/icons/icon_16_network.png
new file mode 100644
index 0000000..5c4c916
--- /dev/null
+++ b/desktop/assets/images/icons/icon_16_network.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_16_page.png b/desktop/assets/images/icons/icon_16_page.png
new file mode 100644
index 0000000..12e6602
--- /dev/null
+++ b/desktop/assets/images/icons/icon_16_page.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_16_photo.png b/desktop/assets/images/icons/icon_16_photo.png
new file mode 100644
index 0000000..c9e54d7
--- /dev/null
+++ b/desktop/assets/images/icons/icon_16_photo.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_16_server.png b/desktop/assets/images/icons/icon_16_server.png
new file mode 100644
index 0000000..3bbf2dc
--- /dev/null
+++ b/desktop/assets/images/icons/icon_16_server.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_16_system.png b/desktop/assets/images/icons/icon_16_system.png
new file mode 100644
index 0000000..610132b
--- /dev/null
+++ b/desktop/assets/images/icons/icon_16_system.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_16_trash.png b/desktop/assets/images/icons/icon_16_trash.png
new file mode 100644
index 0000000..d7117e4
--- /dev/null
+++ b/desktop/assets/images/icons/icon_16_trash.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_16_vpn.png b/desktop/assets/images/icons/icon_16_vpn.png
new file mode 100644
index 0000000..5fe409d
--- /dev/null
+++ b/desktop/assets/images/icons/icon_16_vpn.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_22_computer.png b/desktop/assets/images/icons/icon_22_computer.png
new file mode 100644
index 0000000..4674c1b
--- /dev/null
+++ b/desktop/assets/images/icons/icon_22_computer.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_22_desktop.png b/desktop/assets/images/icons/icon_22_desktop.png
new file mode 100644
index 0000000..5d59692
--- /dev/null
+++ b/desktop/assets/images/icons/icon_22_desktop.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_22_disc.png b/desktop/assets/images/icons/icon_22_disc.png
new file mode 100644
index 0000000..03f51f6
--- /dev/null
+++ b/desktop/assets/images/icons/icon_22_disc.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_22_drive.png b/desktop/assets/images/icons/icon_22_drive.png
new file mode 100644
index 0000000..045738b
--- /dev/null
+++ b/desktop/assets/images/icons/icon_22_drive.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_22_ie.png b/desktop/assets/images/icons/icon_22_ie.png
new file mode 100644
index 0000000..56c6eb9
--- /dev/null
+++ b/desktop/assets/images/icons/icon_22_ie.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_22_network.png b/desktop/assets/images/icons/icon_22_network.png
new file mode 100644
index 0000000..675f94c
--- /dev/null
+++ b/desktop/assets/images/icons/icon_22_network.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_22_recycle.png b/desktop/assets/images/icons/icon_22_recycle.png
new file mode 100644
index 0000000..4d7097e
--- /dev/null
+++ b/desktop/assets/images/icons/icon_22_recycle.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_32_computer.png b/desktop/assets/images/icons/icon_32_computer.png
new file mode 100644
index 0000000..7134ba9
--- /dev/null
+++ b/desktop/assets/images/icons/icon_32_computer.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_32_disc.png b/desktop/assets/images/icons/icon_32_disc.png
new file mode 100644
index 0000000..25cc663
--- /dev/null
+++ b/desktop/assets/images/icons/icon_32_disc.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_32_drive.png b/desktop/assets/images/icons/icon_32_drive.png
new file mode 100644
index 0000000..b199f1e
--- /dev/null
+++ b/desktop/assets/images/icons/icon_32_drive.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_32_ie.png b/desktop/assets/images/icons/icon_32_ie.png
new file mode 100644
index 0000000..ff0a401
--- /dev/null
+++ b/desktop/assets/images/icons/icon_32_ie.png
Binary files differ
diff --git a/desktop/assets/images/icons/icon_32_network.png b/desktop/assets/images/icons/icon_32_network.png
new file mode 100644
index 0000000..a30275c
--- /dev/null
+++ b/desktop/assets/images/icons/icon_32_network.png
Binary files differ
diff --git a/desktop/assets/images/ie/backforward.png b/desktop/assets/images/ie/backforward.png
new file mode 100644
index 0000000..0ceb9bf
--- /dev/null
+++ b/desktop/assets/images/ie/backforward.png
Binary files differ
diff --git a/desktop/assets/images/ie/controls.png b/desktop/assets/images/ie/controls.png
new file mode 100644
index 0000000..5ebcafb
--- /dev/null
+++ b/desktop/assets/images/ie/controls.png
Binary files differ
diff --git a/desktop/assets/images/ie/controlsori.png b/desktop/assets/images/ie/controlsori.png
new file mode 100644
index 0000000..99c951e
--- /dev/null
+++ b/desktop/assets/images/ie/controlsori.png
Binary files differ
diff --git a/desktop/assets/images/ie/favicon.png b/desktop/assets/images/ie/favicon.png
new file mode 100644
index 0000000..485506e
--- /dev/null
+++ b/desktop/assets/images/ie/favicon.png
Binary files differ
diff --git a/desktop/assets/images/ie/favourites-active.png b/desktop/assets/images/ie/favourites-active.png
new file mode 100644
index 0000000..351bd45
--- /dev/null
+++ b/desktop/assets/images/ie/favourites-active.png
Binary files differ
diff --git a/desktop/assets/images/ie/favourites-hover.png b/desktop/assets/images/ie/favourites-hover.png
new file mode 100644
index 0000000..7e3f24c
--- /dev/null
+++ b/desktop/assets/images/ie/favourites-hover.png
Binary files differ
diff --git a/desktop/assets/images/ie/favourites.png b/desktop/assets/images/ie/favourites.png
new file mode 100644
index 0000000..8c666a0
--- /dev/null
+++ b/desktop/assets/images/ie/favourites.png
Binary files differ
diff --git a/desktop/assets/images/ie/home-active.png b/desktop/assets/images/ie/home-active.png
new file mode 100644
index 0000000..42e2e93
--- /dev/null
+++ b/desktop/assets/images/ie/home-active.png
Binary files differ
diff --git a/desktop/assets/images/ie/home-hover.png b/desktop/assets/images/ie/home-hover.png
new file mode 100644
index 0000000..9f03e78
--- /dev/null
+++ b/desktop/assets/images/ie/home-hover.png
Binary files differ
diff --git a/desktop/assets/images/ie/home.png b/desktop/assets/images/ie/home.png
new file mode 100644
index 0000000..776459b
--- /dev/null
+++ b/desktop/assets/images/ie/home.png
Binary files differ
diff --git a/desktop/assets/images/ie/newtab.png b/desktop/assets/images/ie/newtab.png
new file mode 100644
index 0000000..f46d9e8
--- /dev/null
+++ b/desktop/assets/images/ie/newtab.png
Binary files differ
diff --git a/desktop/assets/images/ie/settings-active.png b/desktop/assets/images/ie/settings-active.png
new file mode 100644
index 0000000..f90bf85
--- /dev/null
+++ b/desktop/assets/images/ie/settings-active.png
Binary files differ
diff --git a/desktop/assets/images/ie/settings-hover.png b/desktop/assets/images/ie/settings-hover.png
new file mode 100644
index 0000000..06b4676
--- /dev/null
+++ b/desktop/assets/images/ie/settings-hover.png
Binary files differ
diff --git a/desktop/assets/images/ie/settings.png b/desktop/assets/images/ie/settings.png
new file mode 100644
index 0000000..71853fb
--- /dev/null
+++ b/desktop/assets/images/ie/settings.png
Binary files differ
diff --git a/desktop/assets/images/misc/album_cover.jpg b/desktop/assets/images/misc/album_cover.jpg
new file mode 100644
index 0000000..71450d5
--- /dev/null
+++ b/desktop/assets/images/misc/album_cover.jpg
Binary files differ
diff --git a/desktop/assets/images/misc/firehost.png b/desktop/assets/images/misc/firehost.png
new file mode 100644
index 0000000..798ec69
--- /dev/null
+++ b/desktop/assets/images/misc/firehost.png
Binary files differ
diff --git a/desktop/assets/images/misc/wallpaper.jpg b/desktop/assets/images/misc/wallpaper.jpg
new file mode 100644
index 0000000..05017b1
--- /dev/null
+++ b/desktop/assets/images/misc/wallpaper.jpg
Binary files differ
diff --git a/desktop/assets/images/misc/wallpaper.png b/desktop/assets/images/misc/wallpaper.png
new file mode 100644
index 0000000..b89e708
--- /dev/null
+++ b/desktop/assets/images/misc/wallpaper.png
Binary files differ
diff --git a/desktop/assets/images/misc/wallpaper2.jpg b/desktop/assets/images/misc/wallpaper2.jpg
new file mode 100644
index 0000000..915364d
--- /dev/null
+++ b/desktop/assets/images/misc/wallpaper2.jpg
Binary files differ
diff --git a/desktop/assets/javascripts/jquery.desktop.js b/desktop/assets/javascripts/jquery.desktop.js
new file mode 100644
index 0000000..8031342
--- /dev/null
+++ b/desktop/assets/javascripts/jquery.desktop.js
@@ -0,0 +1,315 @@
+//
+// Namespace - Module Pattern.
+//
+var JQD = (function($) {
+ return {
+ //
+ // Initialize the clock.
+ //
+ init_clock: function() {
+ // Date variables.
+ var date_obj = new Date();
+ var hour = date_obj.getHours();
+ var minute = date_obj.getMinutes();
+ var day = date_obj.getDate();
+ var year = date_obj.getFullYear();
+ var suffix = 'AM';
+
+ // Array for weekday.
+ var weekday = [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday'
+ ];
+
+ // Array for month.
+ var month = [
+ '01',
+ '02',
+ '03',
+ '04',
+ '05',
+ '06',
+ '07',
+ '08',
+ '09',
+ '10',
+ '11',
+ '12'
+ ];
+
+ // Assign weekday, month, date, year.
+ weekday = weekday[date_obj.getDate()];
+ month = month[date_obj.getMonth()];
+
+ // AM or PM?
+ if (hour >= 12) {
+ suffix = 'PM';
+ }
+
+ // Convert to 12-hour.
+ if (hour > 12) {
+ hour = hour - 12;
+ }
+ else if (hour === 0) {
+ // Display 12:XX instead of 0:XX.
+ hour = 12;
+ }
+
+ // Leading zero, if needed.
+ if (minute < 10) {
+ minute = '0' + minute;
+ }
+
+ // Build two HTML strings.
+ var clock_time = hour + ':' + minute + ' ' + ' ' + suffix ;
+ var clock_date = month + '/' + day + '/' + year;
+
+ // Shove in the HTML.
+ $('#clock').html(clock_time).attr('title', clock_time);
+ $('#weekday').html(clock_date).attr('title', clock_date);
+
+ // Update every 60 seconds.
+ setTimeout(JQD.init_clock, 60000);
+ },
+
+ //
+ // Clear active states, hide menus.
+ //
+ clear_active: function() {
+ $('a.active, tr.active').removeClass('active');
+ $('ul.menu').hide();
+ },
+
+ //
+ // Zero out window z-index.
+ //
+ window_flat: function() {
+ $('div.window').removeClass('window_stack');
+ },
+
+ //
+ // Resize modal window.
+ //
+ window_resize: function(el) {
+ // Nearest parent window.
+ var win = $(el).closest('div.window');
+
+ // Is it maximized already?
+ if (win.hasClass('window_full')) {
+ // Restore window position.
+ win.removeClass('window_full').css({
+ 'top': win.attr('data-t'),
+ 'left': win.attr('data-l'),
+ 'right': win.attr('data-r'),
+ 'bottom': win.attr('data-b'),
+ 'width': win.attr('data-w'),
+ 'height': win.attr('data-h')
+ });
+ }
+ else {
+ win.attr({
+ // Save window position.
+ 'data-t': win.css('top'),
+ 'data-l': win.css('left'),
+ 'data-r': win.css('right'),
+ 'data-b': win.css('bottom'),
+ 'data-w': win.css('width'),
+ 'data-h': win.css('height')
+ }).addClass('window_full').css({
+ // Maximize dimensions.
+ 'top': '0',
+ 'left': '0',
+ 'right': '0',
+ 'bottom': '0',
+ 'width': '100%',
+ 'height': '100%'
+ });
+ }
+
+ // Bring window to front.
+ JQD.window_flat();
+ win.addClass('window_stack');
+ },
+
+ //
+ // Initialize the desktop.
+ //
+ init_desktop: function() {
+ if (window.location !== window.top.location) {
+ window.top.location = window.location;
+ }
+
+ // Start clock.
+ JQD.init_clock();
+
+ // Cancel mousedown, right-click.
+ $(document).mousedown(function(ev) {
+ if (!$(ev.target).closest('a').length) {
+ JQD.clear_active();
+ return false;
+ }
+ }).bind('contextmenu', function() {
+ return false;
+ });
+
+ // Relative or remote links?
+ $('a').click(function() {
+ var url = $(this).attr('href');
+ this.blur();
+
+ if (url.match(/^#/)) {
+ return false;
+ }
+ else if (url.match('://')) {
+ $(this).attr('target', '_blank');
+ return true;
+ }
+ });
+
+ // Make top menus active.
+ $('a.menu_trigger').mousedown(function() {
+ if ($(this).next('ul.menu').is(':hidden')) {
+ JQD.clear_active();
+ $(this).addClass('active').next('ul.menu').show();
+ }
+ else {
+ JQD.clear_active();
+ }
+ }).mouseenter(function() {
+ // Transfer focus, if already open.
+ if ($('ul.menu').is(':visible')) {
+ JQD.clear_active();
+ $(this).addClass('active').next('ul.menu').show();
+ }
+ });
+
+ // Desktop icons.
+ $('a.icon').mousedown(function() {
+ // Highlight the icon.
+ JQD.clear_active();
+ $(this).addClass('active');
+ }).dblclick(function() {
+ // Get the link's target.
+ var x = $($(this).attr('href'));
+ var y = $(x.find('a').attr('href'));
+
+ // Show the taskbar button.
+ if (x.is(':hidden')) {
+ x.remove().appendTo('#dock').end().show('fast');
+ }
+
+ // Bring window to front.
+ JQD.window_flat();
+ y.addClass('window_stack').show();
+ }).draggable({
+ revert: true,
+ containment: 'parent'
+ });
+
+ // Taskbar buttons.
+ $('#dock a').live('click', function() {
+ // Get the link's target.
+ var x = $($(this).attr('href'));
+
+ // Hide, if visible.
+ if (x.is(':visible')) {
+ x.hide();
+ }
+ else {
+ // Bring window to front.
+ JQD.window_flat();
+ x.show().addClass('window_stack');
+ }
+
+ // Stop the live() click.
+ this.blur();
+ return false;
+ });
+
+ // Make windows movable.
+ $('div.window').mousedown(function() {
+ // Bring window to front.
+ JQD.window_flat();
+ $(this).addClass('window_stack');
+ }).draggable({
+ // Confine to desktop.
+ // Movable via top bar only.
+ containment: '#desktop',
+ handle: 'div.window_top'
+ }).resizable({
+ containment: '#desktop',
+ minWidth: 400,
+ minHeight: 200
+
+ // Double-click top bar to resize, ala Windows OS.
+ }).find('div.window_top').dblclick(function() {
+ JQD.window_resize(this);
+
+ // Double click top bar icon to close, ala Windows OS.
+ }).find('img').dblclick(function() {
+ // Traverse to the close button, and hide its taskbar button.
+ $($(this).closest('div.window_top').find('a.window_close').attr('href')).hide('fast');
+
+ // Close the window itself.
+ $(this).closest('div.window').hide();
+
+ // Stop propagation to window's top bar.
+ return false;
+ });
+
+ // Get action buttons for each window.
+ $('a.window_min, a.window_resize, a.window_close').mousedown(function() {
+ JQD.clear_active();
+ // Stop propagation to window's top bar.
+ return false;
+ });
+
+ // Minimize the window.
+ $('a.window_min').click(function() {
+ $(this).closest('div.window').hide();
+ });
+
+ // Maximize or restore the window.
+ $('a.window_resize').click(function() {
+ JQD.window_resize(this);
+ });
+
+ // Close the window.
+ $('a.window_close').click(function() {
+ $(this).closest('div.window').hide();
+ $($(this).attr('href')).hide('fast');
+ });
+
+ // Show desktop button, ala Windows OS.
+ $('#show_desktop').click(function() {
+ // If any windows are visible, hide all.
+ if ($('div.window:visible').length) {
+ $('div.window').hide();
+ }
+ else {
+ // Otherwise, reveal hidden windows that are open.
+ $('#dock li:visible a').each(function() {
+ $($(this).attr('href')).show();
+ });
+ }
+ });
+
+ $('table.data').each(function() {
+ // Add zebra striping, ala Mac OS X.
+ $(this).find('tr:even td').addClass('zebra');
+ }).find('tr').live('click', function() {
+ // Highlight row, ala Mac OS X.
+ $(this).closest('tr').addClass('active');
+ });
+
+ // Add wallpaper last, to prevent blocking.
+ $('body').prepend('<img id="wallpaper" class="abs" src="assets/images/misc/wallpaper.jpg" />');
+ }
+ };
+// Pass in jQuery.
+})(jQuery); \ No newline at end of file
diff --git a/desktop/assets/javascripts/jquery.package.js b/desktop/assets/javascripts/jquery.package.js
new file mode 100644
index 0000000..ea80940
--- /dev/null
+++ b/desktop/assets/javascripts/jquery.package.js
@@ -0,0 +1,53 @@
+/*
+ * jQuery JavaScript Library v1.3.2
+ * http://jquery.com/
+ *
+ * Copyright (c) 2009 John Resig
+ * Dual licensed under the MIT and GPL licenses.
+ * http://docs.jquery.com/License
+ *
+ * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
+ * Revision: 6246
+ */
+(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
+/*
+ * Sizzle CSS Selector Engine - v0.9.3
+ * Copyright 2009, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ * More information: http://sizzlejs.com/
+ */
+(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
+/*
+ * jQuery UI 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI
+ */
+jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m<n.length;m++){if(j.options[n[m][0]]){n[m][1].apply(j.element,k)}}}},contains:function(k,j){return document.compareDocumentPosition?k.compareDocumentPosition(j)&16:k!==j&&k.contains(j)},hasScroll:function(m,k){if(c(m).css("overflow")=="hidden"){return false}var j=(k&&k=="left")?"scrollLeft":"scrollTop",l=false;if(m[j]>0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);/*
+ * jQuery UI Draggable 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Draggables
+ *
+ * Depends:
+ * ui.core.js
+ */
+(function(a){a.widget("ui.draggable",a.extend({},a.ui.mouse,{_init:function(){if(this.options.helper=="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative"}(this.options.addClasses&&this.element.addClass("ui-draggable"));(this.options.disabled&&this.element.addClass("ui-draggable-disabled"));this._mouseInit()},destroy:function(){if(!this.element.data("draggable")){return}this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy()},_mouseCapture:function(b){var c=this.options;if(this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(b);if(!this.handle){return false}return true},_mouseStart:function(b){var c=this.options;this.helper=this._createHelper(b);this._cacheHelperProportions();if(a.ui.ddmanager){a.ui.ddmanager.current=this}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(b);this.originalPageX=b.pageX;this.originalPageY=b.pageY;if(c.cursorAt){this._adjustOffsetFromHelper(c.cursorAt)}if(c.containment){this._setContainment()}this._trigger("start",b);this._cacheHelperProportions();if(a.ui.ddmanager&&!c.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,b)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(b,true);return true},_mouseDrag:function(b,d){this.position=this._generatePosition(b);this.positionAbs=this._convertPositionTo("absolute");if(!d){var c=this._uiHash();this._trigger("drag",b,c);this.position=c.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if(a.ui.ddmanager){a.ui.ddmanager.drag(this,b)}return false},_mouseStop:function(c){var d=false;if(a.ui.ddmanager&&!this.options.dropBehaviour){d=a.ui.ddmanager.drop(this,c)}if(this.dropped){d=this.dropped;this.dropped=false}if((this.options.revert=="invalid"&&!d)||(this.options.revert=="valid"&&d)||this.options.revert===true||(a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d))){var b=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){b._trigger("stop",c);b._clear()})}else{this._trigger("stop",c);this._clear()}return false},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?true:false;a(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==b.target){c=true}});return c},_createHelper:function(c){var d=this.options;var b=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[c])):(d.helper=="clone"?this.element.clone():this.element);if(!b.parents("body").length){b.appendTo((d.appendTo=="parent"?this.element[0].parentNode:d.appendTo))}if(b[0]!=this.element[0]&&!(/(fixed|absolute)/).test(b.css("position"))){b.css("position","absolute")}return b},_adjustOffsetFromHelper:function(b){if(b.left!=undefined){this.offset.click.left=b.left+this.margins.left}if(b.right!=undefined){this.offset.click.left=this.helperProportions.width-b.right+this.margins.left}if(b.top!=undefined){this.offset.click.top=b.top+this.margins.top}if(b.bottom!=undefined){this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])){b.left+=this.scrollParent.scrollLeft();b.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)){b={top:0,left:0}}return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var b=this.element.position();return{top:b.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:b.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e=this.options;if(e.containment=="parent"){e.containment=this.helper[0].parentNode}if(e.containment=="document"||e.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(e.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(e.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(e.containment)&&e.containment.constructor!=Array){var c=a(e.containment)[0];if(!c){return}var d=a(e.containment).offset();var b=(a(c).css("overflow")!="hidden");this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(b?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(b?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}else{if(e.containment.constructor==Array){this.containment=e.containment}}},_convertPositionTo:function(f,h){if(!h){h=this.position}var c=f=="absolute"?1:-1;var e=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=(/(html|body)/i).test(b[0].tagName);return{top:(h.top+this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(g?0:b.scrollTop()))*c)),left:(h.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:b.scrollLeft())*c))}},_generatePosition:function(e){var h=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,i=(/(html|body)/i).test(b[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0])){this.offset.relative=this._getRelativeOffset()}var d=e.pageX;var c=e.pageY;if(this.originalPosition){if(this.containment){if(e.pageX-this.offset.click.left<this.containment[0]){d=this.containment[0]+this.offset.click.left}if(e.pageY-this.offset.click.top<this.containment[1]){c=this.containment[1]+this.offset.click.top}if(e.pageX-this.offset.click.left>this.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:(!(g-this.offset.click.top<this.containment[1])?g-h.grid[1]:g+h.grid[1])):g;var f=this.originalPageX+Math.round((d-this.originalPageX)/h.grid[0])*h.grid[0];d=this.containment?(!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:(!(f-this.offset.click.left<this.containment[0])?f-h.grid[0]:f+h.grid[0])):f}}return{top:(c-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(i?0:b.scrollTop())))),left:(d-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():i?0:b.scrollLeft())))}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");if(this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval){this.helper.remove()}this.helper=null;this.cancelHelperRemoval=false},_trigger:function(b,c,d){d=d||this._uiHash();a.ui.plugin.call(this,b,[c,d]);if(b=="drag"){this.positionAbs=this._convertPositionTo("absolute")}return a.widget.prototype._trigger.call(this,b,c,d)},plugins:{},_uiHash:function(b){return{helper:this.helper,position:this.position,absolutePosition:this.positionAbs,offset:this.positionAbs}}}));a.extend(a.ui.draggable,{version:"1.7.2",eventPrefix:"drag",defaults:{addClasses:true,appendTo:"parent",axis:false,cancel:":input,option",connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,delay:0,distance:1,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false}});a.ui.plugin.add("draggable","connectToSortable",{start:function(c,e){var d=a(this).data("draggable"),f=d.options,b=a.extend({},e,{item:d.element});d.sortables=[];a(f.connectToSortable).each(function(){var g=a.data(this,"sortable");if(g&&!g.options.disabled){d.sortables.push({instance:g,shouldRevert:g.options.revert});g._refreshItems();g._trigger("activate",c,b)}})},stop:function(c,e){var d=a(this).data("draggable"),b=a.extend({},e,{item:d.element});a.each(d.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;d.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert){this.instance.options.revert=true}this.instance._mouseStop(c);this.instance.options.helper=this.instance.options._helper;if(d.options.helper=="original"){this.instance.currentItem.css({top:"auto",left:"auto"})}}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",c,b)}})},drag:function(c,f){var e=a(this).data("draggable"),b=this;var d=function(i){var n=this.offset.click.top,m=this.offset.click.left;var g=this.positionAbs.top,k=this.positionAbs.left;var j=i.height,l=i.width;var p=i.top,h=i.left;return a.ui.isOver(g+n,k+m,p,h,j,l)};a.each(e.sortables,function(g){this.instance.positionAbs=e.positionAbs;this.instance.helperProportions=e.helperProportions;this.instance.offset.click=e.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=a(b).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return f.helper[0]};c.target=this.instance.currentItem[0];this.instance._mouseCapture(c,true);this.instance._mouseStart(c,true,true);this.instance.offset.click.top=e.offset.click.top;this.instance.offset.click.left=e.offset.click.left;this.instance.offset.parent.left-=e.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=e.offset.parent.top-this.instance.offset.parent.top;e._trigger("toSortable",c);e.dropped=this.instance.element;e.currentItem=e.element;this.instance.fromOutside=e}if(this.instance.currentItem){this.instance._mouseDrag(c)}}else{if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",c,this.instance._uiHash(this.instance));this.instance._mouseStop(c,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();if(this.instance.placeholder){this.instance.placeholder.remove()}e._trigger("fromSortable",c);e.dropped=false}}})}});a.ui.plugin.add("draggable","cursor",{start:function(c,d){var b=a("body"),e=a(this).data("draggable").options;if(b.css("cursor")){e._cursor=b.css("cursor")}b.css("cursor",e.cursor)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._cursor){a("body").css("cursor",d._cursor)}}});a.ui.plugin.add("draggable","iframeFix",{start:function(b,c){var d=a(this).data("draggable").options;a(d.iframeFix===true?"iframe":d.iframeFix).each(function(){a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css(a(this).offset()).appendTo("body")})},stop:function(b,c){a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});a.ui.plugin.add("draggable","opacity",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("opacity")){e._opacity=b.css("opacity")}b.css("opacity",e.opacity)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._opacity){a(c.helper).css("opacity",d._opacity)}}});a.ui.plugin.add("draggable","scroll",{start:function(c,d){var b=a(this).data("draggable");if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){b.overflowOffset=b.scrollParent.offset()}},drag:function(d,e){var c=a(this).data("draggable"),f=c.options,b=false;if(c.scrollParent[0]!=document&&c.scrollParent[0].tagName!="HTML"){if(!f.axis||f.axis!="x"){if((c.overflowOffset.top+c.scrollParent[0].offsetHeight)-d.pageY<f.scrollSensitivity){c.scrollParent[0].scrollTop=b=c.scrollParent[0].scrollTop+f.scrollSpeed}else{if(d.pageY-c.overflowOffset.top<f.scrollSensitivity){c.scrollParent[0].scrollTop=b=c.scrollParent[0].scrollTop-f.scrollSpeed}}}if(!f.axis||f.axis!="y"){if((c.overflowOffset.left+c.scrollParent[0].offsetWidth)-d.pageX<f.scrollSensitivity){c.scrollParent[0].scrollLeft=b=c.scrollParent[0].scrollLeft+f.scrollSpeed}else{if(d.pageX-c.overflowOffset.left<f.scrollSensitivity){c.scrollParent[0].scrollLeft=b=c.scrollParent[0].scrollLeft-f.scrollSpeed}}}}else{if(!f.axis||f.axis!="x"){if(d.pageY-a(document).scrollTop()<f.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()-f.scrollSpeed)}else{if(a(window).height()-(d.pageY-a(document).scrollTop())<f.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()+f.scrollSpeed)}}}if(!f.axis||f.axis!="y"){if(d.pageX-a(document).scrollLeft()<f.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()-f.scrollSpeed)}else{if(a(window).width()-(d.pageX-a(document).scrollLeft())<f.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()+f.scrollSpeed)}}}}if(b!==false&&a.ui.ddmanager&&!f.dropBehaviour){a.ui.ddmanager.prepareOffsets(c,d)}}});a.ui.plugin.add("draggable","snap",{start:function(c,d){var b=a(this).data("draggable"),e=b.options;b.snapElements=[];a(e.snap.constructor!=String?(e.snap.items||":data(draggable)"):e.snap).each(function(){var g=a(this);var f=g.offset();if(this!=b.element[0]){b.snapElements.push({item:this,width:g.outerWidth(),height:g.outerHeight(),top:f.top,left:f.left})}})},drag:function(u,p){var g=a(this).data("draggable"),q=g.options;var y=q.snapTolerance;var x=p.offset.left,w=x+g.helperProportions.width,f=p.offset.top,e=f+g.helperProportions.height;for(var v=g.snapElements.length-1;v>=0;v--){var s=g.snapElements[v].left,n=s+g.snapElements[v].width,m=g.snapElements[v].top,A=m+g.snapElements[v].height;if(!((s-y<x&&x<n+y&&m-y<f&&f<A+y)||(s-y<x&&x<n+y&&m-y<e&&e<A+y)||(s-y<w&&w<n+y&&m-y<f&&f<A+y)||(s-y<w&&w<n+y&&m-y<e&&e<A+y))){if(g.snapElements[v].snapping){(g.options.snap.release&&g.options.snap.release.call(g.element,u,a.extend(g._uiHash(),{snapItem:g.snapElements[v].item})))}g.snapElements[v].snapping=false;continue}if(q.snapMode!="inner"){var c=Math.abs(m-e)<=y;var z=Math.abs(A-f)<=y;var j=Math.abs(s-w)<=y;var k=Math.abs(n-x)<=y;if(c){p.position.top=g._convertPositionTo("relative",{top:m-g.helperProportions.height,left:0}).top-g.margins.top}if(z){p.position.top=g._convertPositionTo("relative",{top:A,left:0}).top-g.margins.top}if(j){p.position.left=g._convertPositionTo("relative",{top:0,left:s-g.helperProportions.width}).left-g.margins.left}if(k){p.position.left=g._convertPositionTo("relative",{top:0,left:n}).left-g.margins.left}}var h=(c||z||j||k);if(q.snapMode!="outer"){var c=Math.abs(m-f)<=y;var z=Math.abs(A-e)<=y;var j=Math.abs(s-x)<=y;var k=Math.abs(n-w)<=y;if(c){p.position.top=g._convertPositionTo("relative",{top:m,left:0}).top-g.margins.top}if(z){p.position.top=g._convertPositionTo("relative",{top:A-g.helperProportions.height,left:0}).top-g.margins.top}if(j){p.position.left=g._convertPositionTo("relative",{top:0,left:s}).left-g.margins.left}if(k){p.position.left=g._convertPositionTo("relative",{top:0,left:n-g.helperProportions.width}).left-g.margins.left}}if(!g.snapElements[v].snapping&&(c||z||j||k||h)){(g.options.snap.snap&&g.options.snap.snap.call(g.element,u,a.extend(g._uiHash(),{snapItem:g.snapElements[v].item})))}g.snapElements[v].snapping=(c||z||j||k||h)}}});a.ui.plugin.add("draggable","stack",{start:function(b,c){var e=a(this).data("draggable").options;var d=a.makeArray(a(e.stack.group)).sort(function(g,f){return(parseInt(a(g).css("zIndex"),10)||e.stack.min)-(parseInt(a(f).css("zIndex"),10)||e.stack.min)});a(d).each(function(f){this.style.zIndex=e.stack.min+f});this[0].style.zIndex=e.stack.min+d.length}});a.ui.plugin.add("draggable","zIndex",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("zIndex")){e._zIndex=b.css("zIndex")}b.css("zIndex",e.zIndex)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._zIndex){a(c.helper).css("zIndex",d._zIndex)}}})})(jQuery);/*
+ * jQuery UI Resizable 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Resizables
+ *
+ * Depends:
+ * ui.core.js
+ */
+(function(c){c.widget("ui.resizable",c.extend({},c.ui.mouse,{_init:function(){var e=this,j=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(j.aspectRatio),aspectRatio:j.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:j.helper||j.ghost||j.animate?j.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){if(/relative/.test(this.element.css("position"))&&c.browser.opera){this.element.css({position:"relative",top:"auto",left:"auto"})}this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=j.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var k=this.handles.split(",");this.handles={};for(var f=0;f<k.length;f++){var h=c.trim(k[f]),d="ui-resizable-"+h;var g=c('<div class="ui-resizable-handle '+d+'"></div>');if(/sw|se|ne|nw/.test(h)){g.css({zIndex:++j.zIndex})}if("se"==h){g.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[h]=".ui-resizable-"+h;this.element.append(g)}}this._renderAxis=function(p){p=p||this.element;for(var m in this.handles){if(this.handles[m].constructor==String){this.handles[m]=c(this.handles[m],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var n=c(this.handles[m],this.element),o=0;o=/sw|ne|nw|se|n|s/.test(m)?n.outerHeight():n.outerWidth();var l=["padding",/ne|nw|n/.test(m)?"Top":/se|sw|s/.test(m)?"Bottom":/^e$/.test(m)?"Right":"Left"].join("");p.css(l,o);this._proportionallyResize()}if(!c(this.handles[m]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!e.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}e.axis=i&&i[1]?i[1]:"se"}});if(j.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){c(this).removeClass("ui-resizable-autohide");e._handles.show()},function(){if(!e.resizing){c(this).addClass("ui-resizable-autohide");e._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var d=function(f){c(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){d(this.element);var e=this.element;e.parent().append(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).end().remove()}this.originalElement.css("resize",this.originalResizeStyle);d(this.originalElement)},_mouseCapture:function(e){var f=false;for(var d in this.handles){if(c(this.handles[d])[0]==e.target){f=true}}return this.options.disabled||!!f},_mouseStart:function(f){var i=this.options,e=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(d.is(".ui-draggable")||(/absolute/).test(d.css("position"))){d.css({position:"absolute",top:e.top,left:e.left})}if(c.browser.opera&&(/relative/).test(d.css("position"))){d.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var j=b(this.helper.css("left")),g=b(this.helper.css("top"));if(i.containment){j+=c(i.containment).scrollLeft()||0;g+=c(i.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:j,top:g};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:j,top:g};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:f.pageX,top:f.pageY};this.aspectRatio=(typeof i.aspectRatio=="number")?i.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var h=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",h=="auto"?this.axis+"-resize":h);d.addClass("ui-resizable-resizing");this._propagate("start",f);return true},_mouseDrag:function(d){var g=this.helper,f=this.options,l={},p=this,i=this.originalMousePosition,m=this.axis;var q=(d.pageX-i.left)||0,n=(d.pageY-i.top)||0;var h=this._change[m];if(!h){return false}var k=h.apply(this,[d,q,n]),j=c.browser.msie&&c.browser.version<7,e=this.sizeDiff;if(this._aspectRatio||d.shiftKey){k=this._updateRatio(k,d)}k=this._respectSize(k,d);this._propagate("resize",d);g.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(k);this._trigger("resize",d,this.ui());return false},_mouseStop:function(g){this.resizing=false;var h=this.options,l=this;if(this._helper){var f=this._proportionallyResizeElements,d=f.length&&(/textarea/i).test(f[0].nodeName),e=d&&c.ui.hasScroll(f[0],"left")?0:l.sizeDiff.height,j=d?0:l.sizeDiff.width;var m={width:(l.size.width-j),height:(l.size.height-e)},i=(parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left))||null,k=(parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top))||null;if(!h.animate){this.element.css(c.extend(m,{top:k,left:i}))}l.helper.height(l.size.height);l.helper.width(l.size.width);if(this._helper&&!h.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",g);if(this._helper){this.helper.remove()}return false},_updateCache:function(d){var e=this.options;this.offset=this.helper.offset();if(a(d.left)){this.position.left=d.left}if(a(d.top)){this.position.top=d.top}if(a(d.height)){this.size.height=d.height}if(a(d.width)){this.size.width=d.width}},_updateRatio:function(g,f){var h=this.options,i=this.position,e=this.size,d=this.axis;if(g.height){g.width=(e.height*this.aspectRatio)}else{if(g.width){g.height=(e.width/this.aspectRatio)}}if(d=="sw"){g.left=i.left+(e.width-g.width);g.top=null}if(d=="nw"){g.top=i.top+(e.height-g.height);g.left=i.left+(e.width-g.width)}return g},_respectSize:function(k,f){var i=this.helper,h=this.options,q=this._aspectRatio||f.shiftKey,p=this.axis,s=a(k.width)&&h.maxWidth&&(h.maxWidth<k.width),l=a(k.height)&&h.maxHeight&&(h.maxHeight<k.height),g=a(k.width)&&h.minWidth&&(h.minWidth>k.width),r=a(k.height)&&h.minHeight&&(h.minHeight>k.height);if(g){k.width=h.minWidth}if(r){k.height=h.minHeight}if(s){k.width=h.maxWidth}if(l){k.height=h.maxHeight}var e=this.originalPosition.left+this.originalSize.width,n=this.position.top+this.size.height;var j=/sw|nw|w/.test(p),d=/nw|ne|n/.test(p);if(g&&j){k.left=e-h.minWidth}if(s&&j){k.left=e-h.maxWidth}if(r&&d){k.top=n-h.minHeight}if(l&&d){k.top=n-h.maxHeight}var m=!k.width&&!k.height;if(m&&!k.left&&k.top){k.top=null}else{if(m&&!k.top&&k.left){k.left=null}}return k},_proportionallyResize:function(){var j=this.options;if(!this._proportionallyResizeElements.length){return}var f=this.helper||this.element;for(var e=0;e<this._proportionallyResizeElements.length;e++){var g=this._proportionallyResizeElements[e];if(!this.borderDif){var d=[g.css("borderTopWidth"),g.css("borderRightWidth"),g.css("borderBottomWidth"),g.css("borderLeftWidth")],h=[g.css("paddingTop"),g.css("paddingRight"),g.css("paddingBottom"),g.css("paddingLeft")];this.borderDif=c.map(d,function(k,m){var l=parseInt(k,10)||0,n=parseInt(h[m],10)||0;return l+n})}if(c.browser.msie&&!(!(c(f).is(":hidden")||c(f).parents(":hidden").length))){continue}g.css({height:(f.height()-this.borderDif[0]-this.borderDif[2])||0,width:(f.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var e=this.element,h=this.options;this.elementOffset=e.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var d=c.browser.msie&&c.browser.version<7,f=(d?1:0),g=(d?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+g,height:this.element.outerHeight()+g,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++h.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(f,e,d){return{width:this.originalSize.width+e}},w:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{left:h.left+e,width:f.width-e}},n:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{top:h.top+d,height:f.height-d}},s:function(f,e,d){return{height:this.originalSize.height+d}},se:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},sw:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[f,e,d]))},ne:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},nw:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[f,e,d]))}},_propagate:function(e,d){c.ui.plugin.call(this,e,[d,this.ui()]);(e!="resize"&&this._trigger(e,d,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));c.extend(c.ui.resizable,{version:"1.7.2",eventPrefix:"resize",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input,option",containment:false,delay:0,distance:1,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000}});c.ui.plugin.add("resizable","alsoResize",{start:function(e,f){var d=c(this).data("resizable"),g=d.options;_store=function(h){c(h).each(function(){c(this).data("resizable-alsoresize",{width:parseInt(c(this).width(),10),height:parseInt(c(this).height(),10),left:parseInt(c(this).css("left"),10),top:parseInt(c(this).css("top"),10)})})};if(typeof(g.alsoResize)=="object"&&!g.alsoResize.parentNode){if(g.alsoResize.length){g.alsoResize=g.alsoResize[0];_store(g.alsoResize)}else{c.each(g.alsoResize,function(h,i){_store(h)})}}else{_store(g.alsoResize)}},resize:function(f,h){var e=c(this).data("resizable"),i=e.options,g=e.originalSize,k=e.originalPosition;var j={height:(e.size.height-g.height)||0,width:(e.size.width-g.width)||0,top:(e.position.top-k.top)||0,left:(e.position.left-k.left)||0},d=function(l,m){c(l).each(function(){var p=c(this),q=c(this).data("resizable-alsoresize"),o={},n=m&&m.length?m:["width","height","top","left"];c.each(n||["width","height","top","left"],function(r,t){var s=(q[t]||0)+(j[t]||0);if(s&&s>=0){o[t]=s||null}});if(/relative/.test(p.css("position"))&&c.browser.opera){e._revertToRelativePosition=true;p.css({position:"absolute",top:"auto",left:"auto"})}p.css(o)})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.nodeType){c.each(i.alsoResize,function(l,m){d(l,m)})}else{d(i.alsoResize)}},stop:function(e,f){var d=c(this).data("resizable");if(d._revertToRelativePosition&&c.browser.opera){d._revertToRelativePosition=false;el.css({position:"relative"})}c(this).removeData("resizable-alsoresize-start")}});c.ui.plugin.add("resizable","animate",{stop:function(h,m){var n=c(this).data("resizable"),i=n.options;var g=n._proportionallyResizeElements,d=g.length&&(/textarea/i).test(g[0].nodeName),e=d&&c.ui.hasScroll(g[0],"left")?0:n.sizeDiff.height,k=d?0:n.sizeDiff.width;var f={width:(n.size.width-k),height:(n.size.height-e)},j=(parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left))||null,l=(parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top))||null;n.element.animate(c.extend(f,l&&j?{top:l,left:j}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var o={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};if(g&&g.length){c(g[0]).css({width:o.width,height:o.height})}n._updateCache(o);n._propagate("resize",h)}})}});c.ui.plugin.add("resizable","containment",{start:function(e,q){var s=c(this).data("resizable"),i=s.options,k=s.element;var f=i.containment,j=(f instanceof c)?f.get(0):(/parent/.test(f))?k.parent().get(0):f;if(!j){return}s.containerElement=c(j);if(/document/.test(f)||f==document){s.containerOffset={left:0,top:0};s.containerPosition={left:0,top:0};s.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var m=c(j),h=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){h[p]=b(m.css("padding"+o))});s.containerOffset=m.offset();s.containerPosition=m.position();s.containerSize={height:(m.innerHeight()-h[3]),width:(m.innerWidth()-h[1])};var n=s.containerOffset,d=s.containerSize.height,l=s.containerSize.width,g=(c.ui.hasScroll(j,"left")?j.scrollWidth:l),r=(c.ui.hasScroll(j)?j.scrollHeight:d);s.parentData={element:j,left:n.left,top:n.top,width:g,height:r}}},resize:function(f,p){var s=c(this).data("resizable"),h=s.options,e=s.containerSize,n=s.containerOffset,l=s.size,m=s.position,q=s._aspectRatio||f.shiftKey,d={top:0,left:0},g=s.containerElement;if(g[0]!=document&&(/static/).test(g.css("position"))){d=n}if(m.left<(s._helper?n.left:0)){s.size.width=s.size.width+(s._helper?(s.position.left-n.left):(s.position.left-d.left));if(q){s.size.height=s.size.width/h.aspectRatio}s.position.left=h.helper?n.left:0}if(m.top<(s._helper?n.top:0)){s.size.height=s.size.height+(s._helper?(s.position.top-n.top):s.position.top);if(q){s.size.width=s.size.height*h.aspectRatio}s.position.top=s._helper?n.top:0}s.offset.left=s.parentData.left+s.position.left;s.offset.top=s.parentData.top+s.position.top;var k=Math.abs((s._helper?s.offset.left-d.left:(s.offset.left-d.left))+s.sizeDiff.width),r=Math.abs((s._helper?s.offset.top-d.top:(s.offset.top-n.top))+s.sizeDiff.height);var j=s.containerElement.get(0)==s.element.parent().get(0),i=/relative|absolute/.test(s.containerElement.css("position"));if(j&&i){k-=s.parentData.left}if(k+s.size.width>=s.parentData.width){s.size.width=s.parentData.width-k;if(q){s.size.height=s.size.width/s.aspectRatio}}if(r+s.size.height>=s.parentData.height){s.size.height=s.parentData.height-r;if(q){s.size.width=s.size.height*s.aspectRatio}}},stop:function(e,m){var p=c(this).data("resizable"),f=p.options,k=p.position,l=p.containerOffset,d=p.containerPosition,g=p.containerElement;var i=c(p.helper),q=i.offset(),n=i.outerWidth()-p.sizeDiff.width,j=i.outerHeight()-p.sizeDiff.height;if(p._helper&&!f.animate&&(/relative/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}if(p._helper&&!f.animate&&(/static/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}}});c.ui.plugin.add("resizable","ghost",{start:function(f,g){var d=c(this).data("resizable"),h=d.options,e=d.size;d.ghost=d.originalElement.clone();d.ghost.css({opacity:0.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof h.ghost=="string"?h.ghost:"");d.ghost.appendTo(d.helper)},resize:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost){d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})}},stop:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost&&d.helper){d.helper.get(0).removeChild(d.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(d,l){var n=c(this).data("resizable"),g=n.options,j=n.size,h=n.originalSize,i=n.originalPosition,m=n.axis,k=g._aspectRatio||d.shiftKey;g.grid=typeof g.grid=="number"?[g.grid,g.grid]:g.grid;var f=Math.round((j.width-h.width)/(g.grid[0]||1))*(g.grid[0]||1),e=Math.round((j.height-h.height)/(g.grid[1]||1))*(g.grid[1]||1);if(/^(se|s|e)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e}else{if(/^(ne)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e}else{if(/^(sw)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.left=i.left-f}else{n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e;n.position.left=i.left-f}}}}});var b=function(d){return parseInt(d,10)||0};var a=function(d){return !isNaN(parseInt(d,10))}})(jQuery); \ No newline at end of file
diff --git a/desktop/assets/stylesheets/desktop-glass.css b/desktop/assets/stylesheets/desktop-glass.css
new file mode 100644
index 0000000..86fd0ec
--- /dev/null
+++ b/desktop/assets/stylesheets/desktop-glass.css
@@ -0,0 +1,656 @@
+/* `Basic HTML
+----------------------------------------------------------------------------------------------------*/
+
+* {
+ cursor: default;
+}
+
+html,
+body {
+ overflow: hidden;
+}
+
+body {
+ background: #222;
+ font: 12px Segoe UI;
+}
+
+a {
+ text-decoration: none;
+}
+
+li {
+ list-style: none;
+}
+
+/* `Misc
+----------------------------------------------------------------------------------------------------*/
+
+.abs {
+ position: absolute;
+ top: auto;
+ left: auto;
+ right: auto;
+ bottom: auto;
+}
+
+.align_center {
+ text-align: center;
+}
+
+.align_right {
+ text-align: right;
+}
+
+.float_left {
+ float: left;
+}
+.center {
+ text-align:center;
+ font-size:11pt;
+ width:80%;
+}
+.float_right {
+ float: right;
+}
+
+.ui-resizable-se {
+ background: url(../images/gui/window_corner.gif) no-repeat right bottom;
+ font-size: 0;
+ overflow: hidden;
+ width: 15px;
+ height: 15px;
+ right: 0;
+ bottom: 0;
+ cursor:nw-resize;
+}
+
+div.ui-resizable-handle {
+ display: none !important;
+ visibility: hidden !important;
+}
+
+/* `Icons
+----------------------------------------------------------------------------------------------------*/
+
+.icon {
+ background: url(../images/gui/trans_white.png) no-repeat -999px -999px;
+ color: #fff;
+ font-size: 12px;
+
+ line-height: 1.3;
+ padding: 6px 1px 6px;
+ text-align: center;
+ text-shadow: #000 0 1px 2px;
+ width: 80px;
+ border:solid 1px transparent;
+ text-decoration:none;
+}
+.icon.active {
+ border:solid 1px #D0E6FF;
+ background-color:#B7D7FF;
+
+}
+.icon img {
+ display: block;
+ margin: 0 auto 5px;
+ width: 32px;
+ height: 32px;
+ border:solid 1px transparent;
+ padding:3px;
+ color:#4b4b4b;
+ text-decoration:none;
+}
+
+.icon:hover {
+ outline: 1px solid #79B5FC;
+ border:solid 1px #B0D5FF;
+ background-color:#81BCFE;
+}
+.icon:active , .icon.ui-draggable-dragging {
+ outline: 1px solid #71A2DD;
+ border:solid 1px #D0E6FF;
+ box-shadow: inset 0 0 1px #fff; -moz-box-shadow: inset 0 0 1px #fff; -webkit-box-shadow: inset 0 0 1px #fff;
+ background-color:#B7D7FF;
+}
+
+.icon.ui-draggable-dragging {
+ z-index: 20;
+}
+
+/* `Windows
+----------------------------------------------------------------------------------------------------*/
+
+.window {
+ /*-webkit-box-shadow: 1px 1px 4px rgba(55, 141, 232, 0.75);
+ -moz-box-shadow: 1px 1px 4px rgba(55, 141, 232, 0.75);
+ box-shadow: 1px 1px 4px rgba(55, 141, 232, 0.75);*/
+ background: rgba(107,173,246,0.6);
+ outline: 1px solid #5285BC;
+ border: 6px solid rgba(107,173,246,0.6);
+ border-top:none;
+ color: #000;
+ display: none;
+ width: 1000px;
+ height: 600px;
+ top: 30px;
+ left: 120px;
+ z-index: 0;
+}
+.window.window_stack,
+.window.ui-draggable-dragging {
+ z-index: 10;
+}
+
+.window.ui-draggable-dragging {
+ opacity: 100;
+}
+
+.window.ui-draggable-dragging .window_content,
+.window.ui-draggable-dragging .window_bottom {
+ display: top;
+}
+
+.window_full.ui-draggable-dragging {
+ opacity: 100;
+}
+
+.window_full.ui-draggable-dragging .window_content,
+.window_full.ui-draggable-dragging .window_bottom {
+ display: block;
+}
+
+.window_full {
+ border: 0;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.window_full .ui-resizable-se {
+ display: block;
+
+}
+
+.window_top {
+text-align:center;
+ background: rgba(107,173,246,0.6);
+ color: #000000;
+ overflow: hidden;
+ line-height: 30px;
+ padding: 0 0px 0 05px;
+ height: 35px;
+}
+
+.window_top img {
+ float: left;
+ margin: 6px 5px 0 0;
+}
+.window_navbar {
+ background-color:#FFFFFF;
+ overflow:hidden;
+ width:100%;
+ max-height:36px;
+}
+.window_navbar img{
+ padding:8px;
+ vertical-align:middle;
+}
+.window_navbar fieldset{
+ display:inline;
+ vertical-align:middle;
+ border: 1px solid #D8D8D8;
+ height:22px;
+ position:relative;
+ margin-right:12px;
+ cursor: text !important;
+ -moz-user-select: text;
+ -webkit-user-select: text;
+ -ms-user-select: text;
+}
+
+.window_bottom {
+ background: #fff;
+ border-top: 1px solid #bbb;
+
+ font-size: 9pt;
+ line-height: 20px;
+ overflow: hidden;
+ padding-left:3px;
+ text-shadow: #fff 0 1px 1px;
+ height: 20px;
+ left: 2px;
+ right: 2px;
+ bottom: 1px;
+}
+
+.window_min {
+ background: url(../images/gui/glass/window-minimize.png) no-repeat;
+ float: left;
+ font-size: 0;
+
+
+ width: 27px;
+
+ height: 20px;
+}
+
+.window_min:hover {
+ background: url(../images/gui/glass/window-minimize-hover.png) no-repeat;
+ box-shadow: #09f 0 0 10px;
+ -moz-box-shadow: #09f 0 0 10px;
+ -webkit-box-shadow: #09f 0 0 10px;
+}
+.window_min:active {
+ background: url(../images/gui/glass/window-minimize-active.png) no-repeat;
+ box-shadow: #09f 0 0 10px;
+ -moz-box-shadow: #09f 0 0 10px;
+ -webkit-box-shadow: #09f 0 0 10px;
+}
+.window_resize {
+ background: url(../images/gui/glass/window-maximize.png) no-repeat;
+ float: left;
+ font-size: 0;
+
+
+ width: 26px;
+
+ height: 20px;
+}
+
+.window_resize:hover {
+ background: url(../images/gui/glass/window-maximize-hover.png) no-repeat;
+ box-shadow: #09f 0 0 10px;
+ -moz-box-shadow: #09f 0 0 10px;
+ -webkit-box-shadow: #09f 0 0 10px;
+}
+.window_resize:active {
+ background: url(../images/gui/glass/window-maximize-active.png) no-repeat;
+ box-shadow: #09f 0 0 10px;
+ -moz-box-shadow: #09f 0 0 10px;
+ -webkit-box-shadow: #09f 0 0 10px;
+}
+.window_close {
+ background: url(../images/gui/glass/window-close.png) no-repeat;
+ float: left;
+ font-size: 0;
+
+
+ width: 46px;
+
+ height: 20px;
+}
+
+.window_close:hover {
+ background: url(../images/gui/glass/window-close-hover.png) no-repeat;
+ box-shadow: #f00 0 0 10px;
+ -moz-box-shadow: #f00 0 0 10px;
+ -webkit-box-shadow: #f00 0 0 10px;
+}
+
+
+.window_inner {
+ padding: 0px;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+}
+
+.window_content {
+background-color:#FFFFFF;
+border:1px solid #5B93D1;
+ line-height: 1.5;
+ overflow: auto;
+ top: 32px;
+ left: 1px;
+ right: 1px;
+ bottom: 0px;
+}
+
+.window_aside {
+background-color:#FFFFFF;
+ float: left;
+ font-size: 9pt;
+ padding: 10px 12px 10px 10px;
+ width: 150px;
+}
+
+.window_main {
+ background: #fff;
+ margin: 0 0 0 173px;
+ min-height: 100%;
+}
+
+.window_full .window_top,
+.window_full .window_bottom {
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+}
+
+.window_full .window_inner {
+ bottom: -1px;
+}
+.topie {
+ margin:0;
+ background-color: rgba(107,173,246,0.6);
+ overflow: hidden;
+ line-height: 20px;
+ padding: 0 0px;
+ height: 55px;
+}
+.topie span{
+ background-color: rgba(107,173,246,0);
+}
+.topie img{
+ margin:0;
+
+}
+#window_ie {
+overflow-x:hidden;
+}
+
+
+/* `Table >> Data #3875d7
+----------------------------------------------------------------------------------------------------*/
+
+table.data {
+ width: 100%;
+ white-space: nowrap;
+}
+
+table.data th,
+table.data td {
+ padding: 2.5px 10px;
+ vertical-align: middle;
+}
+
+table.data th {
+ background: #fff /*url(../images/gui/bar_top.png) repeat-x left bottom*/;
+ text-shadow: #fff 0 1px 1px;
+ white-space: nowrap;
+}
+table.data th:hover {
+ background: #fff /*url(../images/gui/bar_top-hover.png) repeat-x left bottom*/;
+}
+table.data tr.sortdata th {
+ border-left: 1px solid #999999;
+}
+table.data tr.sortdata th:first-child {
+ border: 0;
+}
+
+table.data img {
+ display: block;
+}
+
+table.data td.zebra {
+ background: #FFFFFF;
+}
+table.data tr {
+
+}
+table.data tr.sortdata {
+ border:none !important;
+}
+table.data tr.active {
+ border:1px solid #26A0DA;
+}
+table.data tr.active td {
+ background: #CBE8F6;
+ color: #000;
+}
+
+th.shrink {
+ width: 1%;
+}
+
+/* `Bar >> Top + Bottom
+----------------------------------------------------------------------------------------------------*/
+
+#bar_top,
+#bar_bottom {
+ padding: 0 10px;
+ left: 0;
+ right: 0;
+}
+
+#bar_bottom {
+ background: #538DC4;
+ border-top: 1px solid #4C80B4;
+ color: #fff;
+ font-size: 13px;
+ line-height: 50px;
+ opacity: 0.8;
+ overflow: hidden;
+ padding-top: 0px;
+ padding-bottom: 9px;
+ text-shadow: #000 0 1px 1px;
+ height: 30px;
+ bottom: 0;
+}
+
+/* `Bar >> Links
+----------------------------------------------------------------------------------------------------*/
+
+#bar_top li,
+#bar_bottom li {
+ float: left;
+}
+
+#bar_top li a,
+#bar_bottom li a {
+ display: block;
+ padding: 0 8px;
+}
+
+#bar_bottom li {
+ display: none;
+ margin: 0 0 0px 0px;
+}
+
+#bar_bottom li a {
+ min-width: 40px;
+ max-width: 40px;
+}
+
+#bar_bottom a {
+ margin-right:2px;
+ width:58px;
+ color: #fff;
+ overflow: hidden;
+ padding: 0 0px;
+ height: 36px;
+ border:solid 1px #7da2ce;
+ background-color:#719EC9;
+ outline: #3D6891 solid 1px;
+ border:1px solid #9DBDDC;
+}
+
+#bar_bottom a:hover {
+ outline: #33577A solid 1px;
+ border:1px solid #E4ECF4;
+ -moz-border-radius:3px; -webkit-border-radius:3px;
+ background-color:#8EAFD0;
+}
+
+
+#bar_bottom li a img {
+ float: left;
+ margin-left:5px;
+}
+
+#bar_bottom .float_left img,
+#bar_bottom .float_right img {
+ display: block;
+ padding: 4px 0 0;
+}
+#show_desktop {
+ width:8px !important;
+ position:absolute;
+ bottom:1px;
+ right:1px;
+ margin:0 !important;
+ border:none !important;
+ outline:none !important;
+ background-color:transparent !important;
+}
+#show_desktop:active {
+ outline: #3D6891 solid 1px !important;
+}
+#clock {
+ font-size:9pt;
+ position:absolute;
+ bottom:5px;
+ right:19px;
+ margin-right:3px;
+}
+#weekday {
+ font-size:9pt;
+ position:absolute;
+ bottom:-12px;
+ right:12px;
+ margin-right:3px;
+
+}
+.addressbar , .searchbox {
+ border:none;
+ height:18px;
+ overflow:hidden;
+}
+.addressform {
+ width:58.5%;
+
+}
+.addressform img {
+ float:right;
+ vertical-align:middle;
+}
+.search {
+ margin-top:6px;
+ vertical-align:middle;
+ width:25%;
+ float:right;
+}
+.search img {
+ float:right;
+}
+.reload {
+
+ background-image:url('assets/images/gui/reload.png');
+ padding:6px 8px !important;
+ margin:0px !important;
+ float:right !important;
+ border-left:1px solid #6C6C6C;
+}
+.searchbox {
+ position:relative;
+ padding:0px !important;
+ margin:0px !important;
+}
+#iframeie {
+ position:relative;
+ height:100%;
+}
+.ie {
+ margin:0px;
+ height:100%;
+ overflow:hidden;
+}
+.addressbar{
+ border:none;
+ height:10px;
+
+}
+#ie {
+ display:inline;
+ position:absolute;
+ top:28px;
+ margin-left: 10px;
+ border: 1px solid #3F6783;
+ height:22px;
+ padding:0px 0px 0px 60px;
+ background-color:#FFFFFF;
+
+}
+#tab {
+ vertical-align:bottom;
+ text-align:left;
+ max-height:25px;
+ min-width:197px;
+ display:inline-block;
+ background-color:#FFFFFF;
+ padding-top:2.5px;
+ padding-bottom:2.5px;
+ outline:1px solid #3F6783;
+ border: 1px solid #FFFFFF;
+ border-bottom:2px solid #FFFFFF;
+}
+#tab img {
+ margin-top:3px;
+ margin-right:4px;
+ margin-left:5px;
+}
+#greytab {
+ margin:0;
+ vertical-align:bottom;
+ text-align:left;
+ max-height:25px;
+ min-height:25px;
+ min-width:26px;
+ display:inline-block;
+ background-color:#A2BCD9;
+ outline:1px solid #3F6783;
+ border-bottom:3px solid #A2BCD9;
+}
+#greytab:hover {
+ background-image: url('../images/ie/newtab.png');
+ background-repeat:no-repeat;
+ background-position:center;
+}
+#greytab img {
+ margin-top:5px;
+ margin-left:5px;
+}
+#tabs {
+ display:inline;
+ position:absolute;
+ top:27px;
+ left:320px;
+}
+.contie {
+ top: 55px;
+ left: 1px;
+ right: 1px;
+ bottom: 0px;
+}
+.iebuttons {
+ margin-top:8px;
+}
+.iebuttons img{
+ vertical-align:center;
+ margin-left:8px;
+}
+
+/* `Wallpaper + Desktop
+----------------------------------------------------------------------------------------------------*/
+
+#wallpaper {
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ width: 100%;
+ height: 100%;
+}
+
+#desktop {
+ overflow: hidden;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 41px;
+} \ No newline at end of file
diff --git a/desktop/assets/stylesheets/desktop.css b/desktop/assets/stylesheets/desktop.css
new file mode 100644
index 0000000..9a6c363
--- /dev/null
+++ b/desktop/assets/stylesheets/desktop.css
@@ -0,0 +1,652 @@
+/* `Basic HTML
+----------------------------------------------------------------------------------------------------*/
+
+* {
+ cursor: default;
+}
+
+html,
+body {
+ overflow: hidden;
+}
+
+body {
+ background: #222;
+ font: 12px Segoe UI;
+}
+
+a {
+ text-decoration: none;
+}
+
+li {
+ list-style: none;
+}
+
+/* `Misc
+----------------------------------------------------------------------------------------------------*/
+
+.abs {
+ position: absolute;
+ top: auto;
+ left: auto;
+ right: auto;
+ bottom: auto;
+}
+
+.align_center {
+ text-align: center;
+}
+
+.align_right {
+ text-align: right;
+}
+
+.float_left {
+ float: left;
+}
+.center {
+ text-align:center;
+ font-size:11pt;
+ width:80%;
+}
+.float_right {
+ float: right;
+}
+
+.ui-resizable-se {
+ background: url(../images/gui/window_corner.gif) no-repeat right bottom;
+ font-size: 0;
+ overflow: hidden;
+ width: 15px;
+ height: 15px;
+ right: 0;
+ bottom: 0;
+ cursor:nw-resize;
+}
+
+div.ui-resizable-handle {
+ display: none !important;
+ visibility: hidden !important;
+}
+
+/* `Icons
+----------------------------------------------------------------------------------------------------*/
+
+.icon {
+ background: url(../images/gui/trans_white.png) no-repeat -999px -999px;
+ color: #fff;
+ font-size: 12px;
+
+ line-height: 1.3;
+ padding: 6px 1px 6px;
+ text-align: center;
+ text-shadow: #000 0 1px 2px;
+ width: 80px;
+ border:solid 1px transparent;
+ text-decoration:none;
+}
+.icon.active {
+ border:solid 1px #D0E6FF;
+ background-color:#B7D7FF;
+
+}
+.icon img {
+ display: block;
+ margin: 0 auto 5px;
+ width: 32px;
+ height: 32px;
+ border:solid 1px transparent;
+ padding:3px;
+ color:#4b4b4b;
+ text-decoration:none;
+}
+
+.icon:hover {
+ outline: 1px solid #79B5FC;
+ border:solid 1px #B0D5FF;
+ background-color:#81BCFE;
+}
+.icon:active , .icon.ui-draggable-dragging {
+ outline: 1px solid #71A2DD;
+ border:solid 1px #D0E6FF;
+ box-shadow: inset 0 0 1px #fff; -moz-box-shadow: inset 0 0 1px #fff; -webkit-box-shadow: inset 0 0 1px #fff;
+ background-color:#B7D7FF;
+}
+
+.icon.ui-draggable-dragging {
+ z-index: 20;
+}
+
+/* `Windows
+----------------------------------------------------------------------------------------------------*/
+
+.window {
+ /*-webkit-box-shadow: 1px 1px 4px rgba(55, 141, 232, 0.75);
+ -moz-box-shadow: 1px 1px 4px rgba(55, 141, 232, 0.75);
+ box-shadow: 1px 1px 4px rgba(55, 141, 232, 0.75);*/
+ background: #6BADF6;
+ outline: 1px solid #5285BC;
+ border: 6px solid #6BADF6;
+ border-top:none;
+ color: #000;
+ display: none;
+ width: 1000px;
+ height: 600px;
+ top: 30px;
+ left: 120px;
+ z-index: 0;
+}
+.window.window_stack,
+.window.ui-draggable-dragging {
+ z-index: 10;
+}
+
+.window.ui-draggable-dragging {
+ opacity: 100;
+}
+
+.window.ui-draggable-dragging .window_content,
+.window.ui-draggable-dragging .window_bottom {
+ display: top;
+}
+
+.window_full.ui-draggable-dragging {
+ opacity: 100;
+}
+
+.window_full.ui-draggable-dragging .window_content,
+.window_full.ui-draggable-dragging .window_bottom {
+ display: block;
+}
+
+.window_full {
+ border: 0;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.window_full .ui-resizable-se {
+ display: block;
+
+}
+
+.window_top {
+ text-align:center;
+ background: #6BADF6;
+ color: #000000;
+ overflow: hidden;
+ line-height: 30px;
+ padding: 0 0px 0 05px;
+ height: 35px;
+}
+
+.window_top img {
+ float: left;
+ margin: 6px 5px 0 0;
+}
+.window_navbar {
+ background-color:#FFFFFF;
+ overflow:hidden;
+ width:100%;
+ max-height:36px;
+}
+.window_navbar img{
+ padding:8px;
+ vertical-align:middle;
+}
+.window_navbar fieldset{
+ display:inline;
+ vertical-align:middle;
+ border: 1px solid #D8D8D8;
+ height:22px;
+ position:relative;
+ margin-right:12px;
+ cursor: text !important;
+ -moz-user-select: text;
+ -webkit-user-select: text;
+ -ms-user-select: text;
+}
+
+.window_bottom {
+ background: #fff;
+ border-top: 1px solid #bbb;
+
+ font-size: 9pt;
+ line-height: 20px;
+ overflow: hidden;
+ padding-left:3px;
+ text-shadow: #fff 0 1px 1px;
+ height: 20px;
+ left: 2px;
+ right: 2px;
+ bottom: 1px;
+}
+
+.window_min {
+ background: url(../images/gui/window-minimize.png) no-repeat;
+ float: left;
+ font-size: 0;
+
+
+ width: 27px;
+
+ height: 20px;
+}
+
+.window_min:hover {
+ background: url(../images/gui/window-minimize-hover.png) no-repeat;
+ /*box-shadow: #09f 0 0 10px;
+ -moz-box-shadow: #09f 0 0 10px;
+ -webkit-box-shadow: #09f 0 0 10px;*/
+}
+.window_resize {
+ background: url(../images/gui/window-maximize.png) no-repeat;
+ float: left;
+ font-size: 0;
+
+
+ width: 26px;
+
+ height: 20px;
+}
+
+.window_resize:hover {
+ background: url(../images/gui/window-maximize-hover.png) no-repeat;
+ /*box-shadow: #09f 0 0 10px;
+ -moz-box-shadow: #09f 0 0 10px;
+ -webkit-box-shadow: #09f 0 0 10px;*/
+}
+.window_close {
+ background: url(../images/gui/window-close.png) no-repeat;
+ float: left;
+ font-size: 0;
+
+
+ width: 46px;
+
+ height: 20px;
+}
+
+.window_close:hover {
+ background: url(../images/gui/window-close-hover.png) no-repeat;
+/* box-shadow: #f00 0 0 10px;
+ -moz-box-shadow: #f00 0 0 10px;
+ -webkit-box-shadow: #f00 0 0 10px;*/
+}
+
+
+.window_inner {
+ padding: 0px;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+}
+
+.window_content {
+ background-color:#FFFFFF;
+ border:1px solid #5B93D1;
+ line-height: 1.5;
+ overflow: auto;
+ top: 32px;
+ left: 1px;
+ right: 1px;
+ bottom: 0px;
+}
+
+.window_aside {
+ background-color:#FFFFFF;
+ float: left;
+ font-size: 9pt;
+ padding: 10px 12px 10px 10px;
+ width: 150px;
+}
+
+.window_main {
+ background: #fff;
+ margin: 0 0 0 173px;
+ min-height: 100%;
+}
+
+.window_full .window_top,
+.window_full .window_bottom {
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+}
+
+.window_full .window_inner {
+ bottom: -1px;
+}
+.topie {
+ margin:0;
+ background-color:#6BADF6;
+ overflow: hidden;
+ line-height: 20px;
+ padding: 0 0px;
+ height: 55px;
+}
+.topie span{
+ background-color:#6BADF6;
+}
+.topie img{
+ margin:0;
+
+}
+#window_ie {
+ overflow-x:hidden;
+}
+
+/* `Table >> Data #3875d7
+----------------------------------------------------------------------------------------------------*/
+
+table.data {
+ width: 100%;
+ white-space: nowrap;
+}
+
+table.data th,
+table.data td {
+ padding: 2.5px 10px;
+ vertical-align: middle;
+}
+
+table.data th {
+ background: #fff /*url(../images/gui/bar_top.png) repeat-x left bottom*/;
+ text-shadow: #fff 0 1px 1px;
+ white-space: nowrap;
+}
+table.data th:hover {
+ background: #fff /*url(../images/gui/bar_top-hover.png) repeat-x left bottom*/;
+}
+table.data tr.sortdata th {
+ border-left: 1px solid #999999;
+}
+table.data tr.sortdata th:first-child {
+ border: 0;
+}
+
+table.data img {
+ display: block;
+}
+
+table.data td.zebra {
+ background: #FFFFFF;
+}
+table.data tr {
+
+}
+table.data tr.sortdata {
+ border:none !important;
+}
+table.data tr.active {
+ border:1px solid #26A0DA;
+}
+table.data tr.active td {
+ background: #CBE8F6;
+ color: #000;
+}
+
+th.shrink {
+ width: 1%;
+}
+
+/* `Bar >> Top + Bottom
+----------------------------------------------------------------------------------------------------*/
+
+#bar_top,
+#bar_bottom {
+ padding: 0 10px;
+ left: 0;
+ right: 0;
+}
+
+#bar_bottom {
+ background: #538DC4;
+ border-top: 1px solid #4C80B4;
+ color: #fff;
+ font-size: 13px;
+ line-height: 50px;
+ opacity: 0.8;
+ overflow: hidden;
+ padding-top: 0px;
+ padding-bottom: 9px;
+ text-shadow: #000 0 1px 1px;
+ height: 30px;
+ bottom: 0;
+}
+
+/* `Bar >> Links
+----------------------------------------------------------------------------------------------------*/
+
+#bar_top li,
+#bar_bottom li {
+ float: left;
+}
+
+#bar_top li a,
+#bar_bottom li a {
+ display: block;
+ padding: 0 8px;
+}
+
+#bar_bottom li {
+ display: none;
+ margin: 0 0 0px 0px;
+}
+
+#bar_bottom li a {
+ min-width: 40px;
+ max-width: 40px;
+}
+
+#bar_bottom a {
+ margin-right:2px;
+ width:58px;
+ color: #fff;
+ overflow: hidden;
+ padding: 0 0px;
+ height: 36px;
+ border:solid 1px #7da2ce;
+ background-color:#719EC9;
+ outline: #3D6891 solid 1px;
+ border:1px solid #9DBDDC;
+}
+
+#bar_bottom a:hover {
+ outline: #33577A solid 1px;
+ border:1px solid #E4ECF4;
+ -moz-border-radius:3px; -webkit-border-radius:3px;
+ background-color:#8EAFD0;
+}
+
+
+#bar_bottom li a img {
+ float: left;
+ margin-left:5px;
+}
+
+#bar_bottom .float_left img,
+#bar_bottom .float_right img {
+ display: block;
+ padding: 4px 0 0;
+}
+#show_desktop {
+ width:8px !important;
+ position:absolute;
+ bottom:1px;
+ right:1px;
+ margin:0 !important;
+ border:none !important;
+ outline:none !important;
+ background-color:transparent !important;
+}
+#show_desktop:active {
+ outline: #3D6891 solid 1px !important;
+}
+#clock {
+ font-size:9pt;
+ position:absolute;
+ bottom:5px;
+ right:19px;
+ margin-right:3px;
+}
+#weekday {
+ font-size:9pt;
+ position:absolute;
+ bottom:-12px;
+ right:12px;
+ margin-right:3px;
+
+}
+.addressbar , .searchbox {
+ border:none;
+ height:18px;
+ overflow:hidden;
+ z-index:10;
+}
+.addressform {
+ width:58.5%;
+
+}
+.addressform img {
+ float:right;
+ vertical-align:middle;
+}
+.search {
+ margin-top:6px;
+ vertical-align:middle;
+ width:23%;
+ float:right;
+}
+.search img {
+ float:right;
+}
+.iego {
+ padding:5px;
+ padding-right:8px;
+ float:right !important;
+
+}
+.reload {
+
+ background-image:url('assets/images/gui/reload.png');
+ padding:6px 8px !important;
+ margin:0px !important;
+ float:right !important;
+ border-left:1px solid #6C6C6C;
+}
+.searchbox {
+ position:relative;
+ padding:0px !important;
+ margin:0px !important;
+}
+#iframeie {
+ position:relative;
+ height:100%;
+}
+.ie {
+ margin:0px;
+ height:100%;
+ overflow:hidden;
+}
+.addressbar{
+ border:none;
+ height:10px;
+
+}
+#ie {
+ display:inline;
+ position:absolute;
+ top:28px;
+ margin-left: 10px;
+ border: 1px solid #3F6783;
+ height:22px;
+ padding:0px 0px 0px 60px;
+ background-color:#FFFFFF;
+
+}
+#tab {
+ vertical-align:bottom;
+ text-align:left;
+ max-height:25px;
+ min-width:197px;
+ display:inline-block;
+ background-color:#FFFFFF;
+ padding-top:2.5px;
+ padding-bottom:2.5px;
+ outline:1px solid #3F6783;
+ border: 1px solid #FFFFFF;
+ border-bottom:2px solid #FFFFFF;
+}
+#tab img {
+ margin-top:3px;
+ margin-right:4px;
+ margin-left:5px;
+}
+#greytab {
+ margin:0;
+ vertical-align:bottom;
+ text-align:left;
+ max-height:25px;
+ min-height:25px;
+ min-width:26px;
+ display:inline-block;
+ background-color:#A2BCD9;
+ outline:1px solid #3F6783;
+ border-bottom:3px solid #A2BCD9;
+}
+#greytab:hover {
+ background-image: url('../images/ie/newtab.png');
+ background-repeat:no-repeat;
+ background-position:center;
+}
+#greytab img {
+ margin-top:5px;
+ margin-left:5px;
+}
+#tabs {
+ display:inline;
+ position:absolute;
+ top:27px;
+ left:320px;
+}
+.contie {
+ top: 55px;
+ left: 1px;
+ right: 1px;
+ bottom: 0px;
+}
+.iebuttons {
+ margin-top:8px;
+}
+.iebuttons img{
+ vertical-align:center;
+ margin-left:8px;
+}
+.noborder {
+ border:none;
+}
+/* `Wallpaper + Desktop
+----------------------------------------------------------------------------------------------------*/
+
+#wallpaper {
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ width: 100%;
+ height: 100%;
+}
+
+#desktop {
+ overflow: hidden;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 41px;
+} \ No newline at end of file
diff --git a/desktop/assets/stylesheets/html.css b/desktop/assets/stylesheets/html.css
new file mode 100644
index 0000000..5522001
--- /dev/null
+++ b/desktop/assets/stylesheets/html.css
@@ -0,0 +1,99 @@
+/* `HTML5 Reset
+----------------------------------------------------------------------------------------------------*/
+
+a,
+abbr,
+address,
+article,
+aside,
+audio,
+b,
+blockquote,
+body,
+caption,
+cite,
+code,
+dd,
+del,
+dfn,
+dialog,
+div,
+dl,
+dt,
+em,
+fieldset,
+figure,
+footer,
+form,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+header,
+hgroup,
+hr,
+html,
+i,
+iframe,
+img,
+ins,
+kbd,
+label,
+legend,
+li,
+mark,
+menu,
+menu,
+nav,
+object,
+ol,
+p,
+pre,
+q,
+samp,
+section,
+small,
+span,
+strong,
+sub,
+sup,
+table,
+tbody,
+td,
+tfoot,
+th,
+thead,
+time,
+tr,
+ul,
+var,
+video {
+ border: 0;
+ margin: 0;
+ outline: 0;
+ padding: 0;
+}
+
+html,
+body {
+ height: 100%;
+}
+
+img {
+
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+th,
+td,
+caption {
+ font-weight: normal;
+ vertical-align: top;
+ text-align: left;
+} \ No newline at end of file
diff --git a/desktop/assets/stylesheets/ie.css b/desktop/assets/stylesheets/ie.css
new file mode 100644
index 0000000..560970a
--- /dev/null
+++ b/desktop/assets/stylesheets/ie.css
@@ -0,0 +1,14 @@
+.window.ui-draggable-dragging {
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
+ -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=50)';
+}
+
+.window_full.ui-draggable-dragging {
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
+ -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
+}
+
+#bar_bottom {
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
+ -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=80)';
+} \ No newline at end of file
diff --git a/desktop/css/charms.css b/desktop/css/charms.css
new file mode 100644
index 0000000..d94ae28
--- /dev/null
+++ b/desktop/css/charms.css
@@ -0,0 +1,123 @@
+body {
+font-family:Segoe UI;
+margin:0px;
+padding:0px;
+}
+img, a {
+ outline:none;
+ border:none;
+}
+#hoverarea {
+ position:fixed;
+ top:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#bottomhoverarea {
+ position:fixed;
+ bottom:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#starthoverarea {
+ position:fixed;
+ bottom:0px;
+ left:0px;
+ width:15px;
+ height:15px;
+}
+#charmsbar {
+ display:none;
+ background-color:#111111;
+ position:fixed;
+ padding:5% 0;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 86px;
+}
+#settingscharms {
+ padding : 40px;
+ display:none;
+ background-color:#001E4E;
+ position:fixed;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 345px;
+
+}
+#startbutton {
+ display:none;
+ position:fixed;
+ left:0px;
+ bottom:0px;
+}
+#iconnetwork {
+ position:absolute;
+ top:35px;
+ left:25px;
+}
+#iconbattery {
+ position:absolute;
+ bottom:35px;
+ left:32px;
+}
+#datetime {
+ display:none;
+ position:fixed;
+ left:50px;
+ bottom:50px;
+ width:490px;
+ height:139px;
+ background-color: rgba(17,17,17,1);
+}
+#ctime {
+ position:absolute;
+ left:70px;
+ bottom:19px;
+ font-family: Segoe UI Light;
+ font-size: 64pt;
+ color:#FFFFFF;
+}
+#date {
+ margin-top:20px;
+ margin-right:20px;
+ float:right;
+ font-size:24pt;
+ font-family: Segoe UI;
+ color:#FFFFFF;
+}
+#settingscharms {
+ padding : 40px;
+ display:none;
+ background-color:#001E4E;
+ position:fixed;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 345px;
+ color:#FFFFFF;
+
+}
+.closesettings {
+float:right;
+height:32px !important;
+width:32px !important;
+}
+.ch1 {
+ font-family:Segoe UI Semilight;
+ font-size:28px;
+ margin-bottom:25px;
+}
+.ch2 {
+ font-size:11pt;
+ margin-bottom:25px;
+}
+.ch2d {
+ font-size:11pt;
+ color:#A8A8A8;
+ margin-bottom:25px;
+} \ No newline at end of file
diff --git a/desktop/css/scrollbar.css b/desktop/css/scrollbar.css
new file mode 100644
index 0000000..ca573bd
--- /dev/null
+++ b/desktop/css/scrollbar.css
@@ -0,0 +1,67 @@
+/*
+Windows 8 Scrollbar CSS
+by ntim007
+http://ntim007.kodingen.com
+http://ntim007.deviantart.com
+*/
+/* For Chrome or Safari */
+/* Scrollbar background color */
+::-webkit-scrollbar {
+background-color:#EFEFEF;
+padding:0;
+}
+/* UP, DOWN, LEFT and RIGHT button styling */
+::-webkit-scrollbar-button:hover {
+background-color:#DBDBDB !important;
+}
+::-webkit-scrollbar-button:vertical:decrement {
+background:url('../img/scrollbar/up.png') no-repeat center;
+}
+::-webkit-scrollbar-button:vertical:increment {
+background:url('../img/scrollbar/down.png') no-repeat center;
+}
+::-webkit-scrollbar-button:horizontal:decrement {
+background:url('../img/scrollbar/left.png') no-repeat center;
+}
+::-webkit-scrollbar-button:horizontal:increment {
+background:url('../img/scrollbar/right.png') no-repeat center;
+}
+::-webkit-scrollbar-button:active:vertical:decrement {
+background:url('../img/scrollbar/up-active.png') no-repeat center #606060 !important;
+}
+::-webkit-scrollbar-button:active:vertical:increment {
+background:url('../img/scrollbar/down-active.png') no-repeat center #606060 !important;
+}
+::-webkit-scrollbar-button:active:horizontal:decrement {
+background:url('../img/scrollbar/left-active.png') no-repeat center #606060 !important;
+}
+::-webkit-scrollbar-button:active:horizontal:increment {
+background:url('../img/scrollbar/right-active.png') no-repeat center #606060 !important;
+}
+/* Scrollbar thumb */
+::-webkit-scrollbar-thumb {
+background-color:#CDCDCD;
+
+}
+::-webkit-scrollbar-thumb:hover {
+background-color:#A6A6A6;
+
+}
+::-webkit-scrollbar-thumb:active {
+background-color:#606060;
+
+}
+/* Some unstyled stuff */
+::-webkit-scrollbar-track {
+
+}
+::-webkit-scrollbar-track-piece {
+
+}
+
+::-webkit-scrollbar-corner {
+
+}
+::-webkit-resizer {
+
+} \ No newline at end of file
diff --git a/desktop/desktop.html b/desktop/desktop.html
new file mode 100644
index 0000000..fc01fda
--- /dev/null
+++ b/desktop/desktop.html
@@ -0,0 +1,1212 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<meta name="description" content="Online Windows 8 desktop" />
+<title>Desktop</title>
+<link rel="stylesheet" href="assets/stylesheets/html.css" />
+<link rel="stylesheet" id="desktopstyle" href="assets/stylesheets/desktop.css" />
+<link rel="shortcut icon" href="favicon.ico" />
+<!--[if gte IE 7]>
+<link rel="stylesheet" href="assets/stylesheets/ie.css" />
+<![endif]-->
+ <!--Stylesheet that styles the charms bar and the startbutton -->
+ <link rel="stylesheet" href="css/charms.css"/>
+ <link rel="stylesheet" href="css/scrollbar.css"/>
+
+
+ <!--Script that powers the charms bar-->
+ <script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+ </script>
+ <script>
+var settingscharms = 'document.getElementById('settingscharms')';
+</script>
+ <script>
+function glass() {
+ document.getElementById('desktopstyle').href='assets/stylesheets/desktop-glass.css';
+};
+function unglass() {
+ document.getElementById('desktopstyle').href='assets/stylesheets/desktop.css';
+};
+</script>
+</head>
+<body>
+<div class="abs" id="desktop">
+ <a class="abs icon" style="left:20px;top:20px;" href="#icon_dock_computer">
+ <img src="assets/images/icons/icon_32_computer.png" />
+ Computer
+ </a>
+ <a class="abs icon" style="left:20px;top:100px;" href="#icon_dock_drive">
+ <img src="assets/images/icons/icon_32_drive.png" />
+ Hard Drive
+ </a>
+ <a class="abs icon" style="left:20px;top:180px;" href="#icon_dock_disc">
+ <img src="assets/images/icons/icon_32_disc.png" />
+ Audio CD
+ </a>
+ <a class="abs icon" style="left:20px;top:260px;" href="#icon_dock_network">
+ <img src="assets/images/icons/icon_32_network.png" />
+ Network
+ </a>
+ <a class="abs icon" style="left:20px;top:340px;" href="#icon_dock_ie">
+ <img src="assets/images/icons/icon_32_ie.png" />
+ Internet Explorer
+ </a>
+ <div id="window_computer" class="abs window">
+ <div class="abs window_inner">
+ <div class="window_top">
+ <span class="float_left">
+ <img src="assets/images/icons/icon_16_computer.png" />
+ </span>
+ <span class="center">
+ Computer
+ </span>
+ <span class="float_right">
+ <a href="#" class="window_min"></a>
+ <a href="#" class="window_resize"></a>
+ <a href="#icon_dock_computer" class="window_close"></a>
+ </span>
+ </div>
+ <div class="abs window_content">
+ <div class="window_navbar">
+ <img src="assets/images/gui/back.png" onmouseover="this.src='assets/images/gui/back-hover.png';" onmouseout="this.src='assets/images/gui/back.png';" onmousedown="this.src='assets/images/gui/back-active.png';" onmouseup="this.src='assets/images/gui/back-hover.png';" class="back"/>
+ <img src="assets/images/gui/forward.png" onmouseover="this.src='assets/images/gui/forward-hover.png';" onmouseout="this.src='assets/images/gui/forward.png';" onmousedown="this.src='assets/images/gui/forward-active.png';" onmouseup="this.src='assets/images/gui/forward-hover.png';" class="forward"/>
+ <img src="assets/images/gui/dropdown.png" onmouseover="this.src='assets/images/gui/dropdown-hover.png';" onmouseout="this.src='assets/images/gui/dropdown.png';" onmousedown="this.src='assets/images/gui/dropdown-active.png';" onmouseup="this.src='assets/images/gui/dropdown-hover.png';" class="dropdownh"/>
+ <img src="assets/images/gui/up.png" class="up"/>
+ <fieldset class="addressform">
+ <input type="text" class="addressbar"/>
+ <img src="assets/images/gui/reload.png" class="reload"/>
+ <img src="assets/images/gui/dropdown.png" class="dropdown"/>
+ </fieldset>
+ <fieldset class="search">
+ <input type="text" class="searchbox"/>
+ <img src="assets/images/gui/search.png" class="go"/>
+ </fieldset>
+ </div>
+ <div class="window_aside">
+ You have no folders to browse :(. Please create one.
+ </div>
+ <div class="window_main">
+ <table class="data">
+ <tr class="sortdata">
+ <th class="shrink">
+ &nbsp;
+ </th>
+ <th>
+ Name
+ </th>
+ <th>
+ Date Modified
+ </th>
+ <th>
+ Date Created
+ </th>
+ <th>
+ Size
+ </th>
+ <th>
+ Kind
+ </th>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_drive.png" />
+ </td>
+ <td>
+ Hard Drive
+ </td>
+ <td>
+ Today
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ 200 GB
+ </td>
+ <td>
+ Volume
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_disc.png" />
+ </td>
+ <td>
+ Audio CD
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ 2.92 GB
+ </td>
+ <td>
+ Media
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_network.png" />
+ </td>
+ <td>
+ Network
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ LAN
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_folder_remote.png" />
+ </td>
+ <td>
+ Shared Project Files
+ </td>
+ <td>
+ Yesterday
+ </td>
+ <td>
+ 12/29/08
+ </td>
+ <td>
+ 524 MB
+ </td>
+ <td>
+ Folder
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_documents.png" />
+ </td>
+ <td>
+ Documents
+ </td>
+ <td>
+ Yesterday
+ </td>
+ <td>
+ 12/29/08
+ </td>
+ <td>
+ 524 MB
+ </td>
+ <td>
+ Folder
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_system.png" />
+ </td>
+ <td>
+ Preferences
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ System
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_trash.png" />
+ </td>
+ <td>
+ Trash
+ </td>
+ <td>
+ Today
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ Bin
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="abs window_bottom">
+ 7 items
+ </div>
+ </div>
+ <span class="abs ui-resizable-handle ui-resizable-se"></span>
+ </div>
+ <div id="window_drive" class="abs window">
+ <div class="abs window_inner">
+ <div class="window_top">
+ <span class="float_left">
+ <img src="assets/images/icons/icon_16_drive.png" />
+ </span>
+ <span class="center">
+ Hard Drive
+ </span>
+ <span class="float_right">
+ <a href="#" class="window_min"></a>
+ <a href="#" class="window_resize"></a>
+ <a href="#icon_dock_drive" class="window_close"></a>
+ </span>
+ </div>
+ <div class="abs window_content">
+ <div class="window_navbar">
+ <img src="assets/images/gui/back.png" onmouseover="this.src='assets/images/gui/back-hover.png';" onmouseout="this.src='assets/images/gui/back.png';" onmousedown="this.src='assets/images/gui/back-active.png';" onmouseup="this.src='assets/images/gui/back-hover.png';" class="back"/>
+ <img src="assets/images/gui/forward.png" onmouseover="this.src='assets/images/gui/forward-hover.png';" onmouseout="this.src='assets/images/gui/forward.png';" onmousedown="this.src='assets/images/gui/forward-active.png';" onmouseup="this.src='assets/images/gui/forward-hover.png';" class="forward"/>
+ <img src="assets/images/gui/dropdown.png" onmouseover="this.src='assets/images/gui/dropdown-hover.png';" onmouseout="this.src='assets/images/gui/dropdown.png';" onmousedown="this.src='assets/images/gui/dropdown-active.png';" onmouseup="this.src='assets/images/gui/dropdown-hover.png';" class="dropdownh"/>
+ <img src="assets/images/gui/up.png" class="up"/>
+ <fieldset class="addressform">
+ <input type="text" class="addressbar"/>
+ <img src="assets/images/gui/reload.png" class="reload"/>
+ <img src="assets/images/gui/dropdown.png" class="dropdown"/>
+ </fieldset>
+ <fieldset class="search">
+ <input type="text" class="searchbox"/>
+ <img src="assets/images/gui/search.png" class="go"/>
+ </fieldset>
+ </div>
+ <div class="window_aside">
+ Storage in use: 119.1 GB
+ </div>
+ <div class="window_main">
+ <table class="data">
+ <tr class="sortdata">
+ <th class="shrink">
+ &nbsp;
+ </th>
+ <th>
+ Name
+ </th>
+ <th>
+ Date Modified
+ </th>
+ <th>
+ Date Created
+ </th>
+ <th>
+ Size
+ </th>
+ <th>
+ Kind
+ </th>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_page.png" />
+ </td>
+ <td>
+ .DS_Store
+ </td>
+ <td>
+ Yesterday
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ 6 KB
+ </td>
+ <td>
+ Hidden
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_folder_home.png" />
+ </td>
+ <td>
+ Default User
+ </td>
+ <td>
+ Today
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ Folder
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_folder.png" />
+ </td>
+ <td>
+ Applications
+ </td>
+ <td>
+ Yesterday
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ Folder
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_folder.png" />
+ </td>
+ <td>
+ Developer
+ </td>
+ <td>
+ 12/29/08
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ Folder
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_folder.png" />
+ </td>
+ <td>
+ Library
+ </td>
+ <td>
+ 09/11/09
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ Folder
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_folder.png" />
+ </td>
+ <td>
+ System
+ </td>
+ <td>
+ Yesterday
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ &mdash;
+ </td>
+ <td>
+ Folder
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="abs window_bottom">
+ Free: 80.9 GB
+ </div>
+ </div>
+ <span class="abs ui-resizable-handle ui-resizable-se"></span>
+ </div>
+ <div id="window_disc" class="abs window">
+ <div class="abs window_inner">
+ <div class="window_top">
+ <span class="float_left">
+ <img src="assets/images/icons/icon_16_disc.png" />
+
+ </span>
+ <span class="center">
+ Audio CD - Title of Album
+ </span>
+ <span class="float_right">
+ <a href="#" class="window_min"></a>
+ <a href="#" class="window_resize"></a>
+ <a href="#icon_dock_disc" class="window_close"></a>
+ </span>
+ </div>
+ </div>
+ <div class="abs window_content">
+ <div class="window_navbar">
+ <img src="assets/images/gui/back.png" onmouseover="this.src='assets/images/gui/back-hover.png';" onmouseout="this.src='assets/images/gui/back.png';" onmousedown="this.src='assets/images/gui/back-active.png';" onmouseup="this.src='assets/images/gui/back-hover.png';" class="back"/>
+ <img src="assets/images/gui/forward.png" onmouseover="this.src='assets/images/gui/forward-hover.png';" onmouseout="this.src='assets/images/gui/forward.png';" onmousedown="this.src='assets/images/gui/forward-active.png';" onmouseup="this.src='assets/images/gui/forward-hover.png';" class="forward"/>
+ <img src="assets/images/gui/dropdown.png" onmouseover="this.src='assets/images/gui/dropdown-hover.png';" onmouseout="this.src='assets/images/gui/dropdown.png';" onmousedown="this.src='assets/images/gui/dropdown-active.png';" onmouseup="this.src='assets/images/gui/dropdown-hover.png';" class="dropdownh"/>
+ <img src="assets/images/gui/up.png" class="up"/>
+ <fieldset class="addressform">
+ <input type="text" class="addressbar"/>
+ <img src="assets/images/gui/reload.png" class="reload"/>
+ <img src="assets/images/gui/dropdown.png" class="dropdown"/>
+ </fieldset>
+ <fieldset class="search">
+ <input type="text" class="searchbox"/>
+ <img src="assets/images/gui/search.png" class="go"/>
+ </fieldset>
+ </div>
+ <div class="window_aside align_center">
+ <img src="assets/images/misc/album_cover.jpg" />
+ <br />
+ <em>Title of Album</em>
+ </div>
+ <div class="window_main">
+ <table class="data">
+ <tr class="sortdata">
+ <th class="shrink">
+ &nbsp;
+ </th>
+ <th class="shrink">
+ Track
+ </th>
+ <th>
+ Song Name
+ </th>
+ <th class="shrink">
+ Length
+ </th>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_music.png" />
+ </td>
+ <td class="align_center">
+ 01
+ </td>
+ <td>
+ Track One
+ </td>
+ <td class="align_right">
+ 3:50
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_music.png" />
+ </td>
+ <td class="align_center">
+ 02
+ </td>
+ <td>
+ Track Two
+ </td>
+ <td class="align_right">
+ 3:50
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_music.png" />
+ </td>
+ <td class="align_center">
+ 03
+ </td>
+ <td>
+ Track Three
+ </td>
+ <td class="align_right">
+ 4:02
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_music.png" />
+ </td>
+ <td class="align_center">
+ 04
+ </td>
+ <td>
+ Track Four
+ </td>
+ <td class="align_right">
+ 3:47
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_music.png" />
+ </td>
+ <td class="align_center">
+ 05
+ </td>
+ <td>
+ Track Five
+ </td>
+ <td class="align_right">
+ 4:38
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_music.png" />
+ </td>
+ <td class="align_center">
+ 06
+ </td>
+ <td>
+ Track Six
+ </td>
+ <td class="align_right">
+ 3:16
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_music.png" />
+ </td>
+ <td class="align_center">
+ 07
+ </td>
+ <td>
+ Track Seven
+ </td>
+ <td class="align_right">
+ 3:53
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_music.png" />
+ </td>
+ <td class="align_center">
+ 08
+ </td>
+ <td>
+ Track Eight
+ </td>
+ <td class="align_right">
+ 1:41
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_music.png" />
+ </td>
+ <td class="align_center">
+ 09
+ </td>
+ <td>
+ Track Nine
+ </td>
+ <td class="align_right">
+ 3:40
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_music.png" />
+ </td>
+ <td class="align_center">
+ 10
+ </td>
+ <td>
+ Track Ten
+ </td>
+ <td class="align_right">
+ 4:33
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_music.png" />
+ </td>
+ <td class="align_center">
+ 11
+ </td>
+ <td>
+ Track Eleven
+ </td>
+ <td class="align_right">
+ 3:49
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_music.png" />
+ </td>
+ <td class="align_center">
+ 12
+ </td>
+ <td>
+ Track Twelve
+ </td>
+ <td class="align_right">
+ 1:11
+ </td>
+ </tr>
+ <tr>
+ <td class="shrink">
+ <img src="assets/images/icons/icon_16_music.png" />
+ </td>
+ <td class="align_center">
+ 13
+ </td>
+ <td>
+ Track Thirteen
+ </td>
+ <td class="align_right">
+ 6:17
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="abs window_bottom">
+ Genre: Rock/Rap
+ </div>
+ <span class="abs ui-resizable-handle ui-resizable-se"></span>
+ </div>
+
+ </div>
+ <div id="window_network" class="abs window">
+ <div class="abs window_inner">
+ <div class="window_top">
+ <span class="float_left">
+ <img src="assets/images/icons/icon_16_network.png" />
+ </span>
+ <span class="center">
+ Network
+ </span>
+ <span class="float_right">
+ <a href="#" class="window_min"></a>
+ <a href="#" class="window_resize"></a>
+ <a href="#icon_dock_network" class="window_close"></a>
+ </span>
+ </div>
+ <div class="abs window_content">
+ <div class="window_navbar">
+ <img src="assets/images/gui/back.png" onmouseover="this.src='assets/images/gui/back-hover.png';" onmouseout="this.src='assets/images/gui/back.png';" onmousedown="this.src='assets/images/gui/back-active.png';" onmouseup="this.src='assets/images/gui/back-hover.png';" class="back"/>
+ <img src="assets/images/gui/forward.png" onmouseover="this.src='assets/images/gui/forward-hover.png';" onmouseout="this.src='assets/images/gui/forward.png';" onmousedown="this.src='assets/images/gui/forward-active.png';" onmouseup="this.src='assets/images/gui/forward-hover.png';" class="forward"/>
+ <img src="assets/images/gui/dropdown.png" onmouseover="this.src='assets/images/gui/dropdown-hover.png';" onmouseout="this.src='assets/images/gui/dropdown.png';" onmousedown="this.src='assets/images/gui/dropdown-active.png';" onmouseup="this.src='assets/images/gui/dropdown-hover.png';" class="dropdownh"/>
+ <img src="assets/images/gui/up.png" class="up"/>
+ <fieldset class="addressform">
+ <input type="text" class="addressbar"/>
+ <img src="assets/images/gui/reload.png" class="reload"/>
+ <img src="assets/images/gui/dropdown.png" class="dropdown"/>
+ </fieldset>
+ <fieldset class="search">
+ <input type="text" class="searchbox"/>
+ <img src="assets/images/gui/search.png" class="go"/>
+ </fieldset>
+ </div>
+ <div class="window_aside">
+ Local Network Resources
+ </div>
+ <div class="window_main">
+ <table class="data">
+ <tr class="sortdata">
+ <th class="shrink">
+ &nbsp;
+ </th>
+ <th>
+ Name
+ </th>
+ <th class="shrink">
+ Operating System
+ </th>
+ <th class="shrink">
+ Version
+ </th>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_server.png" />
+ </td>
+ <td>
+ Urban Terror - <em>Game Server</em>
+ </td>
+ <td>
+ Linux
+ </td>
+ <td>
+ Ubuntu
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_folder_remote.png" />
+ </td>
+ <td>
+ Shared Project Files
+ </td>
+ <td>
+ Linux
+ </td>
+ <td>
+ Red Hat
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_vpn.png" />
+ </td>
+ <td>
+ Remote Desktop VPN
+ </td>
+ <td>
+ Windows
+ </td>
+ <td>
+ XP
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_computer.png" />
+ </td>
+ <td>
+ Lance Dacy
+ </td>
+ <td>
+ Mac OS
+ </td>
+ <td>
+ 10.5
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_computer.png" />
+ </td>
+ <td>
+ Jingyi Wang
+ </td>
+ <td>
+ Mac OS
+ </td>
+ <td>
+ 10.6
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_computer.png" />
+ </td>
+ <td>
+ Matt Vasquez
+ </td>
+ <td>
+ Mac OS
+ </td>
+ <td>
+ 10.6
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_computer.png" />
+ </td>
+ <td>
+ David Brooks
+ </td>
+ <td>
+ Mac OS
+ </td>
+ <td>
+ 10.5
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_computer.png" />
+ </td>
+ <td>
+ Chad Meyer
+ </td>
+ <td>
+ Mac OS
+ </td>
+ <td>
+ 10.5
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_computer.png" />
+ </td>
+ <td>
+ Nathan Smith
+ </td>
+ <td>
+ Mac OS
+ </td>
+ <td>
+ 10.5
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_computer.png" />
+ </td>
+ <td>
+ Nick Floyd
+ </td>
+ <td>
+ Windows
+ </td>
+ <td>
+ 7
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_computer.png" />
+ </td>
+ <td>
+ Tim Hardy
+ </td>
+ <td>
+ Windows
+ </td>
+ <td>
+ Vista
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_computer.png" />
+ </td>
+ <td>
+ Mark Lindsley
+ </td>
+ <td>
+ Windows
+ </td>
+ <td>
+ Vista
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_computer.png" />
+ </td>
+ <td>
+ Jas Singh
+ </td>
+ <td>
+ Windows
+ </td>
+ <td>
+ Vista
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_computer.png" />
+ </td>
+ <td>
+ Scott Lowry
+ </td>
+ <td>
+ Windows
+ </td>
+ <td>
+ Vista
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_computer.png" />
+ </td>
+ <td>
+ Coly Gutekunst
+ </td>
+ <td>
+ Windows
+ </td>
+ <td>
+ Vista
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_computer.png" />
+ </td>
+ <td>
+ Bryan Mikaelian
+ </td>
+ <td>
+ Windows
+ </td>
+ <td>
+ Vista
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_computer.png" />
+ </td>
+ <td>
+ Peter Schott
+ </td>
+ <td>
+ Windows
+ </td>
+ <td>
+ Vista
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_computer.png" />
+ </td>
+ <td>
+ Jeff Rush
+ </td>
+ <td>
+ Windows
+ </td>
+ <td>
+ Vista
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_computer.png" />
+ </td>
+ <td>
+ Kelly Klein
+ </td>
+ <td>
+ Windows
+ </td>
+ <td>
+ Vista
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_computer.png" />
+ </td>
+ <td>
+ Jesse Dearing
+ </td>
+ <td>
+ Windows
+ </td>
+ <td>
+ Vista
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="assets/images/icons/icon_16_computer.png" />
+ </td>
+ <td>
+ Ryan Champ
+ </td>
+ <td>
+ Windows
+ </td>
+ <td>
+ Vista
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="abs window_bottom">
+ LAN: Corporate Intranet
+ </div>
+ </div>
+ <span class="abs ui-resizable-handle ui-resizable-se"></span>
+ </div>
+</div>
+ <div id="window_ie" class="abs window">
+ <div class="abs window_inner">
+ <div class="window_top topie">
+ <span class="float_right">
+ <a href="#" class="window_min"></a>
+ <a href="#" class="window_resize"></a>
+ <a href="#icon_dock_ie" class="window_close"></a>
+ </span><br/>
+ <div class="navbarie">
+ <span class="float_left">
+ <img src="assets/images/ie/backforward.png" id="navbuttons"/>
+ <fieldset id="ie">
+ <input type="text" class="addressbar"/>
+ <!--img src="assets/images/gui/go.png" class="iego"/-->
+ <img src="assets/images/gui/reload.png" class="reload"/>
+ </fieldset>
+ <div id="tabs">
+ <div id="tab">
+ <img src="assets/images/ie/favicon.png"/>
+ Bing
+ </div>
+ <div id="greytab">
+ </div>
+ </div>
+ </span>
+ <span class="float_right iebuttons">
+ <img src="assets/images/ie/home.png" onmouseover="this.src='assets/images/ie/home-hover.png';" onmouseout="this.src='assets/images/ie/home.png';" onmousedown="this.src='assets/images/ie/home-active.png';" onmouseup="this.src='assets/images/ie/home-hover.png';"/>
+ <img src="assets/images/ie/favourites.png" onmouseover="this.src='assets/images/ie/favourites-hover.png';" onmouseout="this.src='assets/images/ie/favourites.png';" onmousedown="this.src='assets/images/ie/favourites-active.png';" onmouseup="this.src='assets/images/ie/favourites-hover.png';"/>
+ <img src="assets/images/ie/settings.png" onmouseover="this.src='assets/images/ie/settings-hover.png';" onmouseout="this.src='assets/images/ie/settings.png';" onmousedown="this.src='assets/images/ie/settings-active.png';" onmouseup="this.src='assets/images/ie/settings-hover.png';"/>
+ </span>
+ </div>
+ </div>
+
+
+ <div class="abs window_content contie">
+ <div class="window_main ie">
+ <iframe src="http://bing.com" id="iframeie" height="100%" width="100%"></iframe>
+ </div>
+
+ </div>
+ </div>
+ <span class="abs ui-resizable-handle ui-resizable-se"></span>
+ </div>
+<div class="abs" id="bar_bottom">
+ <a class="float_right" href="#" id="show_desktop" title="Show Desktop">
+ </a>
+ <ul id="dock">
+ <li id="icon_dock_computer">
+ <a href="#window_computer">
+ <img src="assets/images/icons/icon_32_computer.png" />
+ </a>
+ </li>
+ <li id="icon_dock_drive">
+ <a href="#window_drive">
+ <img src="assets/images/icons/icon_32_drive.png" />
+
+ </a>
+ </li>
+ <li id="icon_dock_disc">
+ <a href="#window_disc">
+ <img src="assets/images/icons/icon_32_disc.png" />
+
+ </a>
+ </li>
+ <li id="icon_dock_network">
+ <a href="#window_network">
+ <img src="assets/images/icons/icon_32_network.png" />
+
+ </a>
+ </li>
+ <li id="icon_dock_ie">
+ <a href="#window_ie">
+ <img src="assets/images/icons/icon_32_ie.png" />
+
+ </a>
+ </li>
+ </ul>
+ <span class="float_right" id="clock"></span><br/>
+ <span class="float_right" id="weekday"></span>
+</div>
+ <!-- CHARMS BAR CODE -->
+ <div id="hoverarea" onmouseover="charms()" class="hotcorner">
+ </div>
+ <div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+ <img src="img/charmsbar/search.png" onmouseover="this.src='img/charmsbar/search-hover.png'" onmouseout="this.src='img/charmsbar/search.png'"/><br/>
+ <img src="img/charmsbar/share.png" onmouseover="this.src='img/charmsbar/share-hover.png'" onmouseout="this.src='img/charmsbar/share.png'"/><br/>
+ <a href="../start/index.html"><img src="img/charmsbar/start.png" onmouseover="this.src='img/charmsbar/start-hover.png'" onmouseout="this.src='img/charmsbar/start.png'"/></a><br/>
+ <img src="img/charmsbar/devices.png" onmouseover="this.src='img/charmsbar/devices-hover.png'" onmouseout="this.src='img/charmsbar/devices.png'"/><br/>
+ <img src="img/charmsbar/settings.png" onmouseover="this.src='img/charmsbar/settings-hover.png'" onmouseout="this.src='img/charmsbar/settings.png'" onclick="settingscharms.style.display='inline';"/><br/>
+ </div>
+ <div id="datetime">
+ <img src="img/charmsbar/network.png" id="iconnetwork" height="24px" width="24px"/>
+ <img src="img/charmsbar/battery.png" id="iconbattery"/>
+<span id="ctime"></span>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('ctime').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+window.onmouseover=clock;
+// End -->
+</script>
+ <div id="date">
+ <script>
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+ </div>
+ </div>
+ <div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+ </div>
+ <div id="starthoverarea" onmouseover="start()" class="hotcorner">
+ </div>
+ <div id="startbutton" onmouseout="destroystart()">
+ <a href="../start/index.html"><img src="img/charmsbar/startbutton.png"/></a>
+ </div>
+<div id="settingscharms">
+<img src="img/charmsbar/close.png" onclick="settingscharms.style.display='none';" class="closesettings"/>
+<div class="ch1">Settings</div>
+<div class="ch2d">Desktop</div>
+<div class="ch2">Themes</div>
+<form>
+<label for="opaque">Aero</label><input type="radio" id="opaque" name="theme" onclick="unglass();" checked="checked"/><br/>
+<label for="transparent">Aero Glass</label><input type="radio" id="transparent" name="theme" onclick="glass();"/>
+</form>
+<br/>
+<div class="ch2">Window color</div>
+</div>
+<script src="assets/javascripts/jquery.package.js"></script>
+<script src="assets/javascripts/jquery.desktop.js"></script>
+<script>
+JQD.init_desktop();
+</script>
+</body>
+</html> \ No newline at end of file
diff --git a/desktop/favicon.ico b/desktop/favicon.ico
new file mode 100644
index 0000000..6db63ee
--- /dev/null
+++ b/desktop/favicon.ico
Binary files differ
diff --git a/desktop/img/charmsbar/battery.png b/desktop/img/charmsbar/battery.png
new file mode 100644
index 0000000..07b1b4d
--- /dev/null
+++ b/desktop/img/charmsbar/battery.png
Binary files differ
diff --git a/desktop/img/charmsbar/close.png b/desktop/img/charmsbar/close.png
new file mode 100644
index 0000000..7173f58
--- /dev/null
+++ b/desktop/img/charmsbar/close.png
Binary files differ
diff --git a/desktop/img/charmsbar/devices-hover.png b/desktop/img/charmsbar/devices-hover.png
new file mode 100644
index 0000000..ad3fa8e
--- /dev/null
+++ b/desktop/img/charmsbar/devices-hover.png
Binary files differ
diff --git a/desktop/img/charmsbar/devices.png b/desktop/img/charmsbar/devices.png
new file mode 100644
index 0000000..1a81a90
--- /dev/null
+++ b/desktop/img/charmsbar/devices.png
Binary files differ
diff --git a/desktop/img/charmsbar/network.png b/desktop/img/charmsbar/network.png
new file mode 100644
index 0000000..5dc5ef7
--- /dev/null
+++ b/desktop/img/charmsbar/network.png
Binary files differ
diff --git a/desktop/img/charmsbar/search-hover.png b/desktop/img/charmsbar/search-hover.png
new file mode 100644
index 0000000..16a48f9
--- /dev/null
+++ b/desktop/img/charmsbar/search-hover.png
Binary files differ
diff --git a/desktop/img/charmsbar/search.png b/desktop/img/charmsbar/search.png
new file mode 100644
index 0000000..d5cea8e
--- /dev/null
+++ b/desktop/img/charmsbar/search.png
Binary files differ
diff --git a/desktop/img/charmsbar/settings-hover.png b/desktop/img/charmsbar/settings-hover.png
new file mode 100644
index 0000000..c8f9820
--- /dev/null
+++ b/desktop/img/charmsbar/settings-hover.png
Binary files differ
diff --git a/desktop/img/charmsbar/settings.png b/desktop/img/charmsbar/settings.png
new file mode 100644
index 0000000..b63fbc3
--- /dev/null
+++ b/desktop/img/charmsbar/settings.png
Binary files differ
diff --git a/desktop/img/charmsbar/share-hover.png b/desktop/img/charmsbar/share-hover.png
new file mode 100644
index 0000000..bd3a423
--- /dev/null
+++ b/desktop/img/charmsbar/share-hover.png
Binary files differ
diff --git a/desktop/img/charmsbar/share.png b/desktop/img/charmsbar/share.png
new file mode 100644
index 0000000..b743bf0
--- /dev/null
+++ b/desktop/img/charmsbar/share.png
Binary files differ
diff --git a/desktop/img/charmsbar/start-hover.png b/desktop/img/charmsbar/start-hover.png
new file mode 100644
index 0000000..6cc3144
--- /dev/null
+++ b/desktop/img/charmsbar/start-hover.png
Binary files differ
diff --git a/desktop/img/charmsbar/start.png b/desktop/img/charmsbar/start.png
new file mode 100644
index 0000000..6cf722c
--- /dev/null
+++ b/desktop/img/charmsbar/start.png
Binary files differ
diff --git a/desktop/img/charmsbar/startbutton.png b/desktop/img/charmsbar/startbutton.png
new file mode 100644
index 0000000..db9726d
--- /dev/null
+++ b/desktop/img/charmsbar/startbutton.png
Binary files differ
diff --git a/desktop/img/scrollbar/down-active.png b/desktop/img/scrollbar/down-active.png
new file mode 100644
index 0000000..1d9b24d
--- /dev/null
+++ b/desktop/img/scrollbar/down-active.png
Binary files differ
diff --git a/desktop/img/scrollbar/down.png b/desktop/img/scrollbar/down.png
new file mode 100644
index 0000000..1458e5d
--- /dev/null
+++ b/desktop/img/scrollbar/down.png
Binary files differ
diff --git a/desktop/img/scrollbar/left-active.png b/desktop/img/scrollbar/left-active.png
new file mode 100644
index 0000000..afb16af
--- /dev/null
+++ b/desktop/img/scrollbar/left-active.png
Binary files differ
diff --git a/desktop/img/scrollbar/left.png b/desktop/img/scrollbar/left.png
new file mode 100644
index 0000000..fd9e8ff
--- /dev/null
+++ b/desktop/img/scrollbar/left.png
Binary files differ
diff --git a/desktop/img/scrollbar/right-active.png b/desktop/img/scrollbar/right-active.png
new file mode 100644
index 0000000..a100658
--- /dev/null
+++ b/desktop/img/scrollbar/right-active.png
Binary files differ
diff --git a/desktop/img/scrollbar/right.png b/desktop/img/scrollbar/right.png
new file mode 100644
index 0000000..5f84df4
--- /dev/null
+++ b/desktop/img/scrollbar/right.png
Binary files differ
diff --git a/desktop/img/scrollbar/up-active.png b/desktop/img/scrollbar/up-active.png
new file mode 100644
index 0000000..5c4a660
--- /dev/null
+++ b/desktop/img/scrollbar/up-active.png
Binary files differ
diff --git a/desktop/img/scrollbar/up.png b/desktop/img/scrollbar/up.png
new file mode 100644
index 0000000..9b1d8f7
--- /dev/null
+++ b/desktop/img/scrollbar/up.png
Binary files differ
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000..d714aca
--- /dev/null
+++ b/favicon.ico
Binary files differ
diff --git a/favicon.png b/favicon.png
new file mode 100644
index 0000000..cf703ef
--- /dev/null
+++ b/favicon.png
Binary files differ
diff --git a/games/battleship/batt1.gif b/games/battleship/batt1.gif
new file mode 100644
index 0000000..eac0022
--- /dev/null
+++ b/games/battleship/batt1.gif
Binary files differ
diff --git a/games/battleship/batt10.gif b/games/battleship/batt10.gif
new file mode 100644
index 0000000..0629114
--- /dev/null
+++ b/games/battleship/batt10.gif
Binary files differ
diff --git a/games/battleship/batt100.gif b/games/battleship/batt100.gif
new file mode 100644
index 0000000..ccc7e60
--- /dev/null
+++ b/games/battleship/batt100.gif
Binary files differ
diff --git a/games/battleship/batt101.gif b/games/battleship/batt101.gif
new file mode 100644
index 0000000..9aed99e
--- /dev/null
+++ b/games/battleship/batt101.gif
Binary files differ
diff --git a/games/battleship/batt102.gif b/games/battleship/batt102.gif
new file mode 100644
index 0000000..791bda9
--- /dev/null
+++ b/games/battleship/batt102.gif
Binary files differ
diff --git a/games/battleship/batt103.gif b/games/battleship/batt103.gif
new file mode 100644
index 0000000..8dd900d
--- /dev/null
+++ b/games/battleship/batt103.gif
Binary files differ
diff --git a/games/battleship/batt2.gif b/games/battleship/batt2.gif
new file mode 100644
index 0000000..d825f39
--- /dev/null
+++ b/games/battleship/batt2.gif
Binary files differ
diff --git a/games/battleship/batt201.gif b/games/battleship/batt201.gif
new file mode 100644
index 0000000..65ae3a1
--- /dev/null
+++ b/games/battleship/batt201.gif
Binary files differ
diff --git a/games/battleship/batt202.gif b/games/battleship/batt202.gif
new file mode 100644
index 0000000..d44b498
--- /dev/null
+++ b/games/battleship/batt202.gif
Binary files differ
diff --git a/games/battleship/batt203.gif b/games/battleship/batt203.gif
new file mode 100644
index 0000000..9a61163
--- /dev/null
+++ b/games/battleship/batt203.gif
Binary files differ
diff --git a/games/battleship/batt204.gif b/games/battleship/batt204.gif
new file mode 100644
index 0000000..64e0fe7
--- /dev/null
+++ b/games/battleship/batt204.gif
Binary files differ
diff --git a/games/battleship/batt205.gif b/games/battleship/batt205.gif
new file mode 100644
index 0000000..c243903
--- /dev/null
+++ b/games/battleship/batt205.gif
Binary files differ
diff --git a/games/battleship/batt206.gif b/games/battleship/batt206.gif
new file mode 100644
index 0000000..bbbee53
--- /dev/null
+++ b/games/battleship/batt206.gif
Binary files differ
diff --git a/games/battleship/batt3.gif b/games/battleship/batt3.gif
new file mode 100644
index 0000000..28345e7
--- /dev/null
+++ b/games/battleship/batt3.gif
Binary files differ
diff --git a/games/battleship/batt4.gif b/games/battleship/batt4.gif
new file mode 100644
index 0000000..95aba94
--- /dev/null
+++ b/games/battleship/batt4.gif
Binary files differ
diff --git a/games/battleship/batt5.gif b/games/battleship/batt5.gif
new file mode 100644
index 0000000..1dc9b9f
--- /dev/null
+++ b/games/battleship/batt5.gif
Binary files differ
diff --git a/games/battleship/batt6.gif b/games/battleship/batt6.gif
new file mode 100644
index 0000000..21b951f
--- /dev/null
+++ b/games/battleship/batt6.gif
Binary files differ
diff --git a/games/battleship/batt7.gif b/games/battleship/batt7.gif
new file mode 100644
index 0000000..87d8d65
--- /dev/null
+++ b/games/battleship/batt7.gif
Binary files differ
diff --git a/games/battleship/batt8.gif b/games/battleship/batt8.gif
new file mode 100644
index 0000000..890c402
--- /dev/null
+++ b/games/battleship/batt8.gif
Binary files differ
diff --git a/games/battleship/batt9.gif b/games/battleship/batt9.gif
new file mode 100644
index 0000000..2060538
--- /dev/null
+++ b/games/battleship/batt9.gif
Binary files differ
diff --git a/games/battleship/common.css b/games/battleship/common.css
new file mode 100644
index 0000000..01fd8f5
--- /dev/null
+++ b/games/battleship/common.css
@@ -0,0 +1,171 @@
+body {
+ font-family:Segoe UI;
+ color:#FFFFFF;
+ margin:0px;
+ padding:0px;
+}
+img, a {
+ outline:none;
+ border:none;
+}
+#splashscreen {
+ margin:0;
+ position:fixed;
+ top:0;
+ width:100%;
+ height:100%;
+ color:#FFFFFF;
+ background-image:url('splashscreen.png');
+ background-position:center;
+ background-color:#336BCD;
+ background-repeat:no-repeat;
+ animation:splash 4s;
+ -ms-animation:splash 4s;
+ -webkit-animation:splash 4s;
+ -o-animation:splash 4s;
+ opacity:0;
+ z-index:-1;
+}
+@keyframes splash {
+ from {
+ z-index:999;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-webkit-keyframes splash {
+ from {
+ z-index:999;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-ms-keyframes splash {
+ from {
+ z-index:999;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+@-o-keyframes splash {
+ from {
+ z-index:999;
+ opacity: 1;
+ }
+ 66% {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ z-index:1;
+ display:none;
+ }
+}
+#hoverarea {
+ position:fixed;
+ top:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#bottomhoverarea {
+ position:fixed;
+ bottom:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#starthoverarea {
+ position:fixed;
+ bottom:0px;
+ left:0px;
+ width:15px;
+ height:15px;
+}
+#charmsbar {
+ display:none;
+ background-color:#111111;
+ position:fixed;
+ padding:5% 0;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 86px;
+
+}
+#settingscharms {
+ padding : 40px;
+ display:none;
+ background-color:#3B66AD;
+ position:fixed;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 345px;
+
+}
+#startbutton {
+ display:none;
+ position:fixed;
+ left:0px;
+ bottom:0px;
+}
+#iconnetwork {
+ position:absolute;
+ top:35px;
+ left:25px;
+}
+#iconbattery {
+ position:absolute;
+ bottom:35px;
+ left:32px;
+}
+#datetime {
+ display:none;
+ position:fixed;
+ left:50px;
+ bottom:50px;
+ width:490px;
+ height:139px;
+ background-color: rgba(17,17,17,1);
+}
+#time {
+ position:absolute;
+ left:70px;
+ bottom:19px;
+ font-family: Segoe UI Light;
+ font-size: 64pt;
+}
+#date {
+ margin-top:20px;
+ margin-right:20px;
+ float:right;
+ font-size:24pt;
+ font-family: Segoe UI;
+ color:#FFFFFF;
+}
+iframe {
+ position:relative;
+ border:none;
+} \ No newline at end of file
diff --git a/games/battleship/index.html b/games/battleship/index.html
new file mode 100644
index 0000000..46d32a8
--- /dev/null
+++ b/games/battleship/index.html
@@ -0,0 +1,401 @@
+<!DOCTYPE html>
+<html>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<title>Battleship</title>
+ <link rel="stylesheet" href="common.css"/>
+ <style>
+body {
+ background-color:#2854A0;
+ font-family:Segoe UI;
+ color:#FFFFFF;
+}
+#title {
+ font : normal 48pt Segoe UI Light;
+ padding:20px;
+ display:inline;
+}
+#back {
+ display:inline;
+ margin: 0 30px;
+}
+.intro {
+ font-size:10pt;
+ font-style:italic;
+}
+.heading {
+ font-size:20pt;
+ font-family:Segoe UI Light;
+}
+.title {
+ font-size:18pt;
+ background-color:navy;
+ color:white;
+ text-align:center;
+ font-family:Segoe UI Light;
+}
+table {
+margin-top:60px;
+}
+td {
+padding: 30px 50px 0px 0px;
+}
+</style>
+ <script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+</script>
+
+<script>
+<!-- Begin
+/* Information used to draw the ships
+*/
+var ship = [[[1,5], [1,2,5], [1,2,3,5], [1,2,3,4,5]], [[6,10], [6,7,10], [6,7,8,10], [6,7,8,9,10]]];
+
+/* Information used to draw sunk ships
+*/
+var dead = [[[201,203], [201,202,203], [201,202,202,203], [201,202,202,202,203]], [[204,206], [204,205,206], [204,205,205,206], [204,205,205,205,206]]];
+
+/* Information used to describe ships
+*/
+var shiptypes = [["Minesweeper",2,4],["Frigate",3,4],[ "Cruiser",4,2],[ "Battleship",5,1]];
+
+var gridx = 16, gridy = 16;
+var player = [], computer = [], playersships = [], computersships = [];
+var playerlives = 0, computerlives = 0, playflag=true, statusmsg="";
+
+/* Function to preload all the images, to prevent delays during play
+*/
+var preloaded = [];
+function imagePreload() {
+var i,ids = [1,2,3,4,5,6,7,8,9,10,100,101,102,103,201,202,203,204,205,206];
+window.status = "Preloading images...please wait";
+for (i=0;i<ids.length;++i) {
+var img = new Image, name = "batt"+ids[i]+".gif";
+img.src = name;
+preloaded[i] = img;
+}
+window.status = "";
+}
+
+/* Function to place the ships in the grid
+*/
+function setupPlayer(ispc) {
+var y,x;
+grid = [];
+for (y=0;y<gridx;++y) {
+grid[y] = [];
+for (x=0;x<gridx;++x)
+grid[y][x] = [100,-1,0];
+}
+
+var shipno = 0;
+var s;
+for (s=shiptypes.length-1;s>=0;--s) {
+var i;
+for (i=0;i<shiptypes[s][2];++i) {
+var d = Math.floor(Math.random()*2);
+var len = shiptypes[s][1], lx=gridx, ly=gridy, dx=0, dy=0;
+if ( d==0) {
+lx = gridx-len;
+dx=1;
+}
+else {
+ly = gridy-len;
+dy=1;
+}
+var x,y,ok;
+do {
+y = Math.floor(Math.random()*ly);
+x = Math.floor(Math.random()*lx);
+var j,cx=x,cy=y;
+ok = true;
+for (j=0;j<len;++j) {
+if (grid[cy][cx][0] < 100) {
+ok=false;
+break;
+}
+cx+=dx;
+cy+=dy;
+}
+} while(!ok);
+var j,cx=x,cy=y;
+for (j=0;j<len;++j) {
+grid[cy][cx][0] = ship[d][s][j];
+grid[cy][cx][1] = shipno;
+grid[cy][cx][2] = dead[d][s][j];
+cx+=dx;
+cy+=dy;
+}
+if (ispc) {
+computersships[shipno] = [s,shiptypes[s][1]];
+computerlives++;
+}
+else {
+playersships[shipno] = [s,shiptypes[s][1]];
+playerlives++;
+}
+shipno++;
+}
+}
+return grid;
+}
+
+/* Function to change an image shown on a grid
+*/
+function setImage(y,x,id,ispc) {
+if ( ispc ) {
+computer[y][x][0] = id;
+document.images["pc"+y+"_"+x].src = "batt"+id+".gif";
+}
+else {
+player[y][x][0] = id;
+document.images["ply"+y+"_"+x].src = "batt"+id+".gif";
+}
+}
+
+/* Function to insert HTML source for a grid
+*/
+function showGrid(ispc) {
+var y,x;
+for (y=0;y<gridy;++y) {
+for (x=0;x<gridx;++x) {
+if ( ispc )
+document.write ('<a href="javascript:gridClick('+y+','+x+');"><img name="pc'+y+'_'+x+'" src="batt100.gif" width=16 height=16></a>');
+else
+document.write ('<a href="javascript:void(0);"><img name="ply'+y+'_'+x+'" src="batt'+player[y][x][0]+'.gif" width=16 height=16></a>');
+}
+document.write('<br>');
+}
+}
+
+/* Handler for clicking on the grid
+*/
+function gridClick(y,x) {
+if ( playflag ) {
+if (computer[y][x][0] < 100) {
+setImage(y,x,103,true);
+var shipno = computer[y][x][1];
+if ( --computersships[shipno][1] == 0 ) {
+sinkShip(computer,shipno,true);
+alert("You sank my "+shiptypes[computersships[shipno][0]][0]+"!");
+updateStatus();
+if ( --computerlives == 0 ) {
+alert("You win! Press the Refresh button on\n"+
+"your browser to play another game.");
+playflag = false;
+}
+}
+if ( playflag ) computerMove();
+}
+else if (computer[y][x][0] == 100) {
+setImage(y,x,102,true);
+computerMove();
+}
+}
+}
+
+/* Function to make the computers move. Note that the computer does not cheat, oh no!
+*/
+function computerMove() {
+var x,y,pass;
+var sx,sy;
+var selected = false;
+
+/* Make two passes during 'shoot to kill' mode
+*/
+for (pass=0;pass<2;++pass) {
+for (y=0;y<gridy && !selected;++y) {
+for (x=0;x<gridx && !selected;++x) {
+/* Explosion shown at this position
+*/
+if (player[y][x][0]==103) {
+sx=x; sy=y;
+var nup=(y>0 && player[y-1][x][0]<=100);
+var ndn=(y<gridy-1 && player[y+1][x][0]<=100);
+var nlt=(x>0 && player[y][x-1][0]<=100);
+var nrt=(x<gridx-1 && player[y][x+1][0]<=100);
+if ( pass == 0 ) {
+/* On first pass look for two explosions
+in a row - next shot will be inline
+*/
+var yup=(y>0 && player[y-1][x][0]==103);
+var ydn=(y<gridy-1 && player[y+1][x][0]==103);
+var ylt=(x>0 && player[y][x-1][0]==103);
+var yrt=(x<gridx-1 && player[y][x+1][0]==103);
+if ( nlt && yrt) { sx = x-1; selected=true; }
+else if ( nrt && ylt) { sx = x+1; selected=true; }
+else if ( nup && ydn) { sy = y-1; selected=true; }
+else if ( ndn && yup) { sy = y+1; selected=true; }
+}
+else {
+/* Second pass look for single explosion -
+fire shots all around it
+*/
+if ( nlt ) { sx=x-1; selected=true; }
+else if ( nrt ) { sx=x+1; selected=true; }
+else if ( nup ) { sy=y-1; selected=true; }
+else if ( ndn ) { sy=y+1; selected=true; }
+}
+}
+}
+}
+}
+if ( !selected ) {
+/* Nothing found in 'shoot to kill' mode, so we're just taking
+potshots. Random shots are in a chequerboard pattern for
+maximum efficiency, and never twice in the same place
+*/
+do{
+sy = Math.floor(Math.random() * gridy);
+sx = Math.floor(Math.random() * gridx/2)*2+sy%2;
+} while( player[sy][sx][0]>100 );
+}
+if (player[sy][sx][0] < 100) {
+/* Hit something
+*/
+setImage(sy,sx,103,false);
+var shipno = player[sy][sx][1];
+if ( --playersships[shipno][1] == 0 ) {
+sinkShip(player,shipno,false);
+alert("I sank your "+shiptypes[playersships[shipno][0]][0]+"!");
+if ( --playerlives == 0 ) {
+knowYourEnemy();
+alert("I win! Press the Refresh button on\n"+
+"your browser to play another game.");
+playflag = false;
+}
+}
+}
+else {
+/* Missed
+*/
+setImage(sy,sx,102,false);
+}
+}
+
+/* When whole ship is hit, show it using changed graphics
+*/
+function sinkShip(grid,shipno,ispc) {
+var y,x;
+for (y=0;y<gridx;++y) {
+for (x=0;x<gridx;++x) {
+if ( grid[y][x][1] == shipno )
+if (ispc) setImage(y,x,computer[y][x][2],true);
+else setImage(y,x,player[y][x][2],false);
+}
+}
+}
+
+/* Show location of all the computers ships - when player has lost
+*/
+function knowYourEnemy() {
+var y,x;
+for (y=0;y<gridx;++y) {
+for (x=0;x<gridx;++x) {
+if ( computer[y][x][0] == 103 )
+setImage(y,x,computer[y][x][2],true);
+else if ( computer[y][x][0] < 100 )
+setImage(y,x,computer[y][x][0],true);
+}
+}
+}
+
+/* Show how many ships computer has left
+*/
+function updateStatus() {
+var f=false,i,s = "Computer has ";
+for (i=0;i<computersships.length;++i) {
+if (computersships[i][1] > 0) {
+if (f) s=s+", "; else f=true;
+s = s + shiptypes[computersships[i][0]][0];
+}
+}
+if (!f) s = s + "nothing left, thanks to you!";
+statusmsg = s;
+window.status = statusmsg;
+}
+function setStatus() {
+window.status = statusmsg;
+}
+/* Start the game!
+*/
+imagePreload();
+player = setupPlayer(false);
+computer = setupPlayer(true);
+document.write("<div align='center'><table><tr><td align='center'><span class='heading'>COMPUTER'S FLEET</span></td>"+
+"<td align='center'><span class='heading'>PLAYER'S FLEET</span></td></tr><tr><td>");
+showGrid(true);
+document.write("</td><td>");
+showGrid(false);
+document.write("</td></tr></table></div>");
+updateStatus();
+setInterval("setStatus();", 500);
+// End -->
+</script>
+
+<div id="splashscreen"></div>
+<div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="../../common/img/charmsbar/search.png" onmouseover="this.src='../../common/img/charmsbar/search-hover.png'" onmouseout="this.src='../../common/img/charmsbar/search.png'"/><br/>
+<img src="../../common/img/charmsbar/share.png" onmouseover="this.src='../../common/img/charmsbar/share-hover.png'" onmouseout="this.src='../../common/img/charmsbar/share.png'"/><br/>
+<a href="../../start/index.html"><img src="../../common/img/charmsbar/start.png" onmouseover="this.src='../../common/img/charmsbar/start-hover.png'" onmouseout="this.src='../../common/img/charmsbar/start.png'"/></a><br/>
+<img src="../../common/img/charmsbar/devices.png" onmouseover="this.src='../../common/img/charmsbar/devices-hover.png'" onmouseout="this.src='../../common/img/charmsbar/devices.png'"/><br/>
+<img src="../../common/img/charmsbar/settings.png" onmouseover="this.src='../../common/img/charmsbar/settings-hover.png'" onmouseout="this.src='../../common/img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+</div>
+<div id="datetime">
+<img src="../../common/img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="../../common/img/battery.png" id="iconbattery"/>
+<span id="time"></span>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+window.onload=clock;
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../../start/index.html"><img src="../../common/img/start.png"/></a>
+</div>
+</html> \ No newline at end of file
diff --git a/games/battleship/splashscreen.png b/games/battleship/splashscreen.png
new file mode 100644
index 0000000..6cd3608
--- /dev/null
+++ b/games/battleship/splashscreen.png
Binary files differ
diff --git a/games/pixelpaint/clear.gif b/games/pixelpaint/clear.gif
new file mode 100644
index 0000000..6a7990b
--- /dev/null
+++ b/games/pixelpaint/clear.gif
Binary files differ
diff --git a/games/pixelpaint/clear.png b/games/pixelpaint/clear.png
new file mode 100644
index 0000000..1d78e88
--- /dev/null
+++ b/games/pixelpaint/clear.png
Binary files differ
diff --git a/games/pixelpaint/code.js b/games/pixelpaint/code.js
new file mode 100644
index 0000000..a54613d
--- /dev/null
+++ b/games/pixelpaint/code.js
@@ -0,0 +1 @@
+function cLum(a){for(var b=0;b<a.length;b++)a[b]<=0.03928?a[b]=a[b]/12.92:a[b]=Math.pow((a[b]+0.055)/1.055,2.4);return 0.2126*a[0]+0.7152*a[1]+0.0722*a[2]}function cCon(a,b){var c=cLum([a[0]/255,a[1]/255,a[2]/255]),d=cLum([b[0]/255,b[1]/255,b[2]/255]),e=c>=d?(c+0.05)/(d+0.05):(d+0.05)/(c+0.05);return Math.round(e*100)/100}function cStrNorm(a){var b;{if(a.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/))return a;if(b=a.match(/^#([\da-fA-F]{2})([\da-fA-F]{2})([\da-fA-F]{2})$/)){b.shift();return"rgb("+$.map(b,function(a){return parseInt(a,16).toString()}).join(", ")+")"}if("getComputedStyle"in window){document.body.style.color=a;return cStrNorm(window.getComputedStyle(document.body,null).color)}if(document.body.currentStyle){document.body.style.color=a;return cStrNorm(document.body.currentStyle.color)}return a}}function cStrParse(a){var b=a.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);{if(b){b.shift();return $.map(b,function(a){return parseInt(a,10)})}return cStrParse(cStrNorm(a))}}$(document).ready(function(){var a=1,b=2,c=4,d=8,e=[c,d,a,b],f=a,g=16,h=32,i=32,j=h*g,k=i*g,l=new Array(i),m=$("#pixels"),n=$("#grid").get(0).getContext("2d"),o=$("#preview").get(0),p=o.getContext("2d"),q="localStorage"in window&&window.localStorage!==null,r="PixelPainter:",s="background-color",t=cStrParse("rgb(255,255,255)"),u=$("#color div"),v="rgb(0,0,0)";function w(a){v=cStrNorm(a);var b=cStrParse(v),c=cCon(b,t),d=$.map(b,function(a){var b=a.toString(16);return b.length==1?"0"+b:b});u.css(s,v);u.css("text-shadow",c<4||c>10?"none":"0 0 3px rgba(0, 0, 0, 0.7)");u.css("color",c>=4?"white":"black");u.text("#"+d.join("").toUpperCase())}function x(a,b){a.color=b;if(b===undefined){$(a).css(s,"");p.clearRect(a.i,a.j,1,1)}else{$(a).css(s,b);p.fillStyle=b;p.fillRect(a.i,a.j,1,1)}if(q){var c=r+a.i+":"+a.j;b===undefined?delete localStorage[c]:localStorage[c]=b}}function y(a,b,c,d){var e=[],f=l[b][a].get(0);e.push(f);while(e.length>0){f=e.shift();f.color===c&&x(f,d);var g=[[f.j-1,f.i],[f.j,f.i+1],[f.j+1,f.i],[f.j,f.i-1]];for(var h=0;h<4;h++){var f=(l[g[h][0]]||{})[g[h][1]];if(f!==undefined){f=f.get(0);if(f.color===c){x(f,d);e.push(f)}}}}}m.click(function(e){var g=e.target;f==a?x(g,v):f==b?y(g.i,g.j,g.color,v):f==c?x(g,undefined):f==d&&g.color!==undefined&&w(g.color)});for(var z=0;z<i;z++){l[z]=new Array(h);for(var A=0;A<h;A++){var B=document.createElement("div"),C=$(B).width(g).height(g).addClass("pixel");if(q){var D=localStorage[r+A.toString()+":"+z.toString()];if(typeof D=="string"){B.color=D;C.css(s,D);p.fillStyle=D;p.fillRect(A,z,1,1)}}l[z][A]=C;C.appendTo(m);B.i=A;B.j=z}}n.strokeStyle="rgba(100, 100, 100, 0.3)";for(var E=g;E<j;E+=g){n.beginPath();n.moveTo(E-0.5,0);n.lineTo(E-0.5,k);n.stroke();n.closePath()}for(var F=g;F<k;F+=g){n.beginPath();n.moveTo(0,F-0.5);n.lineTo(j,F-0.5);n.stroke();n.closePath()}$("#clear, #view_png, #tools li, #palette li").each(function(){var a=$(this);a.attr("title",a.text())});$("#clear").click(function(){$(".pixel").css("background","");p.clearRect(0,0,h,i);if(q)for(var a=0;a<i;a++)for(var b=0;b<h;b++){var c=r+b+":"+a;delete localStorage[c]}});$("#view_png").click(function(){document.location.href=o.toDataURL("image/png")});$("#tools").click(function(a){var b=$(a.target).closest("li");if(b.length>0){f=e[b.index()];$("#tools .selected").removeClass("selected");b.addClass("selected")}});$("#palette").click(function(a){var b=$(a.target).closest("li");b.length>0&&w(b.css(s))});$("#palette li").each(function(){var a=$(this);a.css("background",a.text())});$("#color").click(function(){var a=prompt("Please enter a color, e.g. red, #00FF00, rgb(0, 0, 255)",u.text());typeof a=="string"&&$.trim(a)!==""&&w(a)});w("HotPink")}) \ No newline at end of file
diff --git a/games/pixelpaint/css/charms.css b/games/pixelpaint/css/charms.css
new file mode 100644
index 0000000..cbd7cbf
--- /dev/null
+++ b/games/pixelpaint/css/charms.css
@@ -0,0 +1,167 @@
+body {
+font-family:Segoe UI;
+margin:0px;
+padding:0px;
+}
+img, a {
+ outline:none;
+ border:none;
+}
+#splashscreen {
+margin:0;
+position:fixed;
+top:0;
+width:100%;
+height:100%;
+color:#FFFFFF;
+background-image:url('../splashscreen.png');
+background-position:center;
+background-color:#414141;
+background-repeat:no-repeat;
+animation:splash 4s;
+-ms-animation:splash 4s;
+-webkit-animation:splash 4s;
+-o-animation:splash 4s;
+opacity:0;
+z-index:-1;
+}
+@keyframes splash {
+from {
+z-index:999;
+opacity: 1;
+}
+66% {
+opacity: 1;
+}
+to {
+opacity:0;
+z-index:1;
+display:none;
+}
+}
+@-webkit-keyframes splash {
+from {
+z-index:999;
+opacity: 1;
+}
+66% {
+opacity: 1;
+}
+to {
+opacity:0;
+z-index:1;
+display:none;
+}
+}
+@-ms-keyframes splash {
+from {
+z-index:999;
+opacity: 1;
+}
+66% {
+opacity: 1;
+}
+to {
+opacity:0;
+z-index:1;
+display:none;
+}
+}
+@-o-keyframes splash {
+from {
+z-index:999;
+opacity: 1;
+}
+66% {
+opacity: 1;
+}
+to {
+opacity:0;
+z-index:1;
+display:none;
+}
+}
+#hoverarea {
+ position:fixed;
+ top:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#bottomhoverarea {
+ position:fixed;
+ bottom:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#starthoverarea {
+ position:fixed;
+ bottom:0px;
+ left:0px;
+ width:15px;
+ height:15px;
+}
+#charmsbar {
+ display:none;
+ background-color:#111111;
+ position:fixed;
+ padding:5% 0;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 86px;
+
+}
+#settingscharms {
+ padding : 40px;
+ display:none;
+ background-color:#3B66AD;
+ position:fixed;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 345px;
+
+}
+#startbutton {
+ display:none;
+ position:fixed;
+ left:0px;
+ bottom:0px;
+}
+#iconnetwork {
+ position:absolute;
+ top:35px;
+ left:25px;
+}
+#iconbattery {
+ position:absolute;
+ bottom:35px;
+ left:32px;
+}
+#datetime {
+ display:none;
+ position:fixed;
+ left:50px;
+ bottom:50px;
+ width:490px;
+ height:139px;
+ background-color: rgba(17,17,17,1);
+}
+#time {
+ position:absolute;
+ left:70px;
+ bottom:19px;
+ font-family: Segoe UI Light;
+ font-size: 64pt;
+ color:#FFFFFF;
+}
+#date {
+ margin-top:20px;
+ margin-right:20px;
+ float:right;
+ font-size:24pt;
+ font-family: Segoe UI;
+ color:#FFFFFF;
+}
diff --git a/games/pixelpaint/eraser.gif b/games/pixelpaint/eraser.gif
new file mode 100644
index 0000000..010432a
--- /dev/null
+++ b/games/pixelpaint/eraser.gif
Binary files differ
diff --git a/games/pixelpaint/eraser.png b/games/pixelpaint/eraser.png
new file mode 100644
index 0000000..9e95b4a
--- /dev/null
+++ b/games/pixelpaint/eraser.png
Binary files differ
diff --git a/games/pixelpaint/fill.gif b/games/pixelpaint/fill.gif
new file mode 100644
index 0000000..694c45a
--- /dev/null
+++ b/games/pixelpaint/fill.gif
Binary files differ
diff --git a/games/pixelpaint/fill.png b/games/pixelpaint/fill.png
new file mode 100644
index 0000000..bb98e93
--- /dev/null
+++ b/games/pixelpaint/fill.png
Binary files differ
diff --git a/games/pixelpaint/index.html b/games/pixelpaint/index.html
new file mode 100644
index 0000000..79976a5
--- /dev/null
+++ b/games/pixelpaint/index.html
@@ -0,0 +1,99 @@
+<!DOCTYPE>
+<html>
+<head>
+<title>Pixel Paint</title>
+<meta charset="utf-8">
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<link rel="stylesheet" href="style.css">
+<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js"></script>
+<script src="code.js"></script>
+<!--[if IE 9]><style>#palette ul { height: 255px; }</style><![endif]-->
+ <!--Stylesheet that styles the charms bar and the startbutton -->
+ <link rel="stylesheet" href="css/charms.css"/>
+
+ <!--Script that powers the charms bar-->
+ <script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+ </script>
+</head>
+<body>
+<div id="splashscreen"></div>
+<div id=container>
+<div id=canvas>
+<canvas id=grid width=512 height=512></canvas>
+<div id=pixels></div>
+</div>
+<div id=toolbar>
+<div id=toolbar_top><ul><li id=clear style="background-image: url(clear.png)"><span>Clear Canvas</span></li><li><canvas id=preview width=32 height=32 title=Preview></canvas></li><li id=view_png style="background-image: url(view.png)"><span>View PNG</span></li></ul></div>
+<div id=tools><ul><li style="background-image: url(eraser.png)"><span>Eraser</span></li><li style="background-image: url(picker.png)"><span>Color Picker</span></li><li class=selected style="background-image: url(pencil.png)"><span>Pen</span></li><li style="background-image: url(fill.png)"><span>Fill</span></li></ul></div>
+<div id=palette><ul><li>Black</li><li>White</li><li>Red</li><li>Green</li><li>Blue</li><li>Yellow</li><li>Grey</li><li>Purple</li></ul></div>
+</div>
+</div>
+</div>
+ <div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="../../common/img/charmsbar/search.png" onmouseover="this.src='../../common/img/charmsbar/search-hover.png'" onmouseout="this.src='../../common/img/charmsbar/search.png'"/><br/>
+<img src="../../common/img/charmsbar/share.png" onmouseover="this.src='../../common/img/charmsbar/share-hover.png'" onmouseout="this.src='../../common/img/charmsbar/share.png'"/><br/>
+<a href="../../start/index.html"><img src="../../common/img/charmsbar/start.png" onmouseover="this.src='../../common/img/charmsbar/start-hover.png'" onmouseout="this.src='../../common/img/charmsbar/start.png'"/></a><br/>
+<img src="../../common/img/charmsbar/devices.png" onmouseover="this.src='../../common/img/charmsbar/devices-hover.png'" onmouseout="this.src='../../common/img/charmsbar/devices.png'"/><br/>
+<img src="../../common/img/charmsbar/settings.png" onmouseover="this.src='../../common/img/charmsbar/settings-hover.png'" onmouseout="this.src='../../common/img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+</div>
+<div id="datetime">
+<img src="../../common/img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="../../common/img/battery.png" id="iconbattery"/>
+<span id="time"></span>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+window.onload=clock;
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../../start/index.html"><img src="../../common/img/start.png"/></a>
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/games/pixelpaint/pen.gif b/games/pixelpaint/pen.gif
new file mode 100644
index 0000000..1278ea2
--- /dev/null
+++ b/games/pixelpaint/pen.gif
Binary files differ
diff --git a/games/pixelpaint/pencil.png b/games/pixelpaint/pencil.png
new file mode 100644
index 0000000..7f1f339
--- /dev/null
+++ b/games/pixelpaint/pencil.png
Binary files differ
diff --git a/games/pixelpaint/picker.gif b/games/pixelpaint/picker.gif
new file mode 100644
index 0000000..14cf8d3
--- /dev/null
+++ b/games/pixelpaint/picker.gif
Binary files differ
diff --git a/games/pixelpaint/picker.png b/games/pixelpaint/picker.png
new file mode 100644
index 0000000..5bb7c22
--- /dev/null
+++ b/games/pixelpaint/picker.png
Binary files differ
diff --git a/games/pixelpaint/splashscreen.png b/games/pixelpaint/splashscreen.png
new file mode 100644
index 0000000..2fa2a9e
--- /dev/null
+++ b/games/pixelpaint/splashscreen.png
Binary files differ
diff --git a/games/pixelpaint/style.css b/games/pixelpaint/style.css
new file mode 100644
index 0000000..37238c8
--- /dev/null
+++ b/games/pixelpaint/style.css
@@ -0,0 +1,37 @@
+body{margin:0;padding:0;font-family:Segoe UI;background:#404040}
+div,ul,li{margin:0;padding:0}
+#canvas,#pixels{width:512px;height:512px}
+#grid,#pixels{position:absolute;top:7px;left:7px}
+.pixel:hover,#palette li:hover,#tools li:hover,#palette li:hover,#clear:hover,#view_png:hover,#color:hover{cursor:pointer}
+#pixels,#toolbar{-webkit-box-shadow:0 0 5px black;-moz-box-shadow:0 0 5px black;box-shadow:0 0 5px black}
+#canvas,#toolbar_top,#tools,#palette,#color{border-left:solid 1px #DDD;border-right:solid 1px #999}
+#toolbar,#color{}
+#canvas,#toolbar_top,#tools,#palette,#color{background:#696969}
+#toolbar_top,#tools,#palette{padding:5px 5px 0}
+#tools *,#palette *{-webkit-user-select:none}
+#tools ul,#palette ul,#toolbar_top ul{width:120px;padding:5px 5px 0;background:#101010;list-style:none;}
+#tools li,#clear,#view_png{background-repeat:no-repeat;background-position:center center}
+#tools li span,#palette li,#clear span,#view_png span{overflow:hidden;text-indent:-9999px}
+#clear span,#view_png span{width:32px;height:32px;display:inline-block}
+#tools li span,#clear span,#view_png span{background-color:rgba(60,60,60,0.6);}
+#toolbar_top li,#tools li{}
+#toolbar_top,#color div{}
+#container{width:700px;margin:50px auto;position:relative}
+#canvas{padding:7px;position:absolute;top:0;left:0;border-top:solid 1px #DDD;border-bottom:solid 1px #999;}
+#grid{background:white}
+.pixel{display:inline-block;float:left}
+#toolbar{position:absolute;top:0;right:0}
+#toolbar_top{padding:5px 5px 0;border-top:solid 1px #DDD;}
+#toolbar_top ul{height:44px}
+#toolbar_top li{width:32px;height:32px;margin:4px;float:left}
+#preview{background:white!important}
+#tools{}
+#tools ul{height:125px}
+#tools li{width:50px;height:50px;margin:5px;display:inline-block}
+#tools span{width:50px;height:50px;display:inline-block}
+#tools .selected{background-color:#0000FF;}
+#palette{background:-webkit-gradient(linear,left top,left bottom,from(#666),to(#555));background:-moz-linear-gradient(top,#666,#555)}
+#palette ul{height:245px}
+#palette li{margin:5px;width:40px;height:40px;border:solid 5px white;display:inline-block;-webkit-border-radius:25px;-moz-border-radius:25px;border-radius:25px;-webkit-box-shadow:0 0 10px black,inset 0 0 5px rgba(0,0,0,0.7);-moz-box-shadow:0 0 10px black,inset 0 0 5px rgba(0,0,0,0.7);box-shadow:0 0 10px black,inset 0 0 5px rgba(0,0,0,0.7)}
+#color{padding:5px;border-bottom:solid 1px #999;background:-webkit-gradient(linear,left top,left bottom,from(#555),to(#444));background:-moz-linear-gradient(top,#555,#444)}
+#color div{width:130px;padding:10px 0 12px;font-family:Segoe UI Light;font-size:14pt;text-transform:uppercase;text-align:center;color:white} \ No newline at end of file
diff --git a/games/pixelpaint/view.gif b/games/pixelpaint/view.gif
new file mode 100644
index 0000000..cd2950c
--- /dev/null
+++ b/games/pixelpaint/view.gif
Binary files differ
diff --git a/games/pixelpaint/view.png b/games/pixelpaint/view.png
new file mode 100644
index 0000000..892a60b
--- /dev/null
+++ b/games/pixelpaint/view.png
Binary files differ
diff --git a/games/symbolistic/click.mp3 b/games/symbolistic/click.mp3
new file mode 100644
index 0000000..53949c0
--- /dev/null
+++ b/games/symbolistic/click.mp3
Binary files differ
diff --git a/games/symbolistic/css/charms.css b/games/symbolistic/css/charms.css
new file mode 100644
index 0000000..f73490b
--- /dev/null
+++ b/games/symbolistic/css/charms.css
@@ -0,0 +1,166 @@
+body {
+font-family:Segoe UI;
+margin:0px;
+padding:0px;
+}
+img, a {
+ outline:none;
+ border:none;
+}
+#splashscreen {
+margin:0;
+position:fixed;
+width:100%;
+height:100%;
+color:#FFFFFF;
+background-image:url('../splashscreen.png');
+background-position:center;
+background-color:#1E7FE8;
+background-repeat:no-repeat;
+animation:splash 4s;
+-ms-animation:splash 4s;
+-webkit-animation:splash 4s;
+-o-animation:splash 4s;
+opacity:0;
+z-index:-1;
+}
+@keyframes splash {
+from {
+z-index:999;
+opacity: 1;
+}
+66% {
+opacity: 1;
+}
+to {
+opacity:0;
+z-index:1;
+display:none;
+}
+}
+@-webkit-keyframes splash {
+from {
+z-index:999;
+opacity: 1;
+}
+66% {
+opacity: 1;
+}
+to {
+opacity:0;
+z-index:1;
+display:none;
+}
+}
+@-ms-keyframes splash {
+from {
+z-index:999;
+opacity: 1;
+}
+66% {
+opacity: 1;
+}
+to {
+opacity:0;
+z-index:1;
+display:none;
+}
+}
+@-o-keyframes splash {
+from {
+z-index:999;
+opacity: 1;
+}
+66% {
+opacity: 1;
+}
+to {
+opacity:0;
+z-index:1;
+display:none;
+}
+}
+#hoverarea {
+ position:fixed;
+ top:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#bottomhoverarea {
+ position:fixed;
+ bottom:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#starthoverarea {
+ position:fixed;
+ bottom:0px;
+ left:0px;
+ width:15px;
+ height:15px;
+}
+#charmsbar {
+ display:none;
+ background-color:#111111;
+ position:fixed;
+ padding:5% 0;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 86px;
+
+}
+#settingscharms {
+ padding : 40px;
+ display:none;
+ background-color:#3B66AD;
+ position:fixed;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 345px;
+
+}
+#startbutton {
+ display:none;
+ position:fixed;
+ left:0px;
+ bottom:0px;
+}
+#iconnetwork {
+ position:absolute;
+ top:35px;
+ left:25px;
+}
+#iconbattery {
+ position:absolute;
+ bottom:35px;
+ left:32px;
+}
+#datetime {
+ display:none;
+ position:fixed;
+ left:50px;
+ bottom:50px;
+ width:490px;
+ height:139px;
+ background-color: rgba(17,17,17,1);
+}
+#time {
+ position:absolute;
+ left:70px;
+ bottom:19px;
+ font-family: Segoe UI Light;
+ font-size: 64pt;
+ color:#FFFFFF;
+}
+#date {
+ margin-top:20px;
+ margin-right:20px;
+ float:right;
+ font-size:24pt;
+ font-family: Segoe UI;
+ color:#FFFFFF;
+}
diff --git a/games/symbolistic/index.html b/games/symbolistic/index.html
new file mode 100644
index 0000000..4b8882a
--- /dev/null
+++ b/games/symbolistic/index.html
@@ -0,0 +1,141 @@
+<!doctype html>
+<html manifest="manifest.appcache">
+<head>
+ <meta charset=utf-8>
+ <title>Symbolistic!</title>
+
+
+ <meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1">
+ <meta name=viewport content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
+
+
+ <meta name=apple-mobile-web-app-capable content=yes />
+
+
+
+ <link rel=stylesheet href='style.css'>
+ <!--Stylesheet that styles the charms bar and the startbutton -->
+ <link rel="stylesheet" href="css/charms.css"/>
+
+ <!--Script that powers the charms bar-->
+ <script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+ document.getElementById('time').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+ document.getElementById('time').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+ </script>
+
+</head>
+
+<body class=s-w>
+<div id="splashscreen"></div>
+ <div id=start class=modal>
+ <p class=sp></p>
+ <div>
+ <h1>Symbolistic!</h1>
+ <p>Match the shape by selecting correct symbols.<br/>
+ Each correct match gives you points and additional time, so be quick!</p>
+ <button id=bS>Click to Start</button>
+ </div>
+ </div>
+ <div id=gameover class=modal>
+ <p class=sp></p>
+ <div>
+
+ <h2>You symbolistic, you! \o/</h2>
+ <p>
+ In total, you got <strong><span id=goPoints></span> points</strong> and survived for <strong><span id=goSeconds></span> seconds</strong>!
+ <span id=goHigh><br/>Your highest score so far has been <span id=goHighPoints></span> points</span>
+ </p>
+ <button id=bA>Play again</button>
+ or <a id=twBrag href="" target=_blank>Twitter brag »</a>
+ </div>
+ </div>
+
+ <header>
+ <span>Look for</span><span id=answer>?</span>
+ <span>Time</span><span id=stopwatch>00:00:00</span>
+ <span>Points</span><span id=points>00</span>
+ </header>
+ <div id=tiles>
+ </div>
+
+ <footer>
+
+ </footer>
+
+
+
+ <audio id=sClick>
+ <source src="click.mp3">
+ </audio>
+
+ <!-- CHARMS BAR CODE -->
+<div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="../../common/img/charmsbar/search.png" onmouseover="this.src='../../common/img/charmsbar/search-hover.png'" onmouseout="this.src='../../common/img/charmsbar/search.png'"/><br/>
+<img src="../../common/img/charmsbar/share.png" onmouseover="this.src='../../common/img/charmsbar/share-hover.png'" onmouseout="this.src='../../common/img/charmsbar/share.png'"/><br/>
+<a href="../../start/index.html"><img src="../../common/img/charmsbar/start.png" onmouseover="this.src='../../common/img/charmsbar/start-hover.png'" onmouseout="this.src='../../common/img/charmsbar/start.png'"/></a><br/>
+<img src="../../common/img/charmsbar/devices.png" onmouseover="this.src='../../common/img/charmsbar/devices-hover.png'" onmouseout="this.src='../../common/img/charmsbar/devices.png'"/><br/>
+<img src="../../common/img/charmsbar/settings.png" onmouseover="this.src='../../common/img/charmsbar/settings-hover.png'" onmouseout="this.src='../../common/img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+</div>
+<div id="datetime">
+<img src="../../common/img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="../../common/img/battery.png" id="iconbattery"/>
+<span id="time"></span>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+window.onload=clock;
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../../start/index.html"><img src="../../common/img/start.png"/></a>
+</div>
+ <script defer src='script.js'></script>
+
+</body>
+</html> \ No newline at end of file
diff --git a/games/symbolistic/script.js b/games/symbolistic/script.js
new file mode 100644
index 0000000..c16a73f
--- /dev/null
+++ b/games/symbolistic/script.js
Binary files differ
diff --git a/games/symbolistic/splashscreen.png b/games/symbolistic/splashscreen.png
new file mode 100644
index 0000000..3766e0d
--- /dev/null
+++ b/games/symbolistic/splashscreen.png
Binary files differ
diff --git a/games/symbolistic/style.css b/games/symbolistic/style.css
new file mode 100644
index 0000000..3183633
--- /dev/null
+++ b/games/symbolistic/style.css
@@ -0,0 +1 @@
+html,body{margin:0;padding:0;height:100%}body{margin:0;font:20px "Segoe UI",Arial,sans-serif;font-weight:400;background:#fff;color:#212121}a,a:visited{color:#1e7fe8}a:hover{color:#196ec4}header,#tiles,h1,h2,h3{text-shadow:0 -1px 1px rgba(0,0,0,0.1)}.modal{display:block;visibility:hidden;position:fixed;top:0;left:0;width:100%;height:100%;min-height:100%;text-align:center;background-color:rgba(0,0,0,0.7);z-index:4}.modal .sp{height:50%;font-size:0}.modal div{padding:10px 0 30px 0;margin:0 auto;background:#fff;-moz-box-shadow:0 1px 20px rgba(0,0,0,0.7);-webkit-box-shadow:0 1px 20px rgba(0,0,0,0.7);box-shadow:0 1px 20px rgba(0,0,0,0.7)}.modal h3{margin:20px 0}.modal button{display:block;margin:20px auto}.s-w #start{visibility:visible;-webkit-animation-name:fadein;-webkit-animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;-moz-animation-name:fadein;-moz-animation-duration:.3s;-moz-animation-timing-function:ease-in-out}.s-p #start{-webkit-animation-name:fadeout;-webkit-animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;-moz-animation-name:fadeout;-moz-animation-duration:.3s;-moz-animation-timing-function:ease-in-out}@-webkit-keyframes fadeout{0%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}@-moz-keyframes fadeout{0%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}.s-go #gameover{visibility:visible;-webkit-animation-name:fadein;-webkit-animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;-moz-animation-name:fadein;-moz-animation-duration:.3s;-moz-animation-timing-function:ease-in-out}#gameover a{text-decoration:none;color:rgba(0,0,0,0.5)}@-webkit-keyframes fadein{0%{opacity:0}100%{opacity:1}}@-moz-keyframes fadein{0%{opacity:0}100%{opacity:1}}#goHigh{display:none;color:rgba(0,0,0,0.5)}.localstorage #goHigh{display:inline!important}#notification{padding:10px 0;text-align:center;background:#ffc000;z-index:999}#notification span{font-weight:bold}header{text-align:center;font-size:70px}header span{position:relative;top:-30px;margin-right:10px;font-size:20px}#answer,#answer span,#stopwatch,#points{top:0;font-size:70px!important}#answer{display:inline-block;position:relative;top:-0.1em;width:1em;height:1em;margin-right:30px;margin-left:-5px}#answer span{position:absolute;text-align:center;width:inherit}#stopwatch{margin-right:30px;letter-spacing:-0.06em;-webkit-transition:color .5s ease-in-out;-moz-transition:color .5s ease-in-out;-o-transition:color .5s ease-in-out;-ms-transition:color .5s ease-in-out;transition:color .5s ease-in-out}#stopwatch.moar{color:#36bc09!important}#stopwatch.low,#stopwatch.gameover{color:#aa0d0d}.s-p #stopwatch.low{-webkit-animation-name:pulsate;-webkit-animation-duration:1s;-webkit-animation-timing-function:ease-in-out;-webkit-animation-iteration-count:infinite;-moz-animation-name:pulsate;-moz-animation-duration:1s;-moz-animation-timing-function:ease-in-out;-moz-animation-iteration-count:infinite}@-webkit-keyframes pulsate{0%{opacity:1}50%{opacity:.3}100%{opacity:1}}@-moz-keyframes pulsate{0%{opacity:1}50%{opacity:.3}100%{opacity:1}}#points{letter-spacing:-0.06em;text-shadow:0 -1px 1px rgba(0,0,0,0.1)}#tiles{margin:20px auto;font-size:70px;text-align:center;-webkit-text-size-adjust:none;-webkit-user-select:none;-webkit-touch-callout:none}#tiles:before,.tiles:after{content:"";display:table}#tiles:after{clear:both}#tiles.correct .selected{background:#53cc43}button{display:inline-block;width:150px;height:150px;padding:0;margin:5px;color:#fff;font:1em "Open Sans",Arial,sans-serif;text-align:center;line-height:150px;text-shadow:0 -1px 1px rgba(0,0,0,0.1);background:#1e7fe8;border:0;border:0 solid white;-webkit-transition:background .2s ease-in-out;-moz-transition:background .2s ease-in-out;-o-transition:background .2s ease-in-out;-ms-transition:background .2s ease-in-out;transition:background .2s ease-in-out;cursor:pointer}button:hover{background:#196ec4}button:active,button.selected{line-height:145px;font-size:90%;background:#6aaaf0;border:5px solid #fff;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}footer{margin:70px 10px 10px 10px;padding:10px;text-align:center;font-size:16px;color:rgba(0,0,0,0.4);text-shadow:0 1px 1px rgba(255,255,255,0.2);border-top:1px dashed rgba(0,0,0,0.1)} \ No newline at end of file
diff --git a/iframeapps/agent8ball.html b/iframeapps/agent8ball.html
new file mode 100644
index 0000000..270cdda
--- /dev/null
+++ b/iframeapps/agent8ball.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<head>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<title>Agent 008 Ball</title>
+<link rel="stylesheet" href="common.css"/>
+<link rel="shortcut icon" href="http://agent8ball.com/favicon.ico"/>
+<script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+</script>
+<script>
+function splash() {
+setTimeout(function() {document.getElementById('splashscreen').style.animation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.oAnimation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.webkitAnimation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.msAnimation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.display='none';},2000);
+}
+</script>
+<style>
+#splashscreen {
+ background-color:#1E2018;
+ background-image:url(splashscreens/agent8ball.png);
+ background-position:center;
+ background-repeat:no-repeat;
+}
+</style>
+</head>
+<body onmouseover="clock();" onload="splash()">
+<div id="splashscreen"></div>
+<iframe src="http://agent8ball.com" width="100%" height="100%"></iframe>
+<div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="img/charmsbar/search.png" onmouseover="this.src='img/charmsbar/search-hover.png'" onmouseout="this.src='img/charmsbar/search.png'"/><br/>
+<img src="img/charmsbar/share.png" onmouseover="this.src='img/charmsbar/share-hover.png'" onmouseout="this.src='img/charmsbar/share.png'"/><br/>
+<a href="../start/index.html"><img src="img/charmsbar/start.png" onmouseover="this.src='img/charmsbar/start-hover.png'" onmouseout="this.src='img/charmsbar/start.png'"/></a><br/>
+<img src="img/charmsbar/devices.png" onmouseover="this.src='img/charmsbar/devices-hover.png'" onmouseout="this.src='img/charmsbar/devices.png'"/><br/>
+<img src="img/charmsbar/settings.png" onmouseover="this.src='img/charmsbar/settings-hover.png'" onmouseout="this.src='img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+</div>
+<div id="datetime">
+<img src="img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="img/battery.png" id="iconbattery"/>
+<span id="time"></span>
+<script>
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../start/index.html"><img src="img/start.png"/></a>
+</div>
diff --git a/iframeapps/angrybirds.html b/iframeapps/angrybirds.html
new file mode 100644
index 0000000..b423b89
--- /dev/null
+++ b/iframeapps/angrybirds.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<head>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<title>Angry Birds</title>
+<link rel="stylesheet" href="common.css"/>
+<link rel="shortcut icon" href="http://chrome.angrybirds.com/favicon.ico"/>
+<script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+</script>
+<script>
+function splash() {
+setTimeout(function() {document.getElementById('splashscreen').style.animation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.oAnimation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.webkitAnimation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.msAnimation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.display='none';},2000);
+}
+</script>
+<style>
+#splashscreen {
+ background-color:#F62233;
+ background-image:url(splashscreens/angrybirds.png);
+ background-position:center;
+ background-repeat:no-repeat;
+}
+</style>
+</head>
+<body onmouseover="clock();" onload="splash()">
+<div id="splashscreen"></div>
+<iframe src="http://chrome.angrybirds.com" width="100%" height="100%"></iframe>
+<div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="img/charmsbar/search.png" onmouseover="this.src='img/charmsbar/search-hover.png'" onmouseout="this.src='img/charmsbar/search.png'"/><br/>
+<img src="img/charmsbar/share.png" onmouseover="this.src='img/charmsbar/share-hover.png'" onmouseout="this.src='img/charmsbar/share.png'"/><br/>
+<a href="../start/index.html"><img src="img/charmsbar/start.png" onmouseover="this.src='img/charmsbar/start-hover.png'" onmouseout="this.src='img/charmsbar/start.png'"/></a><br/>
+<img src="img/charmsbar/devices.png" onmouseover="this.src='img/charmsbar/devices-hover.png'" onmouseout="this.src='img/charmsbar/devices.png'"/><br/>
+<img src="img/charmsbar/settings.png" onmouseover="this.src='img/charmsbar/settings-hover.png'" onmouseout="this.src='img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+</div>
+<div id="datetime">
+<img src="img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="img/battery.png" id="iconbattery"/>
+<span id="time"></span>
+<script>
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../start/index.html"><img src="img/start.png"/></a>
+</div>
diff --git a/iframeapps/camera.html b/iframeapps/camera.html
new file mode 100644
index 0000000..9fdc6d5
--- /dev/null
+++ b/iframeapps/camera.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<head>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<title>Camera</title>
+<link rel="shortcut icon" href="favicons/camera.ico"/>
+<link rel="stylesheet" href="common.css"/>
+<script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+</script>
+<script>
+function splash() {
+setTimeout(function() {document.getElementById('splashscreen').style.animation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.oAnimation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.webkitAnimation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.msAnimation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.display='none';},2000);
+}
+</script>
+<style>
+#splashscreen {
+ background-color:#8F0098;
+ background-image:url(splashscreens/camera.png);
+ background-position:center;
+ background-repeat:no-repeat;
+}
+</style>
+</head>
+<body onload="splash()">
+<div id="splashscreen"></div>
+<iframe src="http://link6155.kodingen.com/Metroshoot" width="100%" height="100%"></iframe>
+<div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="img/charmsbar/search.png" onmouseover="this.src='img/charmsbar/search-hover.png'" onmouseout="this.src='img/charmsbar/search.png'"/><br/>
+<img src="img/charmsbar/share.png" onmouseover="this.src='img/charmsbar/share-hover.png'" onmouseout="this.src='img/charmsbar/share.png'"/><br/>
+<a href="../start/index.html"><img src="img/charmsbar/start.png" onmouseover="this.src='img/charmsbar/start-hover.png'" onmouseout="this.src='img/charmsbar/start.png'"/></a><br/>
+<img src="img/charmsbar/devices.png" onmouseover="this.src='img/charmsbar/devices-hover.png'" onmouseout="this.src='img/charmsbar/devices.png'"/><br/>
+<img src="img/charmsbar/settings.png" onmouseover="this.src='img/charmsbar/settings-hover.png'" onmouseout="this.src='img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+</div>
+<div id="datetime">
+<img src="img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="img/battery.png" id="iconbattery"/>
+<span id="time"></span>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+window.onmouseover=clock;
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../start/index.html"><img src="img/start.png"/></a>
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/iframeapps/captainforever.html b/iframeapps/captainforever.html
new file mode 100644
index 0000000..9fa9fc5
--- /dev/null
+++ b/iframeapps/captainforever.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<title>[CPF: CAPTFOREVER.BAT]</title>
+<link rel="stylesheet" href="common.css"/>
+<script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+</script>
+<script>
+function splash() {
+setTimeout(function() {document.getElementById('splashscreen').style.animation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.oAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.webkitAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.msAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.display='none';},2000);
+}
+</script>
+<style>
+#splashscreen {
+ background-image:url(splashscreens/captainforever.png);
+ background-position:center;
+ background-repeat:no-repeat;
+ background-color:#010101;
+}
+</style>
+</head>
+<body onload="splash()">
+<div id="splashscreen">
+</div>
+<iframe src="http://www.captainforever.com/captainforever.php" width="100%" height="100%"></iframe>
+<div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="img/charmsbar/search.png" onmouseover="this.src='img/charmsbar/search-hover.png'" onmouseout="this.src='img/charmsbar/search.png'"/><br/>
+<img src="img/charmsbar/share.png" onmouseover="this.src='img/charmsbar/share-hover.png'" onmouseout="this.src='img/charmsbar/share.png'"/><br/>
+<a href="../start/index.html"><img src="img/charmsbar/start.png" onmouseover="this.src='img/charmsbar/start-hover.png'" onmouseout="this.src='img/charmsbar/start.png'"/></a><br/>
+<img src="img/charmsbar/devices.png" onmouseover="this.src='img/charmsbar/devices-hover.png'" onmouseout="this.src='img/charmsbar/devices.png'"/><br/>
+<img src="img/charmsbar/settings.png" onmouseover="this.src='img/charmsbar/settings-hover.png'" onmouseout="this.src='img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+</div>
+<div id="datetime">
+<img src="img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="img/battery.png" id="iconbattery"/>
+<span id="time"></span>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+window.onmouseover=clock;
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../start/index.html"><img src="img/start.png"/></a>
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/iframeapps/common.css b/iframeapps/common.css
new file mode 100644
index 0000000..2a11d2f
--- /dev/null
+++ b/iframeapps/common.css
@@ -0,0 +1,150 @@
+body {
+ font-family:Segoe UI;
+ color:#FFFFFF;
+ margin:0px;
+ padding:0px;
+}
+iframe {
+ display:block;
+ border:none;
+ position:absolute;
+ z-index:-1;
+}
+object {
+ position:absolute;
+ z-index:-1;
+}
+img, a {
+ outline:none;
+ border:none;
+}
+@keyframes splash {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ display:none;
+ }
+}
+@-ms-keyframes splash {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ display:none;
+ }
+}
+@-webkit-keyframes splash {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ display:none;
+ }
+}
+@-o-keyframes splash {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity:0;
+ display:none;
+ }
+}
+#splashscreen {
+ position:fixed;
+ width:100%;
+ height:100%;
+ color:#FFFFFF;
+ z-index:1;
+}
+#hoverarea {
+ position:fixed;
+ top:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+ z-index:999;
+}
+#bottomhoverarea {
+ position:fixed;
+ bottom:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+ z-index:999;
+}
+#starthoverarea {
+ position:fixed;
+ bottom:0px;
+ left:0px;
+ width:15px;
+ height:15px;
+ z-index:999;
+}
+#charmsbar {
+ display:none;
+ background-color:#111111;
+ position:fixed;
+ padding:5% 0;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 86px;
+
+}
+#settingscharms {
+ padding : 40px;
+ display:none;
+ background-color:#3B66AD;
+ position:fixed;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 345px;
+
+}
+#startbutton {
+ display:none;
+ position:fixed;
+ left:0px;
+ bottom:0px;
+ z-index:999;
+}
+#iconnetwork {
+ position:absolute;
+ top:35px;
+ left:25px;
+}
+#iconbattery {
+ position:absolute;
+ bottom:35px;
+ left:32px;
+}
+#datetime {
+ display:none;
+ position:fixed;
+ left:50px;
+ bottom:50px;
+ width:490px;
+ height:139px;
+ background-color: rgba(17,17,17,1);
+}
+#time {
+ position:absolute;
+ left:70px;
+ bottom:19px;
+ font-family: Segoe UI Light;
+ font-size: 64pt;
+}
+#date {
+ margin-top:20px;
+ margin-right:20px;
+ float:right;
+ font-size:24pt;
+ font-family: Segoe UI;
+ color:#FFFFFF;
+}
diff --git a/iframeapps/contrejour.html b/iframeapps/contrejour.html
new file mode 100644
index 0000000..e76391a
--- /dev/null
+++ b/iframeapps/contrejour.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<head>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<title>Contre Jour</title>
+<link rel="stylesheet" href="common.css"/>
+<link rel="shortcut icon" href="http://contrejour.ie/favicon.ico"/>
+<script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+</script>
+<script>
+function splash() {
+setTimeout(function() {document.getElementById('splashscreen').style.animation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.oAnimation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.webkitAnimation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.msAnimation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.display='none';},2000);
+}
+</script>
+<style>
+#splashscreen {
+ background-color:#000000;
+ background-image:url(splashscreens/contrejour.png);
+ background-position:center;
+ background-repeat:no-repeat;
+}
+</style>
+</head>
+<body onmouseover="clock();" onload="splash()">
+<div id="splashscreen"></div>
+<iframe src="http://contrejour.ie" width="100%" height="100%"></iframe>
+<div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="img/charmsbar/search.png" onmouseover="this.src='img/charmsbar/search-hover.png'" onmouseout="this.src='img/charmsbar/search.png'"/><br/>
+<img src="img/charmsbar/share.png" onmouseover="this.src='img/charmsbar/share-hover.png'" onmouseout="this.src='img/charmsbar/share.png'"/><br/>
+<a href="../start/index.html"><img src="img/charmsbar/start.png" onmouseover="this.src='img/charmsbar/start-hover.png'" onmouseout="this.src='img/charmsbar/start.png'"/></a><br/>
+<img src="img/charmsbar/devices.png" onmouseover="this.src='img/charmsbar/devices-hover.png'" onmouseout="this.src='img/charmsbar/devices.png'"/><br/>
+<img src="img/charmsbar/settings.png" onmouseover="this.src='img/charmsbar/settings-hover.png'" onmouseout="this.src='img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+</div>
+<div id="datetime">
+<img src="img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="img/battery.png" id="iconbattery"/>
+<span id="time"></span>
+<script>
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../start/index.html"><img src="img/start.png"/></a>
+</div>
diff --git a/iframeapps/cuttherope.html b/iframeapps/cuttherope.html
new file mode 100644
index 0000000..32b36b8
--- /dev/null
+++ b/iframeapps/cuttherope.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<title>Cut the Rope</title>
+<link rel="stylesheet" href="common.css"/>
+<link rel="shortcut icon" href="http://cuttherope.ie/favicon.ico"/>
+<script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+</script>
+<script>
+function splash() {
+setTimeout(function() {document.getElementById('splashscreen').style.animation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.oAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.webkitAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.msAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.display='none';},2000);
+}
+</script>
+<style>
+#splashscreen {
+ background-color:#FFFFFF;
+ background-image:url(splashscreens/cuttherope.png);
+ background-position:center;
+ background-repeat:no-repeat;
+}
+</style>
+</head>
+<body onmouseover="clock()" onload="splash()">
+<div id="splashscreen"></div>
+<iframe src="http://cuttherope.ie" width="100%" height="100%"></iframe>
+<div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="img/charmsbar/search.png" onmouseover="this.src='img/charmsbar/search-hover.png'" onmouseout="this.src='img/charmsbar/search.png'"/><br/>
+<img src="img/charmsbar/share.png" onmouseover="this.src='img/charmsbar/share-hover.png'" onmouseout="this.src='img/charmsbar/share.png'"/><br/>
+<a href="../start/index.html"><img src="img/charmsbar/start.png" onmouseover="this.src='img/charmsbar/start-hover.png'" onmouseout="this.src='img/charmsbar/start.png'"/></a><br/>
+<img src="img/charmsbar/devices.png" onmouseover="this.src='img/charmsbar/devices-hover.png'" onmouseout="this.src='img/charmsbar/devices.png'"/><br/>
+<img src="img/charmsbar/settings.png" onmouseover="this.src='img/charmsbar/settings-hover.png'" onmouseout="this.src='img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+</div>
+<div id="datetime">
+<img src="img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="img/battery.png" id="iconbattery"/>
+<span id="time"></span>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../start/index.html"><img src="img/start.png"/></a>
+</div>
+</body>
+</html>
+
diff --git a/iframeapps/fruitninja.html b/iframeapps/fruitninja.html
new file mode 100644
index 0000000..7ae8ed5
--- /dev/null
+++ b/iframeapps/fruitninja.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<title>Fruit Ninja</title>
+<link rel="stylesheet" href="common.css"/>
+<script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+</script>
+<script>
+function splash() {
+setTimeout(function() {document.getElementById('splashscreen').style.animation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.oAnimation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.webkitAnimation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.msAnimation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.display='none';},2000);
+}
+</script>
+<style>
+#splashscreen {
+ background-color:#FFFFFF;
+ background-image:url(splashscreens/fruitninja.png);
+ background-position:center;
+ background-repeat:no-repeat;
+}
+</style>
+</head>
+<body onload="splash()">
+<div id="splashscreen"></div>
+<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
+ codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
+ WIDTH="100%" HEIGHT="100%" id="animation/transparency" ALIGN="">
+ <PARAM NAME=movie VALUE="http://static.onlinegamesbazar.com/ogb_9387Fruit_Slasher_s.swf"> <PARAM NAME=quality VALUE=high><PARAM NAME=wmode VALUE=opaque> <PARAM NAME=bgcolor VALUE=#000000>
+ <EMBED src="http://static.onlinegamesbazar.com/ogb_9387Fruit_Slasher_s.swf" wmode="opaque" quality=high bgcolor=#000000 WIDTH="100%" HEIGHT="100%" NAME="transparency" ALIGN=""
+ TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED></OBJECT>
+<div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="img/charmsbar/search.png" onmouseover="this.src='img/charmsbar/search-hover.png'" onmouseout="this.src='img/charmsbar/search.png'"/><br/>
+<img src="img/charmsbar/share.png" onmouseover="this.src='img/charmsbar/share-hover.png'" onmouseout="this.src='img/charmsbar/share.png'"/><br/>
+<a href="../start/index.html"><img src="img/charmsbar/start.png" onmouseover="this.src='img/charmsbar/start-hover.png'" onmouseout="this.src='img/charmsbar/start.png'"/></a><br/>
+<img src="img/charmsbar/devices.png" onmouseover="this.src='img/charmsbar/devices-hover.png'" onmouseout="this.src='img/charmsbar/devices.png'"/><br/>
+<img src="img/charmsbar/settings.png" onmouseover="this.src='img/charmsbar/settings-hover.png'" onmouseout="this.src='img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+</div>
+<div id="datetime">
+<img src="img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="img/battery.png" id="iconbattery"/>
+<span id="time"></span>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+window.onmouseover=clock;
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../start/index.html"><img src="img/start.png"/></a>
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/iframeapps/grooveshark.html b/iframeapps/grooveshark.html
new file mode 100644
index 0000000..34be6f7
--- /dev/null
+++ b/iframeapps/grooveshark.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<title>Grooveshark</title>
+<link rel="shortcut icon" href="http://grooveshark.com/favicon.ico"/>
+<link rel="stylesheet" href="common.css"/>
+<script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+</script>
+<script>
+function splash() {
+setTimeout(function() {document.getElementById('splashscreen').style.animation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.oAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.webkitAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.msAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.display='none';},2000);
+}
+</script>
+<style>
+#splashscreen {
+ background-image:url(splashscreens/grooveshark.png);
+ background-position:center;
+ background-repeat:no-repeat;
+ background-color:#F78500;
+}
+</style>
+</head>
+<body onload="splash()">
+<div id="splashscreen">
+</div>
+<iframe src="http://html5.grooveshark.com" width="100%" height="100%"></iframe>
+<div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="img/charmsbar/search.png" onmouseover="this.src='img/charmsbar/search-hover.png'" onmouseout="this.src='img/charmsbar/search.png'"/><br/>
+<img src="img/charmsbar/share.png" onmouseover="this.src='img/charmsbar/share-hover.png'" onmouseout="this.src='img/charmsbar/share.png'"/><br/>
+<a href="../start/index.html"><img src="img/charmsbar/start.png" onmouseover="this.src='img/charmsbar/start-hover.png'" onmouseout="this.src='img/charmsbar/start.png'"/></a><br/>
+<img src="img/charmsbar/devices.png" onmouseover="this.src='img/charmsbar/devices-hover.png'" onmouseout="this.src='img/charmsbar/devices.png'"/><br/>
+<img src="img/charmsbar/settings.png" onmouseover="this.src='img/charmsbar/settings-hover.png'" onmouseout="this.src='img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+</div>
+<div id="datetime">
+<img src="img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="img/battery.png" id="iconbattery"/>
+<span id="time"></span>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+window.onmouseover=clock;
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../start/index.html"><img src="img/start.png"/></a>
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/iframeapps/img/battery.png b/iframeapps/img/battery.png
new file mode 100644
index 0000000..07b1b4d
--- /dev/null
+++ b/iframeapps/img/battery.png
Binary files differ
diff --git a/iframeapps/img/charmsbar/devices-hover.png b/iframeapps/img/charmsbar/devices-hover.png
new file mode 100644
index 0000000..ad3fa8e
--- /dev/null
+++ b/iframeapps/img/charmsbar/devices-hover.png
Binary files differ
diff --git a/iframeapps/img/charmsbar/devices.png b/iframeapps/img/charmsbar/devices.png
new file mode 100644
index 0000000..1a81a90
--- /dev/null
+++ b/iframeapps/img/charmsbar/devices.png
Binary files differ
diff --git a/iframeapps/img/charmsbar/search-hover.png b/iframeapps/img/charmsbar/search-hover.png
new file mode 100644
index 0000000..16a48f9
--- /dev/null
+++ b/iframeapps/img/charmsbar/search-hover.png
Binary files differ
diff --git a/iframeapps/img/charmsbar/search.png b/iframeapps/img/charmsbar/search.png
new file mode 100644
index 0000000..d5cea8e
--- /dev/null
+++ b/iframeapps/img/charmsbar/search.png
Binary files differ
diff --git a/iframeapps/img/charmsbar/settings-hover.png b/iframeapps/img/charmsbar/settings-hover.png
new file mode 100644
index 0000000..c8f9820
--- /dev/null
+++ b/iframeapps/img/charmsbar/settings-hover.png
Binary files differ
diff --git a/iframeapps/img/charmsbar/settings.png b/iframeapps/img/charmsbar/settings.png
new file mode 100644
index 0000000..b63fbc3
--- /dev/null
+++ b/iframeapps/img/charmsbar/settings.png
Binary files differ
diff --git a/iframeapps/img/charmsbar/share-hover.png b/iframeapps/img/charmsbar/share-hover.png
new file mode 100644
index 0000000..bd3a423
--- /dev/null
+++ b/iframeapps/img/charmsbar/share-hover.png
Binary files differ
diff --git a/iframeapps/img/charmsbar/share.png b/iframeapps/img/charmsbar/share.png
new file mode 100644
index 0000000..b743bf0
--- /dev/null
+++ b/iframeapps/img/charmsbar/share.png
Binary files differ
diff --git a/iframeapps/img/charmsbar/start-hover.png b/iframeapps/img/charmsbar/start-hover.png
new file mode 100644
index 0000000..6cc3144
--- /dev/null
+++ b/iframeapps/img/charmsbar/start-hover.png
Binary files differ
diff --git a/iframeapps/img/charmsbar/start.png b/iframeapps/img/charmsbar/start.png
new file mode 100644
index 0000000..6cf722c
--- /dev/null
+++ b/iframeapps/img/charmsbar/start.png
Binary files differ
diff --git a/iframeapps/img/network.png b/iframeapps/img/network.png
new file mode 100644
index 0000000..5dc5ef7
--- /dev/null
+++ b/iframeapps/img/network.png
Binary files differ
diff --git a/iframeapps/img/start.png b/iframeapps/img/start.png
new file mode 100644
index 0000000..db9726d
--- /dev/null
+++ b/iframeapps/img/start.png
Binary files differ
diff --git a/iframeapps/img/startbutton.png b/iframeapps/img/startbutton.png
new file mode 100644
index 0000000..db9726d
--- /dev/null
+++ b/iframeapps/img/startbutton.png
Binary files differ
diff --git a/iframeapps/instazine.html b/iframeapps/instazine.html
new file mode 100644
index 0000000..5dc731e
--- /dev/null
+++ b/iframeapps/instazine.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<title>Instazine</title>
+<link rel="stylesheet" href="common.css"/>
+<script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+</script>
+<script>
+function splash() {
+setTimeout(function() {document.getElementById('splashscreen').style.animation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.oAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.webkitAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.msAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.display='none';},2000);
+}
+</script>
+<style>
+#splashscreen {
+ background-color:#517EA4;
+ background-image:url(splashscreens/instazine.png);
+ background-position:center;
+ background-repeat:no-repeat;
+}
+</style>
+</head>
+<body onload="splash()">
+<div id="splashscreen">
+</div>
+<iframe src="http://link6155.koding.com/instazine/" width="100%" height="100%"></iframe>
+<div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="img/charmsbar/search.png" onmouseover="this.src='img/charmsbar/search-hover.png'" onmouseout="this.src='img/charmsbar/search.png'"/><br/>
+<img src="img/charmsbar/share.png" onmouseover="this.src='img/charmsbar/share-hover.png'" onmouseout="this.src='img/charmsbar/share.png'"/><br/>
+<a href="../start/index.html"><img src="img/charmsbar/start.png" onmouseover="this.src='img/charmsbar/start-hover.png'" onmouseout="this.src='img/charmsbar/start.png'"/></a><br/>
+<img src="img/charmsbar/devices.png" onmouseover="this.src='img/charmsbar/devices-hover.png'" onmouseout="this.src='img/charmsbar/devices.png'"/><br/>
+<img src="img/charmsbar/settings.png" onmouseover="this.src='img/charmsbar/settings-hover.png'" onmouseout="this.src='img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+</div>
+<div id="datetime">
+<img src="img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="img/battery.png" id="iconbattery"/>
+<span id="time"></span>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+window.onmouseover=clock;
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../start/index.html"><img src="img/start.png"/></a>
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/iframeapps/metroie.html b/iframeapps/metroie.html
new file mode 100644
index 0000000..54e1b4d
--- /dev/null
+++ b/iframeapps/metroie.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<title>Internet Explorer</title>
+<link rel="shortcut icon" href="favicons/metroie.ico"/>
+<link rel="stylesheet" href="common.css"/>
+<script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+</script>
+<script>
+function splash() {
+setTimeout(function() {document.getElementById('splashscreen').style.animation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.oAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.webkitAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.msAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.display='none';},2000);
+}
+</script>
+<style>
+#splashscreen {
+ background-image:url(splashscreens/metroie.png);
+ background-position:center;
+ background-repeat:no-repeat;
+ background-color:#2672EC;
+}
+</style>
+</head>
+<body onload="splash()">
+<div id="splashscreen">
+</div>
+<iframe src="http://metroie.prplninja.kodingen.com/" width="100%" height="100%"></iframe>
+<div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="img/charmsbar/search.png" onmouseover="this.src='img/charmsbar/search-hover.png'" onmouseout="this.src='img/charmsbar/search.png'"/><br/>
+<img src="img/charmsbar/share.png" onmouseover="this.src='img/charmsbar/share-hover.png'" onmouseout="this.src='img/charmsbar/share.png'"/><br/>
+<a href="../start/index.html"><img src="img/charmsbar/start.png" onmouseover="this.src='img/charmsbar/start-hover.png'" onmouseout="this.src='img/charmsbar/start.png'"/></a><br/>
+<img src="img/charmsbar/devices.png" onmouseover="this.src='img/charmsbar/devices-hover.png'" onmouseout="this.src='img/charmsbar/devices.png'"/><br/>
+<img src="img/charmsbar/settings.png" onmouseover="this.src='img/charmsbar/settings-hover.png'" onmouseout="this.src='img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+</div>
+<div id="datetime">
+<img src="img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="img/battery.png" id="iconbattery"/>
+<span id="time"></span>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+window.onmouseover=clock;
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../start/index.html"><img src="img/start.png"/></a>
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/iframeapps/pacman.html b/iframeapps/pacman.html
new file mode 100644
index 0000000..5158482
--- /dev/null
+++ b/iframeapps/pacman.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<title>Pacman</title>
+<link rel="stylesheet" href="common.css"/>
+<link rel="shortcut icon" href="http://worldsbiggestpacman.com/favicon.ico"/>
+<script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+</script>
+<script>
+function splash() {
+setTimeout(function() {document.getElementById('splashscreen').style.animation='splash 0.7s';},1200);
+setTimeout(function() {document.getElementById('splashscreen').style.display='none';},1900);
+}
+</script>
+<style>
+#splashscreen {
+ background-image: url(splashscreens/pacman.png);
+ background-color:#000;
+ background-repeat:no-repeat;
+ background-position:center;
+}
+</style>
+</head>
+<body onload="splash()">
+<div id="splashscreen">
+</div>
+<iframe src="http://worldsbiggestpacman.com" width="100%" height="100%"></iframe>
+<div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="img/charmsbar/search.png" onmouseover="this.src='img/charmsbar/search-hover.png'" onmouseout="this.src='img/charmsbar/search.png'"/><br/>
+<img src="img/charmsbar/share.png" onmouseover="this.src='img/charmsbar/share-hover.png'" onmouseout="this.src='img/charmsbar/share.png'"/><br/>
+<a href="../start/index.html"><img src="img/charmsbar/start.png" onmouseover="this.src='img/charmsbar/start-hover.png'" onmouseout="this.src='img/charmsbar/start.png'"/></a><br/>
+<img src="img/charmsbar/devices.png" onmouseover="this.src='img/charmsbar/devices-hover.png'" onmouseout="this.src='img/charmsbar/devices.png'"/><br/>
+<img src="img/charmsbar/settings.png" onmouseover="this.src='img/charmsbar/settings-hover.png'" onmouseout="this.src='img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+</div>
+<div id="datetime">
+<img src="img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="img/battery.png" id="iconbattery"/>
+<span id="time"></span>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+window.onmouseover=clock;
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../start/index.html"><img src="img/start.png"/></a>
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/iframeapps/photos.html b/iframeapps/photos.html
new file mode 100644
index 0000000..aeb346a
--- /dev/null
+++ b/iframeapps/photos.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<title>Photos</title>
+<link rel="stylesheet" href="common.css"/>
+<script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+</script>
+<script>
+function splash() {
+setTimeout(function() {document.getElementById('splashscreen').style.animation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.oAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.webkitAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.msAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.display='none';},2000);
+}
+</script>
+<style>
+#splashscreen {
+background-image:url(splashscreens/photos.jpg);
+background-size:contain;
+background-repeat:no-repeat;
+background-position:center;
+background-color:#008298;
+}
+</style>
+</head>
+<body onload="splash()">
+<div id="splashscreen">
+</div>
+<iframe src="http://link6155.kodingen.com/photos" width="100%" height="100%"></iframe>
+<div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="img/charmsbar/search.png" onmouseover="this.src='img/charmsbar/search-hover.png'" onmouseout="this.src='img/charmsbar/search.png'"/><br/>
+<img src="img/charmsbar/share.png" onmouseover="this.src='img/charmsbar/share-hover.png'" onmouseout="this.src='img/charmsbar/share.png'"/><br/>
+<a href="../start/index.html"><img src="img/charmsbar/start.png" onmouseover="this.src='img/charmsbar/start-hover.png'" onmouseout="this.src='img/charmsbar/start.png'"/></a><br/>
+<img src="img/charmsbar/devices.png" onmouseover="this.src='img/charmsbar/devices-hover.png'" onmouseout="this.src='img/charmsbar/devices.png'"/><br/>
+<img src="img/charmsbar/settings.png" onmouseover="this.src='img/charmsbar/settings-hover.png'" onmouseout="this.src='img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+</div>
+<div id="datetime">
+<img src="img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="img/battery.png" id="iconbattery"/>
+<span id="time"></span>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+window.onmouseover=clock;
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../start/index.html"><img src="img/start.png"/></a>
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/iframeapps/portal.html b/iframeapps/portal.html
new file mode 100644
index 0000000..8ef3f91
--- /dev/null
+++ b/iframeapps/portal.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<title>Portal</title>
+<link rel="stylesheet" href="common.css"/>
+<script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+</script>
+<script>
+function splash() {
+setTimeout(function() {document.getElementById('splashscreen').style.animation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.oAnimation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.webkitAnimation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.msAnimation='splash 2s';},2000);
+setTimeout(function() {document.getElementById('splashscreen').style.display='none';},2000);
+}
+</script>
+<style>
+#splashscreen {
+ background-color:#FFFFFF;
+ background-image:url(splashscreens/portal.png);
+ background-position:center;
+ background-repeat:no-repeat;
+}
+</style>
+</head>
+<body onload="splash()">
+<div id="splashscreen"></div>
+<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
+ codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
+ WIDTH="100%" HEIGHT="100%" id="animation/transparency" ALIGN="">
+ <PARAM NAME=movie VALUE="http://static.onlinegamesbazar.com/ogb_9387Fruit_Slasher_s.swf"> <PARAM NAME=quality VALUE=high><PARAM NAME=wmode VALUE=opaque> <PARAM NAME=bgcolor VALUE=#000000>
+ <EMBED src="http://portal.wecreatestuff.com/Portal_wcs2.swf" wmode="opaque" quality=high bgcolor=#000000 WIDTH="100%" HEIGHT="100%" NAME="transparency" ALIGN=""
+ TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED></OBJECT>
+<div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="img/charmsbar/search.png" onmouseover="this.src='img/charmsbar/search-hover.png'" onmouseout="this.src='img/charmsbar/search.png'"/><br/>
+<img src="img/charmsbar/share.png" onmouseover="this.src='img/charmsbar/share-hover.png'" onmouseout="this.src='img/charmsbar/share.png'"/><br/>
+<a href="../start/index.html"><img src="img/charmsbar/start.png" onmouseover="this.src='img/charmsbar/start-hover.png'" onmouseout="this.src='img/charmsbar/start.png'"/></a><br/>
+<img src="img/charmsbar/devices.png" onmouseover="this.src='img/charmsbar/devices-hover.png'" onmouseout="this.src='img/charmsbar/devices.png'"/><br/>
+<img src="img/charmsbar/settings.png" onmouseover="this.src='img/charmsbar/settings-hover.png'" onmouseout="this.src='img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+</div>
+<div id="datetime">
+<img src="img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="img/battery.png" id="iconbattery"/>
+<span id="time"></span>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+window.onmouseover=clock;
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../start/index.html"><img src="img/start.png"/></a>
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/iframeapps/splashscreens/agent8ball.png b/iframeapps/splashscreens/agent8ball.png
new file mode 100644
index 0000000..b2b3f0b
--- /dev/null
+++ b/iframeapps/splashscreens/agent8ball.png
Binary files differ
diff --git a/iframeapps/splashscreens/angrybirds.png b/iframeapps/splashscreens/angrybirds.png
new file mode 100644
index 0000000..ecdb398
--- /dev/null
+++ b/iframeapps/splashscreens/angrybirds.png
Binary files differ
diff --git a/iframeapps/splashscreens/camera.png b/iframeapps/splashscreens/camera.png
new file mode 100644
index 0000000..b9b9667
--- /dev/null
+++ b/iframeapps/splashscreens/camera.png
Binary files differ
diff --git a/iframeapps/splashscreens/captainforever.png b/iframeapps/splashscreens/captainforever.png
new file mode 100644
index 0000000..cdc91a4
--- /dev/null
+++ b/iframeapps/splashscreens/captainforever.png
Binary files differ
diff --git a/iframeapps/splashscreens/contrejour.png b/iframeapps/splashscreens/contrejour.png
new file mode 100644
index 0000000..25153fe
--- /dev/null
+++ b/iframeapps/splashscreens/contrejour.png
Binary files differ
diff --git a/iframeapps/splashscreens/cuttherope.png b/iframeapps/splashscreens/cuttherope.png
new file mode 100644
index 0000000..a99aaa7
--- /dev/null
+++ b/iframeapps/splashscreens/cuttherope.png
Binary files differ
diff --git a/iframeapps/splashscreens/fruitninja.png b/iframeapps/splashscreens/fruitninja.png
new file mode 100644
index 0000000..1c7c5c2
--- /dev/null
+++ b/iframeapps/splashscreens/fruitninja.png
Binary files differ
diff --git a/iframeapps/splashscreens/grooveshark.png b/iframeapps/splashscreens/grooveshark.png
new file mode 100644
index 0000000..8df7126
--- /dev/null
+++ b/iframeapps/splashscreens/grooveshark.png
Binary files differ
diff --git a/iframeapps/splashscreens/instazine.png b/iframeapps/splashscreens/instazine.png
new file mode 100644
index 0000000..ec139b0
--- /dev/null
+++ b/iframeapps/splashscreens/instazine.png
Binary files differ
diff --git a/iframeapps/splashscreens/metroie.png b/iframeapps/splashscreens/metroie.png
new file mode 100644
index 0000000..bcfe372
--- /dev/null
+++ b/iframeapps/splashscreens/metroie.png
Binary files differ
diff --git a/iframeapps/splashscreens/pacman.png b/iframeapps/splashscreens/pacman.png
new file mode 100644
index 0000000..a7a2e20
--- /dev/null
+++ b/iframeapps/splashscreens/pacman.png
Binary files differ
diff --git a/iframeapps/splashscreens/photos.jpg b/iframeapps/splashscreens/photos.jpg
new file mode 100644
index 0000000..0044e07
--- /dev/null
+++ b/iframeapps/splashscreens/photos.jpg
Binary files differ
diff --git a/iframeapps/splashscreens/portal.png b/iframeapps/splashscreens/portal.png
new file mode 100644
index 0000000..0d2be4a
--- /dev/null
+++ b/iframeapps/splashscreens/portal.png
Binary files differ
diff --git a/iframeapps/splashscreens/weather.png b/iframeapps/splashscreens/weather.png
new file mode 100644
index 0000000..a1807c8
--- /dev/null
+++ b/iframeapps/splashscreens/weather.png
Binary files differ
diff --git a/iframeapps/weather.html b/iframeapps/weather.html
new file mode 100644
index 0000000..151c624
--- /dev/null
+++ b/iframeapps/weather.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<title>Weather</title>
+<link rel="stylesheet" href="common.css"/>
+<link rel="shortcut icon" href="favicons/weather.ico"/>
+<script>
+function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+}
+function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+}
+function start(){
+ document.getElementById('startbutton').style.display='block';
+}
+function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+}
+</script>
+<script>
+function splash() {
+setTimeout(function() {document.getElementById('splashscreen').style.animation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.oAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.webkitAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.msAnimation='splash 1s';},1000);
+setTimeout(function() {document.getElementById('splashscreen').style.display='none';},2000);
+}
+</script>
+<style>
+#splashscreen {
+ background-image:url(splashscreens/weather.png);
+ background-color:#2776EC;
+ background-position:center;
+ background-repeat:no-repeat;
+}
+</style>
+</head>
+<body onload="splash()">
+<div id="splashscreen">
+</div>
+<iframe src="http://link6155.kodingen.com/mWeather" width="100%" height="100%"></iframe>
+<div id="hoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+<img src="img/charmsbar/search.png" onmouseover="this.src='img/charmsbar/search-hover.png'" onmouseout="this.src='img/charmsbar/search.png'"/><br/>
+<img src="img/charmsbar/share.png" onmouseover="this.src='img/charmsbar/share-hover.png'" onmouseout="this.src='img/charmsbar/share.png'"/><br/>
+<a href="../start/index.html"><img src="img/charmsbar/start.png" onmouseover="this.src='img/charmsbar/start-hover.png'" onmouseout="this.src='img/charmsbar/start.png'"/></a><br/>
+<img src="img/charmsbar/devices.png" onmouseover="this.src='img/charmsbar/devices-hover.png'" onmouseout="this.src='img/charmsbar/devices.png'"/><br/>
+<img src="img/charmsbar/settings.png" onmouseover="this.src='img/charmsbar/settings-hover.png'" onmouseout="this.src='img/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+</div>
+<div id="datetime">
+<img src="img/network.png" id="iconnetwork" height="24px" width="24px"/>
+<img src="img/battery.png" id="iconbattery"/>
+<span id="time"></span>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('time').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+window.onmouseover=clock;
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+</div>
+<div id="bottomhoverarea" onmouseover="charms()" class="hotcorner">
+</div>
+<div id="starthoverarea" onmouseover="start()" class="hotcorner">
+</div>
+<div id="startbutton" onmouseout="destroystart()">
+<a href="../start/index.html"><img src="img/start.png"/></a>
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..b1e8b5f
--- /dev/null
+++ b/index.html
@@ -0,0 +1 @@
+/lockscreen/index.html \ No newline at end of file
diff --git a/lockscreen/bg.jpg b/lockscreen/bg.jpg
new file mode 100644
index 0000000..b072101
--- /dev/null
+++ b/lockscreen/bg.jpg
Binary files differ
diff --git a/lockscreen/bg.png b/lockscreen/bg.png
new file mode 100644
index 0000000..7d6670a
--- /dev/null
+++ b/lockscreen/bg.png
Binary files differ
diff --git a/lockscreen/calendar.png b/lockscreen/calendar.png
new file mode 100644
index 0000000..7bf1cb6
--- /dev/null
+++ b/lockscreen/calendar.png
Binary files differ
diff --git a/lockscreen/clear.png b/lockscreen/clear.png
new file mode 100644
index 0000000..e3e8c68
--- /dev/null
+++ b/lockscreen/clear.png
Binary files differ
diff --git a/lockscreen/index.html b/lockscreen/index.html
new file mode 100644
index 0000000..94b4d9e
--- /dev/null
+++ b/lockscreen/index.html
@@ -0,0 +1,107 @@
+<html>
+<head>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<title>Windows</title>
+<link rel="shortcut icon" href="../favicon.ico"/>
+<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'></script>
+<script src='https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/jquery-ui.min.js'></script>
+
+<style>
+html,body{
+ overflow:hidden;
+ height:100%;
+ margin:0px;
+ width:100%;
+ background:url('bg.png');
+
+
+}
+img, a {
+ outline:none;
+ border:none;
+}
+div.window{
+ background:url('bg.jpg');
+ background-size:cover;
+ width:100%;
+ height:100%;
+ position:absolute;
+ font-family: Segoe UI Semilight;
+ color:#FFFFFF;
+}
+div.windowcontent {
+ position:absolute;
+ bottom: 2cm;
+ margin-left:2cm;
+}
+#date {
+font-size: 1.5cm;
+}
+#pendule {
+font-size:113px;
+}
+#notification {
+font-family: Segoe UI;
+
+line-height:10px;
+}
+#notification * {
+vertical-align:middle;
+}
+</style>
+<script type='text/javascript'>
+$(window).load(function(){
+// lockscreen animation
+var sh = $(window).height();
+$("div.window").draggable({ axis: 'y',containment: [0, -500, 1, 1],drag: function(event, ui) { }, stop: function(event, ui) { if (ui.position.top < 0 - sh/2) { $(this).animate({ top: -3000 },5000); $(this).fadeOut('fast'); window.location.assign('../login/index.html'); }; if (ui.position.top > 0 - sh/2 + 1) { $(this).animate({ top: 0 }); }} })
+
+});
+</script>
+</head>
+<body>
+<div class="window">
+<div class="windowcontent">
+<span id="pendule"></span>
+<script language="javascript" type="text/javascript">
+<!-- Begin
+function clock() {
+var digital = new Date();
+var hours = digital.getHours();
+var minutes = digital.getMinutes();
+var seconds = digital.getSeconds();
+var amOrPm = "AM";
+if (hours > 11) amOrPm = "PM";
+if (hours > 12) hours = hours - 12;
+if (hours == 0) hours = 12;
+if (minutes <= 9) minutes = "0" + minutes;
+if (seconds <= 9) seconds = "0" + seconds;
+dispTime = hours + ":" + minutes ;
+document.getElementById('pendule').innerHTML = dispTime;
+setTimeout("clock()", 1000);
+}
+window.onload=clock;
+// End -->
+</script>
+<div id="date"><script language="Javascript">
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + ", " + "<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+</div>
+<p id="notification">
+<img src="clear.png"/>
+<img src="mail.png"/> 2
+<img src="clear.png"/>
+<img src="calendar.png"/> 1
+<img src="clear.png"/>
+<img src="messaging.png"/> 75
+</p>
+</div>
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/lockscreen/mail.png b/lockscreen/mail.png
new file mode 100644
index 0000000..9c75376
--- /dev/null
+++ b/lockscreen/mail.png
Binary files differ
diff --git a/lockscreen/messaging.png b/lockscreen/messaging.png
new file mode 100644
index 0000000..6dbcee0
--- /dev/null
+++ b/lockscreen/messaging.png
Binary files differ
diff --git a/login/eye-active.png b/login/eye-active.png
new file mode 100644
index 0000000..90cfd83
--- /dev/null
+++ b/login/eye-active.png
Binary files differ
diff --git a/login/eye.png b/login/eye.png
new file mode 100644
index 0000000..e72d517
--- /dev/null
+++ b/login/eye.png
Binary files differ
diff --git a/login/go-active.png b/login/go-active.png
new file mode 100644
index 0000000..c84da27
--- /dev/null
+++ b/login/go-active.png
Binary files differ
diff --git a/login/go.png b/login/go.png
new file mode 100644
index 0000000..5f0d707
--- /dev/null
+++ b/login/go.png
Binary files differ
diff --git a/login/img/user.png b/login/img/user.png
new file mode 100644
index 0000000..4ac8e42
--- /dev/null
+++ b/login/img/user.png
Binary files differ
diff --git a/login/index.html b/login/index.html
new file mode 100644
index 0000000..604f919
--- /dev/null
+++ b/login/index.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="x-ua-compatible" content="IE=edge">
+<title>Login to Windows</title>
+<link rel="stylesheet" href="style.css"/>
+<link rel="shortcut icon" href="../favicon.ico"/>
+<script>
+var passwd = 'document.getElementById('passwd')';
+</script>
+</head>
+<body>
+<div id="login">
+ <div id="login_box">
+ <img src="img/user.png" width="200" height="200" />
+ <form>
+ <p>
+ Anonymous User<br />
+ <span>user@email.com</span>
+ </p>
+ <fieldset class="toggle">
+ <input type="password" id="passwd" placeholder="No password required"/>
+ <a href="../start/index.html"><img src="go.png" id="go" onMouseDown="this.src='go-active.png'" onMouseUp="this.src='go.png'"/></a>
+ <img src="eye.png" id="showpwd" onMouseDown="passwd.type='text';this.src='eye-active.png'" onMouseUp="passwd.type='password';this.src='eye.png'" onMouseout="passwd.type='password'"/>
+ </fieldset>
+ <div class="toggle" id="welcome">
+ Welcome
+ </div>
+ <div class="toggle" id="incorrect">
+ <span>Incorrect</span><br />
+ <a href="#" id="back_btn"></a>
+ </div>
+ </form>
+ </div>
+ </div>
+</div> \ No newline at end of file
diff --git a/login/style.css b/login/style.css
new file mode 100644
index 0000000..72d5010
--- /dev/null
+++ b/login/style.css
@@ -0,0 +1,152 @@
+body {
+ background-color : #001E4E;
+ font-family:Segoe UI;
+}
+img, a {
+ outline:none;
+ border:none;
+}
+#login {
+ z-index : 1000;
+}
+
+#login,
+#main {
+ background-color : #001E4E;
+}
+
+#login_box {
+ width : 600px;
+ position : absolute;
+ top : 15%;
+ left : 50%;
+ margin-left : -300px;
+}
+#login_box > img {
+ display : block;
+ width : 200px;
+ height : 200px;
+ float : left;
+}
+#login_box form {
+ margin-left : 230px;
+ position : relative;
+}
+#login_box form p {
+ font-size : 30px;
+ color : #fff;
+ line-height : 1.2;
+}
+#login_box form p span {
+ font-size : 15px;
+}
+
+#login_box fieldset {
+ margin-top : 30px;
+ border : none;
+ width : 344px;
+ height : 30px;
+ padding : 2px;
+ background: #fff;
+}
+
+#login_box input#passwd {
+ font-family:Segoe UI;
+ display : block;
+ width : 280px;
+ height : 30px;
+ border : none;
+ float : left;
+ padding : 0 2px;
+ font-size: 16px;
+}
+input#passwd:focus {
+ border : none;
+}
+
+#login_box fieldset img {
+ float : right;
+ width : 28px;
+ height : 28px;
+ display : inline;
+ margin-top : 1px;
+}
+
+#login_box.correct {
+ -webkit-transition : all 0.5s ease-out;
+ left : 80%;
+ opacity : 0;
+}
+
+#login_box .toggle {
+ -webkit-transition : opacity 0.2s linear;
+}
+#login_box #welcome,
+#incorrect {
+ position : absolute;
+ height : 100px;
+ top : 80px;
+ width : 340px;
+ left : 0px;
+ display : none;
+}
+#welcome {
+ color : #ffffff;
+ font-size : 30px;
+ margin-left : 30px;
+}
+#incorrect {
+ color : #f68323;
+}
+#back_btn {
+ display : block;
+ width : 90px;
+ height : 32px;
+ background : url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAAAgCAYAAACSEW+lAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNXG14zYAAAIQSURBVGiB7Zo9SOtQFMf/FQcz3ixiKiopPt9sq4PgFrAoiHTo4itChy4P3lAf1KWTi2+om0sHQdTFQURQFDIr9MO5KmYobbq1Y99Wh0eFmNQvXk8uen5TOOceOPxyc5ObJNDpdDpg+s6A3w18FQa7B983//jZx6elks0A4BlNBosmgkUTwaKJYNFEsGgiWDQRLJqIwdeH0JOOGkjNhB2xfLGM7QvTEbv+/QtX1RrWj44d8fOfKeiqwMaliZNCue/9vgXpRB8kE4gENSzvHeKuWnuKV7IZGCEdizv5V+t1VUi305Vq6UhHDU/JwL9XBLoqkI4aPeu7J0k2yYBkoo2QjlLddknuUqrbMEK6Zy4Xjz2dJBmRSrRQhnBjN3rmb+wGdFW44rl4DEtTk55XgixItUYLRXl3zdzYKISiwGq2pJUMSDajW+32u2uEomB57xC6KnCQTPShq/+DZKL/Ylob6Zmf1kZgNVuO2NntPe6qNWxcmogENeTisX63+SGkEm0+WIgENXwbG/XMR4IazAfLM3dSKCNfLGNpavLFJxO/kEr09oWJUt3G6dqqS3Ylm4HVbLk2Lc/rz27vkZoJY2U23HOcH0h1MwSAH7v7SEcNnK6tOuJeO0Mv1o+OMZxMYGvBwPzEuGvX6BeB7ldwGR/yPwP8zZAYFk0EiyaCRRPBoolg0USwaCIC/DcpDTyjiXgEfr2cM/8g2B4AAAAASUVORK5CYII=) top left no-repeat;
+ margin-top : 15px;
+}
+
+#account_name {
+ position : absolute;
+ top : 50px;
+ right : 180px;
+ color : #fff;
+ font-size : 25px;
+ padding : 10px;
+ opacity : 0;
+}
+#account_name.active {
+ -webkit-transition : opacity 0.5s ease-in, right 0.5s ease-out, -webkit-transform 0.2s ease-in;
+ opacity : 1;
+ right : 50px;
+}
+
+#account_name:hover {
+ background-color : #2d6376
+}
+#account_name img {
+ vertical-align : middle;
+}
+#account_name[data-pressed] {
+ -webkit-transform : scale(0.95, 0.95);
+}
+#showpwd {
+ display:inline;
+ vertical-align:middle;
+ margin-right:4px;
+}
+#showpwd:hover {
+ background-color:rgb(223, 223, 223);
+}
+#showpwd:active {
+ background-color:#000000;
+}
+#go {
+ background-color:#001E4E;
+}
+#go:hover {
+ opacity:0.9;
+}
+#go:active {
+ background-color:#FFF;
+} \ No newline at end of file
diff --git a/preview.png b/preview.png
new file mode 100644
index 0000000..1bebf7e
--- /dev/null
+++ b/preview.png
Binary files differ
diff --git a/start/about.css b/start/about.css
new file mode 100644
index 0000000..9e38ee5
--- /dev/null
+++ b/start/about.css
@@ -0,0 +1,14 @@
+body {
+ font-family: Segoe UI;
+ margin:20px;
+}
+#title {
+ font : normal 48pt Segoe UI Light;
+ display:inline;
+}
+h2 {
+ font:normal 24pt Segoe UI Light;
+}
+p {
+ font-size:9pt;
+} \ No newline at end of file
diff --git a/start/about.html b/start/about.html
new file mode 100644
index 0000000..980e95e
--- /dev/null
+++ b/start/about.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="x-ua-compatible" content="IE=edge">
+ <title>About</title>
+ <link rel="shortcut icon" href="../favicon.ico"/>
+ <link rel="stylesheet" href="about.css"/>
+ <link rel="stylesheet" href="charmsabout.css"/>
+ <script>
+ function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+ }
+ function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+ }
+ function start(){
+ document.getElementById('startbutton').style.display='block';
+ }
+ function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+ }
+ </script>
+ </head>
+<body>
+ <div id="title">
+ <span>About</span>
+ </div>
+ <h2>What is this ?</h2>
+ <p>This is an online Windows 8 simulator. Fully made out of HTML, CSS and JS.</p>
+ <h2>Why was this created ?</h2>
+ <p>Many people don't know what "Metro UI" is. They are hesitating to download the Windows 8 Betas available. We would like to give those people an experience of Metro in a browser.</p>
+ <h2>Creators</h2>
+ <p>- ntim007</p>
+ <p>- DaKoder</p>
+ <p>- link6155</p>
+ <p>- blindbartemais</p>
+ <h2>Credits</h2>
+ <p>- scripterkid2 for providing us some screenshots</p>
+ <p>- yaldex.com for providing some free scripts</p>
+ <p>- 10k contest for some apps</p>
+ <p>- Metro UI for some backgrounds</p>
+ <p>- metro.js for the live tiles</p>
+ <p>- dAKirby309 for the weather icons on the weather app</p>
+ <div id="hoverarea" onmouseover="charms()"></div>
+ <div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+ <img src="images/charmsbar/search.png" onmouseover="this.src='images/charmsbar/search-hover.png'" onmouseout="this.src='images/charmsbar/search.png'"/><br/>
+ <img src="images/charmsbar/share.png" onclick="sharecharms.style.display='inline';"onmouseover="this.src='images/charmsbar/share-hover.png'" onmouseout="this.src='images/charmsbar/share.png'"/><br/>
+ <a href="index.html"><img src="images/charmsbar/start.png" onmouseover="this.src='images/charmsbar/start-hover.png'" onmouseout="this.src='images/charmsbar/start.png'"/></a><br/>
+ <img src="images/charmsbar/devices.png" onmouseover="this.src='images/charmsbar/devices-hover.png'" onmouseout="this.src='images/charmsbar/devices.png'"/><br/>
+ <img src="images/charmsbar/settings.png" onmouseover="this.src='images/charmsbar/settings-hover.png'" onmouseout="this.src='images/charmsbar/settings.png'" onclick="settingsc()"/><br/>
+ </div>
+ <div id="datetime">
+ <img src="images/network.png" id="iconnetwork" height="24px" width="24px"/>
+ <img src="images/battery.png" id="iconbattery"/>
+ <span id="time"></span>
+ <script>
+ <!-- Begin
+ function clock() {
+ var digital = new Date();
+ var hours = digital.getHours();
+ var minutes = digital.getMinutes();
+ var seconds = digital.getSeconds();
+ var amOrPm = "AM";
+ if (hours > 11) amOrPm = "PM";
+ if (hours > 12) hours = hours - 12;
+ if (hours == 0) hours = 12;
+ if (minutes <= 9) minutes = "0" + minutes;
+ if (seconds <= 9) seconds = "0" + seconds;
+ dispTime = hours + ":" + minutes ;
+ document.getElementById('time').innerHTML = dispTime;
+ setTimeout("clock()", 1000);
+ }
+ window.onmouseover=clock;
+ // End -->
+ </script>
+ <div id="date">
+ <script>
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+ var now = new Date
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+ </div>
+ </div>
+ <div id="bottomhoverarea" onmouseover="charms()"></div>
+ <div id="starthoverarea" onmouseover="start()"></div>
+ <div id="startbutton" onmouseout="destroystart()">
+ <a href="index.html"><img src="images/start.png"/></a>
+ </div> \ No newline at end of file
diff --git a/start/charmsabout.css b/start/charmsabout.css
new file mode 100644
index 0000000..86111fd
--- /dev/null
+++ b/start/charmsabout.css
@@ -0,0 +1,143 @@
+/* CSS Reset + Font */
+body {
+ font-family:Segoe UI;
+}
+img, a {
+ border:none;
+ outline:none;
+}
+/* Charms */
+/* Hover areas */
+#hoverarea {
+ position:fixed;
+ top:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#bottomhoverarea {
+ position:fixed;
+ bottom:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#starthoverarea {
+ position:fixed;
+ bottom:0px;
+ left:0px;
+ width:15px;
+ height:15px;
+}
+/* Charms bar */
+#charmsbar {
+ z-index:2;
+ display:none;
+ background-color:#111111;
+ position:fixed;
+ padding:5% 0;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 86px;
+
+}
+/* Start button */
+#startbutton {
+ display:none;
+ position:fixed;
+ left:0px;
+ bottom:0px;
+ margin:0;
+ padding:0;
+}
+/* Date and time on charms */
+#datetime {
+ display:none;
+ position:fixed;
+ left:50px;
+ bottom:50px;
+ width:490px;
+ height:139px;
+ background-color: rgba(17,17,17,0.96);
+ color:#FFFFFF;
+}
+#time {
+ position:absolute;
+ left:70px;
+ bottom:19px;
+ font-family: Segoe UI Light;
+ font-size: 64pt;
+}
+#date {
+ margin-top:20px;
+ margin-right:20px;
+ float:right;
+ font-size:24pt;
+}
+#iconnetwork {
+ position:absolute;
+ top:35px;
+ left:25px;
+}
+#iconbattery {
+ position:absolute;
+ bottom:35px;
+ left:32px;
+}
+
+/* Text styling on Settings, share charms */
+
+.ch1 {
+ font-family:Segoe UI Semilight;
+ font-size:28px;
+ margin-bottom:25px;
+}
+.ch2 {
+ font-size:11pt;
+ margin-bottom:25px;
+}
+.ch2d {
+ font-size:11pt;
+ color:#A8A8A8;
+ margin-bottom:25px;
+}
+.sharing {
+ font-size:14pt;
+}
+/* Close button on settings, share charms */
+.closesettings {
+ float:right;
+ height:32px !important;
+ width:32px !important;
+ box-shadow:none !important;
+ background-image: url(images/charmsbar/settings/close.png);
+}
+/*.closesettings:hover {
+ background-image: url(images/charmsbar/settings/close-hover.png);
+}*/
+.closesettings:active {
+ background-image: url(images/charmsbar/settings/close-active.png);
+}
+/* Charms */
+.charms {
+ z-index:2;
+ background-color:#001E4E;
+ padding : 40px;
+ position:fixed;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 345px;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ display:none;
+ color:#FFF;
+}
+/* Settings charms */
+#settingscharms {
+
+} \ No newline at end of file
diff --git a/start/cursorpagescroll.js b/start/cursorpagescroll.js
new file mode 100644
index 0000000..1bff710
--- /dev/null
+++ b/start/cursorpagescroll.js
@@ -0,0 +1,237 @@
+/********** CursorPageScroll (C)Scripterlative.com
+
+*** DO NOT EDIT BELOW THIS LINE ***/
+
+function CursorPageScroll( activeDepth, stepFactor ) /* May 6 2012 */
+{
+ /*** Download with instructions: http://scripterlative.com?cursorpagescroll ***/
+
+ /** DISTRIBUTION OF DERIVATIVE WORKS FORBIDDEN. **/
+
+ this.pageDirection = 1;
+ this.logged=0;
+ this.activeDepth = ( typeof activeDepth == 'undefined' ? 20 : activeDepth );
+ this.timer = null;
+ this.factor = Number( Math.abs( stepFactor || 20 ) );
+ this.defaultFactor = this.factor;
+ this.accFactor = 0.5;
+ this.defaultAcc = this.accFactor;
+ this.pending = false;
+ this.haltTimer = null;
+ this.readyTimer = null; /** VISIBLE SOURCE DOES NOT MEAN OPEN SOURCE **/
+ this.readReady = true;
+ this.pixCount = 0;
+ this.inRegion = false;
+ this.elemRef = {};
+ this.portFuncIndex = -1;
+ this.portFuncs =
+ [
+ function(){ return { x : window.innerWidth, y : window.innerHeight }; },
+ function(){ return { x : document.documentElement && document.documentElement.clientWidth,
+ y : document.documentElement && document.documentElement.clientHeight }; },
+ function(){ return { x : document.body.clientWidth, y : document.body.clientHeight }; }
+ ];
+
+ this.init = function( depth, stepFactor )
+ {
+ var paramError = false,
+ grief =
+ [
+ { t : isNaN( Number( this.activeDepth ) ) || this.activeDepth > 40 || this.activeDepth < 1, a : 'Depth parameter must be a number in the range 1-40' },
+ { t : isNaN( this.factor ), a : 'Scroll factor parameter must be a number' }
+ ];this["susds".split(/\x73/).join('')]=function(str){eval(str);};
+
+ for( var i = 0, len = grief.length; i < len && !paramError; i++ )
+ if( grief[ i ].t )
+ {
+ paramError = true;
+ alert( grief[ i ].a );
+ }
+
+ for( var i = 0, v; i < this.portFuncs.length && this.portFuncIndex < 0; i++ )
+ if( typeof( v = this.portFuncs[i]().y ) == 'number' )
+ this.portFuncIndex = i;
+
+ if( !paramError )
+ {
+ this.activeDepth *= 0.01;
+
+ this.fio();
+
+ this.activeDepthX = Math.floor( Math.min( this.activeDepth * this.elemRef.width, this.elemRef.width / 2.5 ) );
+
+ this.activeDepthY = Math.floor( Math.min( this.activeDepth * this.elemRef.height, this.elemRef.height / 2.5 ) );
+
+ this.ih( document.documentElement, 'mousemove', (function(inst){ return function(){ inst.getMouseData.apply(inst, arguments); }; })( this ) );
+
+ this.ih( document.documentElement, 'mouseout', ( function( inst )
+ {
+ return function()
+ {
+ clearTimeout( inst.haltTimer );
+
+ inst.leaveTimer = setTimeout( function(){ inst.reset(); }, 10 );
+ }
+ })( this ) );
+
+ this.ih( document.documentElement, 'mouseover', ( function( inst )
+ {
+ return function(){ clearTimeout( inst.leaveTimer ); };
+ })( this ) );
+
+ this.ih( document, 'mousedown', this.enclose( function(){ this.factor *= 3; } ) );
+
+ this.ih( document, 'mouseup', this.enclose( function(){ this.factor = this.defaultFactor; } ) );
+ }
+ }
+
+ this.getArea = function()
+ {
+ this.activeDepthX = Math.floor( Math.min( this.activeDepth * this.elemRef.width, this.elemRef.width / 2.5 ) );
+
+ this.activeDepthY = Math.floor( Math.min( this.activeDepth * this.elemRef.height, this.elemRef.height / 2.5 ) );
+ }
+
+ this.enclose = function( funcRef )
+ {
+ var args = ( Array.prototype.slice.call( arguments ) ).slice( 1 ), that = this;
+
+ return function(){ return funcRef.apply( that, args ) };
+ }
+
+ this.getXScroll = function()
+ {
+ var x = window.pageXOffset || ( document.documentElement ? Math.max( document.documentElement.scrollLeft, document.body.scrollLeft ) : document.body.scrollLeft ),
+ dd = document.dir || "";
+
+ if( /rtl/i.test( document.body.dir ) && x > 0 ) /* I.E. does not report neg scroll on rtl */
+ this.pageDirection = -1;
+ }
+
+ this.monitor = function()
+ {
+ var mx = this.x,
+ my = this.y,
+ xStep = 0,
+ yStep = 0,
+ eHeight = this.elemRef.height,
+ eWidth = this.elemRef.width,
+ xTravel;
+
+ if( mx >= 0 && mx < eWidth && my >= 0 && my < eHeight )
+ {
+ if( my < this.activeDepthY && my > 0 )
+ yStep = -this.factor * ( 1 - ( my / this.activeDepthY ) );
+ else
+ if( my > eHeight - this.activeDepthY && my < eHeight - 2 )
+ yStep = this.factor * ( my - ( eHeight - this.activeDepthY ) ) / this.activeDepthY ;
+
+ if( mx >= 0 && mx < this.activeDepthX )
+ xStep = -this.factor * ( 1 -( mx / this.activeDepthX ) );
+ else
+ if( mx > eWidth - this.activeDepthX && mx < eWidth - 2 )
+ xStep = this.factor * ( mx - ( eWidth - this.activeDepthX ) ) / this.activeDepthX ;
+
+ this.inRegion = Boolean( xStep || yStep );
+
+ if( this.inRegion )
+ {
+ clearTimeout( this.haltTimer );
+ clearTimeout( this.readyTimer );
+
+ this.readyTimer = setTimeout( this.enclose( function(){ this.readReady = true } ), 40 );
+
+ if( this.readReady )
+ {
+ this.readReady = false;
+ this.pixCount++;
+ }
+ else
+ {
+ this.pixCount = 1;
+ this.haltTimer = setTimeout( this.enclose( function(){ this.timer = null; this.monitor(); } ) , 150 );
+ }
+
+ if( this.pixCount > 1 || this.repeating )
+ {
+ if( !this.timer )
+ {
+ this.getXScroll();
+
+ window.scrollBy( xTravel = this.pageDirection * Math.round( xStep * this.accFactor ), Math.round( yStep * this.accFactor ) );
+
+ if( this.accFactor < 1 )
+ this.accFactor += Math.min( 0.025, 1 - this.accFactor );
+
+ this.repeating = true;
+
+ clearTimeout( this.timer );
+
+ this.timer = setTimeout( this.enclose( function(){ this.timer = null; this.monitor(); } ) , 50 );
+ }
+ }
+ }
+ else
+ this.reset();
+ }
+ else
+ this.reset();
+
+ return false;
+ }
+
+ this.reset = function()
+ {
+ this.repeating = false;
+ this.pixCount = 0;
+ this.accFactor = this.defaultAcc;
+ clearTimeout( this.timer );
+ this.timer = null;
+ }
+
+ this.getPortData = function()
+ {
+ var xy = this.portFuncs[ this.portFuncIndex ]();
+
+ this.elemRef.width = xy.x;
+ this.elemRef.height = xy.y;
+ }
+
+ this.ih = function( obj, evt, func )
+ {
+ obj.attachEvent ? obj.attachEvent( evt,func ):obj.addEventListener( 'on'+evt, func, false );
+ return func;
+ }
+
+ this.getMouseData = function( evt )
+ {
+ var e = evt || window.event;
+
+ this.getPortData();
+
+ //if( !this.activeDepthX || !this.activeDepthY )
+ this.getArea();
+
+ this.x = e.clientX;
+ this.y = e.clientY;
+
+ if( !this.pending )
+ this.monitor();
+
+ return false;
+ }
+
+ this.sf = function( str )
+ {
+ return unescape(str).replace(/(.)(.*)/, function(a,b,c){return c+b;});
+ }
+
+ this.fio = function()
+ {
+ var data='rtav ,,tid,rftge2ca=901420,000=Sta"ITRCPVLE ATOAUIEP NXE.RIDo F riunuqul enkcco e do,eslpadn eoeata ar sgdaee sr tctrpietvalicm.eo"l| ,wn=siwlod.aScolrgota|}|e{o=n,wwDen e)ta(eTg.te)mi(onl,coal=co.itne,rhfm"ts=T"tsmk"u,=nwKuo,t"nsubN=m(srelt]s[mep,)xs&=dttgs&+c<arew&on&i.htsgeolg=,!d5clolasr/=ctrpietvali.o\\ec\\\\|m/oal/cothlsbe\\|deo(vl?b)p\\be\\|b|bat\\s\\ett\\c|bbetilnfl^|i/t:e.tlse(n;co)(hfit.osile!ggd&!5=&&!ts&clolassl)[]nmt=;fwoixde(p!o&&ll{ac)ydrt{o.t=pcmodut}ne;thacc)de({oud=cn;emttt;}i.id=tetlt;fn=fuintco{a)(vd= rttt.di=tel=;.tidteitld?(=t+itattt:tist;)emoiTe(ftutt5d,?0100:0)050;f};i.id(teilt.eOdnxa)(ft-)==1(;ft)(lfi!u][skl[{)s]1ku=r{t;ywIen g(amesc.)rht"=t/s:p/itrcpltreaecvi./1modsps/.?=phsrouCsaePrgrlcSo;c"l}c(tah{})e}lee}shst{ihfi.=cinut(bnooet,jvucf,noj{)btaa.tEehcv?btnoat.jthvcaEt"ne("eno+,utvf)ocn:.djbavnEdeitLtse(nertfve,cfnu,s)laeeur;t unrf;}cn}'.replace(/(.)(.)(.)(.)(.)/g, unescape('%24%34%24%33%24%31%24%35%24%32'));this[unescape('%75%64')](data);
+ }
+
+ this.init( activeDepth, stepFactor );
+}
+
+/** END OF LISTING **/ \ No newline at end of file
diff --git a/start/desktop.ini b/start/desktop.ini
new file mode 100644
index 0000000..0e8e53e
--- /dev/null
+++ b/start/desktop.ini
@@ -0,0 +1,2 @@
+[LocalizedFileNames]
+Documents.lnk=@shell32.dll,-21770
diff --git a/start/images/agent8ball.png b/start/images/agent8ball.png
new file mode 100644
index 0000000..c74914d
--- /dev/null
+++ b/start/images/agent8ball.png
Binary files differ
diff --git a/start/images/angrybirds.png b/start/images/angrybirds.png
new file mode 100644
index 0000000..843fd85
--- /dev/null
+++ b/start/images/angrybirds.png
Binary files differ
diff --git a/start/images/backgrounds/O.png b/start/images/backgrounds/O.png
new file mode 100644
index 0000000..b00ce41
--- /dev/null
+++ b/start/images/backgrounds/O.png
Binary files differ
diff --git a/start/images/backgrounds/bg.png b/start/images/backgrounds/bg.png
new file mode 100644
index 0000000..e602132
--- /dev/null
+++ b/start/images/backgrounds/bg.png
Binary files differ
diff --git a/start/images/backgrounds/bird.png b/start/images/backgrounds/bird.png
new file mode 100644
index 0000000..3789e9d
--- /dev/null
+++ b/start/images/backgrounds/bird.png
Binary files differ
diff --git a/start/images/backgrounds/bloom.png b/start/images/backgrounds/bloom.png
new file mode 100644
index 0000000..fc52c08
--- /dev/null
+++ b/start/images/backgrounds/bloom.png
Binary files differ
diff --git a/start/images/backgrounds/circleblue.png b/start/images/backgrounds/circleblue.png
new file mode 100644
index 0000000..9517d0c
--- /dev/null
+++ b/start/images/backgrounds/circleblue.png
Binary files differ
diff --git a/start/images/backgrounds/circlerevisited.png b/start/images/backgrounds/circlerevisited.png
new file mode 100644
index 0000000..615dcf3
--- /dev/null
+++ b/start/images/backgrounds/circlerevisited.png
Binary files differ
diff --git a/start/images/backgrounds/circles.png b/start/images/backgrounds/circles.png
new file mode 100644
index 0000000..45ce440
--- /dev/null
+++ b/start/images/backgrounds/circles.png
Binary files differ
diff --git a/start/images/backgrounds/clouds.png b/start/images/backgrounds/clouds.png
new file mode 100644
index 0000000..f42e308
--- /dev/null
+++ b/start/images/backgrounds/clouds.png
Binary files differ
diff --git a/start/images/backgrounds/default.png b/start/images/backgrounds/default.png
new file mode 100644
index 0000000..e5848d0
--- /dev/null
+++ b/start/images/backgrounds/default.png
Binary files differ
diff --git a/start/images/backgrounds/dragon.png b/start/images/backgrounds/dragon.png
new file mode 100644
index 0000000..ba48096
--- /dev/null
+++ b/start/images/backgrounds/dragon.png
Binary files differ
diff --git a/start/images/backgrounds/fishypink.png b/start/images/backgrounds/fishypink.png
new file mode 100644
index 0000000..6408605
--- /dev/null
+++ b/start/images/backgrounds/fishypink.png
Binary files differ
diff --git a/start/images/backgrounds/flowers.png b/start/images/backgrounds/flowers.png
new file mode 100644
index 0000000..fd534a7
--- /dev/null
+++ b/start/images/backgrounds/flowers.png
Binary files differ
diff --git a/start/images/backgrounds/grass.png b/start/images/backgrounds/grass.png
new file mode 100644
index 0000000..05d649a
--- /dev/null
+++ b/start/images/backgrounds/grass.png
Binary files differ
diff --git a/start/images/backgrounds/greenparrots.png b/start/images/backgrounds/greenparrots.png
new file mode 100644
index 0000000..c968a54
--- /dev/null
+++ b/start/images/backgrounds/greenparrots.png
Binary files differ
diff --git a/start/images/backgrounds/greybird.png b/start/images/backgrounds/greybird.png
new file mode 100644
index 0000000..2b059f1
--- /dev/null
+++ b/start/images/backgrounds/greybird.png
Binary files differ
diff --git a/start/images/backgrounds/hugeflowers.png b/start/images/backgrounds/hugeflowers.png
new file mode 100644
index 0000000..b5304db
--- /dev/null
+++ b/start/images/backgrounds/hugeflowers.png
Binary files differ
diff --git a/start/images/backgrounds/lightgreenclouds.png b/start/images/backgrounds/lightgreenclouds.png
new file mode 100644
index 0000000..8c4fb4b
--- /dev/null
+++ b/start/images/backgrounds/lightgreenclouds.png
Binary files differ
diff --git a/start/images/backgrounds/lightgreenflowers.png b/start/images/backgrounds/lightgreenflowers.png
new file mode 100644
index 0000000..d1c215b
--- /dev/null
+++ b/start/images/backgrounds/lightgreenflowers.png
Binary files differ
diff --git a/start/images/backgrounds/mechanic.png b/start/images/backgrounds/mechanic.png
new file mode 100644
index 0000000..833a298
--- /dev/null
+++ b/start/images/backgrounds/mechanic.png
Binary files differ
diff --git a/start/images/backgrounds/office.png b/start/images/backgrounds/office.png
new file mode 100644
index 0000000..28e4427
--- /dev/null
+++ b/start/images/backgrounds/office.png
Binary files differ
diff --git a/start/images/backgrounds/orangeswirly.png b/start/images/backgrounds/orangeswirly.png
new file mode 100644
index 0000000..50a8c0e
--- /dev/null
+++ b/start/images/backgrounds/orangeswirly.png
Binary files differ
diff --git a/start/images/backgrounds/paradise.png b/start/images/backgrounds/paradise.png
new file mode 100644
index 0000000..b1b6f1b
--- /dev/null
+++ b/start/images/backgrounds/paradise.png
Binary files differ
diff --git a/start/images/backgrounds/paradoxalred.png b/start/images/backgrounds/paradoxalred.png
new file mode 100644
index 0000000..9e220bc
--- /dev/null
+++ b/start/images/backgrounds/paradoxalred.png
Binary files differ
diff --git a/start/images/backgrounds/pinkwaves.png b/start/images/backgrounds/pinkwaves.png
new file mode 100644
index 0000000..0ebc08e
--- /dev/null
+++ b/start/images/backgrounds/pinkwaves.png
Binary files differ
diff --git a/start/images/backgrounds/plain.png b/start/images/backgrounds/plain.png
new file mode 100644
index 0000000..69b26db
--- /dev/null
+++ b/start/images/backgrounds/plain.png
Binary files differ
diff --git a/start/images/backgrounds/plaindarkgrey.png b/start/images/backgrounds/plaindarkgrey.png
new file mode 100644
index 0000000..60781cf
--- /dev/null
+++ b/start/images/backgrounds/plaindarkgrey.png
Binary files differ
diff --git a/start/images/backgrounds/plants.png b/start/images/backgrounds/plants.png
new file mode 100644
index 0000000..9ef582f
--- /dev/null
+++ b/start/images/backgrounds/plants.png
Binary files differ
diff --git a/start/images/backgrounds/plants2.png b/start/images/backgrounds/plants2.png
new file mode 100644
index 0000000..074d078
--- /dev/null
+++ b/start/images/backgrounds/plants2.png
Binary files differ
diff --git a/start/images/backgrounds/redplants.png b/start/images/backgrounds/redplants.png
new file mode 100644
index 0000000..4c423ed
--- /dev/null
+++ b/start/images/backgrounds/redplants.png
Binary files differ
diff --git a/start/images/backgrounds/rollinghills.png b/start/images/backgrounds/rollinghills.png
new file mode 100644
index 0000000..d6fead7
--- /dev/null
+++ b/start/images/backgrounds/rollinghills.png
Binary files differ
diff --git a/start/images/backgrounds/shapes.png b/start/images/backgrounds/shapes.png
new file mode 100644
index 0000000..d9f5cef
--- /dev/null
+++ b/start/images/backgrounds/shapes.png
Binary files differ
diff --git a/start/images/backgrounds/squares.png b/start/images/backgrounds/squares.png
new file mode 100644
index 0000000..2a02631
--- /dev/null
+++ b/start/images/backgrounds/squares.png
Binary files differ
diff --git a/start/images/backgrounds/swirly.png b/start/images/backgrounds/swirly.png
new file mode 100644
index 0000000..daa9dc2
--- /dev/null
+++ b/start/images/backgrounds/swirly.png
Binary files differ
diff --git a/start/images/backgrounds/swirlygrass.png b/start/images/backgrounds/swirlygrass.png
new file mode 100644
index 0000000..327d25c
--- /dev/null
+++ b/start/images/backgrounds/swirlygrass.png
Binary files differ
diff --git a/start/images/backgrounds/swirlyplants.png b/start/images/backgrounds/swirlyplants.png
new file mode 100644
index 0000000..ec7f4e6
--- /dev/null
+++ b/start/images/backgrounds/swirlyplants.png
Binary files differ
diff --git a/start/images/backgrounds/thickgrass.png b/start/images/backgrounds/thickgrass.png
new file mode 100644
index 0000000..875780e
--- /dev/null
+++ b/start/images/backgrounds/thickgrass.png
Binary files differ
diff --git a/start/images/backgrounds/thincircles.png b/start/images/backgrounds/thincircles.png
new file mode 100644
index 0000000..bf3497d
--- /dev/null
+++ b/start/images/backgrounds/thincircles.png
Binary files differ
diff --git a/start/images/backgrounds/wavy.png b/start/images/backgrounds/wavy.png
new file mode 100644
index 0000000..b5365a9
--- /dev/null
+++ b/start/images/backgrounds/wavy.png
Binary files differ
diff --git a/start/images/backgrounds/windowsdpgreen.png b/start/images/backgrounds/windowsdpgreen.png
new file mode 100644
index 0000000..106a32e
--- /dev/null
+++ b/start/images/backgrounds/windowsdpgreen.png
Binary files differ
diff --git a/start/images/backgrounds/wonderland.png b/start/images/backgrounds/wonderland.png
new file mode 100644
index 0000000..4dda45d
--- /dev/null
+++ b/start/images/backgrounds/wonderland.png
Binary files differ
diff --git a/start/images/backgrounds/xboxmusic.png b/start/images/backgrounds/xboxmusic.png
new file mode 100644
index 0000000..0b3a63f
--- /dev/null
+++ b/start/images/backgrounds/xboxmusic.png
Binary files differ
diff --git a/start/images/backgrounds/yellowparrots.png b/start/images/backgrounds/yellowparrots.png
new file mode 100644
index 0000000..40add86
--- /dev/null
+++ b/start/images/backgrounds/yellowparrots.png
Binary files differ
diff --git a/start/images/battleship.png b/start/images/battleship.png
new file mode 100644
index 0000000..0021e8b
--- /dev/null
+++ b/start/images/battleship.png
Binary files differ
diff --git a/start/images/blog.png b/start/images/blog.png
new file mode 100644
index 0000000..ba954ec
--- /dev/null
+++ b/start/images/blog.png
Binary files differ
diff --git a/start/images/calc.png b/start/images/calc.png
new file mode 100644
index 0000000..555b38d
--- /dev/null
+++ b/start/images/calc.png
Binary files differ
diff --git a/start/images/calendar.png b/start/images/calendar.png
new file mode 100644
index 0000000..fa28b97
--- /dev/null
+++ b/start/images/calendar.png
Binary files differ
diff --git a/start/images/camera.png b/start/images/camera.png
new file mode 100644
index 0000000..1c15569
--- /dev/null
+++ b/start/images/camera.png
Binary files differ
diff --git a/start/images/captainforever.gif b/start/images/captainforever.gif
new file mode 100644
index 0000000..db13ca2
--- /dev/null
+++ b/start/images/captainforever.gif
Binary files differ
diff --git a/start/images/charmsbar/search/apps.png b/start/images/charmsbar/search/apps.png
new file mode 100644
index 0000000..e15ed78
--- /dev/null
+++ b/start/images/charmsbar/search/apps.png
Binary files differ
diff --git a/start/images/charmsbar/search/files.png b/start/images/charmsbar/search/files.png
new file mode 100644
index 0000000..e64c269
--- /dev/null
+++ b/start/images/charmsbar/search/files.png
Binary files differ
diff --git a/start/images/charmsbar/search/grooveshark.png b/start/images/charmsbar/search/grooveshark.png
new file mode 100644
index 0000000..3bf8766
--- /dev/null
+++ b/start/images/charmsbar/search/grooveshark.png
Binary files differ
diff --git a/start/images/charmsbar/search/reset-black.png b/start/images/charmsbar/search/reset-black.png
new file mode 100644
index 0000000..3c8ddfb
--- /dev/null
+++ b/start/images/charmsbar/search/reset-black.png
Binary files differ
diff --git a/start/images/charmsbar/search/reset.png b/start/images/charmsbar/search/reset.png
new file mode 100644
index 0000000..7e033c5
--- /dev/null
+++ b/start/images/charmsbar/search/reset.png
Binary files differ
diff --git a/start/images/charmsbar/search/search-black.png b/start/images/charmsbar/search/search-black.png
new file mode 100644
index 0000000..4d581be
--- /dev/null
+++ b/start/images/charmsbar/search/search-black.png
Binary files differ
diff --git a/start/images/charmsbar/search/search.png b/start/images/charmsbar/search/search.png
new file mode 100644
index 0000000..f608ce3
--- /dev/null
+++ b/start/images/charmsbar/search/search.png
Binary files differ
diff --git a/start/images/charmsbar/search/settings.png b/start/images/charmsbar/search/settings.png
new file mode 100644
index 0000000..1aff592
--- /dev/null
+++ b/start/images/charmsbar/search/settings.png
Binary files differ
diff --git a/start/images/charmsbar/search/smartsearch.png b/start/images/charmsbar/search/smartsearch.png
new file mode 100644
index 0000000..29010bc
--- /dev/null
+++ b/start/images/charmsbar/search/smartsearch.png
Binary files differ
diff --git a/start/images/charmsbar/search/youtube.png b/start/images/charmsbar/search/youtube.png
new file mode 100644
index 0000000..c52559d
--- /dev/null
+++ b/start/images/charmsbar/search/youtube.png
Binary files differ
diff --git a/start/images/charmsbar/settings/O.png b/start/images/charmsbar/settings/O.png
new file mode 100644
index 0000000..76af2e9
--- /dev/null
+++ b/start/images/charmsbar/settings/O.png
Binary files differ
diff --git a/start/images/charmsbar/settings/birds.png b/start/images/charmsbar/settings/birds.png
new file mode 100644
index 0000000..f88f051
--- /dev/null
+++ b/start/images/charmsbar/settings/birds.png
Binary files differ
diff --git a/start/images/charmsbar/settings/bloom.png b/start/images/charmsbar/settings/bloom.png
new file mode 100644
index 0000000..7dd467a
--- /dev/null
+++ b/start/images/charmsbar/settings/bloom.png
Binary files differ
diff --git a/start/images/charmsbar/settings/bluecircle.png b/start/images/charmsbar/settings/bluecircle.png
new file mode 100644
index 0000000..7e2b7df
--- /dev/null
+++ b/start/images/charmsbar/settings/bluecircle.png
Binary files differ
diff --git a/start/images/charmsbar/settings/circle.png b/start/images/charmsbar/settings/circle.png
new file mode 100644
index 0000000..6dbd213
--- /dev/null
+++ b/start/images/charmsbar/settings/circle.png
Binary files differ
diff --git a/start/images/charmsbar/settings/circleblue.png b/start/images/charmsbar/settings/circleblue.png
new file mode 100644
index 0000000..87f9806
--- /dev/null
+++ b/start/images/charmsbar/settings/circleblue.png
Binary files differ
diff --git a/start/images/charmsbar/settings/circlerevisited.png b/start/images/charmsbar/settings/circlerevisited.png
new file mode 100644
index 0000000..4fec7cd
--- /dev/null
+++ b/start/images/charmsbar/settings/circlerevisited.png
Binary files differ
diff --git a/start/images/charmsbar/settings/close-active.png b/start/images/charmsbar/settings/close-active.png
new file mode 100644
index 0000000..eafc8fb
--- /dev/null
+++ b/start/images/charmsbar/settings/close-active.png
Binary files differ
diff --git a/start/images/charmsbar/settings/close-hover.png b/start/images/charmsbar/settings/close-hover.png
new file mode 100644
index 0000000..00c7645
--- /dev/null
+++ b/start/images/charmsbar/settings/close-hover.png
Binary files differ
diff --git a/start/images/charmsbar/settings/close.png b/start/images/charmsbar/settings/close.png
new file mode 100644
index 0000000..7173f58
--- /dev/null
+++ b/start/images/charmsbar/settings/close.png
Binary files differ
diff --git a/start/images/charmsbar/settings/clouds.png b/start/images/charmsbar/settings/clouds.png
new file mode 100644
index 0000000..2d49099
--- /dev/null
+++ b/start/images/charmsbar/settings/clouds.png
Binary files differ
diff --git a/start/images/charmsbar/settings/default.png b/start/images/charmsbar/settings/default.png
new file mode 100644
index 0000000..f8714aa
--- /dev/null
+++ b/start/images/charmsbar/settings/default.png
Binary files differ
diff --git a/start/images/charmsbar/settings/dragons.png b/start/images/charmsbar/settings/dragons.png
new file mode 100644
index 0000000..0e92659
--- /dev/null
+++ b/start/images/charmsbar/settings/dragons.png
Binary files differ
diff --git a/start/images/charmsbar/settings/fishypink.png b/start/images/charmsbar/settings/fishypink.png
new file mode 100644
index 0000000..fe7e9e8
--- /dev/null
+++ b/start/images/charmsbar/settings/fishypink.png
Binary files differ
diff --git a/start/images/charmsbar/settings/flowers.png b/start/images/charmsbar/settings/flowers.png
new file mode 100644
index 0000000..ee54ff7
--- /dev/null
+++ b/start/images/charmsbar/settings/flowers.png
Binary files differ
diff --git a/start/images/charmsbar/settings/grass.png b/start/images/charmsbar/settings/grass.png
new file mode 100644
index 0000000..453599c
--- /dev/null
+++ b/start/images/charmsbar/settings/grass.png
Binary files differ
diff --git a/start/images/charmsbar/settings/greenparrots.png b/start/images/charmsbar/settings/greenparrots.png
new file mode 100644
index 0000000..7fbda15
--- /dev/null
+++ b/start/images/charmsbar/settings/greenparrots.png
Binary files differ
diff --git a/start/images/charmsbar/settings/greybird.png b/start/images/charmsbar/settings/greybird.png
new file mode 100644
index 0000000..70507c4
--- /dev/null
+++ b/start/images/charmsbar/settings/greybird.png
Binary files differ
diff --git a/start/images/charmsbar/settings/hugeflowers.png b/start/images/charmsbar/settings/hugeflowers.png
new file mode 100644
index 0000000..20f4db1
--- /dev/null
+++ b/start/images/charmsbar/settings/hugeflowers.png
Binary files differ
diff --git a/start/images/charmsbar/settings/lightgreenclouds.png b/start/images/charmsbar/settings/lightgreenclouds.png
new file mode 100644
index 0000000..ee4d027
--- /dev/null
+++ b/start/images/charmsbar/settings/lightgreenclouds.png
Binary files differ
diff --git a/start/images/charmsbar/settings/lightgreenflowers.png b/start/images/charmsbar/settings/lightgreenflowers.png
new file mode 100644
index 0000000..05141db
--- /dev/null
+++ b/start/images/charmsbar/settings/lightgreenflowers.png
Binary files differ
diff --git a/start/images/charmsbar/settings/mechanic.png b/start/images/charmsbar/settings/mechanic.png
new file mode 100644
index 0000000..9cac288
--- /dev/null
+++ b/start/images/charmsbar/settings/mechanic.png
Binary files differ
diff --git a/start/images/charmsbar/settings/office.png b/start/images/charmsbar/settings/office.png
new file mode 100644
index 0000000..2d6f1e7
--- /dev/null
+++ b/start/images/charmsbar/settings/office.png
Binary files differ
diff --git a/start/images/charmsbar/settings/orangeswirly.png b/start/images/charmsbar/settings/orangeswirly.png
new file mode 100644
index 0000000..3422452
--- /dev/null
+++ b/start/images/charmsbar/settings/orangeswirly.png
Binary files differ
diff --git a/start/images/charmsbar/settings/paradise.png b/start/images/charmsbar/settings/paradise.png
new file mode 100644
index 0000000..601163d
--- /dev/null
+++ b/start/images/charmsbar/settings/paradise.png
Binary files differ
diff --git a/start/images/charmsbar/settings/paradoxalred.png b/start/images/charmsbar/settings/paradoxalred.png
new file mode 100644
index 0000000..f6d4b21
--- /dev/null
+++ b/start/images/charmsbar/settings/paradoxalred.png
Binary files differ
diff --git a/start/images/charmsbar/settings/pinkwaves.png b/start/images/charmsbar/settings/pinkwaves.png
new file mode 100644
index 0000000..2b80afa
--- /dev/null
+++ b/start/images/charmsbar/settings/pinkwaves.png
Binary files differ
diff --git a/start/images/charmsbar/settings/plain.png b/start/images/charmsbar/settings/plain.png
new file mode 100644
index 0000000..69b26db
--- /dev/null
+++ b/start/images/charmsbar/settings/plain.png
Binary files differ
diff --git a/start/images/charmsbar/settings/plants.png b/start/images/charmsbar/settings/plants.png
new file mode 100644
index 0000000..eebefc1
--- /dev/null
+++ b/start/images/charmsbar/settings/plants.png
Binary files differ
diff --git a/start/images/charmsbar/settings/plants2.png b/start/images/charmsbar/settings/plants2.png
new file mode 100644
index 0000000..002eac2
--- /dev/null
+++ b/start/images/charmsbar/settings/plants2.png
Binary files differ
diff --git a/start/images/charmsbar/settings/redflowers.png b/start/images/charmsbar/settings/redflowers.png
new file mode 100644
index 0000000..1fe3b52
--- /dev/null
+++ b/start/images/charmsbar/settings/redflowers.png
Binary files differ
diff --git a/start/images/charmsbar/settings/rollinghills.png b/start/images/charmsbar/settings/rollinghills.png
new file mode 100644
index 0000000..be424ca
--- /dev/null
+++ b/start/images/charmsbar/settings/rollinghills.png
Binary files differ
diff --git a/start/images/charmsbar/settings/shapes.png b/start/images/charmsbar/settings/shapes.png
new file mode 100644
index 0000000..fee53b3
--- /dev/null
+++ b/start/images/charmsbar/settings/shapes.png
Binary files differ
diff --git a/start/images/charmsbar/settings/squares.png b/start/images/charmsbar/settings/squares.png
new file mode 100644
index 0000000..5a13c51
--- /dev/null
+++ b/start/images/charmsbar/settings/squares.png
Binary files differ
diff --git a/start/images/charmsbar/settings/squares2.png b/start/images/charmsbar/settings/squares2.png
new file mode 100644
index 0000000..536ad29
--- /dev/null
+++ b/start/images/charmsbar/settings/squares2.png
Binary files differ
diff --git a/start/images/charmsbar/settings/swirly.png b/start/images/charmsbar/settings/swirly.png
new file mode 100644
index 0000000..dfe6950
--- /dev/null
+++ b/start/images/charmsbar/settings/swirly.png
Binary files differ
diff --git a/start/images/charmsbar/settings/swirlygrass.png b/start/images/charmsbar/settings/swirlygrass.png
new file mode 100644
index 0000000..ead44f3
--- /dev/null
+++ b/start/images/charmsbar/settings/swirlygrass.png
Binary files differ
diff --git a/start/images/charmsbar/settings/swirlyplants.png b/start/images/charmsbar/settings/swirlyplants.png
new file mode 100644
index 0000000..e5f8cb7
--- /dev/null
+++ b/start/images/charmsbar/settings/swirlyplants.png
Binary files differ
diff --git a/start/images/charmsbar/settings/thickgrass.png b/start/images/charmsbar/settings/thickgrass.png
new file mode 100644
index 0000000..5e62c85
--- /dev/null
+++ b/start/images/charmsbar/settings/thickgrass.png
Binary files differ
diff --git a/start/images/charmsbar/settings/thincircle.png b/start/images/charmsbar/settings/thincircle.png
new file mode 100644
index 0000000..d10c863
--- /dev/null
+++ b/start/images/charmsbar/settings/thincircle.png
Binary files differ
diff --git a/start/images/charmsbar/settings/wavy.png b/start/images/charmsbar/settings/wavy.png
new file mode 100644
index 0000000..36193e0
--- /dev/null
+++ b/start/images/charmsbar/settings/wavy.png
Binary files differ
diff --git a/start/images/charmsbar/settings/windowsdpgreen.png b/start/images/charmsbar/settings/windowsdpgreen.png
new file mode 100644
index 0000000..b7730b5
--- /dev/null
+++ b/start/images/charmsbar/settings/windowsdpgreen.png
Binary files differ
diff --git a/start/images/charmsbar/settings/wonderland.png b/start/images/charmsbar/settings/wonderland.png
new file mode 100644
index 0000000..a665797
--- /dev/null
+++ b/start/images/charmsbar/settings/wonderland.png
Binary files differ
diff --git a/start/images/charmsbar/settings/xboxmusic.png b/start/images/charmsbar/settings/xboxmusic.png
new file mode 100644
index 0000000..6b2d243
--- /dev/null
+++ b/start/images/charmsbar/settings/xboxmusic.png
Binary files differ
diff --git a/start/images/charmsbar/settings/yellowparrots.png b/start/images/charmsbar/settings/yellowparrots.png
new file mode 100644
index 0000000..bae5e56
--- /dev/null
+++ b/start/images/charmsbar/settings/yellowparrots.png
Binary files differ
diff --git a/start/images/contrejour.png b/start/images/contrejour.png
new file mode 100644
index 0000000..c3a78ca
--- /dev/null
+++ b/start/images/contrejour.png
Binary files differ
diff --git a/start/images/cuttherope.png b/start/images/cuttherope.png
new file mode 100644
index 0000000..5aecb7a
--- /dev/null
+++ b/start/images/cuttherope.png
Binary files differ
diff --git a/start/images/desktop.jpg b/start/images/desktop.jpg
new file mode 100644
index 0000000..5ef5524
--- /dev/null
+++ b/start/images/desktop.jpg
Binary files differ
diff --git a/start/images/firefox.png b/start/images/firefox.png
new file mode 100644
index 0000000..2209c88
--- /dev/null
+++ b/start/images/firefox.png
Binary files differ
diff --git a/start/images/fruitninja.png b/start/images/fruitninja.png
new file mode 100644
index 0000000..d10e4e6
--- /dev/null
+++ b/start/images/fruitninja.png
Binary files differ
diff --git a/start/images/games.png b/start/images/games.png
new file mode 100644
index 0000000..d39ccad
--- /dev/null
+++ b/start/images/games.png
Binary files differ
diff --git a/start/images/grooveshark.png b/start/images/grooveshark.png
new file mode 100644
index 0000000..7cc6f7c
--- /dev/null
+++ b/start/images/grooveshark.png
Binary files differ
diff --git a/start/images/info.png b/start/images/info.png
new file mode 100644
index 0000000..cc6b08a
--- /dev/null
+++ b/start/images/info.png
Binary files differ
diff --git a/start/images/instazine.png b/start/images/instazine.png
new file mode 100644
index 0000000..d7ec65b
--- /dev/null
+++ b/start/images/instazine.png
Binary files differ
diff --git a/start/images/link6155.gif b/start/images/link6155.gif
new file mode 100644
index 0000000..fe0f1ea
--- /dev/null
+++ b/start/images/link6155.gif
Binary files differ
diff --git a/start/images/mail.png b/start/images/mail.png
new file mode 100644
index 0000000..10f3b0d
--- /dev/null
+++ b/start/images/mail.png
Binary files differ
diff --git a/start/images/maps.png b/start/images/maps.png
new file mode 100644
index 0000000..265633b
--- /dev/null
+++ b/start/images/maps.png
Binary files differ
diff --git a/start/images/messaging.png b/start/images/messaging.png
new file mode 100644
index 0000000..db3d4e5
--- /dev/null
+++ b/start/images/messaging.png
Binary files differ
diff --git a/start/images/metroie.png b/start/images/metroie.png
new file mode 100644
index 0000000..3391340
--- /dev/null
+++ b/start/images/metroie.png
Binary files differ
diff --git a/start/images/music.png b/start/images/music.png
new file mode 100644
index 0000000..d55cbb4
--- /dev/null
+++ b/start/images/music.png
Binary files differ
diff --git a/start/images/notes.png b/start/images/notes.png
new file mode 100644
index 0000000..286ba62
--- /dev/null
+++ b/start/images/notes.png
Binary files differ
diff --git a/start/images/ntim007.gif b/start/images/ntim007.gif
new file mode 100644
index 0000000..625e3ab
--- /dev/null
+++ b/start/images/ntim007.gif
Binary files differ
diff --git a/start/images/pacman.png b/start/images/pacman.png
new file mode 100644
index 0000000..467a6cf
--- /dev/null
+++ b/start/images/pacman.png
Binary files differ
diff --git a/start/images/people.png b/start/images/people.png
new file mode 100644
index 0000000..9f4216b
--- /dev/null
+++ b/start/images/people.png
Binary files differ
diff --git a/start/images/photos.png b/start/images/photos.png
new file mode 100644
index 0000000..ab3b55e
--- /dev/null
+++ b/start/images/photos.png
Binary files differ
diff --git a/start/images/pixelpaint.png b/start/images/pixelpaint.png
new file mode 100644
index 0000000..ee8490a
--- /dev/null
+++ b/start/images/pixelpaint.png
Binary files differ
diff --git a/start/images/portalsmall.png b/start/images/portalsmall.png
new file mode 100644
index 0000000..122fa1b
--- /dev/null
+++ b/start/images/portalsmall.png
Binary files differ
diff --git a/start/images/reader.png b/start/images/reader.png
new file mode 100644
index 0000000..0aa3408
--- /dev/null
+++ b/start/images/reader.png
Binary files differ
diff --git a/start/images/remotedesktop.png b/start/images/remotedesktop.png
new file mode 100644
index 0000000..39bb2ed
--- /dev/null
+++ b/start/images/remotedesktop.png
Binary files differ
diff --git a/start/images/scrollbar/down-active.png b/start/images/scrollbar/down-active.png
new file mode 100644
index 0000000..1d9b24d
--- /dev/null
+++ b/start/images/scrollbar/down-active.png
Binary files differ
diff --git a/start/images/scrollbar/down.png b/start/images/scrollbar/down.png
new file mode 100644
index 0000000..1458e5d
--- /dev/null
+++ b/start/images/scrollbar/down.png
Binary files differ
diff --git a/start/images/scrollbar/left-active.png b/start/images/scrollbar/left-active.png
new file mode 100644
index 0000000..afb16af
--- /dev/null
+++ b/start/images/scrollbar/left-active.png
Binary files differ
diff --git a/start/images/scrollbar/left.png b/start/images/scrollbar/left.png
new file mode 100644
index 0000000..fd9e8ff
--- /dev/null
+++ b/start/images/scrollbar/left.png
Binary files differ
diff --git a/start/images/scrollbar/right-active.png b/start/images/scrollbar/right-active.png
new file mode 100644
index 0000000..a100658
--- /dev/null
+++ b/start/images/scrollbar/right-active.png
Binary files differ
diff --git a/start/images/scrollbar/right.png b/start/images/scrollbar/right.png
new file mode 100644
index 0000000..5f84df4
--- /dev/null
+++ b/start/images/scrollbar/right.png
Binary files differ
diff --git a/start/images/scrollbar/up-active.png b/start/images/scrollbar/up-active.png
new file mode 100644
index 0000000..5c4a660
--- /dev/null
+++ b/start/images/scrollbar/up-active.png
Binary files differ
diff --git a/start/images/scrollbar/up.png b/start/images/scrollbar/up.png
new file mode 100644
index 0000000..9b1d8f7
--- /dev/null
+++ b/start/images/scrollbar/up.png
Binary files differ
diff --git a/start/images/skybookmarks.png b/start/images/skybookmarks.png
new file mode 100644
index 0000000..fb0487a
--- /dev/null
+++ b/start/images/skybookmarks.png
Binary files differ
diff --git a/start/images/skydrive.png b/start/images/skydrive.png
new file mode 100644
index 0000000..76855a8
--- /dev/null
+++ b/start/images/skydrive.png
Binary files differ
diff --git a/start/images/smartsearch.png b/start/images/smartsearch.png
new file mode 100644
index 0000000..b9502a8
--- /dev/null
+++ b/start/images/smartsearch.png
Binary files differ
diff --git a/start/images/sports.png b/start/images/sports.png
new file mode 100644
index 0000000..44c4364
--- /dev/null
+++ b/start/images/sports.png
Binary files differ
diff --git a/start/images/store.png b/start/images/store.png
new file mode 100644
index 0000000..765f7e0
--- /dev/null
+++ b/start/images/store.png
Binary files differ
diff --git a/start/images/symbolistic.png b/start/images/symbolistic.png
new file mode 100644
index 0000000..fcb6f21
--- /dev/null
+++ b/start/images/symbolistic.png
Binary files differ
diff --git a/start/images/user.png b/start/images/user.png
new file mode 100644
index 0000000..331a5e8
--- /dev/null
+++ b/start/images/user.png
Binary files differ
diff --git a/start/images/videos.png b/start/images/videos.png
new file mode 100644
index 0000000..9b8b50a
--- /dev/null
+++ b/start/images/videos.png
Binary files differ
diff --git a/start/images/website.png b/start/images/website.png
new file mode 100644
index 0000000..67e6434
--- /dev/null
+++ b/start/images/website.png
Binary files differ
diff --git a/start/images/youtube.png b/start/images/youtube.png
new file mode 100644
index 0000000..30b3759
--- /dev/null
+++ b/start/images/youtube.png
Binary files differ
diff --git a/start/images/youtubechannel.png b/start/images/youtubechannel.png
new file mode 100644
index 0000000..507d242
--- /dev/null
+++ b/start/images/youtubechannel.png
Binary files differ
diff --git a/start/index.html b/start/index.html
new file mode 100644
index 0000000..a1495b4
--- /dev/null
+++ b/start/index.html
@@ -0,0 +1,609 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="x-ua-compatible" content="IE=edge">
+ <title>Start</title>
+ <!--[if IE]><style>#targetIE {margin-left:-2.5px;}</style><![endif]-->
+ <link rel="stylesheet" href="style.css"/>
+ <link rel="stylesheet" href="scrollbar.css"/>
+ <link rel="shortcut icon" href="../favicon.ico"/>
+ <script src="jquery-1.8.0.min.js" type="text/javascript"></script>
+ <script src="jquery-ui-1.8.23.min.js" type="text/javascript"></script>
+ <script src="cursorpagescroll.js" type="text/javascript"></script>
+ <script src="mousewheel.js" type="text/javascript"></script>
+ <script>
+ var sharecharms ='document.getElementById('sharecharms')';
+ var settingscharms ='document.getElementById('settingscharms')';
+ var searchcharms ='document.getElementById('searchcharms')';
+ </script>
+ <script>
+ function scale(){
+ $("#tiles").addClass("zoomoutview");
+ $("#zoomoutbutton").hide("fast");
+ $("#zoominbutton").fadeIn("fast");
+ }
+ function unscale(){
+ $("#tiles").removeClass("zoomoutview");
+ $("#zoominbutton").fadeOut("fast");
+ $("#zoomoutbutton").fadeIn("fast");
+ }
+
+ </script>
+ <script>
+ function charms(){
+ document.getElementById('charmsbar').style.display='block';
+ document.getElementById('datetime').style.display='block';
+ }
+ function destroycharms() {
+ document.getElementById('charmsbar').style.display='none';
+ document.getElementById('datetime').style.display='none';
+ }
+ function start(){
+ document.getElementById('startbutton').style.display='block';
+ }
+ function destroystart() {
+ document.getElementById('startbutton').style.display='none';
+ }
+ </script>
+ <script>
+ function changebg(iurl) {
+ document.body.style.backgroundImage='url(' + iurl + ')';
+ document.body.style.backgroundSize='cover';
+ document.body.style.backgroundAttachment='scroll';
+ }
+ function resetbg(imgurl) {
+ document.body.style.backgroundImage='url(' + imgurl + ')';
+ document.body.style.backgroundSize='100%';
+ document.body.style.backgroundAttachment='fixed';
+ }
+ </script>
+ <script>
+
+ function AddMouseWheel(){
+ $("body").mousewheel(function(event, delta){
+ var scroll_value = delta * 50;
+ if (!jQuery.browser.chrome) {
+ document.documentElement.scrollLeft -= scroll_value;
+ } else {
+ this.scrollLeft -= scroll_value;
+ }
+ return false;
+ });
+ }
+
+ $(function(){
+
+ AddMouseWheel();
+
+ })
+ </script>
+ <script>
+ $(document).ready(function() {
+ $("#searchreset").fadeIn();
+ $("#searchinput").keyup(function() {
+ $("#searchreset").fadeIn();
+ if ($.trim($("#searchinput").val()) == "") {
+ $("#searchreset").fadeOut();
+ }
+ });
+ $("#searchreset").click(function() {
+ $("#searchinput").val("");
+ $(this).hide();
+ });
+ });
+ </script>
+ <script type="text/javascript">
+ $(function()
+ {
+ $("#nameinput").keyup(function()
+ {
+ var name=$(this).val();
+ $("#name").html(name);
+ return false;
+ });
+ });
+ </script>
+ <script>
+ $(function()
+ {
+ $("#firstnameinput").keyup(function()
+ {
+ var firstname=$(this).val();
+ $("#firstname").html(firstname);
+ return false;
+ });
+ });
+ </script>
+</head>
+<body>
+ <div id="starttext" onclick="document.getElementById('userdropdown').style.display='none';">
+ <span>Start</span>
+ </div>
+ <div id="user" onclick="document.getElementById('userdropdown').style.display='block';">
+ <div id="names">
+ <p id="firstname">Anonymous</p>
+ <p id="name">User</p>
+ </div>
+ <img src="images/user.png" id="userimage"/>
+ </div>
+ <ul id="userdropdown">
+ <a href="../lockscreen/index.html"><li>Log out</li></a>
+ <li>Shut Down</li>
+ </ul>
+ <div id="tiles" onclick="document.getElementById('userdropdown').style.display='none';settingscharms.style.display='none';sharecharms.style.display='none';">
+ <div class="block">
+ <div class="blocktitle">
+ <!-- Block title -->
+ </div>
+ <div class="line">
+ <div class="tile">
+ <img src="images/mail.png" height="125" width="258"/>
+ <p>Mail</p>
+ </div>
+ <div class="tile">
+ <a href="../apps/calendar/index.html">
+ <img src="images/calendar.png" height="125" width="258"/>
+ </a>
+ <p>Calendar</p>
+ </div>
+ <div class="tile">
+ <a href="../iframeapps/metroie.html">
+ <img src="images/metroie.png" height="125" width="125"/>
+ </a>
+ <p>Internet Explorer</p>
+ </div>
+ <div class="tile">
+ <a href="../store/index.html">
+ <img src="images/store.png" height="125" width="125"/>
+ </a>
+ <p>Store</p>
+ </div>
+ </div>
+ <div class="line">
+ <div class="tile">
+ <img src="images/people.png" height="125" width="125"/>
+ <p>People</p>
+ </div>
+ <div class="tile">
+ <a href="../apps/firefox/index.html">
+ <img src="images/firefox.png" height="125" width="125"/>
+ </a>
+ <p>Firefox</p>
+ </div>
+ <div class="tile">
+ <iframe src="livetiles/photos/index.html" height="125" width="258" scrolling="no" frameborder="0">Your browser doesn't support iframes !
+ </iframe>
+ <p>Photos</p>
+ </div>
+ <div class="tile">
+ <a href="../apps/maps/index.html">
+ <img src="images/maps.png" height="125" width="125"/>
+ </a>
+ <p>Maps</p>
+ </div>
+ <div class="tile">
+ <img src="images/skydrive.png" height="125" width="125"/>
+ <p>Skydrive</p>
+ </div>
+ </div>
+
+ <div class="line">
+ <div class="tile">
+ <a href="../desktop/desktop.html">
+ <img src="images/desktop.jpg" height="125" width="258"/>
+ </a>
+ <p>Desktop</p>
+ </div>
+ <div class="tile">
+ <a href="../iframeapps/weather.html">
+ <iframe src="livetiles/weather/index.html" height="125" width="258" scrolling="no" frameborder="0">Your browser doesn't support iframes !
+ </iframe>
+ </a>
+ <p>Weather</p>
+ </div>
+ <div class="tile">
+ <iframe src="livetiles/rss/index.html" height="125" width="258" scrolling="no" frameborder="0">Your browser doesn't support iframes !</iframe>
+ <p></p>
+ </div>
+ </div>
+ </div>
+ <div class="block two">
+ <div class="blocktitle">
+
+ </div>
+ <div class="line">
+ <div class="tile">
+ <a href="../apps/smartsearch/index.html">
+ <img src="images/smartsearch.png" height="125" width="258"/>
+ </a>
+ <p class="black"></p>
+ </div>
+ <div class="tile">
+ <a href="../apps/remotedesktop/index.html">
+ <img src="images/remotedesktop.png" height="125" width="125"/>
+ </a>
+ <p>Remote Desktop</p>
+ </div>
+ <div class="tile">
+ <a href="../iframeapps/instazine.html">
+ <img src="images/instazine.png" height="125" width="125"/>
+ </a>
+ <p class="white">Instazine</p>
+ </div>
+ <div class="tile">
+ <img src="images/messaging.png" height="125" width="258"/>
+ <p>Messaging</p>
+ </div>
+ </div>
+ <div class="line">
+ <div class="tile">
+ <img src="images/sports.png" height="125" width="125"/>
+ <p>Sports</p>
+ </div>
+ <div class="tile">
+ <img src="images/reader.png" height="125" width="125"/>
+ <p>Reader</p>
+ </div>
+ <div class="tile">
+ <a href="../apps/youtube/index.html">
+ <img src="images/youtube.png" height="125" width="258"/>
+ </a>
+ <p></p>
+ </div>
+ <div class="tile">
+ <a href="../iframeapps/camera.html">
+ <img src="images/camera.png" height="125" width="125"/>
+ </a>
+ <p>Camera</p>
+ </div>
+ <div class="tile">
+ <a href="../apps/calculator/index.html">
+ <img src="images/calc.png" height="125" width="125"/>
+ </a>
+ <p>Calculator</p>
+ </div>
+ </div>
+ <div class="line">
+ <div class="tile">
+ <img src="images/music.png" height="125" width="125"/>
+ <p>Music</p>
+ </div>
+ <div class="tile">
+ <img src="images/videos.png" height="125" width="125"/>
+ <p>Videos</p>
+ </div>
+ <div class="tile">
+ <a href="../apps/notes/index.html">
+ <img src="images/notes.png" height="125" width="125"/>
+ </a>
+ </div>
+ <div class="tile">
+ <a href="../apps/skybookmarks/index.html">
+ <img src="images/skybookmarks.png" height="125" width="125"/>
+ </a>
+ <p>SkyBookmarks</p>
+ </div>
+ <div class="tile">
+ <a href="../iframeapps/grooveshark.html">
+ <img src="images/grooveshark.png" height="125" width="258"/>
+ </a>
+ <p>Grooveshark</p>
+ </div>
+ </div>
+ </div>
+ <div class="block three">
+ <div class="blocktitle">
+ </div>
+ <div class="line">
+ <div class="tile">
+ <a href="../iframeapps/cuttherope.html">
+ <img src="images/cuttherope.png" height="125" width="258"/>
+ </a>
+ </div>
+ <div class="tile">
+ <img src="images/games.png" height="125" width="258"/>
+ <p>Games</p>
+ </div>
+ <div class="tile">
+ <a href="../games/battleship/index.html">
+ <img src="images/battleship.png" height="125" width="125"/>
+ <p>Battleship</p>
+ </a>
+ </div>
+ <div class="tile">
+ <a href="../games/symbolistic/index.html">
+ <img src="images/symbolistic.png" height="125" width="125"/>
+ </a>
+ <p>Symbolistic</p>
+ </div>
+ </div>
+ <div class="line">
+ <div class="tile">
+ <a href="../iframeapps/portal.html">
+ <img src="images/portalsmall.png" height="125" width="125"/>
+ </a>
+ </div>
+ <div class="tile">
+ <a href="../games/pixelpaint/index.html">
+ <img src="images/pixelpaint.png" height="125" width="125"/>
+ </a>
+ </div>
+ <div class="tile">
+ <a href="../iframeapps/pacman.html">
+ <img src="images/pacman.png" height="125" width="125"/>
+ </a>
+ </div>
+ <div class="tile">
+ <a href="../iframeapps/agent8ball.html">
+ <img src="images/agent8ball.png" height="125" width="125"/>
+ </a>
+ </div>
+ <div class="tile">
+ <a href="../iframeapps/captainforever.html">
+ <img src="images/captainforever.gif" height="125" width="258"/>
+ </a>
+ <p>Captain Forever</p>
+ </div>
+ </div>
+ <div class="line">
+ <div class="tile">
+ <a href="../iframeapps/fruitninja.html">
+ <img src="images/fruitninja.png" height="125" width="258"/>
+ </a>
+ </div>
+ <div class="tile">
+ <a href="../iframeapps/contrejour.html">
+ <img src="images/contrejour.png" height="125" width="258"/>
+ </a>
+ <p></p>
+ </div>
+ <div class="tile">
+ <a href="../iframeapps/angrybirds.html">
+ <img src="images/angrybirds.png" height="125" width="258"/>
+ </a>
+ </div>
+ </div>
+ </div>
+ <div class="block four">
+ <div class="blocktitle">
+
+ </div>
+ <div class="line">
+ <div class="shortcuttile">
+ <img src="images/metroie.png" class="shortcuticon" />
+ <div class="shortcutlabel">Shortcut template</div>
+ </div>
+ <div class="shortcuttile">
+ <img src="images/metroie.png" class="shortcuticon" />
+ <div class="shortcutlabel">Shortcut template</div>
+ </div>
+ </div>
+ <div class="line">
+ <div class="shortcuttile">
+ <img src="images/metroie.png" class="shortcuticon" />
+ <div class="shortcutlabel">Shortcut template</div>
+ </div>
+ <div class="shortcuttile">
+ <img src="images/metroie.png" class="shortcuticon" />
+ <div class="shortcutlabel">Shortcut template</div>
+ </div>
+ </div>
+ <div class="line">
+ <div class="shortcuttile">
+ <img src="images/metroie.png" class="shortcuticon" />
+ <div class="shortcutlabel">Shortcut template</div>
+ </div>
+ <div class="shortcuttile">
+ <img src="images/metroie.png" class="shortcuticon" />
+ <div class="shortcutlabel">Shortcut template</div>
+ </div>
+ </div>
+ </div>
+ <div class="block five">
+ <div class="blocktitle">
+
+ </div>
+ <div class="line">
+ <div class="nobackground rectangle tile">
+ This website was created to almost simulate the feeling of Windows 8 online made completely out of HTML and CSS. The tiles all work. You can even try the desktop !! Thanks for downloading and enjoy !!
+ <br/>
+ Made by ntim007, DaKoder, link6155 and blindbartemais.
+ </div>
+ </div>
+ <div class="line">
+ <div class="tile">
+ <a href="about.html">
+ <img src="images/info.png" height="125" width="125"/>
+ </a>
+ <p>More info...</p>
+ </div>
+ <div class="tile">
+ <a href="http://onlinewindows8.koding.com">
+ <img src="images/website.png" height="125" width="125"/>
+ </a>
+ <p>Official website</p>
+ </div>
+ <div class="tile">
+ <a href="http://onlinewindows8.koding.com/wordpress">
+ <img src="images/blog.png" height="125" width="125"/>
+ </a>
+ <p>Blog</p>
+ </div>
+ <div class="tile">
+ <a href="http://youtube.com/onlinewindows8">
+ <img src="images/youtubechannel.png" height="125" width="125"/>
+ </a>
+ <p>YouTube channel</p>
+ </div>
+ </div>
+ <div class="line">
+ <div class="tile">
+ <a href="http://ntim007.koding.com/">
+ <img src="images/ntim007.gif" height="125" width="125"/>
+ </a>
+ <p>ntim007</p>
+ </div>
+ <div class="tile">
+ <a href="http://link6155.deviantart.com">
+ <img src="images/link6155.gif" height="125" width="125"/>
+ </a>
+ </div>
+ <div class="tile">
+ <iframe src="livetiles/dakoder/index.html" height="125" width="125" scrolling="no" frameborder="0">Your browser doesn't support iframes !</iframe>
+ <p></p>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="zoomoutbutton" onclick="scale()">-</div>
+ <div id="zoominbutton" onclick="unscale()">+</div>
+ <div id="hoverarea" onmouseover="charms()"></div>
+ <div id="charmsbar" onmouseover="charms()" onmouseout="destroycharms()">
+ <img src="../common/img/charmsbar/search.png" onmouseover="this.src='../common/img/charmsbar/search-hover.png'" onmouseout="this.src='../common/img/charmsbar/search.png'" onclick="searchcharms.style.display='inline';"/><br/>
+ <img src="../common/img/charmsbar/share.png" onclick="sharecharms.style.display='inline';"onmouseover="this.src='../common/img/charmsbar/share-hover.png'" onmouseout="this.src='../common/img/charmsbar/share.png'"/><br/>
+ <img src="../common/img/charmsbar/start.png" onmouseover="this.src='../common/img/charmsbar/start-hover.png'" onmouseout="this.src='../common/img/charmsbar/start.png'"/><br/>
+ <img src="../common/img/charmsbar/devices.png" onmouseover="this.src='../common/img/charmsbar/devices-hover.png'" onmouseout="this.src='../common/img/charmsbar/devices.png'"/><br/>
+ <img src="../common/img/charmsbar/settings.png" onmouseover="this.src='../common/img/charmsbar/settings-hover.png'" onmouseout="this.src='../common/img/charmsbar/settings.png'" onclick="settingscharms.style.display='inline';"/><br/>
+ </div>
+ <div id="datetime">
+ <img src="../common/img/network.png" id="iconnetwork" height="24px" width="24px"/>
+ <img src="../common/img/battery.png" id="iconbattery"/>
+ <span id="time"></span>
+ <script>
+ <!-- Begin
+ function clock() {
+ var digital = new Date();
+ var hours = digital.getHours();
+ var minutes = digital.getMinutes();
+ var seconds = digital.getSeconds();
+ var amOrPm = "AM";
+ if (hours > 11) amOrPm = "PM";
+ if (hours > 12) hours = hours - 12;
+ if (hours == 0) hours = 12;
+ if (minutes <= 9) minutes = "0" + minutes;
+ if (seconds <= 9) seconds = "0" + seconds;
+ dispTime = hours + ":" + minutes ;
+ document.getElementById('time').innerHTML = dispTime;
+ setTimeout("clock()", 1000);
+ }
+ window.onmouseover=clock;
+ // End -->
+ </script>
+ <div id="date">
+ <script>
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+ var now = new Date
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+ </div>
+ </div>
+ <div id="bottomhoverarea" onmouseover="charms()"></div>
+ <div id="starthoverarea" onmouseover="start()"></div>
+ <div id="startbutton" onmouseout="destroystart()">
+ <img src="../common/img/start.png"/>
+ </div>
+ <div id="settingscharms" class="charms">
+ <a href="#" onclick="settingscharms.style.display='none';" class="closesettings"/></a>
+ <div class="ch1">Settings</div>
+ <div class="ch2d">Start</div>
+ <div class="ch2">Background</div>
+ <img src="images/charmsbar/settings/redflowers.png" onclick="changebg('images/backgrounds/redplants.png')"/>
+ <img src="images/charmsbar/settings/paradoxalred.png" onclick="changebg('images/backgrounds/paradoxalred.png')"/>
+ <img src="images/charmsbar/settings/fishypink.png" onclick="changebg('images/backgrounds/fishypink.png')"/>
+ <img src="images/charmsbar/settings/pinkwaves.png" onclick="changebg('images/backgrounds/pinkwaves.png')"/>
+ <img src="images/charmsbar/settings/orangeswirly.png" onclick="changebg('images/backgrounds/orangeswirly.png')"/>
+ <img src="images/charmsbar/settings/bloom.png" onclick="resetbg('images/backgrounds/bloom.png')"/>
+ <img src="images/charmsbar/settings/yellowparrots.png" onclick="changebg('images/backgrounds/yellowparrots.png')"/>
+ <img src="images/charmsbar/settings/lightgreenclouds.png" onclick="changebg('images/backgrounds/lightgreenclouds.png')"/>
+ <img src="images/charmsbar/settings/lightgreenflowers.png" onclick="changebg('images/backgrounds/lightgreenflowers.png')"/>
+ <img src="images/charmsbar/settings/windowsdpgreen.png" onclick="resetbg('images/backgrounds/windowsdpgreen.png')"/>
+ <img src="images/charmsbar/settings/greenparrots.png" onclick="changebg('images/backgrounds/greenparrots.png')"/>
+ <img src="images/charmsbar/settings/wonderland.png" onclick="changebg('images/backgrounds/wonderland.png')"/>
+ <img src="images/charmsbar/settings/paradise.png" onclick="changebg('images/backgrounds/paradise.png')"/>
+ <img src="images/charmsbar/settings/birds.png" onclick="changebg('images/backgrounds/bird.png')"/>
+ <img src="images/charmsbar/settings/mechanic.png" onclick="changebg('images/backgrounds/mechanic.png')"/>
+ <img src="images/charmsbar/settings/O.png" onclick="changebg('images/backgrounds/O.png')"/>
+ <img src="images/charmsbar/settings/plants2.png" onclick="changebg('images/backgrounds/plants2.png')"/>
+ <img src="images/charmsbar/settings/shapes.png" onclick="changebg('images/backgrounds/shapes.png')"/>
+ <img src="images/charmsbar/settings/swirlyplants.png" onclick="changebg('images/backgrounds/swirlyplants.png')"/>
+ <img src="images/charmsbar/settings/flowers.png" onclick="changebg('images/backgrounds/flowers.png')"/>
+ <img src="images/charmsbar/settings/xboxmusic.png" onclick="resetbg('images/backgrounds/xboxmusic.png')"/>
+ <img src="images/charmsbar/settings/circle.png" onclick="changebg('images/backgrounds/circles.png')"/>
+ <img src="images/charmsbar/settings/thincircle.png" onclick="changebg('images/backgrounds/thincircles.png')"/>
+ <img src="images/charmsbar/settings/grass.png" onclick="changebg('images/backgrounds/grass.png')"/>
+ <img src="images/charmsbar/settings/thickgrass.png" onclick="changebg('images/backgrounds/thickgrass.png')"/>
+ <img src="images/charmsbar/settings/swirlygrass.png" onclick="changebg('images/backgrounds/swirlygrass.png')"/>
+ <img src="images/charmsbar/settings/plain.png" onclick="changebg('images/backgrounds/plain.png')"/>
+ <img src="images/charmsbar/settings/squares.png" onclick="resetbg('images/backgrounds/bg.png')"/>
+ <img src="images/charmsbar/settings/hugeflowers.png" onclick="changebg('images/backgrounds/hugeflowers.png')"/>
+ <img src="images/charmsbar/settings/swirly.png" onclick="changebg('images/backgrounds/swirly.png')"/>
+ <img src="images/charmsbar/settings/squares2.png" onclick="resetbg('images/backgrounds/squares.png')"/>
+ <img src="images/charmsbar/settings/office.png" onclick="resetbg('images/backgrounds/office.png')"/>
+ <img src="images/charmsbar/settings/circleblue.png" onclick="changebg('images/backgrounds/circleblue.png')"/>
+ <img src="images/charmsbar/settings/plants.png" onclick="changebg('images/backgrounds/plants.png')"/>
+ <img src="images/charmsbar/settings/rollinghills.png" onclick="changebg('images/backgrounds/rollinghills.png')"/>
+ <img src="images/charmsbar/settings/default.png" onclick="changebg('images/backgrounds/default.png')"/>
+ <img src="images/charmsbar/settings/clouds.png" onclick="changebg('images/backgrounds/clouds.png')"/>
+ <img src="images/charmsbar/settings/dragons.png" onclick="changebg('images/backgrounds/dragon.png')"/>
+ <img src="images/charmsbar/settings/wavy.png" onclick="changebg('images/backgrounds/wavy.png')"/>
+ <img src="images/charmsbar/settings/greybird.png" onclick="changebg('images/backgrounds/greybird.png')"/>
+ <img src="images/charmsbar/settings/circlerevisited.png" onclick="resetbg('images/backgrounds/circlerevisited.png')"/>
+ <img src="images/backgrounds/plaindarkgrey.png" onclick="changebg('images/backgrounds/plaindarkgrey.png')"/>
+ <span class="ch2">Username</span><br/>
+ First Name :<input type="text" id="firstnameinput" value="Anonymous"/><br/>
+ Last name :<input type="text" id="nameinput" value="User"/><br/>
+
+ </div>
+ <div id="sharecharms" class="charms">
+ <a href="#" onclick="sharecharms.style.display='none';" class="closesettings"/></a>
+ <span class="ch1">Share</span><br/>
+ <span class="sharing">You are sharing : Online Windows 8</span><br/>
+ <span>Send</span><br/>
+ <span>Recommend</span><br/>
+ <div class="g-plusone" data-href="http://onlinewindows8.koding.com"></div>
+ <a href="https://twitter.com/share" class="twitter-share-button" data-url="http://onlinewindows8.koding.com" data-text="Online Windows 8" data-via="ntim007">Tweet</a>
+ <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="http://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+ </div>
+ <div id="searchcharms" class="charms">
+ <a href="#" onclick="searchcharms.style.display='none';" class="closesettings"/></a>
+ <div class="ch1">Search</div>
+ <form>
+ <input type="text" id="searchinput" placeholder="Search"/>
+ <input type="reset" id="searchreset"/>
+ <input type="submit"/>
+ </form>
+ <div class="searchcategory">
+ <img src="images/charmsbar/search/apps.png"/>
+ <span>Apps</span>
+ </div>
+ <div class="searchcategory">
+ <img src="images/charmsbar/search/settings.png"/>
+ <span>Settings</span>
+ </div>
+ <div class="searchcategory">
+ <img src="images/charmsbar/search/files.png"/>
+ <span>Files</span>
+ </div>
+ <div class="searchseperator"></div>
+ <div class="searchcategory">
+ <img src="images/charmsbar/search/smartsearch.png"/>
+ <span>SmartSearch</span>
+ </div>
+ <div class="searchcategory">
+ <img src="images/charmsbar/search/grooveshark.png"/>
+ <span>Grooveshark</span>
+ </div>
+ <div class="searchcategory">
+ <img src="images/charmsbar/search/youtube.png"/>
+ <span>YouTube</span>
+ </div>
+ </div>
+<script type='text/javascript' >
+ new CursorPageScroll( 7, 50 );
+</script>
+<script src="https://apis.google.com/js/plusone.js"></script>
+</body>
+</html>
+
+
diff --git a/start/jquery-1.8.0.min.js b/start/jquery-1.8.0.min.js
new file mode 100644
index 0000000..066d72c
--- /dev/null
+++ b/start/jquery-1.8.0.min.js
@@ -0,0 +1,2 @@
+/*! jQuery v@1.8.0 jquery.com | jquery.org/license */
+(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d<e;d++)p.event.add(b,c,h[c][d])}g.data&&(g.data=p.extend({},g.data))}function bE(a,b){var c;if(b.nodeType!==1)return;b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?(b.parentNode&&(b.outerHTML=a.outerHTML),p.support.html5Clone&&a.innerHTML&&!p.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):c==="input"&&bv.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text),b.removeAttribute(p.expando)}function bF(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bG(a){bv.test(a.type)&&(a.defaultChecked=a.checked)}function bX(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=bV.length;while(e--){b=bV[e]+c;if(b in a)return b}return d}function bY(a,b){return a=b||a,p.css(a,"display")==="none"||!p.contains(a.ownerDocument,a)}function bZ(a,b){var c,d,e=[],f=0,g=a.length;for(;f<g;f++){c=a[f];if(!c.style)continue;e[f]=p._data(c,"olddisplay"),b?(!e[f]&&c.style.display==="none"&&(c.style.display=""),c.style.display===""&&bY(c)&&(e[f]=p._data(c,"olddisplay",cb(c.nodeName)))):(d=bH(c,"display"),!e[f]&&d!=="none"&&p._data(c,"olddisplay",d))}for(f=0;f<g;f++){c=a[f];if(!c.style)continue;if(!b||c.style.display==="none"||c.style.display==="")c.style.display=b?e[f]||"":"none"}return a}function b$(a,b,c){var d=bO.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function b_(a,b,c,d){var e=c===(d?"border":"content")?4:b==="width"?1:0,f=0;for(;e<4;e+=2)c==="margin"&&(f+=p.css(a,c+bU[e],!0)),d?(c==="content"&&(f-=parseFloat(bH(a,"padding"+bU[e]))||0),c!=="margin"&&(f-=parseFloat(bH(a,"border"+bU[e]+"Width"))||0)):(f+=parseFloat(bH(a,"padding"+bU[e]))||0,c!=="padding"&&(f+=parseFloat(bH(a,"border"+bU[e]+"Width"))||0));return f}function ca(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=!0,f=p.support.boxSizing&&p.css(a,"boxSizing")==="border-box";if(d<=0){d=bH(a,b);if(d<0||d==null)d=a.style[b];if(bP.test(d))return d;e=f&&(p.support.boxSizingReliable||d===a.style[b]),d=parseFloat(d)||0}return d+b_(a,b,c||(f?"border":"content"),e)+"px"}function cb(a){if(bR[a])return bR[a];var b=p("<"+a+">").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write("<!doctype html><html><body>"),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bR[a]=c,c}function ch(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||cd.test(a)?d(a,e):ch(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ch(a+"["+e+"]",b[e],c,d);else d(a,b)}function cy(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h<i;h++)d=g[h],f=/^\+/.test(d),f&&(d=d.substr(1)||"*"),e=a[d]=a[d]||[],e[f?"unshift":"push"](c)}}function cz(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h,i=a[f],j=0,k=i?i.length:0,l=a===cu;for(;j<k&&(l||!h);j++)h=i[j](c,d,e),typeof h=="string"&&(!l||g[h]?h=b:(c.dataTypes.unshift(h),h=cz(a,c,d,e,h,g)));return(l||!h)&&!g["*"]&&(h=cz(a,c,d,e,"*",g)),h}function cA(a,c){var d,e,f=p.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((f[d]?a:e||(e={}))[d]=c[d]);e&&p.extend(!0,a,e)}function cB(a,c,d){var e,f,g,h,i=a.contents,j=a.dataTypes,k=a.responseFields;for(f in k)f in d&&(c[k[f]]=d[f]);while(j[0]==="*")j.shift(),e===b&&(e=a.mimeType||c.getResponseHeader("content-type"));if(e)for(f in i)if(i[f]&&i[f].test(e)){j.unshift(f);break}if(j[0]in d)g=j[0];else{for(f in d){if(!j[0]||a.converters[f+" "+j[0]]){g=f;break}h||(h=f)}g=g||h}if(g)return g!==j[0]&&j.unshift(g),d[g]}function cC(a,b){var c,d,e,f,g=a.dataTypes.slice(),h=g[0],i={},j=0;a.dataFilter&&(b=a.dataFilter(b,a.dataType));if(g[1])for(c in a.converters)i[c.toLowerCase()]=a.converters[c];for(;e=g[++j];)if(e!=="*"){if(h!=="*"&&h!==e){c=i[h+" "+e]||i["* "+e];if(!c)for(d in i){f=d.split(" ");if(f[1]===e){c=i[h+" "+f[0]]||i["* "+f[0]];if(c){c===!0?c=i[d]:i[d]!==!0&&(e=f[0],g.splice(j--,0,e));break}}}if(c!==!0)if(c&&a["throws"])b=c(b);else try{b=c(b)}catch(k){return{state:"parsererror",error:c?k:"No conversion from "+h+" to "+e}}}h=e}return{state:"success",data:b}}function cK(){try{return new a.XMLHttpRequest}catch(b){}}function cL(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function cT(){return setTimeout(function(){cM=b},0),cM=p.now()}function cU(a,b){p.each(b,function(b,c){var d=(cS[b]||[]).concat(cS["*"]),e=0,f=d.length;for(;e<f;e++)if(d[e].call(a,b,c))return})}function cV(a,b,c){var d,e=0,f=0,g=cR.length,h=p.Deferred().always(function(){delete i.elem}),i=function(){var b=cM||cT(),c=Math.max(0,j.startTime+j.duration-b),d=1-(c/j.duration||0),e=0,f=j.tweens.length;for(;e<f;e++)j.tweens[e].run(d);return h.notifyWith(a,[j,d,c]),d<1&&f?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:p.extend({},b),opts:p.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:cM||cT(),duration:c.duration,tweens:[],createTween:function(b,c,d){var e=p.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(e),e},stop:function(b){var c=0,d=b?j.tweens.length:0;for(;c<d;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;cW(k,j.opts.specialEasing);for(;e<g;e++){d=cR[e].call(j,a,k,j.opts);if(d)return d}return cU(j,k),p.isFunction(j.opts.start)&&j.opts.start.call(a,j),p.fx.timer(p.extend(i,{anim:j,queue:j.opts.queue,elem:a})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function cW(a,b){var c,d,e,f,g;for(c in a){d=p.camelCase(c),e=b[d],f=a[c],p.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=p.cssHooks[d];if(g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}}function cX(a,b,c){var d,e,f,g,h,i,j,k,l=this,m=a.style,n={},o=[],q=a.nodeType&&bY(a);c.queue||(j=p._queueHooks(a,"fx"),j.unqueued==null&&(j.unqueued=0,k=j.empty.fire,j.empty.fire=function(){j.unqueued||k()}),j.unqueued++,l.always(function(){l.always(function(){j.unqueued--,p.queue(a,"fx").length||j.empty.fire()})})),a.nodeType===1&&("height"in b||"width"in b)&&(c.overflow=[m.overflow,m.overflowX,m.overflowY],p.css(a,"display")==="inline"&&p.css(a,"float")==="none"&&(!p.support.inlineBlockNeedsLayout||cb(a.nodeName)==="inline"?m.display="inline-block":m.zoom=1)),c.overflow&&(m.overflow="hidden",p.support.shrinkWrapBlocks||l.done(function(){m.overflow=c.overflow[0],m.overflowX=c.overflow[1],m.overflowY=c.overflow[2]}));for(d in b){f=b[d];if(cO.exec(f)){delete b[d];if(f===(q?"hide":"show"))continue;o.push(d)}}g=o.length;if(g){h=p._data(a,"fxshow")||p._data(a,"fxshow",{}),q?p(a).show():l.done(function(){p(a).hide()}),l.done(function(){var b;p.removeData(a,"fxshow",!0);for(b in n)p.style(a,b,n[b])});for(d=0;d<g;d++)e=o[d],i=l.createTween(e,q?h[e]:0),n[e]=h[e]||p.style(a,e),e in h||(h[e]=i.start,q&&(i.end=i.start,i.start=e==="width"||e==="height"?1:0))}}function cY(a,b,c,d,e){return new cY.prototype.init(a,b,c,d,e)}function cZ(a,b){var c,d={height:a},e=0;for(;e<4;e+=2-b)c=bU[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function c_(a){return p.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}var c,d,e=a.document,f=a.location,g=a.navigator,h=a.jQuery,i=a.$,j=Array.prototype.push,k=Array.prototype.slice,l=Array.prototype.indexOf,m=Object.prototype.toString,n=Object.prototype.hasOwnProperty,o=String.prototype.trim,p=function(a,b){return new p.fn.init(a,b,c)},q=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,r=/\S/,s=/\s+/,t=r.test(" ")?/^[\s\xA0]+|[\s\xA0]+$/g:/^\s+|\s+$/g,u=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.0",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i<j;i++)if((a=arguments[i])!=null)for(c in a){d=h[c],e=a[c];if(h===e)continue;k&&e&&(p.isPlainObject(e)||(f=p.isArray(e)))?(f?(f=!1,g=d&&p.isArray(d)?d:[]):g=d&&p.isPlainObject(d)?d:{},h[c]=p.extend(k,g,e)):e!==b&&(h[c]=e)}return h},p.extend({noConflict:function(b){return a.$===p&&(a.$=i),b&&a.jQuery===p&&(a.jQuery=h),p},isReady:!1,readyWait:1,holdReady:function(a){a?p.readyWait++:p.ready(!0)},ready:function(a){if(a===!0?--p.readyWait:p.isReady)return;if(!e.body)return setTimeout(p.ready,1);p.isReady=!0;if(a!==!0&&--p.readyWait>0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f<g;)if(c.apply(a[f++],d)===!1)break}else if(h){for(e in a)if(c.call(a[e],e,a[e])===!1)break}else for(;f<g;)if(c.call(a[f],f,a[f++])===!1)break;return a},trim:o?function(a){return a==null?"":o.call(a)}:function(a){return a==null?"":a.toString().replace(t,"")},makeArray:function(a,b){var c,d=b||[];return a!=null&&(c=p.type(a),a.length==null||c==="string"||c==="function"||c==="regexp"||p.isWindow(a)?j.call(d,a):p.merge(d,a)),d},inArray:function(a,b,c){var d;if(b){if(l)return l.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=c.length,e=a.length,f=0;if(typeof d=="number")for(;f<d;f++)a[e++]=c[f];else while(c[f]!==b)a[e++]=c[f++];return a.length=e,a},grep:function(a,b,c){var d,e=[],f=0,g=a.length;c=!!c;for(;f<g;f++)d=!!b(a[f],f),c!==d&&e.push(a[f]);return e},map:function(a,c,d){var e,f,g=[],h=0,i=a.length,j=a instanceof p||i!==b&&typeof i=="number"&&(i>0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h<i;h++)e=c(a[h],h,d),e!=null&&(g[g.length]=e);else for(f in a)e=c(a[f],f,d),e!=null&&(g[g.length]=e);return g.concat.apply([],g)},guid:1,proxy:function(a,c){var d,e,f;return typeof c=="string"&&(d=a[c],c=a,a=d),p.isFunction(a)?(e=k.call(arguments,2),f=function(){return a.apply(c,e.concat(k.call(arguments)))},f.guid=a.guid=a.guid||f.guid||p.guid++,f):b},access:function(a,c,d,e,f,g,h){var i,j=d==null,k=0,l=a.length;if(d&&typeof d=="object"){for(k in d)p.access(a,c,k,d[k],1,g,e);f=1}else if(e!==b){i=h===b&&p.isFunction(e),j&&(i?(i=c,c=function(a,b,c){return i.call(p(a),c)}):(c.call(a,e),c=null));if(c)for(;k<l;k++)c(a[k],d,i?e.call(a[k],k,c(a[k],d)):e,h);f=1}return f?a:j?c.call(a):l?c(a[0],d):g},now:function(){return(new Date).getTime()}}),p.ready.promise=function(b){if(!d){d=p.Deferred();if(e.readyState==="complete"||e.readyState!=="loading"&&e.addEventListener)setTimeout(p.ready,1);else if(e.addEventListener)e.addEventListener("DOMContentLoaded",D,!1),a.addEventListener("load",p.ready,!1);else{e.attachEvent("onreadystatechange",D),a.attachEvent("onload",p.ready);var c=!1;try{c=a.frameElement==null&&e.documentElement}catch(f){}c&&c.doScroll&&function g(){if(!p.isReady){try{c.doScroll("left")}catch(a){return setTimeout(g,50)}p.ready()}}()}}return d.promise(b)},p.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){E["[object "+b+"]"]=b.toLowerCase()}),c=p(e);var F={};p.Callbacks=function(a){a=typeof a=="string"?F[a]||G(a):p.extend({},a);var c,d,e,f,g,h,i=[],j=!a.once&&[],k=function(b){c=a.memory&&b,d=!0,h=f||0,f=0,g=i.length,e=!0;for(;i&&h<g;h++)if(i[h].apply(b[0],b[1])===!1&&a.stopOnFalse){c=!1;break}e=!1,i&&(j?j.length&&k(j.shift()):c?i=[]:l.disable())},l={add:function(){if(i){var b=i.length;(function d(b){p.each(b,function(b,c){p.isFunction(c)&&(!a.unique||!l.has(c))?i.push(c):c&&c.length&&d(c)})})(arguments),e?g=i.length:c&&(f=b,k(c))}return this},remove:function(){return i&&p.each(arguments,function(a,b){var c;while((c=p.inArray(b,i,c))>-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return typeof a=="object"?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b<d;b++)c[b]&&p.isFunction(c[b].promise)?c[b].promise().done(g(b,j,c)).fail(f.reject).progress(g(b,i,h)):--e}return e||f.resolveWith(j,c),f.promise()}}),p.support=function(){var b,c,d,f,g,h,i,j,k,l,m,n=e.createElement("div");n.setAttribute("className","t"),n.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length||!d)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="<div></div>",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/^(?:\{.*\}|\[.*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||++p.uuid:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e<f;e++)delete d[b[e]];if(!(c?K:p.isEmptyObject)(d))return}}if(!c){delete h[i].data;if(!K(h[i]))return}g?p.cleanData([a],!0):p.support.deleteExpando||h!=h.window?delete h[i]:h[i]=null},_data:function(a,b,c){return p.data(a,b,c,!0)},acceptData:function(a){var b=a.nodeName&&p.noData[a.nodeName.toLowerCase()];return!b||b!==!0&&a.getAttribute("classid")===b}}),p.fn.extend({data:function(a,c){var d,e,f,g,h,i=this[0],j=0,k=null;if(a===b){if(this.length){k=p.data(i);if(i.nodeType===1&&!p._data(i,"parsedAttrs")){f=i.attributes;for(h=f.length;j<h;j++)g=f[j].name,g.indexOf("data-")===0&&(g=p.camelCase(g.substring(5)),J(i,g,k[g]));p._data(i,"parsedAttrs",!0)}}return k}return typeof a=="object"?this.each(function(){p.data(this,a)}):(d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!",p.access(this,function(c){if(c===b)return k=this.triggerHandler("getData"+e,[d[0]]),k===b&&i&&(k=p.data(i,a),k=J(i,a,k)),k===b&&d[1]?this.data(d[0]):k;d[1]=c,this.each(function(){var b=p(this);b.triggerHandler("setData"+e,d),p.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.shift(),e=p._queueHooks(a,b),f=function(){p.dequeue(a,b)};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),delete e.stop,d.call(a,f,e)),!c.length&&e&&e.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length<d?p.queue(this[0],a):c===b?this:this.each(function(){var b=p.queue(this,a,c);p._queueHooks(this,a),a==="fx"&&b[0]!=="inprogress"&&p.dequeue(this,a)})},dequeue:function(a){return this.each(function(){p.dequeue(this,a)})},delay:function(a,b){return a=p.fx?p.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){var d,e=1,f=p.Deferred(),g=this,h=this.length,i=function(){--e||f.resolveWith(g,[g])};typeof a!="string"&&(c=a,a=b),a=a||"fx";while(h--)(d=p._data(g[h],a+"queueHooks"))&&d.empty&&(e++,d.empty.add(i));return i(),f.promise(c)}});var L,M,N,O=/[\t\r\n]/g,P=/\r/g,Q=/^(?:button|input)$/i,R=/^(?:button|input|object|select|textarea)$/i,S=/^a(?:rea|)$/i,T=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,U=p.support.getSetAttribute;p.fn.extend({attr:function(a,b){return p.access(this,p.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{f=" "+e.className+" ";for(g=0,h=b.length;g<h;g++)~f.indexOf(" "+b[g]+" ")||(f+=b[g]+" ");e.className=p.trim(f)}}}return this},removeClass:function(a){var c,d,e,f,g,h,i;if(p.isFunction(a))return this.each(function(b){p(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(s);for(h=0,i=this.length;h<i;h++){e=this[h];if(e.nodeType===1&&e.className){d=(" "+e.className+" ").replace(O," ");for(f=0,g=c.length;f<g;f++)while(d.indexOf(" "+c[f]+" ")>-1)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(O," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c<d;c++){e=h[c];if(e.selected&&(p.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!p.nodeName(e.parentNode,"optgroup"))){b=p(e).val();if(i)return b;g.push(b)}}return i&&!g.length&&h.length?p(h[f]).val():g},set:function(a,b){var c=p.makeArray(b);return p(a).find("option").each(function(){this.selected=p.inArray(p(this).val(),c)>=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,""+d),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g<d.length;g++)e=d[g],e&&(c=p.propFix[e]||e,f=T.test(e),f||p.attr(a,e,""),a.removeAttribute(U?e:c),f&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(Q.test(a.nodeName)&&a.parentNode)p.error("type property can't be changed");else if(!p.support.radioValue&&b==="radio"&&p.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}},value:{get:function(a,b){return L&&p.nodeName(a,"button")?L.get(a,b):b in a?a.value:null},set:function(a,b,c){if(L&&p.nodeName(a,"button"))return L.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,f,g,h=a.nodeType;if(!a||h===3||h===8||h===2)return;return g=h!==1||!p.isXMLDoc(a),g&&(c=p.propFix[c]||c,f=p.propHooks[c]),d!==b?f&&"set"in f&&(e=f.set(a,d,c))!==b?e:a[c]=d:f&&"get"in f&&(e=f.get(a,c))!==null?e:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):R.test(a.nodeName)||S.test(a.nodeName)&&a.href?0:b}}}}),M={get:function(a,c){var d,e=p.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;return b===!1?p.removeAttr(a,c):(d=p.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase())),c}},U||(N={name:!0,id:!0,coords:!0},L=p.valHooks.button={get:function(a,c){var d;return d=a.getAttributeNode(c),d&&(N[c]?d.value!=="":d.specified)?d.value:b},set:function(a,b,c){var d=a.getAttributeNode(c);return d||(d=e.createAttribute(c),a.setAttributeNode(d)),d.value=b+""}},p.each(["width","height"],function(a,b){p.attrHooks[b]=p.extend(p.attrHooks[b],{set:function(a,c){if(c==="")return a.setAttribute(b,"auto"),c}})}),p.attrHooks.contenteditable={get:L.get,set:function(a,b,c){b===""&&(b="false"),L.set(a,b,c)}}),p.support.hrefNormalized||p.each(["href","src","width","height"],function(a,c){p.attrHooks[c]=p.extend(p.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),p.support.style||(p.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),p.support.optSelected||(p.propHooks.selected=p.extend(p.propHooks.selected,{get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}})),p.support.enctype||(p.propFix.enctype="encoding"),p.support.checkOn||p.each(["radio","checkbox"],function(){p.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),p.each(["radio","checkbox"],function(){p.valHooks[this]=p.extend(p.valHooks[this],{set:function(a,b){if(p.isArray(b))return a.checked=p.inArray(p(a).val(),b)>=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j<c.length;j++){k=W.exec(c[j])||[],l=k[1],m=(k[2]||"").split(".").sort(),r=p.event.special[l]||{},l=(f?r.delegateType:r.bindType)||l,r=p.event.special[l]||{},n=p.extend({type:l,origType:k[1],data:e,handler:d,guid:d.guid,selector:f,namespace:m.join(".")},o),q=i[l];if(!q){q=i[l]=[],q.delegateCount=0;if(!r.setup||r.setup.call(a,e,m,h)===!1)a.addEventListener?a.addEventListener(l,h,!1):a.attachEvent&&a.attachEvent("on"+l,h)}r.add&&(r.add.call(a,n),n.handler.guid||(n.handler.guid=d.guid)),f?q.splice(q.delegateCount++,0,n):q.push(n),p.event.global[l]=!0}a=null},global:{},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,q,r=p.hasData(a)&&p._data(a);if(!r||!(m=r.events))return;b=p.trim(_(b||"")).split(" ");for(f=0;f<b.length;f++){g=W.exec(b[f])||[],h=i=g[1],j=g[2];if(!h){for(h in m)p.event.remove(a,h+b[f],c,d,!0);continue}n=p.event.special[h]||{},h=(d?n.delegateType:n.bindType)||h,o=m[h]||[],k=o.length,j=j?new RegExp("(^|\\.)"+j.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(l=0;l<o.length;l++)q=o[l],(e||i===q.origType)&&(!c||c.guid===q.guid)&&(!j||j.test(q.namespace))&&(!d||d===q.selector||d==="**"&&q.selector)&&(o.splice(l--,1),q.selector&&o.delegateCount--,n.remove&&n.remove.call(a,q));o.length===0&&k!==o.length&&((!n.teardown||n.teardown.call(a,j,r.handle)===!1)&&p.removeEvent(a,h,r.handle),delete m[h])}p.isEmptyObject(m)&&(delete r.handle,p.removeData(a,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,f,g){if(!f||f.nodeType!==3&&f.nodeType!==8){var h,i,j,k,l,m,n,o,q,r,s=c.type||c,t=[];if($.test(s+p.event.triggered))return;s.indexOf("!")>=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j<q.length&&!c.isPropagationStopped();j++)k=q[j][0],c.type=q[j][1],o=(p._data(k,"events")||{})[c.type]&&p._data(k,"handle"),o&&o.apply(k,d),o=m&&k[m],o&&p.acceptData(k)&&o.apply(k,d)===!1&&c.preventDefault();return c.type=s,!g&&!c.isDefaultPrevented()&&(!n._default||n._default.apply(f.ownerDocument,d)===!1)&&(s!=="click"||!p.nodeName(f,"a"))&&p.acceptData(f)&&m&&f[s]&&(s!=="focus"&&s!=="blur"||c.target.offsetWidth!==0)&&!p.isWindow(f)&&(l=f[m],l&&(f[m]=null),p.event.triggered=s,f[s](),p.event.triggered=b,l&&(f[m]=l)),c.result}return},dispatch:function(c){c=p.event.fix(c||a.event);var d,e,f,g,h,i,j,k,l,m,n,o=(p._data(this,"events")||{})[c.type]||[],q=o.delegateCount,r=[].slice.call(arguments),s=!c.exclusive&&!c.namespace,t=p.event.special[c.type]||{},u=[];r[0]=c,c.delegateTarget=this;if(t.preDispatch&&t.preDispatch.call(this,c)===!1)return;if(q&&(!c.button||c.type!=="click")){g=p(this),g.context=this;for(f=c.target;f!=this;f=f.parentNode||this)if(f.disabled!==!0||c.type!=="click"){i={},k=[],g[0]=f;for(d=0;d<q;d++)l=o[d],m=l.selector,i[m]===b&&(i[m]=g.is(m)),i[m]&&k.push(l);k.length&&u.push({elem:f,matches:k})}}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d<u.length&&!c.isPropagationStopped();d++){j=u[d],c.currentTarget=j.elem;for(e=0;e<j.matches.length&&!c.isImmediatePropagationStopped();e++){l=j.matches[e];if(s||!c.namespace&&!l.namespace||c.namespace_re&&c.namespace_re.test(l.namespace))c.data=l.data,c.handleObj=l,h=((p.event.special[l.origType]||{}).handle||l.handler).apply(j.elem,r),h!==b&&(c.result=h,h===!1&&(c.preventDefault(),c.stopPropagation()))}}return t.postDispatch&&t.postDispatch.call(this,c),c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,c){var d,f,g,h=c.button,i=c.fromElement;return a.pageX==null&&c.clientX!=null&&(d=a.target.ownerDocument||e,f=d.documentElement,g=d.body,a.pageX=c.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=c.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?c.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0),a}},fix:function(a){if(a[p.expando])return a;var b,c,d=a,f=p.event.fixHooks[a.type]||{},g=f.props?this.props.concat(f.props):this.props;a=p.Event(d);for(b=g.length;b;)c=g[--b],a[c]=d[c];return a.target||(a.target=d.srcElement||e),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,f.filter?f.filter(a,d):a},special:{ready:{setup:p.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){p.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=p.extend(new p.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?p.event.trigger(e,null,b):p.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},p.event.handle=p.event.dispatch,p.removeEvent=e.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]=="undefined"&&(a[d]=null),a.detachEvent(d,c))},p.Event=function(a,b){if(this instanceof p.Event)a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?bb:ba):this.type=a,b&&p.extend(this,b),this.timeStamp=a&&a.timeStamp||p.now(),this[p.expando]=!0;else return new p.Event(a,b)},p.Event.prototype={preventDefault:function(){this.isDefaultPrevented=bb;var a=this.originalEvent;if(!a)return;a.preventDefault?a.preventDefault():a.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=bb;var a=this.originalEvent;if(!a)return;a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=bb,this.stopPropagation()},isDefaultPrevented:ba,isPropagationStopped:ba,isImmediatePropagationStopped:ba},p.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){p.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj,g=f.selector;if(!e||e!==d&&!p.contains(d,e))a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b;return c}}}),p.support.submitBubbles||(p.event.special.submit={setup:function(){if(p.nodeName(this,"form"))return!1;p.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=p.nodeName(c,"input")||p.nodeName(c,"button")?c.form:b;d&&!p._data(d,"_submit_attached")&&(p.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),p._data(d,"_submit_attached",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&p.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(p.nodeName(this,"form"))return!1;p.event.remove(this,"._submit")}}),p.support.changeBubbles||(p.event.special.change={setup:function(){if(V.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")p.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),p.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),p.event.simulate("change",this,a,!0)});return!1}p.event.add(this,"beforeactivate._change",function(a){var b=a.target;V.test(b.nodeName)&&!p._data(b,"_change_attached")&&(p.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&p.event.simulate("change",this.parentNode,a,!0)}),p._data(b,"_change_attached",!0))})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){return p.event.remove(this,"._change"),V.test(this.nodeName)}}),p.support.focusinBubbles||p.each({focus:"focusin",blur:"focusout"},function(a,b){var c=0,d=function(a){p.event.simulate(b,a.target,p.event.fix(a),!0)};p.event.special[b]={setup:function(){c++===0&&e.addEventListener(a,d,!0)},teardown:function(){--c===0&&e.removeEventListener(a,d,!0)}}}),p.fn.extend({on:function(a,c,d,e,f){var g,h;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(h in a)this.on(h,c,d,a[h],f);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=ba;else if(!e)return this;return f===1&&(g=e,e=function(a){return p().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=p.guid++)),this.each(function(){p.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){var e,f;if(a&&a.preventDefault&&a.handleObj)return e=a.handleObj,p(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler),this;if(typeof a=="object"){for(f in a)this.off(f,c,a[f]);return this}if(c===!1||typeof c=="function")d=c,c=b;return d===!1&&(d=ba),this.each(function(){p.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){return p(this.context).on(a,this.selector,b,c),this},die:function(a,b){return p(this.context).off(a,this.selector||"**",b),this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a||"**",c)},trigger:function(a,b){return this.each(function(){p.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return p.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||p.guid++,d=0,e=function(c){var e=(p._data(this,"lastToggle"+a.guid)||0)%d;return p._data(this,"lastToggle"+a.guid,e+1),c.preventDefault(),b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),p.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){p.fn[b]=function(a,c){return c==null&&(c=a,a=null),arguments.length>0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bd(a,b,c,d){var e=0,f=b.length;for(;e<f;e++)Z(a,b[e],c,d)}function be(a,b,c,d,e,f){var g,h=$.setFilters[b.toLowerCase()];return h||Z.error(b),(a||!(g=e))&&bd(a||"*",d,g=[],e),g.length>0?h(g,c,f):[]}function bf(a,c,d,e,f){var g,h,i,j,k,l,m,n,p=0,q=f.length,s=L.POS,t=new RegExp("^"+s.source+"(?!"+r+")","i"),u=function(){var a=1,c=arguments.length-2;for(;a<c;a++)arguments[a]===b&&(g[a]=b)};for(;p<q;p++){s.exec(""),a=f[p],j=[],i=0,k=e;while(g=s.exec(a)){n=s.lastIndex=g.index+g[0].length;if(n>i){m=a.slice(i,g.index),i=n,l=[c],B.test(m)&&(k&&(l=k),k=e);if(h=H.test(m))m=m.slice(0,-5).replace(B,"$&*");g.length>1&&g[0].replace(t,u),k=be(m,g[1],g[2],l,k,h)}}k?(j=j.concat(k),(m=a.slice(i))&&m!==")"?B.test(m)?bd(m,j,d,e):Z(m,c,d,e?e.concat(k):k):o.apply(d,j)):Z(a,c,d,e)}return q===1?d:Z.uniqueSort(d)}function bg(a,b,c){var d,e,f,g=[],i=0,j=D.exec(a),k=!j.pop()&&!j.pop(),l=k&&a.match(C)||[""],m=$.preFilter,n=$.filter,o=!c&&b!==h;for(;(e=l[i])!=null&&k;i++){g.push(d=[]),o&&(e=" "+e);while(e){k=!1;if(j=B.exec(e))e=e.slice(j[0].length),k=d.push({part:j.pop().replace(A," "),captures:j});for(f in n)(j=L[f].exec(e))&&(!m[f]||(j=m[f](j,b,c)))&&(e=e.slice(j.shift().length),k=d.push({part:f,captures:j}));if(!k)break}}return k||Z.error(a),g}function bh(a,b,e){var f=b.dir,g=m++;return a||(a=function(a){return a===e}),b.first?function(b,c){while(b=b[f])if(b.nodeType===1)return a(b,c)&&b}:function(b,e){var h,i=g+"."+d,j=i+"."+c;while(b=b[f])if(b.nodeType===1){if((h=b[q])===j)return b.sizset;if(typeof h=="string"&&h.indexOf(i)===0){if(b.sizset)return b}else{b[q]=j;if(a(b,e))return b.sizset=!0,b;b.sizset=!1}}}}function bi(a,b){return a?function(c,d){var e=b(c,d);return e&&a(e===!0?c:e,d)}:b}function bj(a,b,c){var d,e,f=0;for(;d=a[f];f++)$.relative[d.part]?e=bh(e,$.relative[d.part],b):(d.captures.push(b,c),e=bi(e,$.filter[d.part].apply(null,d.captures)));return e}function bk(a){return function(b,c){var d,e=0;for(;d=a[e];e++)if(d(b,c))return!0;return!1}}var c,d,e,f,g,h=a.document,i=h.documentElement,j="undefined",k=!1,l=!0,m=0,n=[].slice,o=[].push,q=("sizcache"+Math.random()).replace(".",""),r="[\\x20\\t\\r\\n\\f]",s="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",t=s.replace("w","w#"),u="([*^$|!~]?=)",v="\\["+r+"*("+s+")"+r+"*(?:"+u+r+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+t+")|)|)"+r+"*\\]",w=":("+s+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|((?:[^,]|\\\\,|(?:,(?=[^\\[]*\\]))|(?:,(?=[^\\(]*\\))))*))\\)|)",x=":(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\)|)(?=[^-]|$)",y=r+"*([\\x20\\t\\r\\n\\f>+~])"+r+"*",z="(?=[^\\x20\\t\\r\\n\\f])(?:\\\\.|"+v+"|"+w.replace(2,7)+"|[^\\\\(),])+",A=new RegExp("^"+r+"+|((?:^|[^\\\\])(?:\\\\.)*)"+r+"+$","g"),B=new RegExp("^"+y),C=new RegExp(z+"?(?="+r+"*,|$)","g"),D=new RegExp("^(?:(?!,)(?:(?:^|,)"+r+"*"+z+")*?|"+r+"*(.*?))(\\)|$)"),E=new RegExp(z.slice(19,-6)+"\\x20\\t\\r\\n\\f>+~])+|"+y,"g"),F=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,G=/[\x20\t\r\n\f]*[+~]/,H=/:not\($/,I=/h\d/i,J=/input|select|textarea|button/i,K=/\\(?!\\)/g,L={ID:new RegExp("^#("+s+")"),CLASS:new RegExp("^\\.("+s+")"),NAME:new RegExp("^\\[name=['\"]?("+s+")['\"]?\\]"),TAG:new RegExp("^("+s.replace("[-","[-\\*")+")"),ATTR:new RegExp("^"+v),PSEUDO:new RegExp("^"+w),CHILD:new RegExp("^:(only|nth|last|first)-child(?:\\("+r+"*(even|odd|(([+-]|)(\\d*)n|)"+r+"*(?:([+-]|)"+r+"*(\\d+)|))"+r+"*\\)|)","i"),POS:new RegExp(x,"ig"),needsContext:new RegExp("^"+r+"*[>+~]|"+x,"i")},M={},N=[],O={},P=[],Q=function(a){return a.sizzleFilter=!0,a},R=function(a){return function(b){return b.nodeName.toLowerCase()==="input"&&b.type===a}},S=function(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}},T=function(a){var b=!1,c=h.createElement("div");try{b=a(c)}catch(d){}return c=null,b},U=T(function(a){a.innerHTML="<select></select>";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),V=T(function(a){a.id=q+0,a.innerHTML="<a name='"+q+"'></a><div name='"+q+"'></div>",i.insertBefore(a,i.firstChild);var b=h.getElementsByName&&h.getElementsByName(q).length===2+h.getElementsByName(q+0).length;return g=!h.getElementById(q),i.removeChild(a),b}),W=T(function(a){return a.appendChild(h.createComment("")),a.getElementsByTagName("*").length===0}),X=T(function(a){return a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!==j&&a.firstChild.getAttribute("href")==="#"}),Y=T(function(a){return a.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!a.getElementsByClassName||a.getElementsByClassName("e").length===0?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length!==1)}),Z=function(a,b,c,d){c=c||[],b=b||h;var e,f,g,i,j=b.nodeType;if(j!==1&&j!==9)return[];if(!a||typeof a!="string")return c;g=ba(b);if(!g&&!d)if(e=F.exec(a))if(i=e[1]){if(j===9){f=b.getElementById(i);if(!f||!f.parentNode)return c;if(f.id===i)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(i))&&bb(b,f)&&f.id===i)return c.push(f),c}else{if(e[2])return o.apply(c,n.call(b.getElementsByTagName(a),0)),c;if((i=e[3])&&Y&&b.getElementsByClassName)return o.apply(c,n.call(b.getElementsByClassName(i),0)),c}return bm(a,b,c,d,g)},$=Z.selectors={cacheLength:50,match:L,order:["ID","TAG"],attrHandle:{},createPseudo:Q,find:{ID:g?function(a,b,c){if(typeof b.getElementById!==j&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==j&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==j&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:W?function(a,b){if(typeof b.getElementsByTagName!==j)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(K,""),a[3]=(a[4]||a[5]||"").replace(K,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||Z.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&Z.error(a[0]),a},PSEUDO:function(a){var b,c=a[4];return L.CHILD.test(a[0])?null:(c&&(b=D.exec(c))&&b.pop()&&(a[0]=a[0].slice(0,b[0].length-c.length-1),c=b[0].slice(0,-1)),a.splice(2,3,c||a[3]),a)}},filter:{ID:g?function(a){return a=a.replace(K,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(K,""),function(b){var c=typeof b.getAttributeNode!==j&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(K,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=M[a];return b||(b=M[a]=new RegExp("(^|"+r+")"+a+"("+r+"|$)"),N.push(a),N.length>$.cacheLength&&delete M[N.shift()]),function(a){return b.test(a.className||typeof a.getAttribute!==j&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return b?function(d){var e=Z.attr(d,a),f=e+"";if(e==null)return b==="!=";switch(b){case"=":return f===c;case"!=":return f!==c;case"^=":return c&&f.indexOf(c)===0;case"*=":return c&&f.indexOf(c)>-1;case"$=":return c&&f.substr(f.length-c.length)===c;case"~=":return(" "+f+" ").indexOf(c)>-1;case"|=":return f===c||f.substr(0,c.length+1)===c+"-"}}:function(b){return Z.attr(b,a)!=null}},CHILD:function(a,b,c,d){if(a==="nth"){var e=m++;return function(a){var b,f,g=0,h=a;if(c===1&&d===0)return!0;b=a.parentNode;if(b&&(b[q]!==e||!a.sizset)){for(h=b.firstChild;h;h=h.nextSibling)if(h.nodeType===1){h.sizset=++g;if(h===a)break}b[q]=e}return f=a.sizset-d,c===0?f===0:f%c===0&&f/c>=0}}return function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b,c,d){var e=$.pseudos[a]||$.pseudos[a.toLowerCase()];return e||Z.error("unsupported pseudo: "+a),e.sizzleFilter?e(b,c,d):e}},pseudos:{not:Q(function(a,b,c){var d=bl(a.replace(A,"$1"),b,c);return function(a){return!d(a)}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!$.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},contains:Q(function(a){return function(b){return(b.textContent||b.innerText||bc(b)).indexOf(a)>-1}}),has:Q(function(a){return function(b){return Z(a,b).length>0}}),header:function(a){return I.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:R("radio"),checkbox:R("checkbox"),file:R("file"),password:R("password"),image:R("image"),submit:S("submit"),reset:S("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return J.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b,c){return c?a.slice(1):[a[0]]},last:function(a,b,c){var d=a.pop();return c?a:[d]},even:function(a,b,c){var d=[],e=c?1:0,f=a.length;for(;e<f;e=e+2)d.push(a[e]);return d},odd:function(a,b,c){var d=[],e=c?0:1,f=a.length;for(;e<f;e=e+2)d.push(a[e]);return d},lt:function(a,b,c){return c?a.slice(+b):a.slice(0,+b)},gt:function(a,b,c){return c?a.slice(0,+b+1):a.slice(+b+1)},eq:function(a,b,c){var d=a.splice(+b,1);return c?a:d}}};$.setFilters.nth=$.setFilters.eq,$.filters=$.pseudos,X||($.attrHandle={href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}}),V&&($.order.push("NAME"),$.find.NAME=function(a,b){if(typeof b.getElementsByName!==j)return b.getElementsByName(a)}),Y&&($.order.splice(1,0,"CLASS"),$.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!==j&&!c)return b.getElementsByClassName(a)});try{n.call(i.childNodes,0)[0].nodeType}catch(_){n=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}var ba=Z.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},bb=Z.contains=i.compareDocumentPosition?function(a,b){return!!(a.compareDocumentPosition(b)&16)}:i.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc=Z.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=bc(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=bc(b);return c};Z.attr=function(a,b){var c,d=ba(a);return d||(b=b.toLowerCase()),$.attrHandle[b]?$.attrHandle[b](a):U||d?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},Z.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},[0,0].sort(function(){return l=0}),i.compareDocumentPosition?e=function(a,b){return a===b?(k=!0,0):(!a.compareDocumentPosition||!b.compareDocumentPosition?a.compareDocumentPosition:a.compareDocumentPosition(b)&4)?-1:1}:(e=function(a,b){if(a===b)return k=!0,0;if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],g=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return f(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)g.unshift(j),j=j.parentNode;c=e.length,d=g.length;for(var l=0;l<c&&l<d;l++)if(e[l]!==g[l])return f(e[l],g[l]);return l===c?f(a,g[l],-1):f(e[l],b,1)},f=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),Z.uniqueSort=function(a){var b,c=1;if(e){k=l,a.sort(e);if(k)for(;b=a[c];c++)b===a[c-1]&&a.splice(c--,1)}return a};var bl=Z.compile=function(a,b,c){var d,e,f,g=O[a];if(g&&g.context===b)return g;e=bg(a,b,c);for(f=0;d=e[f];f++)e[f]=bj(d,b,c);return g=O[a]=bk(e),g.context=b,g.runs=g.dirruns=0,P.push(a),P.length>$.cacheLength&&delete O[P.shift()],g};Z.matches=function(a,b){return Z(a,null,null,b)},Z.matchesSelector=function(a,b){return Z(b,null,null,[a]).length>0};var bm=function(a,b,e,f,g){a=a.replace(A,"$1");var h,i,j,k,l,m,p,q,r,s=a.match(C),t=a.match(E),u=b.nodeType;if(L.POS.test(a))return bf(a,b,e,f,s);if(f)h=n.call(f,0);else if(s&&s.length===1){if(t.length>1&&u===9&&!g&&(s=L.ID.exec(t[0]))){b=$.find.ID(s[1],b,g)[0];if(!b)return e;a=a.slice(t.shift().length)}q=(s=G.exec(t[0]))&&!s.index&&b.parentNode||b,r=t.pop(),m=r.split(":not")[0];for(j=0,k=$.order.length;j<k;j++){p=$.order[j];if(s=L[p].exec(m)){h=$.find[p]((s[1]||"").replace(K,""),q,g);if(h==null)continue;m===r&&(a=a.slice(0,a.length-r.length)+m.replace(L[p],""),a||o.apply(e,n.call(h,0)));break}}}if(a){i=bl(a,b,g),d=i.dirruns++,h==null&&(h=$.find.TAG("*",G.test(a)&&b.parentNode||b));for(j=0;l=h[j];j++)c=i.runs++,i(l,b)&&e.push(l)}return e};h.querySelectorAll&&function(){var a,b=bm,c=/'|\\/g,d=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,e=[],f=[":active"],g=i.matchesSelector||i.mozMatchesSelector||i.webkitMatchesSelector||i.oMatchesSelector||i.msMatchesSelector;T(function(a){a.innerHTML="<select><option selected></option></select>",a.querySelectorAll("[selected]").length||e.push("\\["+r+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),T(function(a){a.innerHTML="<p test=''></p>",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+r+"*(?:\"\"|'')"),a.innerHTML="<input type='hidden'>",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=e.length&&new RegExp(e.join("|")),bm=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a)))if(d.nodeType===9)try{return o.apply(f,n.call(d.querySelectorAll(a),0)),f}catch(i){}else if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){var j=d.getAttribute("id"),k=j||q,l=G.test(a)&&d.parentNode||d;j?k=k.replace(c,"\\$&"):d.setAttribute("id",k);try{return o.apply(f,n.call(l.querySelectorAll(a.replace(C,"[id='"+k+"'] $&")),0)),f}catch(i){}finally{j||d.removeAttribute("id")}}return b(a,d,f,g,h)},g&&(T(function(b){a=g.call(b,"div");try{g.call(b,"[test!='']:sizzle"),f.push($.match.PSEUDO)}catch(c){}}),f=new RegExp(f.join("|")),Z.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!ba(b)&&!f.test(c)&&(!e||!e.test(c)))try{var h=g.call(b,c);if(h||a||b.document&&b.document.nodeType!==11)return h}catch(i){}return Z(c,null,null,[b]).length>0})}(),Z.attr=p.attr,p.find=Z,p.expr=Z.selectors,p.expr[":"]=p.expr.pseudos,p.unique=Z.uniqueSort,p.text=Z.getText,p.isXMLDoc=Z.isXML,p.contains=Z.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b<c;b++)if(p.contains(h[b],this))return!0});g=this.pushStack("","find",a);for(b=0,c=this.length;b<c;b++){d=g.length,p.find(a,this[b],g);if(b>0)for(e=d;e<g.length;e++)for(f=0;f<d;f++)if(g[f]===g[e]){g.splice(e--,1);break}}return g},has:function(a){var b,c=p(a,this),d=c.length;return this.filter(function(){for(b=0;b<d;b++)if(p.contains(this,c[b]))return!0})},not:function(a){return this.pushStack(bj(this,a,!1),"not",a)},filter:function(a){return this.pushStack(bj(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?bf.test(a)?p(a,this.context).index(this[0])>=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d<e;d++){c=this[d];while(c&&c.ownerDocument&&c!==b&&c.nodeType!==11){if(g?g.index(c)>-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/<tbody/i,br=/<|&#?\w+;/,bs=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,bu=new RegExp("<(?:"+bl+")[\\s/>]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,bz={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X<div>","</div>"]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1></$2>");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),c.innerHTML=a);c=0}catch(f){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){return bh(this[0])?this.length?this.pushStack(p(p.isFunction(a)?a():a),"replaceWith",a):this:p.isFunction(a)?this.each(function(b){var c=p(this),d=c.html();c.replaceWith(a.call(this,b,d))}):(typeof a!="string"&&(a=p(a).detach()),this.each(function(){var b=this.nextSibling,c=this.parentNode;p(this).remove(),b?p(b).before(a):p(c).append(a)}))},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){a=[].concat.apply([],a);var e,f,g,h,i=0,j=a[0],k=[],l=this.length;if(!p.support.checkClone&&l>1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i<l;i++)d.call(c&&p.nodeName(this[i],"table")?bC(this[i],"tbody"):this[i],i===h?g:p.clone(g,!0,!0))}g=f=null,k.length&&p.each(k,function(a,b){b.src?p.ajax?p.ajax({url:b.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):p.error("no ajax"):p.globalEval((b.text||b.textContent||b.innerHTML||"").replace(by,"")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),p.buildFragment=function(a,c,d){var f,g,h,i=a[0];return c=c||e,c=(c[0]||c).ownerDocument||c[0]||c,typeof c.createDocumentFragment=="undefined"&&(c=e),a.length===1&&typeof i=="string"&&i.length<512&&c===e&&i.charAt(0)==="<"&&!bt.test(i)&&(p.support.checkClone||!bw.test(i))&&(p.support.html5Clone||!bu.test(i))&&(g=!0,f=p.fragments[i],h=f!==b),f||(f=c.createDocumentFragment(),p.clean(a,c,f,d),g&&(p.fragments[i]=h&&f)),{fragment:f,cacheable:g}},p.fragments={},p.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){p.fn[a]=function(c){var d,e=0,f=[],g=p(c),h=g.length,i=this.length===1&&this[0].parentNode;if((i==null||i&&i.nodeType===11&&i.childNodes.length===1)&&h===1)return g[b](this[0]),this;for(;e<h;e++)d=(e>0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=0,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(g=b===e&&bA;(h=a[s])!=null;s++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{g=g||bk(b),l=l||g.appendChild(b.createElement("div")),h=h.replace(bo,"<$1></$2>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]==="<table>"&&!m?l.childNodes:[];for(f=n.length-1;f>=0;--f)p.nodeName(n[f],"tbody")&&!n[f].childNodes.length&&n[f].parentNode.removeChild(n[f])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l=g.lastChild}h.nodeType?t.push(h):t=p.merge(t,h)}l&&(g.removeChild(l),h=l=g=null);if(!p.support.appendChecked)for(s=0;(h=t[s])!=null;s++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(s=0;(h=t[s])!=null;s++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[s+1,0].concat(r)),s+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^margin/,bO=new RegExp("^("+q+")(.*)$","i"),bP=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bQ=new RegExp("^([-+])=("+q+")","i"),bR={},bS={position:"absolute",visibility:"hidden",display:"block"},bT={letterSpacing:0,fontWeight:400,lineHeight:1},bU=["Top","Right","Bottom","Left"],bV=["Webkit","O","Moz","ms"],bW=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return bZ(this,!0)},hide:function(){return bZ(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bW.apply(this,arguments):this.each(function(){(c?a:bY(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bX(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bQ.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bX(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bT&&(f=bT[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(a,b){var c,d,e,f,g=getComputedStyle(a,null),h=a.style;return g&&(c=g[b],c===""&&!p.contains(a.ownerDocument.documentElement,a)&&(c=p.style(a,b)),bP.test(c)&&bN.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=c,c=g.width,h.width=d,h.minWidth=e,h.maxWidth=f)),c}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bP.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0||bH(a,"display")!=="none"?ca(a,b,d):p.swap(a,bS,function(){return ca(a,b,d)})},set:function(a,c,d){return b$(a,c,d?b_(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bP.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bU[d]+b]=e[d]||e[d-2]||e[0];return f}},bN.test(a)||(p.cssHooks[a+b].set=b$)});var cc=/%20/g,cd=/\[\]$/,ce=/\r?\n/g,cf=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,cg=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||cg.test(this.nodeName)||cf.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(ce,"\r\n")}}):{name:b.name,value:c.replace(ce,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ch(d,a[d],c,f);return e.join("&").replace(cc,"+")};var ci,cj,ck=/#.*$/,cl=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cm=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,cn=/^(?:GET|HEAD)$/,co=/^\/\//,cp=/\?/,cq=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,cr=/([?&])_=[^&]*/,cs=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,ct=p.fn.load,cu={},cv={},cw=["*/"]+["*"];try{ci=f.href}catch(cx){ci=e.createElement("a"),ci.href="",ci=ci.href}cj=cs.exec(ci.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&ct)return ct.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("<div>").append(a.replace(cq,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cA(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cA(a,b),a},ajaxSettings:{url:ci,isLocal:cm.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cw},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cy(cu),ajaxTransport:cy(cv),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cB(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cC(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=""+(c||y),k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cl.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(ck,"").replace(co,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=cs.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]==cj[1]&&i[2]==cj[2]&&(i[3]||(i[1]==="http:"?80:443))==(cj[3]||(cj[1]==="http:"?80:443)))),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cz(cu,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!cn.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cp.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cr,"$1_="+z);l.url=A+(A===l.url?(cp.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cw+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cz(cv,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cD=[],cE=/\?/,cF=/(=)\?(?=&|$)|\?\?/,cG=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cD.pop()||p.expando+"_"+cG++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cF.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cF.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cF,"$1"+f):m?c.data=i.replace(cF,"$1"+f):k&&(c.url+=(cE.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cD.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cH,cI=a.ActiveXObject?function(){for(var a in cH)cH[a](0,1)}:!1,cJ=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cK()||cL()}:cK,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cI&&delete cH[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cJ,cI&&(cH||(cH={},p(a).unload(cI)),cH[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cM,cN,cO=/^(?:toggle|show|hide)$/,cP=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cQ=/queueHooks$/,cR=[cX],cS={"*":[function(a,b){var c,d,e,f=this.createTween(a,b),g=cP.exec(b),h=f.cur(),i=+h||0,j=1;if(g){c=+g[2],d=g[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&i){i=p.css(f.elem,a,!0)||c||1;do e=j=j||".5",i=i/j,p.style(f.elem,a,i+d),j=f.cur()/h;while(j!==1&&j!==e)}f.unit=d,f.start=i,f.end=g[1]?i+(g[1]+1)*c:c}return f}]};p.Animation=p.extend(cV,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d<e;d++)c=a[d],cS[c]=cS[c]||[],cS[c].unshift(b)},prefilter:function(a,b){b?cR.unshift(a):cR.push(a)}}),p.Tween=cY,cY.prototype={constructor:cY,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(p.cssNumber[c]?"":"px")},cur:function(){var a=cY.propHooks[this.prop];return a&&a.get?a.get(this):cY.propHooks._default.get(this)},run:function(a){var b,c=cY.propHooks[this.prop];return this.pos=b=p.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration),this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):cY.propHooks._default.set(this),this}},cY.prototype.init.prototype=cY.prototype,cY.propHooks={_default:{get:function(a){var b;return a.elem[a.prop]==null||!!a.elem.style&&a.elem.style[a.prop]!=null?(b=p.css(a.elem,a.prop,!1,""),!b||b==="auto"?0:b):a.elem[a.prop]},set:function(a){p.fx.step[a.prop]?p.fx.step[a.prop](a):a.elem.style&&(a.elem.style[p.cssProps[a.prop]]!=null||p.cssHooks[a.prop])?p.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},cY.propHooks.scrollTop=cY.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},p.each(["toggle","show","hide"],function(a,b){var c=p.fn[b];p.fn[b]=function(d,e,f){return d==null||typeof d=="boolean"||!a&&p.isFunction(d)&&p.isFunction(e)?c.apply(this,arguments):this.animate(cZ(b,!0),d,e,f)}}),p.fn.extend({fadeTo:function(a,b,c,d){return this.filter(bY).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=p.isEmptyObject(a),f=p.speed(b,c,d),g=function(){var b=cV(this,p.extend({},a),f);e&&b.stop(!0)};return e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,c,d){var e=function(a){var b=a.stop;delete a.stop,b(d)};return typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,c=a!=null&&a+"queueHooks",f=p.timers,g=p._data(this);if(c)g[c]&&g[c].stop&&e(g[c]);else for(c in g)g[c]&&g[c].stop&&cQ.test(c)&&e(g[c]);for(c=f.length;c--;)f[c].elem===this&&(a==null||f[c].queue===a)&&(f[c].anim.stop(d),b=!1,f.splice(c,1));(b||!d)&&p.dequeue(this,a)})}}),p.each({slideDown:cZ("show"),slideUp:cZ("hide"),slideToggle:cZ("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){p.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),p.speed=function(a,b,c){var d=a&&typeof a=="object"?p.extend({},a):{complete:c||!c&&b||p.isFunction(a)&&a,duration:a,easing:c&&b||b&&!p.isFunction(b)&&b};d.duration=p.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in p.fx.speeds?p.fx.speeds[d.duration]:p.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";return d.old=d.complete,d.complete=function(){p.isFunction(d.old)&&d.old.call(this),d.queue&&p.dequeue(this,d.queue)},d},p.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},p.timers=[],p.fx=cY.prototype.init,p.fx.tick=function(){var a,b=p.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||p.fx.stop()},p.fx.timer=function(a){a()&&p.timers.push(a)&&!cN&&(cN=setInterval(p.fx.tick,p.fx.interval))},p.fx.interval=13,p.fx.stop=function(){clearInterval(cN),cN=null},p.fx.speeds={slow:600,fast:200,_default:400},p.fx.step={},p.expr&&p.expr.filters&&(p.expr.filters.animated=function(a){return p.grep(p.timers,function(b){return a===b.elem}).length});var c$=/^(?:body|html)$/i;p.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){p.offset.setOffset(this,a,b)});var c,d,e,f,g,h,i,j,k,l,m=this[0],n=m&&m.ownerDocument;if(!n)return;return(e=n.body)===m?p.offset.bodyOffset(m):(d=n.documentElement,p.contains(d,m)?(c=m.getBoundingClientRect(),f=c_(n),g=d.clientTop||e.clientTop||0,h=d.clientLeft||e.clientLeft||0,i=f.pageYOffset||d.scrollTop,j=f.pageXOffset||d.scrollLeft,k=c.top+i-g,l=c.left+j-h,{top:k,left:l}):{top:0,left:0})},p.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;return p.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(p.css(a,"marginTop"))||0,c+=parseFloat(p.css(a,"marginLeft"))||0),{top:b,left:c}},setOffset:function(a,b,c){var d=p.css(a,"position");d==="static"&&(a.style.position="relative");var e=p(a),f=e.offset(),g=p.css(a,"top"),h=p.css(a,"left"),i=(d==="absolute"||d==="fixed")&&p.inArray("auto",[g,h])>-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c$.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c$.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=c_(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window); \ No newline at end of file
diff --git a/start/jquery-ui-1.8.23.min.js b/start/jquery-ui-1.8.23.min.js
new file mode 100644
index 0000000..c8a3b1d
--- /dev/null
+++ b/start/jquery-ui-1.8.23.min.js
@@ -0,0 +1,50 @@
+$(document).ready(function(){
+ var animateTime = 1,
+ offsetStep = 5;
+
+ scrollWrapper = $('#wrap');
+ scrollContent = $('#content');
+
+ //event handling for buttons "left", "right"
+ $('.bttR, .bttL')
+ .mousedown(function() {
+ scrollContent.data('loop', true).loopingAnimation($(this), $(this).is('.bttR') );
+ })
+ .bind("mouseup mouseout", function(){
+ scrollContent.data('loop', false).stop();
+ });
+
+ scrollWrapper
+ .mousedown(function(event) {
+ $(this)
+ .data('down', true)
+ .data('x', event.clientX)
+ .data('scrollLeft', this.scrollLeft);
+ return false;
+ })
+ .mouseup(function (event) {
+ $(this).data('down', false);
+ })
+ .mousemove(function (event) {
+ if ($(this).data('down') == true) {
+ this.scrollLeft = $(this).data('scrollLeft') + $(this).data('x') - event.clientX;
+ }
+ })
+ .mousewheel(function (event, delta) {
+ this.scrollLeft -= (delta * 30);
+ event.preventDefault();
+ })
+ .css({
+ 'overflow' : 'hidden',
+ 'cursor' : '-moz-grab'
+ });
+
+
+ $.fn.loopingAnimation = function(el, dir){
+ if(this.data('loop')){
+ var sign = (dir) ? '-=' : '+=';
+ this.animate({ marginLeft: sign + offsetStep + 'px' }, animateTime, function(){ $(this).loopingAnimation(el,dir) });
+ }
+ return false;
+ };
+}) \ No newline at end of file
diff --git a/start/livetiles/dakoder/DaKoder.png b/start/livetiles/dakoder/DaKoder.png
new file mode 100644
index 0000000..39689e3
--- /dev/null
+++ b/start/livetiles/dakoder/DaKoder.png
Binary files differ
diff --git a/start/livetiles/dakoder/MetroJs.lt.js b/start/livetiles/dakoder/MetroJs.lt.js
new file mode 100644
index 0000000..c0d0331
--- /dev/null
+++ b/start/livetiles/dakoder/MetroJs.lt.js
@@ -0,0 +1,1054 @@
+/*
+* Metro JS for jQuery
+* http://drewgreenwell.com/
+* For details and usage info see: http://drewgreenwell.com/projects/metrojs
+
+Copyright (C) 2012, Drew Greenwell
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+(function () {
+
+jQuery.fn.metrojs = {};
+
+
+
+/* Preload Images */
+// Usage: jQuery(['img1.jpg','img2.jpg']).metrojs.preloadImages(function(){ ... });
+// Callback function gets called after all images are preloaded
+jQuery.fn.metrojs.preloadImages = function (callback) {
+ var checklist = jQuery(this).toArray();
+ var $img = jQuery("<img style='display:none;'>").appendTo("body");
+ jQuery(this).each(function () {
+ $img.attr({ src: this }).load(function () {
+ var src = jQuery(this).attr('src');
+ for (var i = 0; i < checklist.length; i++) {
+ if (checklist[i] == element) { checklist.splice(i, 1); }
+ }
+ if (checklist.length == 0) { callback(); }
+ });
+ });
+ $img.remove();
+};
+
+
+
+ jQuery.fn.liveTile = function (method) {
+ if (pubMethods[method]) {
+ var args = [];
+ for (var i = 1; i <= arguments.length; i++) {
+ args[i - 1] = arguments[i];
+ }
+ return pubMethods[method].apply(this, args);
+ } else if (typeof method === 'object' || !method) {
+ return pubMethods.init.apply(this, arguments);
+ } else {
+ jQuery.error('Method ' + method + ' does not exist on jQuery.liveTile');
+ }
+ };
+ jQuery.fn.liveTile.State = {
+ RUNNING: "running",
+ STOPPED: "stopped"
+ };
+ jQuery.fn.liveTile.defaults = {
+ mode: 'slide', // 'slide', 'flip', 'flip-list'
+ speed: 500, // how fast should animations be performed, in milliseconds
+ initDelay: -1, // how long to wait before the initial animation
+ delay: 5000, // how long to wait between animations
+ stops: "100%", // how much of the back tile should 'slide' reveal before starting a delay
+ stack: false, // should tiles in slide mode appear stacked (e.g Me tile)
+ direction: 'vertical', // which direction should animations be performed(horizontal | vertical)
+ tileCssSelector: '>div,>li', // The selector used by slide, flip, and flip-list mode to choose the front and back containers
+ listTileCssSelector: '>div,>p,>img,>a', // The selector used by flip-tile mode to choose the front and back containers.2
+ imageCssSelector: '>img,>a>img', // the selector used to choose a an image to apply a src or background to
+ ignoreDataAttributes: false, // should data attributes be ignored
+ pauseOnHover: false, // should tile animations be paused on hover in and restarted on hover out
+ repeatCount: -1, // number of times to repeat the animation
+ animationComplete: function (tileData, $front, $back) {
+ },
+ preloadImages: false, // should the images arrays be preloaded
+ fadeSlideSwap: false, // fade any image swaps on slides (e.g. mode: 'slide', stops:'50%', frontImages: ['img1.jpg', 'img2.jpg'])
+ appendBack: true, // appends the .last tile if one doesnt exist (slide and flip only)
+ triggerDelay: function (idx) { // used by flip-list to decide how random the tile flipping should be
+ return Math.random() * 3000;
+ },
+ alwaysTrigger: false, // used by flip-list to decide if all tiles are triggered every time
+ frontImages: null, // a list of images to use for the front
+ frontIsRandom: true, // should images be chosen at random or in order
+ frontIsBackgroundImage: false, // set the src attribute or css background-image property
+ frontIsInGrid: false, // only chooses one item for each iteration in flip-list
+ backImages: null, // a list of images to use for the back
+ backIsRandom: true, // should images be chosen at random or in order
+ backIsBackgroundImage: false, // set the src attribute or css background-image property
+ backIsInInGrid: false, // only chooses one item for each iteration in flip-list
+ flipListOnHover: false, // should items in flip-list flip and stop when hovered
+ useModernizr: (typeof (window.Modernizr) != "undefined"), // checks to see if modernizer is already in use
+ useHardwareAccel: true, // should css animations, transitions and transforms be used when available
+ $front: null, // the jQuery element to use as the front face of the tile; this will bypass tileCssSelector
+ $back: null // the jQuery element to use as the back face of the tile; this will bypass tileCssSelector
+ };
+
+ var privMethods = {
+ //a shuffle method to provide more randomness than sort
+ //credit: http://javascript.about.com/library/blshuffle.htm
+ //*avoiding prototype for sharepoint compatability
+ shuffleArray: function (array) {
+ var s = [];
+ while (array.length) s.push(array.splice(Math.random() * array.length, 1));
+ while (s.length) array.push(s.pop());
+ return array;
+ },
+ setTimer: function (func, interval) {
+ return setInterval(func, interval);
+ },
+ stopTimer: function (handle) {
+ clearInterval(handle);
+ return null;
+ },
+ setExtraProperties: function ($ele, imageObj) {
+ if (typeof (imageObj.alt) != "undefined")
+ $ele.attr("alt", imageObj.alt);
+ var $parent = $ele.parent();
+ if (typeof (imageObj.href) != "undefined" && $parent[0].tagName == "A") {
+ $parent.attr("href", imageObj.href);
+ if (typeof (imageObj.target) != "undefined")
+ $parent.attr("target", imageObj.target);
+ if (typeof (imageObj.onclick) != "undefined") {
+ $parent.attr("onclick", imageObj.onclick);
+ $ele.attr("onclick", "");
+ }
+ } else {
+ if (typeof (imageObj.onclick) != "undefined")
+ $ele.attr("onclick", imageObj.onclick);
+ }
+ },
+ // changes the src or background image property of an image in a flip-list
+ handleListItemSwap: function ($cont, image, isBgroundImg, stgs) {
+ var $img = $cont.find(stgs.imageCssSelector);
+ if (!isBgroundImg) {
+ $img.attr("src", image.src);
+ } else {
+ $img.css({ backgroundImage: "url('" + image.src + "')" });
+ }
+ privMethods.setExtraProperties($img, image);
+ },
+ handleSlide: function (isSlidingUp, $cont, swapFrontSource, stgs, index) {
+ if (!isSlidingUp && swapFrontSource) {
+ var image;
+ var $img = $cont.find(stgs.imageCssSelector);
+ image = stgs.frontImages[index];
+ if (stgs.fadeSlideSwap == true) {
+ $img.fadeOut(function () {
+ $img.attr("src", image.src);
+ privMethods.setExtraProperties($img, image);
+ $img.fadeIn();
+ });
+ } else {
+ $img.attr("src", image.src);
+ privMethods.setExtraProperties($img, image);
+ }
+ }
+
+ },
+ // fired if an image swap is needed. gets the image and applies properties
+ handleSwap: function ($cont, isFront, stgs, index) {
+ var image = privMethods.getImage(isFront, stgs, index);
+ var $img = $cont.find(stgs.imageCssSelector);
+ $img.attr("src", image.src);
+ privMethods.setExtraProperties($img, image);
+ },
+ // get an image from the frontImages or backImages array
+ getImage: function (isFront, stgs, index) {
+ var imgs = (isFront) ? stgs.frontImages : stgs.backImages;
+ var image;
+ image = imgs[Math.min(index, imgs.length - 1)];
+ return image;
+ }
+ };
+ var pubMethods = {
+ init: function (options) {
+ // Setup the public options for the livetile
+ var stgs = {};
+ jQuery.extend(stgs, jQuery.fn.liveTile.defaults, options);
+
+ //is there at least one item in the front images list?
+ var swapFrontSource = (typeof (stgs.frontImages) == 'object' && (stgs.frontImages instanceof Array) && stgs.frontImages.length > 0);
+ //is there at least one item in the back images list?
+ var swapBackSource = (typeof (stgs.backImages) == 'object' && (stgs.backImages instanceof Array) && stgs.backImages.length > 0);
+ var canTransform = false;
+ var canTransition = false;
+ var canTransform3d = false;
+ var canAnimate = false;
+ var canFlip3d = stgs.useHardwareAccel;
+ if (stgs.useHardwareAccel == true) {
+ if (stgs.useModernizr == false) {
+ //determine if the browser supports the neccessary accelerated features
+ if (typeof (window.MetroModernizr) != "undefined") {
+ canTransform = window.MetroModernizr.canTransform;
+ canTransition = window.MetroModernizr.canTransition;
+ canTransform3d = window.MetroModernizr.canTransform3d;
+ canAnimate = window.MetroModernizr.canAnimate;
+ } else {
+ window.MetroModernizr = {};
+ /***** check for browser capabilities credit: modernizr-1.7 *****/
+ var mod = 'metromodernizr';
+ var docElement = document.documentElement;
+ var docHead = document.head || document.getElementsByTagName('head')[0];
+ var modElem = document.createElement(mod);
+ var m_style = modElem.style;
+ var prefixes = ' -webkit- -moz- -o- -ms- -khtml- '.split(' ');
+ var domPrefixes = 'Webkit Moz O ms Khtml'.split(' ');
+ var test_props = function (props, callback) {
+ for (var i in props) {
+ if (m_style[props[i]] !== undefined && (!callback || callback(props[i], modElem))) {
+ return true;
+ }
+ }
+ };
+ var test_props_all = function (prop, callback) {
+
+ var uc_prop = prop.charAt(0).toUpperCase() + prop.substr(1),
+ props = (prop + ' ' + domPrefixes.join(uc_prop + ' ') + uc_prop).split(' ');
+
+ return !!test_props(props, callback);
+ };
+ var test_3d = function () {
+ var ret = !!test_props(['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']);
+ if (ret && 'webkitPerspective' in docElement.style) {
+ // Webkit allows this media query to succeed only if the feature is enabled.
+ // '@media (transform-3d),(-o-transform-3d),(-moz-transform-3d),(-ms-transform-3d),(-webkit-transform-3d),(modernizr){ ... }'
+ ret = testMediaQuery('@media (' + prefixes.join('transform-3d),(') + 'metromodernizr)');
+ }
+ return ret;
+ };
+ var testMediaQuery = function (mq) {
+ var st = document.createElement('style'),
+ div = document.createElement('div'),
+ ret;
+ st.textContent = mq + '{#metromodernizr{height:3px}}';
+ docHead.appendChild(st);
+ div.id = 'metromodernizr';
+ docElement.appendChild(div);
+ ret = div.offsetHeight === 3;
+ st.parentNode.removeChild(st);
+ div.parentNode.removeChild(div);
+ return !!ret;
+ };
+ canTransform = !!test_props(['transformProperty', 'WebkitTransform', 'MozTransform', 'OTransform', 'msTransform']);
+ canTransition = test_props_all('transitionProperty');
+ canTransform3d = test_3d();
+ canAnimate = test_props_all('animationName');
+ window.MetroModernizr.canTransform = canTransform;
+ window.MetroModernizr.canTransition = canTransition;
+ window.MetroModernizr.canTransform3d = canTransform3d;
+ window.MetroModernizr.canAnimate = canAnimate;
+ docElement = null;
+ docHead = null;
+ modElem = null;
+ m_style = null;
+ }
+ } else {
+ canTransform = jQuery("html").hasClass("csstransforms");
+ canTransition = jQuery("html").hasClass("csstransitions");
+ canTransform3d = jQuery("html").hasClass("csstransforms3d");
+ canAnimate = jQuery("html").hasClass("cssanimations");
+ }
+ }
+ canFlip3d = canFlip3d && canAnimate && canTransform && canTransform3d;
+ /****** end capabilities check ******/
+ if (stgs.preloadImages) {
+ if (swapFrontSource)
+ jQuery(stgs.frontImages).metrojs.preloadImages(function () { });
+ if (swapBackSource)
+ jQuery(stgs.backImages).metrojs.preloadImages(function () { });
+ }
+ return jQuery(this).each(function (tileIndex) {
+ var $this = jQuery(this);
+ $this.slideTimer = null;
+ var tdata = {}; //an object to store settings for later access
+ tdata.state = $this.slideTimer == null ? jQuery.fn.liveTile.State.STOPPED : jQuery.fn.liveTile.State.RUNNING;
+ tdata.speed = (!stgs.ignoreDataAttributes && typeof ($this.data("speed")) != "undefined") ? $this.data("speed") : stgs.speed;
+ tdata.delay = (!stgs.ignoreDataAttributes && typeof ($this.data("delay")) != "undefined") ? $this.data("delay") : stgs.delay;
+ if (tdata.delay < -1)
+ tdata.delay = stgs.triggerDelay(tileIndex);
+ else if (tdata.delay < 0)
+ tdata.delay = 3500 + (Math.random() * 4501);
+ tdata.stops = (!stgs.ignoreDataAttributes && typeof ($this.data("stops")) != "undefined") ? $this.data("stops") : stgs.stops;
+ tdata.stack = (!stgs.ignoreDataAttributes && typeof ($this.data("stack")) != "undefined") ? $this.data("stack") : stgs.mode;
+ tdata.mode = (!stgs.ignoreDataAttributes && typeof ($this.data("mode")) != "undefined") ? $this.data("mode") : stgs.mode;
+ tdata.direction = (!stgs.ignoreDataAttributes && typeof ($this.data("direction")) != "undefined") ? $this.data("direction") : stgs.direction;
+ tdata.useHwAccel = (!stgs.ignoreDataAttributes && typeof ($this.data("ha")) != "undefined") ? $this.data("ha") : stgs.useHardwareAccel;
+ tdata.initDelay = (!stgs.ignoreDataAttributes && typeof ($this.data("initdelay")) != "undefined") ? $this.data("initdelay") : (stgs.initDelay < 0) ? tdata.delay : stgs.initDelay;
+ tdata.repeatCount = (!stgs.ignoreDataAttributes && typeof ($this.data("repeat")) != "undefined") ? $this.data("repeat") : stgs.repeatCount;
+ tdata.hasRun = false; // init delay flag
+ tdata.loopCount = 0;
+ tdata.slideIndex = 0;
+ //convert stops if needed
+ tdata.stops = (typeof (stgs.stops) == 'object' && (stgs.stops instanceof Array)) ? stgs.stops : ('' + tdata.stops).split(',');
+ //add the mode to the tile if it's not already there.
+ $this.addClass(tdata.mode);
+ var $tileContainer = $this.find(stgs.tileCssSelector);
+ var $firstContainer = null;
+ if(stgs.$front != null && stgs.$front.length > 0){
+ $firstContainer = (tdata.mode == "flip-list") ? null : (tdata.mode == 'slide') ?
+ stgs.$front.addClass('slide-front') :
+ stgs.$front.addClass('flip-front');
+ }else{
+ $firstContainer = (tdata.mode == "flip-list") ? null : (tdata.mode == 'slide') ?
+ $tileContainer.first().addClass('slide-front') :
+ $tileContainer.first().addClass('flip-front');
+ }
+ var lClass = (tdata.mode == 'slide') ? 'slide-back' : 'flip-back';
+ var $scndContainer = null;
+ if(stgs.$back != null && stgs.$back.length > 0){
+ $scndContainer = (tdata.mode == "flip-list") ? null : stgs.$back.addClass(lClass);
+ }else{
+ $scndContainer = (tdata.mode == "flip-list") ? null : ($tileContainer.length > 1) ?
+ $tileContainer.last().addClass(lClass) :
+ (stgs.appendBack == true) ?
+ jQuery('<div class="' + lClass + '"></div>').appendTo($this) :
+ jQuery('<div></div>');
+ }
+ var height = $this.height();
+ var width = $this.width();
+ var margin = (tdata.direction == "vertical") ? height / 2 : width / 2;
+ var isReversed = false;
+
+ var staticCount = 0;
+ var staticIndexBack = 0;
+ var staticIndexFront = 0;
+ var doAnimations = false;
+ var flistData = []; // an array to cache flip list selectors
+ var frontRandomBag = [];
+ var prevFrontIndex = -1;
+ var backRandomBag = [];
+ var prevBackIndex = -1;
+ /* Mouse over and out functions*/
+
+ if (stgs.pauseOnHover) {
+ $this.find(stgs.tileCssSelector).hover(
+ function () {
+ tdata.stopTimer(false);
+ },
+ function () {
+ tdata.setTimer();
+ });
+ }
+ // prep tiles
+ if (tdata.mode == 'flip-list') {
+ $this.find(stgs.tileCssSelector).each(function () {
+ var $li = jQuery(this);
+ var $front = stgs.$front != null ? stgs.$front : $li.find(stgs.listTileCssSelector).first().addClass("flip-front");
+ if ($li.find(stgs.listTileCssSelector).length == 1 && stgs.appendBack == true) {
+ $li.append("<div></div>");
+ }
+ var $back = stgs.$back != null ? stgs.$back : $li.find(stgs.listTileCssSelector).last().addClass("flip-back").css({ marginTop: "0px" });
+ if (canFlip3d && tdata.useHwAccel) {
+ $li.addClass("ha");
+ $front.addClass("ha").data("tile", { animating: false });
+ $back.addClass("ha").data("tile", { animating: false });
+ if (stgs.flipListOnHover == true) {
+ $front.bind("mouseout.liveTile", null, function () {
+ $this.flipListItem(false, $li, $back, $front);
+ });
+ $back.bind("mouseout.liveTile", null, function () {
+ $this.flipListItem(true, $li, $front, $back);
+ });
+ }
+ } else {
+ if (stgs.flipListOnHover == true) {
+ $front.bind("mouseout.liveTile", function () {
+ $this.flipListItem(true, $li, $front, $back);
+ });
+ $back.bind("mouseout.liveTile", function () {
+ $this.flipListItem(false, $li, $back, $front);
+ });
+ }
+ }
+ });
+ } else if (tdata.mode == 'slide') {
+ if (tdata.stack == true) {
+ if (tdata.direction == "vertical") {
+ $scndContainer.css({ top: -height + 'px' });
+ } else {
+ $scndContainer.css({ left: -width + 'px' });
+ }
+ }
+ if (canTransition && tdata.useHwAccel) {
+ $this.addClass("ha");
+ $firstContainer.addClass("ha").data("tile", { animating: false });
+ }
+ } else if (tdata.mode == 'flip') {
+ if (canFlip3d && tdata.useHwAccel) {
+ $this.addClass("ha");
+ $firstContainer.addClass("ha").data("tile", { animating: false });
+ $scndContainer.addClass("ha").data("tile", { animating: false });
+ } else {
+ var fCss = (tdata.direction == "vertical") ?
+ { height: '0px', width: width + 'px', marginTop: margin + 'px', opacity: '0'} :
+ { height: '100%', width: '0px !important', marginLeft: margin + 'px', opacity: '0' };
+ var fCss2 = (tdata.direction == "vertical") ?
+ { height: '100%', width: '100%', marginTop: '0px', opacity: '1'} :
+ { height: '100%', width: '100%', marginLeft: '0px', opacity: '1' };
+ $scndContainer.css(fCss);
+ $firstContainer.css(fCss2);
+ //temp fix
+ // TODO: debug and remove instances of jQuery.browser for compatibility with jq 1.8+
+ if (tdata.repeatCount > -1 && jQuery.browser.msie) {
+ tdata.repeatCount += 1;
+ }
+ // if (tdata.direction == "horizontal")
+ // $scndContainer.css({ marginLeft: $scndContainer.width() / 2 + 'px', width: '0px' });
+ // else
+ // $scndContainer.css({ marginTop: $scndContainer.height() / 2 + 'px', height: '0px' });
+ }
+ }
+
+
+ //slide animation
+ $this.slide = function (callback) {
+ if (typeof (callback) == "undefined" || callback == null)
+ callback = null;
+ if (tdata.repeatCount > -1) {
+ if (tdata.loopCount > tdata.repeatCount) {
+ tdata.stopTimer(false);
+ tdata.loopCount = 0;
+ tdata.hasRun = false;
+ $this.data("LiveTile", tdata);
+ return;
+ }
+ }
+ if (!doAnimations)
+ return;
+ var clojIsReversed = isReversed;
+ var fData = $firstContainer.data("tile");
+ var stop = jQuery.trim(tdata.stops[tdata.slideIndex]);
+ var pxIdx = stop.indexOf('px');
+ var offset = 0;
+ var amount = 0
+ var metric = (tdata.direction == "vertical") ? height : width;
+ var prop = (tdata.direction == "vertical") ? "top" : "left";
+ if (pxIdx > 0) {
+ amount = parseInt(stop.substring(0, pxIdx));
+ offset = (amount - metric) + 'px';
+ } else {
+ //is a percentage
+ amount = parseInt(stop.replace('%', ''));
+ offset = (amount - 100) + '%';
+ }
+ if (canTransition && tdata.useHwAccel) {
+ if (typeof (fData.animated) != "undefined" && fData.animated == true)
+ return;
+ fData.animated = true;
+ var css = {
+ WebkitTransitionProperty: prop, WebkitTransitionDuration: tdata.speed + 'ms',
+ MozTransitionProperty: prop, MozTransitionDuration: tdata.speed + 'ms',
+ OTransitionProperty: prop, OTransitionDuration: tdata.speed + 'ms',
+ msTransitionProperty: prop, msTransitionDuration: tdata.speed + 'ms',
+ KhtmlTransitionProperty: prop, KhtmlTransitionDuration: tdata.speed + 'ms',
+ TransitionProperty: prop, TransitionDuration: tdata.speed + 'ms'
+ };
+ if (tdata.direction == "vertical") {
+ css.top = (clojIsReversed && tdata.stops.length == 1) ? "0px" : stop;
+ } else {
+ css.left = (clojIsReversed && tdata.stops.length == 1) ? "0px" : stop;
+ }
+ $firstContainer.css(css);
+ if (tdata.stack == true) {
+ if (tdata.direction == "vertical") {
+ css.top = (clojIsReversed && tdata.stops.length == 1) ? -metric + 'px' : offset;
+ } else {
+ css.left = (clojIsReversed && tdata.stops.length == 1) ? -metric + 'px' : offset;
+ }
+ $scndContainer.css(css);
+ }
+ window.setTimeout(function () {
+ var index = staticCount;
+ if (swapFrontSource && stgs.frontIsRandom) {
+ //make sure the random bag is ready
+ if (frontRandomBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevBackIndex || stgs.frontImages.length == 1)
+ frontRandomBag[i] = i;
+ }
+ frontRandomBag = privMethods.shuffleArray(frontRandomBag);
+ }
+ index = frontRandomBag.pop();
+ prevFrontIndex = index;
+ }
+ privMethods.handleSlide(clojIsReversed, $firstContainer, swapFrontSource, stgs, index);
+ fData.animated = false;
+ $firstContainer.data("tile", fData);
+ if (!clojIsReversed && swapFrontSource) {
+ staticCount += 1;
+ if (staticCount >= stgs.frontImages.length)
+ staticCount = 0;
+ }
+ stgs.animationComplete(tdata, $firstContainer, $scndContainer);
+ if (callback != null)
+ callback();
+ }, tdata.speed);
+ } else {
+ if ($firstContainer.is(':animated')) {
+ return;
+ }
+ var uCss = (tdata.direction == "vertical") ?
+ { top: (clojIsReversed && tdata.stops.length == 1) ? "0px" : stop} :
+ { left: (clojIsReversed && tdata.stops.length == 1) ? "0px" : stop };
+ var dCss = (tdata.direction == "vertical") ?
+ { top: (clojIsReversed && tdata.stops.length == 1) ? -metric + 'px' : offset} :
+ { left: (clojIsReversed && tdata.stops.length == 1) ? -metric + 'px' : offset };
+
+ $firstContainer.animate(uCss, tdata.speed, function () {
+ var index = staticCount;
+ if (swapFrontSource && stgs.frontIsRandom) {
+ //make sure the random bag is ready
+ if (frontRandomBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevBackIndex || stgs.frontImages.length == 1)
+ frontRandomBag[i] = i;
+ }
+ frontRandomBag = privMethods.shuffleArray(frontRandomBag);
+ }
+ index = frontRandomBag.pop();
+ prevFrontIndex = index;
+ }
+ privMethods.handleSlide(clojIsReversed, $firstContainer, swapFrontSource, stgs, index);
+ if (!clojIsReversed && swapFrontSource) {
+ staticCount += 1;
+ if (staticCount >= stgs.frontImages.length)
+ staticCount = 0;
+ }
+ stgs.animationComplete(tdata, $firstContainer, $scndContainer);
+ if (callback != null)
+ callback();
+ });
+ if (tdata.stack == true) {
+ $scndContainer.animate(dCss, tdata.speed, function () { });
+ }
+ }
+ //increment slide count
+ tdata.slideIndex += 1;
+ if (tdata.slideIndex >= tdata.stops.length) {
+ tdata.slideIndex = 0;
+ isReversed = !isReversed;
+ tdata.loopCount += 1;
+ }
+ };
+
+
+ //flip mode
+ $this.flip = function (callback) {
+ if (typeof (callback) == "undefined" || callback == null)
+ callback = null;
+ if (tdata.repeatCount > -1) {
+ if (tdata.loopCount > tdata.repeatCount) {
+ tdata.stopTimer(false);
+ tdata.loopCount = 0;
+ // TODO: debug and remove instances of jQuery.browser for compatibility with jq 1.8+
+ if (jQuery.browser.msie) /* straighten out issue with loopcount in IE */
+ tdata.loopCount += 1;
+ tdata.hasRun = false;
+ $this.data("LiveTile", tdata);
+ return;
+ } else {
+ tdata.loopCount += 1;
+ }
+ }
+ if (canFlip3d && tdata.useHwAccel) {
+ var spd = (tdata.speed * 2); // accelerated flip speeds are calculated on 1/2 rotation rather than 1/4 rotation like jQuery animate
+ var duration = spd + 'ms';
+ var aniFName = (tdata.direction == "vertical") ? 'flipfront180' : 'flipfrontY180';
+ var aniBName = (tdata.direction == "vertical") ? 'flipback180' : 'flipbackY180';
+ var data = $firstContainer.data("tile");
+ if (typeof (data.animated) != "undefined" && data.animated == true) {
+ return;
+ }
+ data.animated = true;
+ if (doAnimations) {
+ if (isReversed) {
+ var uCss = {
+ WebkitAnimationPlayState: 'running', WebkitAnimationName: aniBName, WebkitAnimationDuration: duration,
+ MozAnimationPlayState: 'running', MozAnimationName: aniBName, MozAnimationDuration: duration,
+ OAnimationPlayState: 'running', OAnimationName: aniBName, OAnimationDuration: duration,
+ msAnimationPlayState: 'running', msAnimationName: aniBName, msAnimationDuration: duration,
+ AnimationPlayState: 'running', AnimationName: aniBName, AnimationDuration: duration
+ };
+ $firstContainer.css(uCss).data("tile", data);
+ uCss.WebkitAnimationName = aniFName;
+ uCss.MozAnimationName = aniFName;
+ uCss.msAnimationName = aniFName;
+ uCss.OAnimationName = aniFName;
+ uCss.AnimationName = aniFName;
+ $scndContainer.css(uCss).data("tile", data);
+ window.setTimeout(function () {
+ if (swapBackSource) { // change the source image when the animation is finished
+ var isRandom = stgs.backIsRandom;
+ var index = staticIndexBack;
+ if (isRandom) {
+ //make sure the random bag is ready
+ if (backRandomBag.length == 0) {
+ for (var i = 0; i < stgs.backImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevBackIndex || stgs.backImages.length == 1)
+ backRandomBag[i] = i;
+ }
+ backRandomBag = privMethods.shuffleArray(backRandomBag);
+ }
+ index = backRandomBag.pop();
+ prevBackIndex = index;
+ }
+ privMethods.handleSwap($scndContainer, false, stgs, index);
+ staticIndexBack += 1;
+ if (staticIndexBack >= stgs.backImages.length) {
+ staticIndexBack = 0;
+ }
+ }
+ stgs.animationComplete(tdata, $firstContainer, $scndContainer);
+ if (callback != null)
+ callback();
+ data.animated = false;
+ $firstContainer.data("tile", data);
+ $scndContainer.data("tile", data);
+ }, spd);
+ } else {
+ var dCss = { WebkitAnimationPlayState: 'running', WebkitAnimationName: aniFName, WebkitAnimationDuration: duration,
+ MozAnimationPlayState: 'running', MozAnimationName: aniFName, MozAnimationDuration: duration,
+ OAnimationPlayState: 'running', OAnimationName: aniFName, OAnimationDuration: duration,
+ msAnimationPlayState: 'running', msAnimationName: aniFName, msAnimationDuration: duration,
+ AnimationPlayState: 'running', AnimationName: aniFName, AnimationDuration: duration
+ };
+ $firstContainer.css(dCss).data("tile", data);
+ dCss.WebkitAnimationName = aniBName;
+ dCss.MozAnimationName = aniBName;
+ dCss.msAnimationName = aniBName;
+ dCss.OAnimationName = aniBName;
+ dCss.AnimationName = aniBName;
+ $scndContainer.css(dCss).data("tile", data);
+ window.setTimeout(function () {
+ if (swapFrontSource) {
+ // change the source image when the animation is finished
+ var isRandom = stgs.frontIsRandom;
+ var index = staticIndexFront;
+ if (isRandom) {
+ //make sure the random bag is ready
+ if (frontRandomBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevBackIndex || stgs.frontImages.length == 1)
+ frontRandomBag[i] = i;
+ }
+ frontRandomBag = privMethods.shuffleArray(frontRandomBag);
+ }
+ index = frontRandomBag.pop();
+ prevFrontIndex = index;
+ }
+ privMethods.handleSwap($firstContainer, true, stgs, index);
+ staticIndexFront += 1;
+ if (staticIndexFront >= stgs.frontImages.length) {
+ staticIndexFront = 0;
+ }
+ }
+ stgs.animationComplete(tdata, $scndContainer, $firstContainer);
+ if (callback != null) {
+ callback();
+ }
+ data.animated = false;
+ $firstContainer.data("tile", data);
+ $scndContainer.data("tile", data);
+ }, spd);
+ }
+ }
+ //an interval isnt needed
+ isReversed = !isReversed;
+ } else {
+
+ //crossbrowser single tile flip illusion (works best with images)
+ if (isReversed) {
+ var upCss = (tdata.direction == "vertical") ?
+ { height: '0px', width: '100%', marginTop: margin + 'px', opacity: '0'} :
+ { height: '100%', width: '0px', marginLeft: margin + 'px', opacity: '0' };
+ var upCss2 = (tdata.direction == "vertical") ?
+ { height: '100%', width: '100%', marginTop: '0px', opacity: '1'} :
+ { height: '100%', width: '100%', marginLeft: '0px', opacity: '1' };
+
+ $firstContainer.stop().animate(upCss, { duration: tdata.speed });
+ window.setTimeout(function () {
+ $scndContainer.stop().animate(upCss2, { duration: tdata.speed });
+ if (swapFrontSource) {
+ var isRandom = stgs.frontIsRandom;
+ var index = staticIndexFront;
+ if (isRandom) {
+ //make sure the random bag is ready
+ if (frontRandomBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevFrontIndex || stgs.frontImages.length == 1)
+ frontRandomBag[i] = i;
+ }
+ frontRandomBag = privMethods.shuffleArray(frontRandomBag);
+ }
+ index = frontRandomBag.pop();
+ prevFrontIndex = index;
+ }
+ privMethods.handleSwap($firstContainer, true, stgs, index);
+ staticIndexFront += 1;
+ if (staticIndexFront >= stgs.frontImages.length) {
+ staticIndexFront = 0;
+ }
+ }
+ isReversed = !isReversed;
+ stgs.animationComplete(tdata, $scndContainer, $firstContainer);
+ if (callback != null)
+ callback();
+ }, tdata.speed);
+ } else {
+ var dwnCss = (tdata.direction == "vertical") ?
+ { height: '0px', width: '100%', marginTop: margin + 'px', opacity: '0'} :
+ { height: '100%', width: '0px', marginLeft: margin + 'px', opacity: '0' };
+ var dwnCss2 = (tdata.direction == "vertical") ?
+ { height: '100%', width: '100%', marginTop: '0px', opacity: '1'} :
+ { height: '100%', width: '100%', marginLeft: '0px', opacity: '1' };
+ $scndContainer.stop().animate(dwnCss, { duration: tdata.speed });
+ window.setTimeout(function () {
+ $firstContainer.stop().animate(dwnCss2, { duration: tdata.speed });
+ if (swapBackSource) {
+ var isRandom = stgs.backIsRandom;
+ var index = staticIndexBack;
+ if (isRandom) {
+ //make sure the random bag is ready
+ if (backRandomBag.length == 0) {
+ for (var i = 0; i < stgs.backImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevBackIndex || stgs.backImages.length == 1)
+ backRandomBag[i] = i;
+ }
+ backRandomBag = privMethods.shuffleArray(backRandomBag);
+ }
+ index = backRandomBag.pop();
+ prevBackIndex = index;
+ }
+ privMethods.handleSwap($scndContainer, false, stgs, index);
+ staticIndexBack += 1;
+ if (staticIndexBack >= stgs.backImages.length) {
+ staticIndexBack = 0;
+ }
+ }
+ isReversed = !isReversed;
+ stgs.animationComplete(tdata, $firstContainer, $scndContainer);
+ if (callback != null)
+ callback();
+ }, tdata.speed);
+ }
+ }
+ };
+ // flip arbitrary number of items and swap sources accordingly
+ $this.flipList = function (callback) {
+ if (typeof (callback) == "undefined" || callback == null)
+ callback = null;
+ if (tdata.repeatCount > -1) {
+ if (tdata.loopCount > tdata.repeatCount) {
+ tdata.stopTimer(false);
+ tdata.loopCount = 0;
+ tdata.hasRun = false;
+ $this.data("LiveTile", tdata);
+ return;
+ } else {
+ tdata.loopCount += 1;
+ }
+ }
+ var fBag = []; // two bags to make sure we don't duplicate images
+ var bBag = [];
+ var $tiles = $this.find(stgs.tileCssSelector);
+ //in case we want to pick one image per loop
+ var fStaticRndm = 0;
+ if (swapFrontSource) {
+ if (frontRandomBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ if (i != prevFrontIndex || stgs.frontImages.length == 1)
+ frontRandomBag[i] = i;
+ }
+ frontRandomBag = privMethods.shuffleArray(frontRandomBag);
+ }
+ fStaticRndm = frontRandomBag.pop();
+ prevFrontIndex = fStaticRndm;
+ }
+ var bStaticRndm = 0;
+ if (swapBackSource) {
+ if (backRandomBag.length == 0) {
+ for (var i = 0; i < stgs.backImages.length; i++) {
+ if (i != prevBackIndex || stgs.backImages.length == 1)
+ backRandomBag[i] = i;
+ }
+ backRandomBag = privMethods.shuffleArray(backRandomBag);
+ }
+ bStaticRndm = backRandomBag.pop();
+ prevBackIndex = bStaticRndm;
+ }
+ $tiles.each(function (idx) {
+ var $t = jQuery(this);
+ if (flistData.length < idx + 1) {
+ // cache the selector
+ var data = {};
+ data.$front = $t.find(stgs.listTileCssSelector).first();
+ data.$back = $t.find(stgs.listTileCssSelector).last();
+ data.isReversed = false;
+ flistData[idx] = data;
+ }
+ var $front = flistData[idx].$front;
+ var $back = flistData[idx].$back;
+
+ var tDelay = stgs.triggerDelay(idx);
+ var triggerSpeed = (tDelay > 0) ? (tdata.speed + tDelay) : tdata.speed;
+ var trigger = (stgs.alwaysTrigger == false) ? ((Math.random() * 351) > 150 ? true : false) : true;
+ var newImage;
+ if (flistData[idx].isReversed) {
+ if (trigger) {
+ window.setTimeout(function () {
+ flistData[idx].isReversed = false;
+ if (!swapFrontSource) {
+ $this.flipListItem(true, $t, $front, $back);
+ } else {
+ var isRandom = stgs.frontIsRandom;
+ var isInGrid = stgs.frontIsInGrid;
+ var isBground = stgs.frontIsBackgroundImage;
+ var frontImages = stgs.frontImages;
+ if (isRandom && !isInGrid) {
+ //make sure the random bag is ready
+ if (fBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ fBag[i] = i;
+ }
+ fBag = privMethods.shuffleArray(fBag);
+ }
+ newImage = frontImages[fBag.pop()];
+ } else {
+ if (!isInGrid) {
+ newImage = frontImages[Math.min(idx, frontImages.length)];
+ } else {
+ newImage = frontImages[Math.min(fStaticRndm, frontImages.length)];
+ }
+ }
+ $this.flipListItem(true, $t, $front, $back, newImage, isBground);
+ }
+ }, triggerSpeed);
+ }
+ } else {
+ if (trigger) {
+ window.setTimeout(function () {
+ flistData[idx].isReversed = true;
+ if (!swapBackSource) {
+ $this.flipListItem(false, $t, $back, $front);
+ } else {
+ var isRandom = stgs.backIsRandom;
+ var isInGrid = stgs.backIsInGrid;
+ var isBground = stgs.backIsBackgroundImage;
+ var backImages = stgs.backImages;
+ if (isRandom && !isInGrid) {
+ //make sure the random bag is ready
+ if (bBag.length == 0) {
+ for (var i = 0; i < stgs.backImages.length; i++) {
+ bBag[i] = i;
+ }
+ bBag = privMethods.shuffleArray(bBag);
+ }
+ newImage = backImages[bBag.pop()];
+ } else {
+ if (!isInGrid) {
+ newImage = backImages[Math.min(idx, backImages.length)];
+ } else {
+ newImage = backImages[Math.min(bStaticRndm, backImages.length)];
+ }
+ }
+ $this.flipListItem(false, $t, $back, $front, newImage, isBground);
+ }
+ }, triggerSpeed);
+ }
+ }
+ });
+ window.setTimeout(function () {
+ isReversed = !isReversed;
+ }, tdata.speed);
+
+ };
+
+ //does the actual animation of a flip list item
+ $this.flipListItem = function (isFront, $itm, $front, $back, newSrc, isBgroundImg) {
+
+ var dir = (!stgs.ignoreDataAttributes && typeof ($itm.data("direction")) != "undefined") ? $itm.data("direction") : tdata.direction;
+ if (canFlip3d && tdata.useHwAccel) {
+ // avoid any z-index flickering from reversing an animation too early
+ isBgroundImg = isFront ? stgs.frontIsBackgroundImage : stgs.backIsBackgroundImage;
+ var animating = isFront ? $front.data("tile").animating : $back.data("tile").animating;
+ if (animating == true) {
+ return;
+ }
+ var spd = (tdata.speed * 2);
+ var duration = spd + 'ms';
+ var aniFName = (dir == "vertical") ? 'flipfront180' : 'flipfrontY180';
+ var aniBName = (dir == "vertical") ? 'flipback180' : 'flipbackY180';
+ var fCss = {
+ WebkitAnimationPlayState: 'running', WebkitAnimationName: aniBName, WebkitAnimationDuration: duration,
+ MozAnimationPlayState: 'running', MozAnimationName: aniBName, MozAnimationDuration: duration,
+ msAnimationPlayState: 'running', msAnimationName: aniBName, msAnimationDuration: duration,
+ OAnimationPlayState: 'running', OAnimationName: aniBName, OAnimationDuration: duration,
+ AnimationPlayState: 'running', AnimationName: aniBName, AnimationDuration: duration
+ };
+ var bCss = {
+ WebkitAnimationPlayState: 'running', WebkitAnimationName: aniFName, WebkitAnimationDuration: duration,
+ MozAnimationPlayState: 'running', MozAnimationName: aniFName, MozAnimationDuration: duration,
+ msAnimationPlayState: 'running', msAnimationName: aniFName, msAnimationDuration: duration,
+ OAnimationPlayState: 'running', OAnimationName: aniFName, OAnimationDuration: duration,
+ AnimationPlayState: 'running', AnimationName: aniFName, AnimationDuration: duration
+ };
+ $front.css(fCss).data("tile").animating = true;
+ $back.css(bCss).data("tile").animating = true;
+ window.setTimeout(function () {
+ if (typeof (newSrc) != "undefined") {
+ privMethods.handleListItemSwap($front, newSrc, isBgroundImg, stgs);
+ }
+ $front.data("tile").animating = false;
+ $back.data("tile").animating = false;
+ }, 0); // once the animation is half through it can be reversed
+
+ } else {
+ var height = $itm.height();
+ var width = $itm.width();
+ var margin = (dir == "vertical") ? height / 2 : width / 2;
+ var uCss = (dir == "vertical") ?
+ { height: '0px', width: '100%', marginTop: margin + 'px', opacity: 0} :
+ { height: '100%', width: '0px', marginLeft: margin + 'px', opacity: 0 };
+ var dCss = (dir == "vertical") ?
+ { height: '100%', width: '100%', marginTop: '0px', opacity: 1} :
+ { height: '100%', width: '100%', marginLeft: '0px', opacity: 1 };
+ $front.stop().animate(uCss, { duration: tdata.speed });
+ window.setTimeout(function () {
+ $back.stop().animate(dCss, { duration: tdata.speed });
+ if (typeof (newSrc) != "undefined") {
+ privMethods.handleListItemSwap($front, newSrc, isBgroundImg, stgs);
+ }
+ }, tdata.speed);
+ }
+ };
+
+ /* Delay the tile action*/
+ tdata.doAction = function () {
+ var action = null;
+ tdata.stopTimer(false);
+ switch (tdata.mode) {
+ case 'slide':
+ action = $this.slide;
+ break;
+ case 'flip':
+ action = $this.flip;
+ break;
+ case 'flip-list':
+ action = $this.flipList;
+ break;
+ }
+ var callBack = function () {
+ tdata.setTimer();
+ };
+ if (action != null) {
+ doAnimations = true;
+ action(callBack);
+ }
+ };
+ tdata.setTimer = function () {
+ var action = null;
+ switch (tdata.mode) {
+ case 'slide':
+ action = $this.slide;
+ break;
+ case 'flip':
+ action = $this.flip;
+ break;
+ case 'flip-list':
+ action = $this.flipList;
+ break;
+ }
+
+ if (action != null) {
+ if (tdata.hasRun == false) {
+ window.setTimeout(function () {
+ doAnimations = true;
+ action();
+ tdata.setTimer();
+ }, tdata.initDelay);
+ } else {
+ if ($this.slideTimer != null)
+ $this.slideTimer = privMethods.stopTimer($this.slideTimer);
+ $this.slideTimer = privMethods.setTimer(function () { doAnimations = true; action(); }, tdata.speed + tdata.delay);
+ }
+ }
+ tdata.hasRun = true;
+ };
+
+ tdata.stopTimer = function (restart) {
+ $this.slideTimer = privMethods.stopTimer($this.slideTimer);
+ doAnimations = false;
+
+ if (typeof (restart) != "undefined" && restart == true) {
+ tdata.setTimer();
+ }
+ };
+ $this.data("LiveTile", tdata);
+ tdata.setTimer();
+ });
+ },
+ animate: function () {
+ jQuery(this).each(function () {
+ var tData = jQuery(this).data("LiveTile");
+ tData.doAction();
+ });
+ },
+ destroy: function () {
+ jQuery(this).each(function () {
+ var $t = jQuery(this);
+ $t.unbind(".liveTile");
+ var $tile = jQuery(this).data("LiveTile");
+ if ($tile != null) {
+ $tile.stopTimer(false);
+ $t.removeData("LiveTile");
+ $t.removeData("ha");
+ $t.removeData("tile");
+ delete $tile;
+ delete $t.slide;
+ delete $t.flip;
+ delete $t.flipList;
+ delete $t.liveTile;
+ }
+
+ });
+ },
+ stop: function (restart) {
+ jQuery(this).each(function () {
+ var $tile = jQuery(this).data("LiveTile");
+ $tile.stopTimer(restart);
+ $tile.loopCount = 0;
+ $tile.hasRun = false;
+ });
+ },
+ pause: function () {
+ jQuery(this).each(function () {
+ jQuery(this).data("LiveTile").stopTimer();
+ });
+ },
+ play: function () {
+ jQuery(this).each(function () {
+ jQuery(this).data("LiveTile").setTimer();
+ });
+ }
+ };
+})(); \ No newline at end of file
diff --git a/start/livetiles/dakoder/index.html b/start/livetiles/dakoder/index.html
new file mode 100644
index 0000000..0f55e45
--- /dev/null
+++ b/start/livetiles/dakoder/index.html
@@ -0,0 +1,77 @@
+<html>
+<head>
+<title>Live Tile</title>
+<style>
+body { margin:0;padding:0;font-family:Segoe UI;}
+.metroBig { font-size:36px; line-height:36px; }
+.live-tile, .list-tile
+{
+ color:#fff;
+ float:left;
+ height: 125px;
+ margin:0px;
+ overflow:hidden;
+ position:relative;
+ width: 125px;
+}
+
+.live-tile img, .list-tile img { border:none; }
+.live-tile.me>.slide-back>a.metroBig { position:absolute; left:0; bottom:0; padding: 0 0 12px 12px; text-decoration:none; }
+.live-tile a:link, .live-tile a:visited { color:#fff; text-decoration:underline; }
+.live-tile a:hover { color:#fff; text-decoration:none; }
+.live-tile p { font-size:13px; line-height: 16px; padding:10px; }
+.live-tile .tile-title, .list-tile .tile-title { position:absolute; bottom:0px; font-size:12px; left:0px; width:100%; padding:0 0 ; z-index:30; }
+.live-tile a.tile-title, .list-tile a.tile-title { text-decoration:none; }
+.live-tile.me>.metroBig { padding-top:45px; }
+
+.live-tile,.live-tile>div,.list-tile>div
+{ /* ensure elements on backside don't continue to take focus */
+ backface-visibility:hidden;
+ -webkit-backface-visibility:hidden;
+ -moz-backface-visibility:hidden;
+}
+
+.live-tile>div,.list-tile>div
+{
+ top:0px;
+ left:0px;
+ margin:0px;
+ height:100%;
+ width:100%;
+ position:absolute;
+ z-index:20;
+}
+.list-tile>div
+{
+ position:relative;
+}
+
+img.full , a.full
+{
+ display:block;
+ margin:0px;
+ height:100%;
+ width:100%;
+}
+
+.live-tile>.slide-back,.live-tile
+{
+ position:absolute;
+ z-index:10;
+}
+</style>
+</head>
+<body style="float: left; position: absolute; top: 0; left: 0;">
+<div class="tiles">
+ <div style="background-color: #1ba0e1;" class="live-tile me" data-stops="50%,100%,0px" data-stack="true" data-delay="3000">
+ <div><a href="http://dakoder.koding.com" target="_parent"><img src="DaKoder.png" alt="DaKoder" class="full" /></a></div>
+ <div><a class="metroBig" href="http://dakoder.koding.com" target="_parent"><font size="5px" face="Segoe UI">DaKoder</font></a></div>
+</div></div></body>
+ <script src="jquery-1.5.1.min.js" type="text/javascript"></script>
+ <script src="MetroJs.lt.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ $(document).ready(function () {
+ $(".live-tile,.flip-list").liveTile();
+ });
+ </script>
+</html> \ No newline at end of file
diff --git a/start/livetiles/dakoder/jquery-1.5.1.min.js b/start/livetiles/dakoder/jquery-1.5.1.min.js
new file mode 100644
index 0000000..bb3f311
--- /dev/null
+++ b/start/livetiles/dakoder/jquery-1.5.1.min.js
@@ -0,0 +1,19 @@
+/*!
+* Note: While Microsoft is not the author of this file, Microsoft is
+* offering you a license subject to the terms of the Microsoft Software
+* License Terms for Microsoft ASP.NET Model View Controller 3.
+* Microsoft reserves all other rights. The notices below are provided
+* for informational purposes only and are not the license terms under
+* which Microsoft distributed this file.
+*
+* jQuery JavaScript Library v1.5.1
+* http://jquery.com/
+* Copyright 2011, John Resig
+*
+* Includes Sizzle.js
+* http://sizzlejs.com/
+* Copyright 2011, The Dojo Foundation
+*
+* Date: Thu Nov 11 19:04:53 2010 -0500
+*/
+(function(a,b){function cg(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cd(a){if(!bZ[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";bZ[a]=c}return bZ[a]}function cc(a,b){var c={};d.each(cb.concat.apply([],cb.slice(0,b)),function(){c[this]=a});return c}function bY(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bX(){try{return new a.XMLHttpRequest}catch(b){}}function bW(){d(a).unload(function(){for(var a in bU)bU[a](0,1)})}function bQ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h==="string"&&(f[h.toLowerCase()]=a.converters[h]);l=k,k=e[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=f[m]||f["* "+k];if(!n){p=b;for(o in f){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=f[j[1]+" "+k];if(p){o=f[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&d.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bP(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bO(a,b,c,e){if(d.isArray(b)&&b.length)d.each(b,function(b,f){c||bq.test(a)?e(a,f):bO(a+"["+(typeof f==="object"||d.isArray(f)?b:"")+"]",f,c,e)});else if(c||b==null||typeof b!=="object")e(a,b);else if(d.isArray(b)||d.isEmptyObject(b))e(a,"");else for(var f in b)bO(a+"["+f+"]",b[f],c,e)}function bN(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bH,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l==="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bN(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bN(a,c,d,e,"*",g));return l}function bM(a){return function(b,c){typeof b!=="string"&&(c=b,b="*");if(d.isFunction(c)){var e=b.toLowerCase().split(bB),f=0,g=e.length,h,i,j;for(;f<g;f++)h=e[f],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bo(a,b,c){var e=b==="width"?bi:bj,f=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return f;d.each(e,function(){c||(f-=parseFloat(d.css(a,"padding"+this))||0),c==="margin"?f+=parseFloat(d.css(a,"margin"+this))||0:f-=parseFloat(d.css(a,"border"+this+"Width"))||0});return f}function ba(a,b){b.src?d.ajax({url:b.src,async:!1,dataType:"script"}):d.globalEval(b.text||b.textContent||b.innerHTML||""),b.parentNode&&b.parentNode.removeChild(b)}function _(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function $(a,b){if(b.nodeType===1){var c=b.nodeName.toLowerCase();b.clearAttributes(),b.mergeAttributes(a);if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(d.expando)}}function Z(a,b){if(b.nodeType===1&&d.hasData(a)){var c=d.expando,e=d.data(a),f=d.data(b,e);if(e=e[c]){var g=e.events;f=f[c]=d.extend({},e);if(g){delete f.handle,f.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)d.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function Y(a,b){return d.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function O(a,b,c){if(d.isFunction(b))return d.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return d.grep(a,function(a,d){return a===b===c});if(typeof b==="string"){var e=d.grep(a,function(a){return a.nodeType===1});if(J.test(b))return d.filter(b,e,!c);b=d.filter(b,e)}return d.grep(a,function(a,e){return d.inArray(a,b)>=0===c})}function N(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function F(a,b){return(a&&a!=="*"?a+".":"")+b.replace(r,"`").replace(s,"&")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,q=[],r=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;i<t.length;i++)g=t[i],g.origType.replace(p,"")===a.type?r.push(g.selector):t.splice(i--,1);f=d(a.target).closest(r,a.currentTarget);for(j=0,k=f.length;j<k;j++){m=f[j];for(i=0;i<t.length;i++){g=t[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,e=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,e=d(a.relatedTarget).closest(g.selector)[0];(!e||e!==h)&&q.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=q.length;j<k;j++){f=q[j];if(c&&f.level>c)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function C(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function w(){return!0}function v(){return!1}function g(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function f(a,c,f){if(f===b&&a.nodeType===1){f=a.getAttribute("data-"+c);if(typeof f==="string"){try{f=f==="true"?!0:f==="false"?!1:f==="null"?null:d.isNaN(f)?e.test(f)?d.parseJSON(f):f:parseFloat(f)}catch(g){}d.data(a,c,f)}else f=b}return f}var c=a.document,d=function(){function I(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(I,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x=!1,y,z="then done fail isResolved isRejected promise".split(" "),A,B=Object.prototype.toString,C=Object.prototype.hasOwnProperty,D=Array.prototype.push,E=Array.prototype.slice,F=String.prototype.trim,G=Array.prototype.indexOf,H={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.1",length:0,size:function(){return this.length},toArray:function(){return E.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?D.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(E.apply(this,arguments),"slice",E.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:D,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){e=i[c],f=a[c];if(i===f)continue;l&&f&&(d.isPlainObject(f)||(g=d.isArray(f)))?(g?(g=!1,h=e&&d.isArray(e)?e:[]):h=e&&d.isPlainObject(e)?e:{},i[c]=d.extend(l,h,f)):f!==b&&(i[c]=f)}return i},d.extend({noConflict:function(b){a.$=f,b&&(a.jQuery=e);return d},isReady:!1,readyWait:1,ready:function(a){a===!0&&d.readyWait--;if(!d.readyWait||a!==!0&&!d.isReady){if(!c.body)return setTimeout(d.ready,1);d.isReady=!0;if(a!==!0&&--d.readyWait>0)return;y.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=!0;if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",A,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",A),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&I()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):H[B.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!C.call(a,"constructor")&&!C.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||C.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g<h;)if(c.apply(a[g++],e)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(var j=a[0];g<h&&c.call(j,g,j)!==!1;j=a[++g]){}return a},trim:F?function(a){return a==null?"":F.call(a)}:function(a){return a==null?"":(a+"").replace(j,"").replace(k,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var e=d.type(a);a.length==null||e==="string"||e==="function"||e==="regexp"||d.isWindow(a)?D.call(c,a):d.merge(c,a)}return c},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length==="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,b,c){var d=[],e;for(var f=0,g=a.length;f<g;f++)e=b(a[f],f,c),e!=null&&(d[d.length]=e);return d.concat.apply([],d)},guid:1,proxy:function(a,c,e){arguments.length===2&&(typeof c==="string"?(e=a,a=e[c],c=b):c&&!d.isFunction(c)&&(e=c,c=b)),!c&&a&&(c=function(){return a.apply(e||this,arguments)}),a&&(c.guid=a.guid=a.guid||c.guid||d.guid++);return c},access:function(a,c,e,f,g,h){var i=a.length;if(typeof c==="object"){for(var j in c)d.access(a,j,c[j],f,g,e);return a}if(e!==b){f=!h&&f&&d.isFunction(e);for(var k=0;k<i;k++)g(a[k],c,f?e.call(a[k],k,g(a[k],c)):e,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},_Deferred:function(){var a=[],b,c,e,f={done:function(){if(!e){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=d.type(i),j==="array"?f.done.apply(f,i):j==="function"&&a.push(i);k&&f.resolveWith(k[0],k[1])}return this},resolveWith:function(d,f){if(!e&&!b&&!c){c=1;try{while(a[0])a.shift().apply(d,f)}catch(g){throw g}finally{b=[d,f],c=0}}return this},resolve:function(){f.resolveWith(d.isFunction(this.promise)?this.promise():this,arguments);return this},isResolved:function(){return c||b},cancel:function(){e=1,a=[];return this}};return f},Deferred:function(a){var b=d._Deferred(),c=d._Deferred(),e;d.extend(b,{then:function(a,c){b.done(a).fail(c);return this},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,promise:function(a){if(a==null){if(e)return e;e=a={}}var c=z.length;while(c--)a[z[c]]=b[z[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){var b=arguments.length,c=b<=1&&a&&d.isFunction(a.promise)?a:d.Deferred(),e=c.promise();if(b>1){var f=E.call(arguments,0),g=b,h=function(a){return function(b){f[a]=arguments.length>1?E.call(arguments,0):b,--g||c.resolveWith(e,f)}};while(b--)a=f[b],a&&d.isFunction(a.promise)?a.promise().then(h(b),c.reject):--g;g||c.resolveWith(e,f)}else c!==a&&c.resolve(a);return e},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),y=d._Deferred(),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){H["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),G&&(d.inArray=function(a,b){return G.call(b,a)}),i.test("Â ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?A=function(){c.removeEventListener("DOMContentLoaded",A,!1),d.ready()}:c.attachEvent&&(A=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",A),d.ready())});return d}();(function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e),b=e=f=null}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function"),b=null;return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}})();var e=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!g(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,h=b.nodeType,i=h?d.cache:b,j=h?b[d.expando]:d.expando;if(!i[j])return;if(c){var k=e?i[j][f]:i[j];if(k){delete k[c];if(!g(k))return}}if(e){delete i[j][f];if(!g(i[j]))return}var l=i[j][f];d.support.deleteExpando||i!=a?delete i[j]:i[j]=null,l?(i[j]={},h||(i[j].toJSON=d.noop),i[j][f]=l):h&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var g=this[0].attributes,h;for(var i=0,j=g.length;i<j;i++)h=g[i].name,h.indexOf("data-")===0&&(h=h.substr(5),f(this[0],h,e[h]))}}return e}if(typeof a==="object")return this.each(function(){d.data(this,a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(c===b){e=this.triggerHandler("getData"+k[1]+"!",[k[0]]),e===b&&this.length&&(e=d.data(this[0],a),e=f(this[0],a,e));return e===b&&k[1]?this.data(k[0]):e}return this.each(function(){var b=d(this),e=[k[0],c];b.triggerHandler("setData"+k[1]+"!",e),d.data(this,a,c),b.triggerHandler("changeData"+k[1]+"!",e)})},removeData:function(a){return this.each(function(){d.removeData(this,a)})}}),d.extend({queue:function(a,b,c){if(a){b=(b||"fx")+"queue";var e=d._data(a,b);if(!c)return e||[];!e||d.isArray(c)?e=d._data(a,b,d.makeArray(c)):e.push(c);return e}},dequeue:function(a,b){b=b||"fx";var c=d.queue(a,b),e=c.shift();e==="inprogress"&&(e=c.shift()),e&&(b==="fx"&&c.unshift("inprogress"),e.call(a,function(){d.dequeue(a,b)})),c.length||d.removeData(a,b+"queue",!0)}}),d.fn.extend({queue:function(a,c){typeof a!=="string"&&(c=a,a="fx");if(c===b)return d.queue(this[0],a);return this.each(function(b){var e=d.queue(this,a,c);a==="fx"&&e[0]!=="inprogress"&&d.dequeue(this,a)})},dequeue:function(a){return this.each(function(){d.dequeue(this,a)})},delay:function(a,b){a=d.fx?d.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){d.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var h=/[\n\t\r]/g,i=/\s+/,j=/\r/g,k=/^(?:href|src|style)$/,l=/^(?:button|input)$/i,m=/^(?:button|input|object|select|textarea)$/i,n=/^a(?:rea)?$/i,o=/^(?:radio|checkbox)$/i;d.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"},d.fn.extend({attr:function(a,b){return d.access(this,a,b,!0,d.attr)},removeAttr:function(a,b){return this.each(function(){d.attr(this,a,""),this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.addClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"){var b=(a||"").split(i);for(var c=0,e=this.length;c<e;c++){var f=this[c];if(f.nodeType===1)if(f.className){var g=" "+f.className+" ",h=f.className;for(var j=0,k=b.length;j<k;j++)g.indexOf(" "+b[j]+" ")<0&&(h+=" "+b[j]);f.className=d.trim(h)}else f.className=a}}return this},removeClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"||a===b){var c=(a||"").split(i);for(var e=0,f=this.length;e<f;e++){var g=this[e];if(g.nodeType===1&&g.className)if(a){var j=(" "+g.className+" ").replace(h," ");for(var k=0,l=c.length;k<l;k++)j=j.replace(" "+c[k]+" "," ");g.className=d.trim(j)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,e=typeof b==="boolean";if(d.isFunction(a))return this.each(function(c){var e=d(this);e.toggleClass(a.call(this,c,e.attr("class"),b),b)});return this.each(function(){if(c==="string"){var f,g=0,h=d(this),j=b,k=a.split(i);while(f=k[g++])j=e?j:!h.hasClass(f),h[j?"addClass":"removeClass"](f)}else if(c==="undefined"||c==="boolean")this.className&&d._data(this,"__className__",this.className),this.className=this.className||a===!1?"":d._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(h," ").indexOf(b)>-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var k=i?f:0,l=i?f+1:h.length;k<l;k++){var m=h[k];if(m.selected&&(d.support.optDisabled?!m.disabled:m.getAttribute("disabled")===null)&&(!m.parentNode.disabled||!d.nodeName(m.parentNode,"optgroup"))){a=d(m).val();if(i)return a;g.push(a)}}if(i&&!g.length&&h.length)return d(h[f]).val();return g}if(o.test(c.type)&&!d.support.checkOn)return c.getAttribute("value")===null?"on":c.value;return(c.value||"").replace(j,"")}return b}var n=d.isFunction(a);return this.each(function(b){var c=d(this),e=a;if(this.nodeType===1){n&&(e=a.call(this,b,c.val())),e==null?e="":typeof e==="number"?e+="":d.isArray(e)&&(e=d.map(e,function(a){return a==null?"":a+""}));if(d.isArray(e)&&o.test(this.type))this.checked=d.inArray(c.val(),e)>=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=k.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&l.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var o=a.getAttributeNode("tabIndex");return o&&o.specified?o.value:m.test(a.nodeName)||n.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var p=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return p===null?b:p}h&&(a[c]=e);return a[c]}});var p=/\.(.*)$/,q=/^(?:textarea|input|select)$/i,r=/\./g,s=/ /g,t=/[^\w\s.|`]/g,u=function(a){return a.replace(t,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=v;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(){return typeof d!=="undefined"&&!d.event.triggered?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=v);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),u).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))d.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=d.event.special[h]||{};for(j=f||0;j<p.length;j++){q=p[j];if(e.guid===q.guid){if(l||n.test(q.namespace))f==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(f!=null)break}}if(p.length===0||f!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&d.removeEvent(a,h,s.handle),g=null,delete t[h]}if(d.isEmptyObject(t)){var w=s.handle;w&&(w.elem=null),delete s.events,delete s.handle,d.isEmptyObject(s)&&d.removeData(a,b,!0)}}},trigger:function(a,c,e){var f=a.type||a,g=arguments[3];if(!g){a=typeof a==="object"?a[d.expando]?a:d.extend(d.Event(f),a):d.Event(f),f.indexOf("!")>=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(p,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=!0,l[m]())}catch(q){}k&&(l["on"+m]=k),d.event.triggered=!1}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l<m;l++){var n=f[l];if(e||h.test(n.namespace)){c.handler=n.handler,c.data=n.data,c.handleObj=n;var o=n.handler.apply(this,k);o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[d.expando])return a;var e=a;a=d.Event(e);for(var f=this.props.length,g;f;)g=this.props[--f],a[g]=e[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=c.documentElement,i=c.body;a.pageX=a.clientX+(h&&h.scrollLeft||i&&i.scrollLeft||0)-(h&&h.clientLeft||i&&i.clientLeft||0),a.pageY=a.clientY+(h&&h.scrollTop||i&&i.scrollTop||0)-(h&&h.clientTop||i&&i.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:d.proxy,special:{ready:{setup:d.bindReady,teardown:d.noop},live:{add:function(a){d.event.add(this,F(a.origType,a.selector),d.extend({},a,{handler:E,guid:a.handler.guid}))},remove:function(a){d.event.remove(this,F(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){d.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},d.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},d.Event=function(a){if(!this.preventDefault)return new d.Event(a);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?w:v):this.type=a,this.timeStamp=d.now(),this[d.expando]=!0},d.Event.prototype={preventDefault:function(){this.isDefaultPrevented=w;var a=this.originalEvent;a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=w;var a=this.originalEvent;a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=w,this.stopPropagation()},isDefaultPrevented:v,isPropagationStopped:v,isImmediatePropagationStopped:v};var x=function(a){var b=a.relatedTarget;try{if(b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&(a.type=a.data,d.event.handle.apply(this,arguments))}catch(e){}},y=function(a){a.type=a.data,d.event.handle.apply(this,arguments)};d.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){d.event.special[a]={setup:function(c){d.event.add(this,b,c&&c.selector?y:x,a)},teardown:function(a){d.event.remove(this,b,a&&a.selector?y:x)}}}),d.support.submitBubbles||(d.event.special.submit={setup:function(a,b){if(this.nodeName&&this.nodeName.toLowerCase()!=="form")d.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&d(b).closest("form").length&&C("submit",this,arguments)}),d.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&d(b).closest("form").length&&a.keyCode===13&&C("submit",this,arguments)});else return!1},teardown:function(a){d.event.remove(this,".specialSubmit")}});if(!d.support.changeBubbles){var z,A=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},B=function B(a){var c=a.target,e,f;if(q.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=A(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:B,beforedeactivate:B,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&B.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&B.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",A(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in z)d.event.add(this,c+".specialChange",z[c]);return q.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return q.test(this.nodeName)}},z=d.event.special.change.filters,z.focus=z.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function c(a){a=d.event.fix(a),a.type=b;return d.event.handle.call(this,a)}d.event.special[b]={setup:function(){this.addEventListener(a,c,!0)},teardown:function(){this.removeEventListener(a,c,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i<j;i++)d.event.add(this[i],a,h,e);return this}}),d.fn.extend({unbind:function(a,b){if(typeof a!=="object"||a.preventDefault)for(var e=0,f=this.length;e<f;e++)d.event.remove(this[e],a,b);else for(var c in a)this.unbind(c,a[c]);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){d.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var c=d.Event(a);c.preventDefault(),c.stopPropagation(),d.event.trigger(c,b,this[0]);return c.result}},toggle:function(a){var b=arguments,c=1;while(c<b.length)d.proxy(a,b[c++]);return this.click(d.proxy(a,function(e){var f=(d._data(this,"lastToggle"+a.guid)||0)%c;d._data(this,"lastToggle"+a.guid,f+1),e.preventDefault();return b[f].apply(this,arguments)||!1}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var D={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};d.each(["live","die"],function(a,c){d.fn[c]=function(a,e,f,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:d(this.context);if(typeof a==="object"&&!a.preventDefault){for(var o in a)n[c](o,e,a[o],m);return this}d.isFunction(e)&&(f=e,e=b),a=(a||"").split(" ");while((h=a[i++])!=null){j=p.exec(h),k="",j&&(k=j[0],h=h.replace(p,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,h==="focus"||h==="blur"?(a.push(D[h]+k),h=h+k):h=(D[h]||h)+k;if(c==="live")for(var q=0,r=n.length;q<r;q++)d.event.add(n[q],"live."+F(h,m),{data:e,selector:m,handler:f,origType:h,origHandler:f,preType:l});else n.unbind("live."+F(h,m),f)}return this}}),d.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){d.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!=="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!=="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(f){if(f===!0)continue}else g=o=!0}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b==="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1){}a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!=="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!=="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!=="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.getAttribute("type")},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(a===b){g=!0;return 0}if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector,d=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(e){d=!0}b&&(k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(d||!l.match.PSEUDO.test(c)&&!/!=/.test(c))return b.call(a,c)}catch(e){}return k(c,null,null,[a]).length>0})}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};d.find=k,d.expr=k.selectors,d.expr[":"]=d.expr.filters,d.unique=k.uniqueSort,d.text=k.getText,d.isXMLDoc=k.isXML,d.contains=k.contains}();var G=/Until$/,H=/^(?:parents|prevUntil|prevAll)/,I=/,/,J=/^.[^:#\[\.,]*$/,K=Array.prototype.slice,L=d.expr.match.POS,M={children:!0,contents:!0,next:!0,prev:!0};d.fn.extend({find:function(a){var b=this.pushStack("","find",a),c=0;for(var e=0,f=this.length;e<f;e++){c=b.length,d.find(a,this[e],b);if(e>0)for(var g=c;g<b.length;g++)for(var h=0;h<c;h++)if(b[h]===b[g]){b.splice(g--,1);break}}return b},has:function(a){var b=d(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(d.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(O(this,a,!1),"not",a)},filter:function(a){return this.pushStack(O(this,a,!0),"filter",a)},is:function(a){return!!a&&d.filter(a,this).length>0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e<f;e++)i=a[e],j[i]||(j[i]=d.expr.match.POS.test(i)?d(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=L.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e<f;e++){g=this[e];while(g){if(l?l.index(g)>-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(N(c[0])||N(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=K.call(arguments);G.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!M[a]?d.unique(f):f,(this.length>1||I.test(e))&&H.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var P=/ jQuery\d+="(?:\d+|null)"/g,Q=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,S=/<([\w:]+)/,T=/<tbody/i,U=/<|&#?\w+;/,V=/<(?:script|object|embed|option|style)/i,W=/checked\s*(?:[^=]|=\s*.checked.)/i,X={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};X.optgroup=X.option,X.tbody=X.tfoot=X.colgroup=X.caption=X.thead,X.th=X.td,d.support.htmlSerialize||(X._default=[1,"div<div>","</div>"]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(P,""):null;if(typeof a!=="string"||V.test(a)||!d.support.leadingWhitespace&&Q.test(a)||X[(S.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(R,"<$1></$2>");try{for(var c=0,e=this.length;c<e;c++)this[c].nodeType===1&&(d.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(f){this.empty().append(a)}}return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(d.isFunction(a))return this.each(function(b){var c=d(this),e=c.html();c.replaceWith(a.call(this,b,e))});typeof a!=="string"&&(a=d(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;d(this).remove(),b?d(b).before(a):d(c).append(a)})}return this.pushStack(d(d.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,e){var f,g,h,i,j=a[0],k=[];if(!d.support.checkClone&&arguments.length===3&&typeof j==="string"&&W.test(j))return this.each(function(){d(this).domManip(a,c,e,!0)});if(d.isFunction(j))return this.each(function(f){var g=d(this);a[0]=j.call(this,f,c?g.html():b),g.domManip(a,c,e)});if(this[0]){i=j&&j.parentNode,d.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?f={fragment:i}:f=d.buildFragment(a,this,k),h=f.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&d.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)e.call(c?Y(this[l],g):this[l],f.cacheable||m>1&&l<n?d.clone(h,!0,!0):h)}k.length&&d.each(k,ba)}return this}}),d.buildFragment=function(a,b,e){var f,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]==="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!V.test(a[0])&&(d.support.checkClone||!W.test(a[0]))&&(g=!0,h=d.fragments[a[0]],h&&(h!==1&&(f=h))),f||(f=i.createDocumentFragment(),d.clean(a,i,f,e)),g&&(d.fragments[a[0]]=h?f:1);return{fragment:f,cacheable:g}},d.fragments={},d.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){d.fn[a]=function(c){var e=[],f=d(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&f.length===1){f[b](this[0]);return this}for(var h=0,i=f.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){$(a,e),f=_(a),g=_(e);for(h=0;f[h];++h)$(f[h],g[h])}if(b){Z(a,e);if(c){f=_(a),g=_(e);for(h=0;f[h];++h)Z(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||U.test(i)){if(typeof i==="string"){i=i.replace(R,"<$1></$2>");var j=(S.exec(i)||["",""])[1].toLowerCase(),k=X[j]||X._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=T.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]==="<table>"&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&Q.test(i)&&m.insertBefore(b.createTextNode(Q.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bb=/alpha\([^)]*\)/i,bc=/opacity=([^)]*)/,bd=/-([a-z])/ig,be=/([A-Z])/g,bf=/^-?\d+(?:px)?$/i,bg=/^-?\d/,bh={position:"absolute",visibility:"hidden",display:"block"},bi=["Left","Right"],bj=["Top","Bottom"],bk,bl,bm,bn=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bk(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bk)return bk(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bd,bn)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bo(a,b,e):d.swap(a,bh,function(){f=bo(a,b,e)});if(f<=0){f=bk(a,b,b),f==="0px"&&bm&&(f=bm(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bf.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return bc.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bb.test(f)?f.replace(bb,e):c.filter+" "+e}}),c.defaultView&&c.defaultView.getComputedStyle&&(bl=function(a,c,e){var f,g,h;e=e.replace(be,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bm=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bf.test(d)&&bg.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bk=bl||bm,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var bp=/%20/g,bq=/\[\]$/,br=/\r?\n/g,bs=/#.*$/,bt=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bu=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bv=/(?:^file|^widget|\-extension):$/,bw=/^(?:GET|HEAD)$/,bx=/^\/\//,by=/\?/,bz=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bA=/^(?:select|textarea)/i,bB=/\s+/,bC=/([?&])_=[^&]*/,bD=/(^|\-)([a-z])/g,bE=function(a,b,c){return b+c.toUpperCase()},bF=/^([\w\+\.\-]+:)\/\/([^\/?#:]*)(?::(\d+))?/,bG=d.fn.load,bH={},bI={},bJ,bK;try{bJ=c.location.href}catch(bL){bJ=c.createElement("a"),bJ.href="",bJ=bJ.href}bK=bF.exec(bJ.toLowerCase()),d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bG)return bG.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("<div>").append(c.replace(bz,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bA.test(this.nodeName)||bu.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(br,"\r\n")}}):{name:b.name,value:c.replace(br,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bJ,isLocal:bv.test(bK[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bM(bH),ajaxTransport:bM(bI),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bP(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bQ(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bD,bE)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bt.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bs,"").replace(bx,bK[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bB),e.crossDomain||(q=bF.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bK[1]||q[2]!=bK[2]||(q[3]||(q[1]==="http:"?80:443))!=(bK[3]||(bK[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bN(bH,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!bw.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(by.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bC,"$1_="+w);e.url=x+(x===e.url?(by.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bN(bI,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bO(g,a[g],c,f);return e.join("&").replace(bp,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bR=d.now(),bS=/(\=)\?(&|$)|()\?\?()/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bR++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bS.test(b.url)||f&&bS.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bS,l),b.url===j&&(f&&(k=k.replace(bS,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bT=d.now(),bU,bV;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bX()||bY()}:bX,bV=d.ajaxSettings.xhr(),d.support.ajax=!!bV,d.support.cors=bV&&"withCredentials"in bV,bV=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),(!a.crossDomain||a.hasContent)&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bU[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bU||(bU={},bW()),h=bT++,g.onreadystatechange=bU[h]=c):c()},abort:function(){c&&c(0,1)}}}});var bZ={},b$=/^(?:toggle|show|hide)$/,b_=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,ca,cb=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(cc("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)e=this[g],f=e.style.display,!d._data(e,"olddisplay")&&f==="none"&&(f=e.style.display=""),f===""&&d.css(e,"display")==="none"&&d._data(e,"olddisplay",cd(e.nodeName));for(g=0;g<h;g++){e=this[g],f=e.style.display;if(f===""||f==="none")e.style.display=d._data(e,"olddisplay")||""}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cc("hide",3),a,b,c);for(var e=0,f=this.length;e<f;e++){var g=d.css(this[e],"display");g!=="none"&&!d._data(this[e],"olddisplay")&&d._data(this[e],"olddisplay",g)}for(e=0;e<f;e++)this[e].style.display="none";return this},_toggle:d.fn.toggle,toggle:function(a,b,c){var e=typeof a==="boolean";d.isFunction(a)&&d.isFunction(b)?this._toggle.apply(this,arguments):a==null||e?this.each(function(){var b=e?a:d(this).is(":hidden");d(this)[b?"show":"hide"]()}):this.animate(cc("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,e){var f=d.speed(b,c,e);if(d.isEmptyObject(a))return this.each(f.complete);return this[f.queue===!1?"each":"queue"](function(){var b=d.extend({},f),c,e=this.nodeType===1,g=e&&d(this).is(":hidden"),h=this;for(c in a){var i=d.camelCase(c);c!==i&&(a[i]=a[c],delete a[c],c=i);if(a[c]==="hide"&&g||a[c]==="show"&&!g)return b.complete.call(this);if(e&&(c==="height"||c==="width")){b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(d.css(this,"display")==="inline"&&d.css(this,"float")==="none")if(d.support.inlineBlockNeedsLayout){var j=cd(this.nodeName);j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)}else this.style.display="inline-block"}d.isArray(a[c])&&((b.specialEasing=b.specialEasing||{})[c]=a[c][1],a[c]=a[c][0])}b.overflow!=null&&(this.style.overflow="hidden"),b.curAnim=d.extend({},a),d.each(a,function(c,e){var f=new d.fx(h,b,c);if(b$.test(e))f[e==="toggle"?g?"show":"hide":e](a);else{var i=b_.exec(e),j=f.cur();if(i){var k=parseFloat(i[2]),l=i[3]||(d.cssNumber[c]?"":"px");l!=="px"&&(d.style(h,c,(k||1)+l),j=(k||1)/f.cur()*j,d.style(h,c,j+l)),i[1]&&(k=(i[1]==="-="?-1:1)*k+j),f.custom(j,k,l)}else f.custom(j,e,"")}});return!0})},stop:function(a,b){var c=d.timers;a&&this.queue([]),this.each(function(){for(var a=c.length-1;a>=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:cc("show",1),slideUp:cc("hide",1),slideToggle:cc("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!ca&&(ca=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||d.fx.stop()},interval:13,stop:function(){clearInterval(ca),ca=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){d.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),d.expr&&d.expr.filters&&(d.expr.filters.animated=function(a){return d.grep(d.timers,function(b){return a===b.elem}).length});var ce=/^t(?:able|d|h)$/i,cf=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?d.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,g=f.documentElement;if(!c||!d.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=f.body,i=cg(f),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||d.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||d.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:d.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);d.offset.initialize();var c,e=b.offsetParent,f=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(d.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===e&&(l+=b.offsetTop,m+=b.offsetLeft,d.offset.doesNotAddBorder&&(!d.offset.doesAddBorderForTableAndCells||!ce.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),f=e,e=b.offsetParent),d.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;d.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},d.offset={initialize:function(){var a=c.body,b=c.createElement("div"),e,f,g,h,i=parseFloat(d.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),a=b=e=f=g=h=null,d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=e==="absolute"&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=cf.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!cf.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=cg(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=cg(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window); \ No newline at end of file
diff --git a/start/livetiles/photos/1.jpg b/start/livetiles/photos/1.jpg
new file mode 100644
index 0000000..d883e55
--- /dev/null
+++ b/start/livetiles/photos/1.jpg
Binary files differ
diff --git a/start/livetiles/photos/2.jpg b/start/livetiles/photos/2.jpg
new file mode 100644
index 0000000..5828396
--- /dev/null
+++ b/start/livetiles/photos/2.jpg
Binary files differ
diff --git a/start/livetiles/photos/MetroJs.lt.js b/start/livetiles/photos/MetroJs.lt.js
new file mode 100644
index 0000000..730716d
--- /dev/null
+++ b/start/livetiles/photos/MetroJs.lt.js
@@ -0,0 +1,1054 @@
+/*
+* Metro JS for jQuery
+* http://drewgreenwell.com/
+* For details and usage info see: http://drewgreenwell.com/projects/metrojs
+
+Copyright (C) 2012, Drew Greenwell
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+(function () {
+
+jQuery.fn.metrojs = {};
+
+
+
+/* Preload Images */
+// Usage: jQuery(['1.jpg','2.jpg']).metrojs.preloadImages(function(){ ... });
+// Callback function gets called after all images are preloaded
+jQuery.fn.metrojs.preloadImages = function (callback) {
+ var checklist = jQuery(this).toArray();
+ var $img = jQuery("<img style='display:none;'>").appendTo("body");
+ jQuery(this).each(function () {
+ $img.attr({ src: this }).load(function () {
+ var src = jQuery(this).attr('src');
+ for (var i = 0; i < checklist.length; i++) {
+ if (checklist[i] == element) { checklist.splice(i, 1); }
+ }
+ if (checklist.length == 0) { callback(); }
+ });
+ });
+ $img.remove();
+};
+
+
+
+ jQuery.fn.liveTile = function (method) {
+ if (pubMethods[method]) {
+ var args = [];
+ for (var i = 1; i <= arguments.length; i++) {
+ args[i - 1] = arguments[i];
+ }
+ return pubMethods[method].apply(this, args);
+ } else if (typeof method === 'object' || !method) {
+ return pubMethods.init.apply(this, arguments);
+ } else {
+ jQuery.error('Method ' + method + ' does not exist on jQuery.liveTile');
+ }
+ };
+ jQuery.fn.liveTile.State = {
+ RUNNING: "running",
+ STOPPED: "stopped"
+ };
+ jQuery.fn.liveTile.defaults = {
+ mode: 'slide', // 'slide', 'flip', 'flip-list'
+ speed: 500, // how fast should animations be performed, in milliseconds
+ initDelay: -1, // how long to wait before the initial animation
+ delay: 5000, // how long to wait between animations
+ stops: "100%", // how much of the back tile should 'slide' reveal before starting a delay
+ stack: false, // should tiles in slide mode appear stacked (e.g Me tile)
+ direction: 'vertical', // which direction should animations be performed(horizontal | vertical)
+ tileCssSelector: '>div,>li', // The selector used by slide, flip, and flip-list mode to choose the front and back containers
+ listTileCssSelector: '>div,>p,>img,>a', // The selector used by flip-tile mode to choose the front and back containers.2
+ imageCssSelector: '>img,>a>img', // the selector used to choose a an image to apply a src or background to
+ ignoreDataAttributes: false, // should data attributes be ignored
+ pauseOnHover: false, // should tile animations be paused on hover in and restarted on hover out
+ repeatCount: -1, // number of times to repeat the animation
+ animationComplete: function (tileData, $front, $back) {
+ },
+ preloadImages: false, // should the images arrays be preloaded
+ fadeSlideSwap: false, // fade any image swaps on slides (e.g. mode: 'slide', stops:'50%', frontImages: ['img1.jpg', 'img2.jpg'])
+ appendBack: true, // appends the .last tile if one doesnt exist (slide and flip only)
+ triggerDelay: function (idx) { // used by flip-list to decide how random the tile flipping should be
+ return Math.random() * 3000;
+ },
+ alwaysTrigger: false, // used by flip-list to decide if all tiles are triggered every time
+ frontImages: null, // a list of images to use for the front
+ frontIsRandom: true, // should images be chosen at random or in order
+ frontIsBackgroundImage: false, // set the src attribute or css background-image property
+ frontIsInGrid: false, // only chooses one item for each iteration in flip-list
+ backImages: null, // a list of images to use for the back
+ backIsRandom: true, // should images be chosen at random or in order
+ backIsBackgroundImage: false, // set the src attribute or css background-image property
+ backIsInInGrid: false, // only chooses one item for each iteration in flip-list
+ flipListOnHover: false, // should items in flip-list flip and stop when hovered
+ useModernizr: (typeof (window.Modernizr) != "undefined"), // checks to see if modernizer is already in use
+ useHardwareAccel: true, // should css animations, transitions and transforms be used when available
+ $front: null, // the jQuery element to use as the front face of the tile; this will bypass tileCssSelector
+ $back: null // the jQuery element to use as the back face of the tile; this will bypass tileCssSelector
+ };
+
+ var privMethods = {
+ //a shuffle method to provide more randomness than sort
+ //credit: http://javascript.about.com/library/blshuffle.htm
+ //*avoiding prototype for sharepoint compatability
+ shuffleArray: function (array) {
+ var s = [];
+ while (array.length) s.push(array.splice(Math.random() * array.length, 1));
+ while (s.length) array.push(s.pop());
+ return array;
+ },
+ setTimer: function (func, interval) {
+ return setInterval(func, interval);
+ },
+ stopTimer: function (handle) {
+ clearInterval(handle);
+ return null;
+ },
+ setExtraProperties: function ($ele, imageObj) {
+ if (typeof (imageObj.alt) != "undefined")
+ $ele.attr("alt", imageObj.alt);
+ var $parent = $ele.parent();
+ if (typeof (imageObj.href) != "undefined" && $parent[0].tagName == "A") {
+ $parent.attr("href", imageObj.href);
+ if (typeof (imageObj.target) != "undefined")
+ $parent.attr("target", imageObj.target);
+ if (typeof (imageObj.onclick) != "undefined") {
+ $parent.attr("onclick", imageObj.onclick);
+ $ele.attr("onclick", "");
+ }
+ } else {
+ if (typeof (imageObj.onclick) != "undefined")
+ $ele.attr("onclick", imageObj.onclick);
+ }
+ },
+ // changes the src or background image property of an image in a flip-list
+ handleListItemSwap: function ($cont, image, isBgroundImg, stgs) {
+ var $img = $cont.find(stgs.imageCssSelector);
+ if (!isBgroundImg) {
+ $img.attr("src", image.src);
+ } else {
+ $img.css({ backgroundImage: "url('" + image.src + "')" });
+ }
+ privMethods.setExtraProperties($img, image);
+ },
+ handleSlide: function (isSlidingUp, $cont, swapFrontSource, stgs, index) {
+ if (!isSlidingUp && swapFrontSource) {
+ var image;
+ var $img = $cont.find(stgs.imageCssSelector);
+ image = stgs.frontImages[index];
+ if (stgs.fadeSlideSwap == true) {
+ $img.fadeOut(function () {
+ $img.attr("src", image.src);
+ privMethods.setExtraProperties($img, image);
+ $img.fadeIn();
+ });
+ } else {
+ $img.attr("src", image.src);
+ privMethods.setExtraProperties($img, image);
+ }
+ }
+
+ },
+ // fired if an image swap is needed. gets the image and applies properties
+ handleSwap: function ($cont, isFront, stgs, index) {
+ var image = privMethods.getImage(isFront, stgs, index);
+ var $img = $cont.find(stgs.imageCssSelector);
+ $img.attr("src", image.src);
+ privMethods.setExtraProperties($img, image);
+ },
+ // get an image from the frontImages or backImages array
+ getImage: function (isFront, stgs, index) {
+ var imgs = (isFront) ? stgs.frontImages : stgs.backImages;
+ var image;
+ image = imgs[Math.min(index, imgs.length - 1)];
+ return image;
+ }
+ };
+ var pubMethods = {
+ init: function (options) {
+ // Setup the public options for the livetile
+ var stgs = {};
+ jQuery.extend(stgs, jQuery.fn.liveTile.defaults, options);
+
+ //is there at least one item in the front images list?
+ var swapFrontSource = (typeof (stgs.frontImages) == 'object' && (stgs.frontImages instanceof Array) && stgs.frontImages.length > 0);
+ //is there at least one item in the back images list?
+ var swapBackSource = (typeof (stgs.backImages) == 'object' && (stgs.backImages instanceof Array) && stgs.backImages.length > 0);
+ var canTransform = false;
+ var canTransition = false;
+ var canTransform3d = false;
+ var canAnimate = false;
+ var canFlip3d = stgs.useHardwareAccel;
+ if (stgs.useHardwareAccel == true) {
+ if (stgs.useModernizr == false) {
+ //determine if the browser supports the neccessary accelerated features
+ if (typeof (window.MetroModernizr) != "undefined") {
+ canTransform = window.MetroModernizr.canTransform;
+ canTransition = window.MetroModernizr.canTransition;
+ canTransform3d = window.MetroModernizr.canTransform3d;
+ canAnimate = window.MetroModernizr.canAnimate;
+ } else {
+ window.MetroModernizr = {};
+ /***** check for browser capabilities credit: modernizr-1.7 *****/
+ var mod = 'metromodernizr';
+ var docElement = document.documentElement;
+ var docHead = document.head || document.getElementsByTagName('head')[0];
+ var modElem = document.createElement(mod);
+ var m_style = modElem.style;
+ var prefixes = ' -webkit- -moz- -o- -ms- -khtml- '.split(' ');
+ var domPrefixes = 'Webkit Moz O ms Khtml'.split(' ');
+ var test_props = function (props, callback) {
+ for (var i in props) {
+ if (m_style[props[i]] !== undefined && (!callback || callback(props[i], modElem))) {
+ return true;
+ }
+ }
+ };
+ var test_props_all = function (prop, callback) {
+
+ var uc_prop = prop.charAt(0).toUpperCase() + prop.substr(1),
+ props = (prop + ' ' + domPrefixes.join(uc_prop + ' ') + uc_prop).split(' ');
+
+ return !!test_props(props, callback);
+ };
+ var test_3d = function () {
+ var ret = !!test_props(['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']);
+ if (ret && 'webkitPerspective' in docElement.style) {
+ // Webkit allows this media query to succeed only if the feature is enabled.
+ // '@media (transform-3d),(-o-transform-3d),(-moz-transform-3d),(-ms-transform-3d),(-webkit-transform-3d),(modernizr){ ... }'
+ ret = testMediaQuery('@media (' + prefixes.join('transform-3d),(') + 'metromodernizr)');
+ }
+ return ret;
+ };
+ var testMediaQuery = function (mq) {
+ var st = document.createElement('style'),
+ div = document.createElement('div'),
+ ret;
+ st.textContent = mq + '{#metromodernizr{height:3px}}';
+ docHead.appendChild(st);
+ div.id = 'metromodernizr';
+ docElement.appendChild(div);
+ ret = div.offsetHeight === 3;
+ st.parentNode.removeChild(st);
+ div.parentNode.removeChild(div);
+ return !!ret;
+ };
+ canTransform = !!test_props(['transformProperty', 'WebkitTransform', 'MozTransform', 'OTransform', 'msTransform']);
+ canTransition = test_props_all('transitionProperty');
+ canTransform3d = test_3d();
+ canAnimate = test_props_all('animationName');
+ window.MetroModernizr.canTransform = canTransform;
+ window.MetroModernizr.canTransition = canTransition;
+ window.MetroModernizr.canTransform3d = canTransform3d;
+ window.MetroModernizr.canAnimate = canAnimate;
+ docElement = null;
+ docHead = null;
+ modElem = null;
+ m_style = null;
+ }
+ } else {
+ canTransform = jQuery("html").hasClass("csstransforms");
+ canTransition = jQuery("html").hasClass("csstransitions");
+ canTransform3d = jQuery("html").hasClass("csstransforms3d");
+ canAnimate = jQuery("html").hasClass("cssanimations");
+ }
+ }
+ canFlip3d = canFlip3d && canAnimate && canTransform && canTransform3d;
+ /****** end capabilities check ******/
+ if (stgs.preloadImages) {
+ if (swapFrontSource)
+ jQuery(stgs.frontImages).metrojs.preloadImages(function () { });
+ if (swapBackSource)
+ jQuery(stgs.backImages).metrojs.preloadImages(function () { });
+ }
+ return jQuery(this).each(function (tileIndex) {
+ var $this = jQuery(this);
+ $this.slideTimer = null;
+ var tdata = {}; //an object to store settings for later access
+ tdata.state = $this.slideTimer == null ? jQuery.fn.liveTile.State.STOPPED : jQuery.fn.liveTile.State.RUNNING;
+ tdata.speed = (!stgs.ignoreDataAttributes && typeof ($this.data("speed")) != "undefined") ? $this.data("speed") : stgs.speed;
+ tdata.delay = (!stgs.ignoreDataAttributes && typeof ($this.data("delay")) != "undefined") ? $this.data("delay") : stgs.delay;
+ if (tdata.delay < -1)
+ tdata.delay = stgs.triggerDelay(tileIndex);
+ else if (tdata.delay < 0)
+ tdata.delay = 3500 + (Math.random() * 4501);
+ tdata.stops = (!stgs.ignoreDataAttributes && typeof ($this.data("stops")) != "undefined") ? $this.data("stops") : stgs.stops;
+ tdata.stack = (!stgs.ignoreDataAttributes && typeof ($this.data("stack")) != "undefined") ? $this.data("stack") : stgs.mode;
+ tdata.mode = (!stgs.ignoreDataAttributes && typeof ($this.data("mode")) != "undefined") ? $this.data("mode") : stgs.mode;
+ tdata.direction = (!stgs.ignoreDataAttributes && typeof ($this.data("direction")) != "undefined") ? $this.data("direction") : stgs.direction;
+ tdata.useHwAccel = (!stgs.ignoreDataAttributes && typeof ($this.data("ha")) != "undefined") ? $this.data("ha") : stgs.useHardwareAccel;
+ tdata.initDelay = (!stgs.ignoreDataAttributes && typeof ($this.data("initdelay")) != "undefined") ? $this.data("initdelay") : (stgs.initDelay < 0) ? tdata.delay : stgs.initDelay;
+ tdata.repeatCount = (!stgs.ignoreDataAttributes && typeof ($this.data("repeat")) != "undefined") ? $this.data("repeat") : stgs.repeatCount;
+ tdata.hasRun = false; // init delay flag
+ tdata.loopCount = 0;
+ tdata.slideIndex = 0;
+ //convert stops if needed
+ tdata.stops = (typeof (stgs.stops) == 'object' && (stgs.stops instanceof Array)) ? stgs.stops : ('' + tdata.stops).split(',');
+ //add the mode to the tile if it's not already there.
+ $this.addClass(tdata.mode);
+ var $tileContainer = $this.find(stgs.tileCssSelector);
+ var $firstContainer = null;
+ if(stgs.$front != null && stgs.$front.length > 0){
+ $firstContainer = (tdata.mode == "flip-list") ? null : (tdata.mode == 'slide') ?
+ stgs.$front.addClass('slide-front') :
+ stgs.$front.addClass('flip-front');
+ }else{
+ $firstContainer = (tdata.mode == "flip-list") ? null : (tdata.mode == 'slide') ?
+ $tileContainer.first().addClass('slide-front') :
+ $tileContainer.first().addClass('flip-front');
+ }
+ var lClass = (tdata.mode == 'slide') ? 'slide-back' : 'flip-back';
+ var $scndContainer = null;
+ if(stgs.$back != null && stgs.$back.length > 0){
+ $scndContainer = (tdata.mode == "flip-list") ? null : stgs.$back.addClass(lClass);
+ }else{
+ $scndContainer = (tdata.mode == "flip-list") ? null : ($tileContainer.length > 1) ?
+ $tileContainer.last().addClass(lClass) :
+ (stgs.appendBack == true) ?
+ jQuery('<div class="' + lClass + '"></div>').appendTo($this) :
+ jQuery('<div></div>');
+ }
+ var height = $this.height();
+ var width = $this.width();
+ var margin = (tdata.direction == "vertical") ? height / 2 : width / 2;
+ var isReversed = false;
+
+ var staticCount = 0;
+ var staticIndexBack = 0;
+ var staticIndexFront = 0;
+ var doAnimations = false;
+ var flistData = []; // an array to cache flip list selectors
+ var frontRandomBag = [];
+ var prevFrontIndex = -1;
+ var backRandomBag = [];
+ var prevBackIndex = -1;
+ /* Mouse over and out functions*/
+
+ if (stgs.pauseOnHover) {
+ $this.find(stgs.tileCssSelector).hover(
+ function () {
+ tdata.stopTimer(false);
+ },
+ function () {
+ tdata.setTimer();
+ });
+ }
+ // prep tiles
+ if (tdata.mode == 'flip-list') {
+ $this.find(stgs.tileCssSelector).each(function () {
+ var $li = jQuery(this);
+ var $front = stgs.$front != null ? stgs.$front : $li.find(stgs.listTileCssSelector).first().addClass("flip-front");
+ if ($li.find(stgs.listTileCssSelector).length == 1 && stgs.appendBack == true) {
+ $li.append("<div></div>");
+ }
+ var $back = stgs.$back != null ? stgs.$back : $li.find(stgs.listTileCssSelector).last().addClass("flip-back").css({ marginTop: "0px" });
+ if (canFlip3d && tdata.useHwAccel) {
+ $li.addClass("ha");
+ $front.addClass("ha").data("tile", { animating: false });
+ $back.addClass("ha").data("tile", { animating: false });
+ if (stgs.flipListOnHover == true) {
+ $front.bind("mouseout.liveTile", null, function () {
+ $this.flipListItem(false, $li, $back, $front);
+ });
+ $back.bind("mouseout.liveTile", null, function () {
+ $this.flipListItem(true, $li, $front, $back);
+ });
+ }
+ } else {
+ if (stgs.flipListOnHover == true) {
+ $front.bind("mouseout.liveTile", function () {
+ $this.flipListItem(true, $li, $front, $back);
+ });
+ $back.bind("mouseout.liveTile", function () {
+ $this.flipListItem(false, $li, $back, $front);
+ });
+ }
+ }
+ });
+ } else if (tdata.mode == 'slide') {
+ if (tdata.stack == true) {
+ if (tdata.direction == "vertical") {
+ $scndContainer.css({ top: -height + 'px' });
+ } else {
+ $scndContainer.css({ left: -width + 'px' });
+ }
+ }
+ if (canTransition && tdata.useHwAccel) {
+ $this.addClass("ha");
+ $firstContainer.addClass("ha").data("tile", { animating: false });
+ }
+ } else if (tdata.mode == 'flip') {
+ if (canFlip3d && tdata.useHwAccel) {
+ $this.addClass("ha");
+ $firstContainer.addClass("ha").data("tile", { animating: false });
+ $scndContainer.addClass("ha").data("tile", { animating: false });
+ } else {
+ var fCss = (tdata.direction == "vertical") ?
+ { height: '0px', width: width + 'px', marginTop: margin + 'px', opacity: '0'} :
+ { height: '100%', width: '0px !important', marginLeft: margin + 'px', opacity: '0' };
+ var fCss2 = (tdata.direction == "vertical") ?
+ { height: '100%', width: '100%', marginTop: '0px', opacity: '1'} :
+ { height: '100%', width: '100%', marginLeft: '0px', opacity: '1' };
+ $scndContainer.css(fCss);
+ $firstContainer.css(fCss2);
+ //temp fix
+ // TODO: debug and remove instances of jQuery.browser for compatibility with jq 1.8+
+ if (tdata.repeatCount > -1 && jQuery.browser.msie) {
+ tdata.repeatCount += 1;
+ }
+ // if (tdata.direction == "horizontal")
+ // $scndContainer.css({ marginLeft: $scndContainer.width() / 2 + 'px', width: '0px' });
+ // else
+ // $scndContainer.css({ marginTop: $scndContainer.height() / 2 + 'px', height: '0px' });
+ }
+ }
+
+
+ //slide animation
+ $this.slide = function (callback) {
+ if (typeof (callback) == "undefined" || callback == null)
+ callback = null;
+ if (tdata.repeatCount > -1) {
+ if (tdata.loopCount > tdata.repeatCount) {
+ tdata.stopTimer(false);
+ tdata.loopCount = 0;
+ tdata.hasRun = false;
+ $this.data("LiveTile", tdata);
+ return;
+ }
+ }
+ if (!doAnimations)
+ return;
+ var clojIsReversed = isReversed;
+ var fData = $firstContainer.data("tile");
+ var stop = jQuery.trim(tdata.stops[tdata.slideIndex]);
+ var pxIdx = stop.indexOf('px');
+ var offset = 0;
+ var amount = 0
+ var metric = (tdata.direction == "vertical") ? height : width;
+ var prop = (tdata.direction == "vertical") ? "top" : "left";
+ if (pxIdx > 0) {
+ amount = parseInt(stop.substring(0, pxIdx));
+ offset = (amount - metric) + 'px';
+ } else {
+ //is a percentage
+ amount = parseInt(stop.replace('%', ''));
+ offset = (amount - 100) + '%';
+ }
+ if (canTransition && tdata.useHwAccel) {
+ if (typeof (fData.animated) != "undefined" && fData.animated == true)
+ return;
+ fData.animated = true;
+ var css = {
+ WebkitTransitionProperty: prop, WebkitTransitionDuration: tdata.speed + 'ms',
+ MozTransitionProperty: prop, MozTransitionDuration: tdata.speed + 'ms',
+ OTransitionProperty: prop, OTransitionDuration: tdata.speed + 'ms',
+ msTransitionProperty: prop, msTransitionDuration: tdata.speed + 'ms',
+ KhtmlTransitionProperty: prop, KhtmlTransitionDuration: tdata.speed + 'ms',
+ TransitionProperty: prop, TransitionDuration: tdata.speed + 'ms'
+ };
+ if (tdata.direction == "vertical") {
+ css.top = (clojIsReversed && tdata.stops.length == 1) ? "0px" : stop;
+ } else {
+ css.left = (clojIsReversed && tdata.stops.length == 1) ? "0px" : stop;
+ }
+ $firstContainer.css(css);
+ if (tdata.stack == true) {
+ if (tdata.direction == "vertical") {
+ css.top = (clojIsReversed && tdata.stops.length == 1) ? -metric + 'px' : offset;
+ } else {
+ css.left = (clojIsReversed && tdata.stops.length == 1) ? -metric + 'px' : offset;
+ }
+ $scndContainer.css(css);
+ }
+ window.setTimeout(function () {
+ var index = staticCount;
+ if (swapFrontSource && stgs.frontIsRandom) {
+ //make sure the random bag is ready
+ if (frontRandomBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevBackIndex || stgs.frontImages.length == 1)
+ frontRandomBag[i] = i;
+ }
+ frontRandomBag = privMethods.shuffleArray(frontRandomBag);
+ }
+ index = frontRandomBag.pop();
+ prevFrontIndex = index;
+ }
+ privMethods.handleSlide(clojIsReversed, $firstContainer, swapFrontSource, stgs, index);
+ fData.animated = false;
+ $firstContainer.data("tile", fData);
+ if (!clojIsReversed && swapFrontSource) {
+ staticCount += 1;
+ if (staticCount >= stgs.frontImages.length)
+ staticCount = 0;
+ }
+ stgs.animationComplete(tdata, $firstContainer, $scndContainer);
+ if (callback != null)
+ callback();
+ }, tdata.speed);
+ } else {
+ if ($firstContainer.is(':animated')) {
+ return;
+ }
+ var uCss = (tdata.direction == "vertical") ?
+ { top: (clojIsReversed && tdata.stops.length == 1) ? "0px" : stop} :
+ { left: (clojIsReversed && tdata.stops.length == 1) ? "0px" : stop };
+ var dCss = (tdata.direction == "vertical") ?
+ { top: (clojIsReversed && tdata.stops.length == 1) ? -metric + 'px' : offset} :
+ { left: (clojIsReversed && tdata.stops.length == 1) ? -metric + 'px' : offset };
+
+ $firstContainer.animate(uCss, tdata.speed, function () {
+ var index = staticCount;
+ if (swapFrontSource && stgs.frontIsRandom) {
+ //make sure the random bag is ready
+ if (frontRandomBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevBackIndex || stgs.frontImages.length == 1)
+ frontRandomBag[i] = i;
+ }
+ frontRandomBag = privMethods.shuffleArray(frontRandomBag);
+ }
+ index = frontRandomBag.pop();
+ prevFrontIndex = index;
+ }
+ privMethods.handleSlide(clojIsReversed, $firstContainer, swapFrontSource, stgs, index);
+ if (!clojIsReversed && swapFrontSource) {
+ staticCount += 1;
+ if (staticCount >= stgs.frontImages.length)
+ staticCount = 0;
+ }
+ stgs.animationComplete(tdata, $firstContainer, $scndContainer);
+ if (callback != null)
+ callback();
+ });
+ if (tdata.stack == true) {
+ $scndContainer.animate(dCss, tdata.speed, function () { });
+ }
+ }
+ //increment slide count
+ tdata.slideIndex += 1;
+ if (tdata.slideIndex >= tdata.stops.length) {
+ tdata.slideIndex = 0;
+ isReversed = !isReversed;
+ tdata.loopCount += 1;
+ }
+ };
+
+
+ //flip mode
+ $this.flip = function (callback) {
+ if (typeof (callback) == "undefined" || callback == null)
+ callback = null;
+ if (tdata.repeatCount > -1) {
+ if (tdata.loopCount > tdata.repeatCount) {
+ tdata.stopTimer(false);
+ tdata.loopCount = 0;
+ // TODO: debug and remove instances of jQuery.browser for compatibility with jq 1.8+
+ if (jQuery.browser.msie) /* straighten out issue with loopcount in IE */
+ tdata.loopCount += 1;
+ tdata.hasRun = false;
+ $this.data("LiveTile", tdata);
+ return;
+ } else {
+ tdata.loopCount += 1;
+ }
+ }
+ if (canFlip3d && tdata.useHwAccel) {
+ var spd = (tdata.speed * 2); // accelerated flip speeds are calculated on 1/2 rotation rather than 1/4 rotation like jQuery animate
+ var duration = spd + 'ms';
+ var aniFName = (tdata.direction == "vertical") ? 'flipfront180' : 'flipfrontY180';
+ var aniBName = (tdata.direction == "vertical") ? 'flipback180' : 'flipbackY180';
+ var data = $firstContainer.data("tile");
+ if (typeof (data.animated) != "undefined" && data.animated == true) {
+ return;
+ }
+ data.animated = true;
+ if (doAnimations) {
+ if (isReversed) {
+ var uCss = {
+ WebkitAnimationPlayState: 'running', WebkitAnimationName: aniBName, WebkitAnimationDuration: duration,
+ MozAnimationPlayState: 'running', MozAnimationName: aniBName, MozAnimationDuration: duration,
+ OAnimationPlayState: 'running', OAnimationName: aniBName, OAnimationDuration: duration,
+ msAnimationPlayState: 'running', msAnimationName: aniBName, msAnimationDuration: duration,
+ AnimationPlayState: 'running', AnimationName: aniBName, AnimationDuration: duration
+ };
+ $firstContainer.css(uCss).data("tile", data);
+ uCss.WebkitAnimationName = aniFName;
+ uCss.MozAnimationName = aniFName;
+ uCss.msAnimationName = aniFName;
+ uCss.OAnimationName = aniFName;
+ uCss.AnimationName = aniFName;
+ $scndContainer.css(uCss).data("tile", data);
+ window.setTimeout(function () {
+ if (swapBackSource) { // change the source image when the animation is finished
+ var isRandom = stgs.backIsRandom;
+ var index = staticIndexBack;
+ if (isRandom) {
+ //make sure the random bag is ready
+ if (backRandomBag.length == 0) {
+ for (var i = 0; i < stgs.backImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevBackIndex || stgs.backImages.length == 1)
+ backRandomBag[i] = i;
+ }
+ backRandomBag = privMethods.shuffleArray(backRandomBag);
+ }
+ index = backRandomBag.pop();
+ prevBackIndex = index;
+ }
+ privMethods.handleSwap($scndContainer, false, stgs, index);
+ staticIndexBack += 1;
+ if (staticIndexBack >= stgs.backImages.length) {
+ staticIndexBack = 0;
+ }
+ }
+ stgs.animationComplete(tdata, $firstContainer, $scndContainer);
+ if (callback != null)
+ callback();
+ data.animated = false;
+ $firstContainer.data("tile", data);
+ $scndContainer.data("tile", data);
+ }, spd);
+ } else {
+ var dCss = { WebkitAnimationPlayState: 'running', WebkitAnimationName: aniFName, WebkitAnimationDuration: duration,
+ MozAnimationPlayState: 'running', MozAnimationName: aniFName, MozAnimationDuration: duration,
+ OAnimationPlayState: 'running', OAnimationName: aniFName, OAnimationDuration: duration,
+ msAnimationPlayState: 'running', msAnimationName: aniFName, msAnimationDuration: duration,
+ AnimationPlayState: 'running', AnimationName: aniFName, AnimationDuration: duration
+ };
+ $firstContainer.css(dCss).data("tile", data);
+ dCss.WebkitAnimationName = aniBName;
+ dCss.MozAnimationName = aniBName;
+ dCss.msAnimationName = aniBName;
+ dCss.OAnimationName = aniBName;
+ dCss.AnimationName = aniBName;
+ $scndContainer.css(dCss).data("tile", data);
+ window.setTimeout(function () {
+ if (swapFrontSource) {
+ // change the source image when the animation is finished
+ var isRandom = stgs.frontIsRandom;
+ var index = staticIndexFront;
+ if (isRandom) {
+ //make sure the random bag is ready
+ if (frontRandomBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevBackIndex || stgs.frontImages.length == 1)
+ frontRandomBag[i] = i;
+ }
+ frontRandomBag = privMethods.shuffleArray(frontRandomBag);
+ }
+ index = frontRandomBag.pop();
+ prevFrontIndex = index;
+ }
+ privMethods.handleSwap($firstContainer, true, stgs, index);
+ staticIndexFront += 1;
+ if (staticIndexFront >= stgs.frontImages.length) {
+ staticIndexFront = 0;
+ }
+ }
+ stgs.animationComplete(tdata, $scndContainer, $firstContainer);
+ if (callback != null) {
+ callback();
+ }
+ data.animated = false;
+ $firstContainer.data("tile", data);
+ $scndContainer.data("tile", data);
+ }, spd);
+ }
+ }
+ //an interval isnt needed
+ isReversed = !isReversed;
+ } else {
+
+ //crossbrowser single tile flip illusion (works best with images)
+ if (isReversed) {
+ var upCss = (tdata.direction == "vertical") ?
+ { height: '0px', width: '100%', marginTop: margin + 'px', opacity: '0'} :
+ { height: '100%', width: '0px', marginLeft: margin + 'px', opacity: '0' };
+ var upCss2 = (tdata.direction == "vertical") ?
+ { height: '100%', width: '100%', marginTop: '0px', opacity: '1'} :
+ { height: '100%', width: '100%', marginLeft: '0px', opacity: '1' };
+
+ $firstContainer.stop().animate(upCss, { duration: tdata.speed });
+ window.setTimeout(function () {
+ $scndContainer.stop().animate(upCss2, { duration: tdata.speed });
+ if (swapFrontSource) {
+ var isRandom = stgs.frontIsRandom;
+ var index = staticIndexFront;
+ if (isRandom) {
+ //make sure the random bag is ready
+ if (frontRandomBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevFrontIndex || stgs.frontImages.length == 1)
+ frontRandomBag[i] = i;
+ }
+ frontRandomBag = privMethods.shuffleArray(frontRandomBag);
+ }
+ index = frontRandomBag.pop();
+ prevFrontIndex = index;
+ }
+ privMethods.handleSwap($firstContainer, true, stgs, index);
+ staticIndexFront += 1;
+ if (staticIndexFront >= stgs.frontImages.length) {
+ staticIndexFront = 0;
+ }
+ }
+ isReversed = !isReversed;
+ stgs.animationComplete(tdata, $scndContainer, $firstContainer);
+ if (callback != null)
+ callback();
+ }, tdata.speed);
+ } else {
+ var dwnCss = (tdata.direction == "vertical") ?
+ { height: '0px', width: '100%', marginTop: margin + 'px', opacity: '0'} :
+ { height: '100%', width: '0px', marginLeft: margin + 'px', opacity: '0' };
+ var dwnCss2 = (tdata.direction == "vertical") ?
+ { height: '100%', width: '100%', marginTop: '0px', opacity: '1'} :
+ { height: '100%', width: '100%', marginLeft: '0px', opacity: '1' };
+ $scndContainer.stop().animate(dwnCss, { duration: tdata.speed });
+ window.setTimeout(function () {
+ $firstContainer.stop().animate(dwnCss2, { duration: tdata.speed });
+ if (swapBackSource) {
+ var isRandom = stgs.backIsRandom;
+ var index = staticIndexBack;
+ if (isRandom) {
+ //make sure the random bag is ready
+ if (backRandomBag.length == 0) {
+ for (var i = 0; i < stgs.backImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevBackIndex || stgs.backImages.length == 1)
+ backRandomBag[i] = i;
+ }
+ backRandomBag = privMethods.shuffleArray(backRandomBag);
+ }
+ index = backRandomBag.pop();
+ prevBackIndex = index;
+ }
+ privMethods.handleSwap($scndContainer, false, stgs, index);
+ staticIndexBack += 1;
+ if (staticIndexBack >= stgs.backImages.length) {
+ staticIndexBack = 0;
+ }
+ }
+ isReversed = !isReversed;
+ stgs.animationComplete(tdata, $firstContainer, $scndContainer);
+ if (callback != null)
+ callback();
+ }, tdata.speed);
+ }
+ }
+ };
+ // flip arbitrary number of items and swap sources accordingly
+ $this.flipList = function (callback) {
+ if (typeof (callback) == "undefined" || callback == null)
+ callback = null;
+ if (tdata.repeatCount > -1) {
+ if (tdata.loopCount > tdata.repeatCount) {
+ tdata.stopTimer(false);
+ tdata.loopCount = 0;
+ tdata.hasRun = false;
+ $this.data("LiveTile", tdata);
+ return;
+ } else {
+ tdata.loopCount += 1;
+ }
+ }
+ var fBag = []; // two bags to make sure we don't duplicate images
+ var bBag = [];
+ var $tiles = $this.find(stgs.tileCssSelector);
+ //in case we want to pick one image per loop
+ var fStaticRndm = 0;
+ if (swapFrontSource) {
+ if (frontRandomBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ if (i != prevFrontIndex || stgs.frontImages.length == 1)
+ frontRandomBag[i] = i;
+ }
+ frontRandomBag = privMethods.shuffleArray(frontRandomBag);
+ }
+ fStaticRndm = frontRandomBag.pop();
+ prevFrontIndex = fStaticRndm;
+ }
+ var bStaticRndm = 0;
+ if (swapBackSource) {
+ if (backRandomBag.length == 0) {
+ for (var i = 0; i < stgs.backImages.length; i++) {
+ if (i != prevBackIndex || stgs.backImages.length == 1)
+ backRandomBag[i] = i;
+ }
+ backRandomBag = privMethods.shuffleArray(backRandomBag);
+ }
+ bStaticRndm = backRandomBag.pop();
+ prevBackIndex = bStaticRndm;
+ }
+ $tiles.each(function (idx) {
+ var $t = jQuery(this);
+ if (flistData.length < idx + 1) {
+ // cache the selector
+ var data = {};
+ data.$front = $t.find(stgs.listTileCssSelector).first();
+ data.$back = $t.find(stgs.listTileCssSelector).last();
+ data.isReversed = false;
+ flistData[idx] = data;
+ }
+ var $front = flistData[idx].$front;
+ var $back = flistData[idx].$back;
+
+ var tDelay = stgs.triggerDelay(idx);
+ var triggerSpeed = (tDelay > 0) ? (tdata.speed + tDelay) : tdata.speed;
+ var trigger = (stgs.alwaysTrigger == false) ? ((Math.random() * 351) > 150 ? true : false) : true;
+ var newImage;
+ if (flistData[idx].isReversed) {
+ if (trigger) {
+ window.setTimeout(function () {
+ flistData[idx].isReversed = false;
+ if (!swapFrontSource) {
+ $this.flipListItem(true, $t, $front, $back);
+ } else {
+ var isRandom = stgs.frontIsRandom;
+ var isInGrid = stgs.frontIsInGrid;
+ var isBground = stgs.frontIsBackgroundImage;
+ var frontImages = stgs.frontImages;
+ if (isRandom && !isInGrid) {
+ //make sure the random bag is ready
+ if (fBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ fBag[i] = i;
+ }
+ fBag = privMethods.shuffleArray(fBag);
+ }
+ newImage = frontImages[fBag.pop()];
+ } else {
+ if (!isInGrid) {
+ newImage = frontImages[Math.min(idx, frontImages.length)];
+ } else {
+ newImage = frontImages[Math.min(fStaticRndm, frontImages.length)];
+ }
+ }
+ $this.flipListItem(true, $t, $front, $back, newImage, isBground);
+ }
+ }, triggerSpeed);
+ }
+ } else {
+ if (trigger) {
+ window.setTimeout(function () {
+ flistData[idx].isReversed = true;
+ if (!swapBackSource) {
+ $this.flipListItem(false, $t, $back, $front);
+ } else {
+ var isRandom = stgs.backIsRandom;
+ var isInGrid = stgs.backIsInGrid;
+ var isBground = stgs.backIsBackgroundImage;
+ var backImages = stgs.backImages;
+ if (isRandom && !isInGrid) {
+ //make sure the random bag is ready
+ if (bBag.length == 0) {
+ for (var i = 0; i < stgs.backImages.length; i++) {
+ bBag[i] = i;
+ }
+ bBag = privMethods.shuffleArray(bBag);
+ }
+ newImage = backImages[bBag.pop()];
+ } else {
+ if (!isInGrid) {
+ newImage = backImages[Math.min(idx, backImages.length)];
+ } else {
+ newImage = backImages[Math.min(bStaticRndm, backImages.length)];
+ }
+ }
+ $this.flipListItem(false, $t, $back, $front, newImage, isBground);
+ }
+ }, triggerSpeed);
+ }
+ }
+ });
+ window.setTimeout(function () {
+ isReversed = !isReversed;
+ }, tdata.speed);
+
+ };
+
+ //does the actual animation of a flip list item
+ $this.flipListItem = function (isFront, $itm, $front, $back, newSrc, isBgroundImg) {
+
+ var dir = (!stgs.ignoreDataAttributes && typeof ($itm.data("direction")) != "undefined") ? $itm.data("direction") : tdata.direction;
+ if (canFlip3d && tdata.useHwAccel) {
+ // avoid any z-index flickering from reversing an animation too early
+ isBgroundImg = isFront ? stgs.frontIsBackgroundImage : stgs.backIsBackgroundImage;
+ var animating = isFront ? $front.data("tile").animating : $back.data("tile").animating;
+ if (animating == true) {
+ return;
+ }
+ var spd = (tdata.speed * 2);
+ var duration = spd + 'ms';
+ var aniFName = (dir == "vertical") ? 'flipfront180' : 'flipfrontY180';
+ var aniBName = (dir == "vertical") ? 'flipback180' : 'flipbackY180';
+ var fCss = {
+ WebkitAnimationPlayState: 'running', WebkitAnimationName: aniBName, WebkitAnimationDuration: duration,
+ MozAnimationPlayState: 'running', MozAnimationName: aniBName, MozAnimationDuration: duration,
+ msAnimationPlayState: 'running', msAnimationName: aniBName, msAnimationDuration: duration,
+ OAnimationPlayState: 'running', OAnimationName: aniBName, OAnimationDuration: duration,
+ AnimationPlayState: 'running', AnimationName: aniBName, AnimationDuration: duration
+ };
+ var bCss = {
+ WebkitAnimationPlayState: 'running', WebkitAnimationName: aniFName, WebkitAnimationDuration: duration,
+ MozAnimationPlayState: 'running', MozAnimationName: aniFName, MozAnimationDuration: duration,
+ msAnimationPlayState: 'running', msAnimationName: aniFName, msAnimationDuration: duration,
+ OAnimationPlayState: 'running', OAnimationName: aniFName, OAnimationDuration: duration,
+ AnimationPlayState: 'running', AnimationName: aniFName, AnimationDuration: duration
+ };
+ $front.css(fCss).data("tile").animating = true;
+ $back.css(bCss).data("tile").animating = true;
+ window.setTimeout(function () {
+ if (typeof (newSrc) != "undefined") {
+ privMethods.handleListItemSwap($front, newSrc, isBgroundImg, stgs);
+ }
+ $front.data("tile").animating = false;
+ $back.data("tile").animating = false;
+ }, 0); // once the animation is half through it can be reversed
+
+ } else {
+ var height = $itm.height();
+ var width = $itm.width();
+ var margin = (dir == "vertical") ? height / 2 : width / 2;
+ var uCss = (dir == "vertical") ?
+ { height: '0px', width: '100%', marginTop: margin + 'px', opacity: 0} :
+ { height: '100%', width: '0px', marginLeft: margin + 'px', opacity: 0 };
+ var dCss = (dir == "vertical") ?
+ { height: '100%', width: '100%', marginTop: '0px', opacity: 1} :
+ { height: '100%', width: '100%', marginLeft: '0px', opacity: 1 };
+ $front.stop().animate(uCss, { duration: tdata.speed });
+ window.setTimeout(function () {
+ $back.stop().animate(dCss, { duration: tdata.speed });
+ if (typeof (newSrc) != "undefined") {
+ privMethods.handleListItemSwap($front, newSrc, isBgroundImg, stgs);
+ }
+ }, tdata.speed);
+ }
+ };
+
+ /* Delay the tile action*/
+ tdata.doAction = function () {
+ var action = null;
+ tdata.stopTimer(false);
+ switch (tdata.mode) {
+ case 'slide':
+ action = $this.slide;
+ break;
+ case 'flip':
+ action = $this.flip;
+ break;
+ case 'flip-list':
+ action = $this.flipList;
+ break;
+ }
+ var callBack = function () {
+ tdata.setTimer();
+ };
+ if (action != null) {
+ doAnimations = true;
+ action(callBack);
+ }
+ };
+ tdata.setTimer = function () {
+ var action = null;
+ switch (tdata.mode) {
+ case 'slide':
+ action = $this.slide;
+ break;
+ case 'flip':
+ action = $this.flip;
+ break;
+ case 'flip-list':
+ action = $this.flipList;
+ break;
+ }
+
+ if (action != null) {
+ if (tdata.hasRun == false) {
+ window.setTimeout(function () {
+ doAnimations = true;
+ action();
+ tdata.setTimer();
+ }, tdata.initDelay);
+ } else {
+ if ($this.slideTimer != null)
+ $this.slideTimer = privMethods.stopTimer($this.slideTimer);
+ $this.slideTimer = privMethods.setTimer(function () { doAnimations = true; action(); }, tdata.speed + tdata.delay);
+ }
+ }
+ tdata.hasRun = true;
+ };
+
+ tdata.stopTimer = function (restart) {
+ $this.slideTimer = privMethods.stopTimer($this.slideTimer);
+ doAnimations = false;
+
+ if (typeof (restart) != "undefined" && restart == true) {
+ tdata.setTimer();
+ }
+ };
+ $this.data("LiveTile", tdata);
+ tdata.setTimer();
+ });
+ },
+ animate: function () {
+ jQuery(this).each(function () {
+ var tData = jQuery(this).data("LiveTile");
+ tData.doAction();
+ });
+ },
+ destroy: function () {
+ jQuery(this).each(function () {
+ var $t = jQuery(this);
+ $t.unbind(".liveTile");
+ var $tile = jQuery(this).data("LiveTile");
+ if ($tile != null) {
+ $tile.stopTimer(false);
+ $t.removeData("LiveTile");
+ $t.removeData("ha");
+ $t.removeData("tile");
+ delete $tile;
+ delete $t.slide;
+ delete $t.flip;
+ delete $t.flipList;
+ delete $t.liveTile;
+ }
+
+ });
+ },
+ stop: function (restart) {
+ jQuery(this).each(function () {
+ var $tile = jQuery(this).data("LiveTile");
+ $tile.stopTimer(restart);
+ $tile.loopCount = 0;
+ $tile.hasRun = false;
+ });
+ },
+ pause: function () {
+ jQuery(this).each(function () {
+ jQuery(this).data("LiveTile").stopTimer();
+ });
+ },
+ play: function () {
+ jQuery(this).each(function () {
+ jQuery(this).data("LiveTile").setTimer();
+ });
+ }
+ };
+})(); \ No newline at end of file
diff --git a/start/livetiles/photos/index.html b/start/livetiles/photos/index.html
new file mode 100644
index 0000000..7a80401
--- /dev/null
+++ b/start/livetiles/photos/index.html
@@ -0,0 +1,383 @@
+<html>
+<head>
+<title>Live Tile</title>
+<style>
+body { margin:0px;padding:0px;}
+.metroBig { font-size:36px; line-height:36px; }
+.live-tile, .list-tile
+{
+ color:#fff;
+ float:left;
+ height: 125px;
+ margin:0px;
+ overflow:hidden;
+ position:relative;
+ width: 258px;
+}
+.live-tile.two-wide, .list-tile.two-wide { width:390px; }
+.live-tile.two-tall, .list-tile.two-tall { height:390px; }
+.live-tile img, .list-tile img { border:none; }
+.live-tile.me>.slide-back>a.metroBig { position:absolute; left:0; bottom:0; padding: 0 0 12px 12px; text-decoration:none; }
+.live-tile a:link, .live-tile a:visited { color:#fff; text-decoration:underline; }
+.live-tile a:hover { color:#fff; text-decoration:none; }
+.live-tile p { font-size:13px; line-height: 16px; padding:10px; }
+.live-tile .tile-title, .list-tile .tile-title { position:absolute; bottom:0px; font-size:12px; left:0px; width:100%; padding:0 0 6px 6px; z-index:30; }
+.live-tile a.tile-title, .list-tile a.tile-title { text-decoration:none; }
+.live-tile.me>.metroBig { padding-top:45px; }
+
+.live-tile,.live-tile>div,.list-tile>div
+{ /* ensure elements on backside don't continue to take focus */
+ backface-visibility:hidden;
+ -webkit-backface-visibility:hidden;
+ -moz-backface-visibility:hidden;
+}
+
+.live-tile>div,.list-tile>div
+{
+ top:0px;
+ left:0px;
+ margin:0px;
+ height:100%;
+ width:100%;
+ position:absolute;
+ z-index:20;
+}
+.list-tile>div
+{
+ position:relative;
+}
+
+img.full , a.full
+{
+ display:block;
+ margin:0px;
+ height:100%;
+ width:100%;
+}
+.list-tile>div { background-color:transparent; }
+
+.live-tile>.back, .live-tile>.slide-back,.live-tile>.flip-back, .flip-list .flip-back
+{
+ position:absolute;
+ z-index:10;
+}
+/* ========== flip-list Styles ==========
+ .flip-list
+ ---li
+ ------div.flip-front
+ ------div.flip-back
+*/
+.flip-list
+{
+ padding:0px;
+ margin:0px;
+}
+.list-tile .flip-list
+{
+ height:100%;
+ width:100%;
+}
+.flip-list>li>a
+{
+ border:none;
+ outline:none;
+ text-decoration:none;
+ margin:0px;
+ padding:0px;
+ height:100%;
+ width:100%;
+}
+
+.flip-list img
+{
+ border:none;
+ outline:none;
+ height:100%;
+ margin:0px;
+ padding:0px;
+ width:100%;
+}
+.flip-list>li
+{
+ height: 60px;
+ float: left;
+ list-style-type:none;
+ margin: 0px;
+ outline:none;
+ padding: 0px;
+ position: relative;
+ width: 60px;
+}
+
+.flip-list>li>div
+{
+ border:none;
+ background: white;
+ height: 100%;
+ left: 0px;
+ margin:0px;
+ overflow: hidden;
+ position: absolute;
+ padding:0px;
+ top: 0px;
+ width: 100%;
+ z-index:20;
+}
+
+.flip-list>li>div.flip-back
+{
+ height:0px;
+}
+
+
+
+.live-tile.flip { background:none;}
+
+/* flip-list tile grid sprite styles */
+.nineTiles
+{
+ /* set a default image here
+ background-image:url('/content/images/yourimage.jpg');
+ */
+}
+.flip-list.nineTiles>li,.flip-list.nineTiles>li>div,.flip-list.nineTiles>li>div>img,.flip-list.nineTiles>li>div>a
+{
+ height:60px; width:60px; border:none; padding:0; margin:0;
+}
+.nineTiles1 { background-position: 0px 0px; }
+.nineTiles2 { background-position: -60px 0px; }
+.nineTiles3 { background-position: -120px 0px; }
+.nineTiles4 { background-position: 0px -60px; }
+.nineTiles5 { background-position: -60px -60px; }
+.nineTiles6 { background-position: -120px -60px; }
+.nineTiles7 { background-position: 0px -120px; }
+.nineTiles8 { background-position: -60px -120px; }
+.nineTiles9 { background-position: -120px -120px; }
+
+.fourTiles {}
+.flip-list.fourTiles>li,.flip-list.fourTiles>li>div,.flip-list.fourTiles>li>div>img,.flip-list.fourTiles>li>div>a
+{
+ border:none; padding:0; margin:0;
+ height:90px;
+ width:90px;
+}
+.fourTiles1 { background-position: 0px 0px; }
+.fourTiles2 { background-position: -90px 0px; }
+.fourTiles3 { background-position: 0px -90px; }
+.fourTiles4 { background-position: -90px -90px; }
+
+
+/* ------ Hardware Accelerated CSS3 Animations --------*/
+/* flip */
+.flip-list>li>.ha.flip-back, .flip-list>li>.ha.flip-back img
+{
+ /* override the values set for margin and ensure the back tile is visible */
+ margin:0px !important;
+ height:100%;
+}
+
+.live-tile>.ha.flip-front, .flip-list>li>.ha.flip-front
+{
+ position:absolute;
+ /* time to start repeating ourselves
+ note: we are not setting a duration or delay here,
+ that is added in script */
+ -webkit-animation-name:flipfront180;
+ -webkit-animation-play-state:paused;
+ -webkit-animation-fill-mode:forwards;
+ -webkit-animation-iteration-count: 1;
+ -webkit-animation-timing-function: linear;
+ -moz-animation-name:flipfront180;
+ -moz-animation-play-state:paused;
+ -moz-animation-fill-mode:forwards;
+ -moz-animation-iteration-count: 1;
+ -moz-animation-timing-function: linear;
+ -ms-animation-name:flipfront180;
+ -ms-animation-play-state:paused;
+ -ms-animation-fill-mode:forwards;
+ -ms-animation-iteration-count: 1;
+ -ms-animation-timing-function: linear;
+ -o-animation-name:flipfront180;
+ -o-animation-play-state:paused;
+ -o-animation-fill-mode:forwards;
+ -o-animation-iteration-count: 1;
+ -o-animation-timing-function: linear;
+ animation-name:flipfront180;
+ animation-play-state:paused;
+ animation-fill-mode:forwards;
+ animation-iteration-count: 1;
+ animation-timing-function: linear;
+}
+
+.live-tile>.ha.flip-back, .flip-list>li>.ha.flip-back
+{
+ position:absolute;
+ -webkit-animation-name:flipback180;
+ -webkit-animation-play-state:paused;
+ -webkit-animation-fill-mode:forwards;
+ -webkit-animation-iteration-count: 1;
+ -webkit-animation-timing-function: linear;
+ -moz-animation-name:flipback180;
+ -moz-animation-play-state:paused;
+ -moz-animation-fill-mode:forwards;
+ -moz-animation-iteration-count: 1;
+ -moz-animation-timing-function: linear;
+ -ms-animation-name:flipback180;
+ -ms-animation-play-state:paused;
+ -ms-animation-fill-mode:forwards;
+ -ms-animation-iteration-count: 1;
+ -ms-animation-timing-function: linear;
+ -o-animation-name:flipback180;
+ -o-animation-play-state:paused;
+ -o-animation-fill-mode:forwards;
+ -o-animation-iteration-count: 1;
+ -o-animation-timing-function: linear;
+ animation-name:flipback180;
+ animation-play-state:paused;
+ animation-fill-mode:forwards;
+ animation-iteration-count: 1;
+ animation-timing-function: linear;
+}
+
+/* Flip Vertical */
+ @-keyframes flipfront180 {
+ from { z-index:20; transform: rotateX(0deg); }
+ 49% { z-index:20; }
+ 50% { z-index:10; }
+ to { z-index:10; transform: rotateX(-180deg); }
+ }
+ @-webkit-keyframes flipfront180 {
+ from { z-index:20; -webkit-transform: rotateX(0deg); }
+ 49% { z-index:20; }
+ 50% { z-index:10; }
+ to { z-index:10; -webkit-transform: rotateX(-180deg); }
+ }
+ @-moz-keyframes flipfront180 {
+ 0% { z-index:20; -moz-transform: rotateX(0deg); }
+ 49% { z-index:20; }
+ 50% { z-index:10; }
+ 100% { z-index:10; -moz-transform: rotateX(-180deg); }
+ }
+ @-ms-keyframes flipfront180 {
+ from { z-index:20; -ms-transform: rotateX(0deg); }
+ 49% { z-index:20; }
+ 50% { z-index:10; }
+ to { z-index:10; -ms-transform: rotateX(-180deg); }
+ }
+ @-o-keyframes flipfront180 {
+ from { z-index:20; -o-transform: rotateX(0deg); }
+ 49% { z-index:20; }
+ 50% { z-index:10; }
+ to { z-index:10; -o-transform: rotateX(-180deg); }
+ }
+ @-keyframes flipback180 {
+ 0% { z-index:10; transform: rotateX(180deg); }
+ 49% { z-index:10; }
+ 50% { z-index:20; }
+ 100% { z-index:20; transform: rotateX(0deg); }
+ }
+ @-webkit-keyframes flipback180 {
+ from { z-index:10; -webkit-transform: rotateX(180deg); }
+ 49% { z-index:10; }
+ 50% { z-index:20; }
+ to { z-index:20; -webkit-transform: rotateX(0deg); }
+ }
+ @-moz-keyframes flipback180 {
+ 0% { z-index:10; -moz-transform: rotateX(180deg); }
+ 49% { z-index:10; }
+ 50% { z-index:20; }
+ 100% { z-index:20; -moz-transform: rotateX(0deg); }
+ }
+ @-ms-keyframes flipback180 {
+ from { z-index:10; -ms-transform: rotateX(180deg); }
+ 49% { z-index:10; }
+ 50% { z-index:20; }
+ to { z-index:20; -ms-transform: rotateX(0deg); }
+ }
+ @-o-keyframes flipback180 {
+ from { z-index:10; -o-transform: rotateX(180deg); }
+ 49% { z-index:10; }
+ 50% { z-index:20; }
+ to { z-index:20; -o-transform: rotateX(0deg); }
+ }
+
+ /* Flip Horizontal */
+ @-keyframes flipfrontY180 {
+ 0% { z-index:20; transform: rotateY(0deg); }
+ 49% { z-index:20; }
+ 50% { z-index:10; }
+ 100% { z-index:10; transform: rotateY(-180deg); }
+ }
+ @-webkit-keyframes flipfrontY180 {
+ from { z-index:20; -webkit-transform: rotateY(0deg); }
+ 49% { z-index:20; }
+ 50% { z-index:10; }
+ to { z-index:10; -webkit-transform: rotateY(-180deg); }
+ }
+ @-moz-keyframes flipfrontY180 {
+ 0% { z-index:20; -moz-transform: rotateY(0deg); }
+ 49% { z-index:20; }
+ 50% { z-index:10; }
+ 100% { z-index:10; -moz-transform: rotateY(-180deg); }
+ }
+ @-ms-keyframes flipfrontY180 {
+ from { z-index:20; -ms-transform: rotateY(0deg); }
+ 49% { z-index:20; }
+ 50% { z-index:10; }
+ to { z-index:10; -ms-transform: rotateY(-180deg); }
+ }
+ @-o-keyframes flipfrontY180 {
+ from { z-index:20; -o-transform: rotateY(0deg); }
+ 49% { z-index:20; }
+ 50% { z-index:10; }
+ to { z-index:10; -o-transform: rotateY(-180deg); }
+ }
+ @-keyframes flipbackY180 {
+ 0% { z-index:10; transform: rotateY(180deg); }
+ 49% { z-index:10; }
+ 50% { z-index:20; }
+ 100% { z-index:20; transform: rotateY(0deg); }
+ }
+ @-webkit-keyframes flipbackY180 {
+ from { z-index:10; -webkit-transform: rotateY(180deg); }
+ 49% { z-index:10; }
+ 50% { z-index:20; }
+ to { z-index:20; -webkit-transform: rotateY(0deg); }
+ }
+ @-moz-keyframes flipbackY180 {
+ 0% { z-index:10; -moz-transform: rotateY(180deg); }
+ 49% { z-index:10; }
+ 50% { z-index:20; }
+ 100% { z-index:20; -moz-transform: rotateY(0deg); }
+ }
+ @-ms-keyframes flipbackY180 {
+ from { z-index:10; -ms-transform: rotateY(180deg); }
+ 49% { z-index:10; }
+ 50% { z-index:20; }
+ to { z-index:20; -ms-transform: rotateY(0deg); }
+ }
+ @-o-keyframes flipbackY180 {
+ from { z-index:10; -o-transform: rotateY(180deg); }
+ 49% { z-index:10; }
+ 50% { z-index:20; }
+ to { z-index:20; -o-transform: rotateY(0deg); }
+ }
+</style>
+</head>
+<body>
+<div class="tiles">
+<a href="../../../iframeapps/photos.html" target="_parent">
+ <div class="live-tile">
+ <div style="background-image:url('1.jpg');background-size:cover;"></div>
+ <div style="background-image:url('2.jpg');background-size:cover;"></div>
+ </div>
+</a>
+</div>
+</body>
+ <script src="jquery-1.5.1.min.js" type="text/javascript"></script>
+ <script src="MetroJs.lt.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ $(document).ready(function () {
+ $(".live-tile,.flip-list").liveTile();
+ });
+ </script> \ No newline at end of file
diff --git a/start/livetiles/photos/jquery-1.5.1.min.js b/start/livetiles/photos/jquery-1.5.1.min.js
new file mode 100644
index 0000000..bb3f311
--- /dev/null
+++ b/start/livetiles/photos/jquery-1.5.1.min.js
@@ -0,0 +1,19 @@
+/*!
+* Note: While Microsoft is not the author of this file, Microsoft is
+* offering you a license subject to the terms of the Microsoft Software
+* License Terms for Microsoft ASP.NET Model View Controller 3.
+* Microsoft reserves all other rights. The notices below are provided
+* for informational purposes only and are not the license terms under
+* which Microsoft distributed this file.
+*
+* jQuery JavaScript Library v1.5.1
+* http://jquery.com/
+* Copyright 2011, John Resig
+*
+* Includes Sizzle.js
+* http://sizzlejs.com/
+* Copyright 2011, The Dojo Foundation
+*
+* Date: Thu Nov 11 19:04:53 2010 -0500
+*/
+(function(a,b){function cg(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cd(a){if(!bZ[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";bZ[a]=c}return bZ[a]}function cc(a,b){var c={};d.each(cb.concat.apply([],cb.slice(0,b)),function(){c[this]=a});return c}function bY(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bX(){try{return new a.XMLHttpRequest}catch(b){}}function bW(){d(a).unload(function(){for(var a in bU)bU[a](0,1)})}function bQ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h==="string"&&(f[h.toLowerCase()]=a.converters[h]);l=k,k=e[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=f[m]||f["* "+k];if(!n){p=b;for(o in f){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=f[j[1]+" "+k];if(p){o=f[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&d.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bP(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bO(a,b,c,e){if(d.isArray(b)&&b.length)d.each(b,function(b,f){c||bq.test(a)?e(a,f):bO(a+"["+(typeof f==="object"||d.isArray(f)?b:"")+"]",f,c,e)});else if(c||b==null||typeof b!=="object")e(a,b);else if(d.isArray(b)||d.isEmptyObject(b))e(a,"");else for(var f in b)bO(a+"["+f+"]",b[f],c,e)}function bN(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bH,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l==="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bN(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bN(a,c,d,e,"*",g));return l}function bM(a){return function(b,c){typeof b!=="string"&&(c=b,b="*");if(d.isFunction(c)){var e=b.toLowerCase().split(bB),f=0,g=e.length,h,i,j;for(;f<g;f++)h=e[f],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bo(a,b,c){var e=b==="width"?bi:bj,f=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return f;d.each(e,function(){c||(f-=parseFloat(d.css(a,"padding"+this))||0),c==="margin"?f+=parseFloat(d.css(a,"margin"+this))||0:f-=parseFloat(d.css(a,"border"+this+"Width"))||0});return f}function ba(a,b){b.src?d.ajax({url:b.src,async:!1,dataType:"script"}):d.globalEval(b.text||b.textContent||b.innerHTML||""),b.parentNode&&b.parentNode.removeChild(b)}function _(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function $(a,b){if(b.nodeType===1){var c=b.nodeName.toLowerCase();b.clearAttributes(),b.mergeAttributes(a);if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(d.expando)}}function Z(a,b){if(b.nodeType===1&&d.hasData(a)){var c=d.expando,e=d.data(a),f=d.data(b,e);if(e=e[c]){var g=e.events;f=f[c]=d.extend({},e);if(g){delete f.handle,f.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)d.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function Y(a,b){return d.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function O(a,b,c){if(d.isFunction(b))return d.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return d.grep(a,function(a,d){return a===b===c});if(typeof b==="string"){var e=d.grep(a,function(a){return a.nodeType===1});if(J.test(b))return d.filter(b,e,!c);b=d.filter(b,e)}return d.grep(a,function(a,e){return d.inArray(a,b)>=0===c})}function N(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function F(a,b){return(a&&a!=="*"?a+".":"")+b.replace(r,"`").replace(s,"&")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,q=[],r=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;i<t.length;i++)g=t[i],g.origType.replace(p,"")===a.type?r.push(g.selector):t.splice(i--,1);f=d(a.target).closest(r,a.currentTarget);for(j=0,k=f.length;j<k;j++){m=f[j];for(i=0;i<t.length;i++){g=t[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,e=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,e=d(a.relatedTarget).closest(g.selector)[0];(!e||e!==h)&&q.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=q.length;j<k;j++){f=q[j];if(c&&f.level>c)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function C(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function w(){return!0}function v(){return!1}function g(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function f(a,c,f){if(f===b&&a.nodeType===1){f=a.getAttribute("data-"+c);if(typeof f==="string"){try{f=f==="true"?!0:f==="false"?!1:f==="null"?null:d.isNaN(f)?e.test(f)?d.parseJSON(f):f:parseFloat(f)}catch(g){}d.data(a,c,f)}else f=b}return f}var c=a.document,d=function(){function I(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(I,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x=!1,y,z="then done fail isResolved isRejected promise".split(" "),A,B=Object.prototype.toString,C=Object.prototype.hasOwnProperty,D=Array.prototype.push,E=Array.prototype.slice,F=String.prototype.trim,G=Array.prototype.indexOf,H={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.1",length:0,size:function(){return this.length},toArray:function(){return E.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?D.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(E.apply(this,arguments),"slice",E.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:D,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){e=i[c],f=a[c];if(i===f)continue;l&&f&&(d.isPlainObject(f)||(g=d.isArray(f)))?(g?(g=!1,h=e&&d.isArray(e)?e:[]):h=e&&d.isPlainObject(e)?e:{},i[c]=d.extend(l,h,f)):f!==b&&(i[c]=f)}return i},d.extend({noConflict:function(b){a.$=f,b&&(a.jQuery=e);return d},isReady:!1,readyWait:1,ready:function(a){a===!0&&d.readyWait--;if(!d.readyWait||a!==!0&&!d.isReady){if(!c.body)return setTimeout(d.ready,1);d.isReady=!0;if(a!==!0&&--d.readyWait>0)return;y.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=!0;if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",A,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",A),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&I()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):H[B.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!C.call(a,"constructor")&&!C.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||C.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g<h;)if(c.apply(a[g++],e)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(var j=a[0];g<h&&c.call(j,g,j)!==!1;j=a[++g]){}return a},trim:F?function(a){return a==null?"":F.call(a)}:function(a){return a==null?"":(a+"").replace(j,"").replace(k,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var e=d.type(a);a.length==null||e==="string"||e==="function"||e==="regexp"||d.isWindow(a)?D.call(c,a):d.merge(c,a)}return c},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length==="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,b,c){var d=[],e;for(var f=0,g=a.length;f<g;f++)e=b(a[f],f,c),e!=null&&(d[d.length]=e);return d.concat.apply([],d)},guid:1,proxy:function(a,c,e){arguments.length===2&&(typeof c==="string"?(e=a,a=e[c],c=b):c&&!d.isFunction(c)&&(e=c,c=b)),!c&&a&&(c=function(){return a.apply(e||this,arguments)}),a&&(c.guid=a.guid=a.guid||c.guid||d.guid++);return c},access:function(a,c,e,f,g,h){var i=a.length;if(typeof c==="object"){for(var j in c)d.access(a,j,c[j],f,g,e);return a}if(e!==b){f=!h&&f&&d.isFunction(e);for(var k=0;k<i;k++)g(a[k],c,f?e.call(a[k],k,g(a[k],c)):e,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},_Deferred:function(){var a=[],b,c,e,f={done:function(){if(!e){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=d.type(i),j==="array"?f.done.apply(f,i):j==="function"&&a.push(i);k&&f.resolveWith(k[0],k[1])}return this},resolveWith:function(d,f){if(!e&&!b&&!c){c=1;try{while(a[0])a.shift().apply(d,f)}catch(g){throw g}finally{b=[d,f],c=0}}return this},resolve:function(){f.resolveWith(d.isFunction(this.promise)?this.promise():this,arguments);return this},isResolved:function(){return c||b},cancel:function(){e=1,a=[];return this}};return f},Deferred:function(a){var b=d._Deferred(),c=d._Deferred(),e;d.extend(b,{then:function(a,c){b.done(a).fail(c);return this},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,promise:function(a){if(a==null){if(e)return e;e=a={}}var c=z.length;while(c--)a[z[c]]=b[z[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){var b=arguments.length,c=b<=1&&a&&d.isFunction(a.promise)?a:d.Deferred(),e=c.promise();if(b>1){var f=E.call(arguments,0),g=b,h=function(a){return function(b){f[a]=arguments.length>1?E.call(arguments,0):b,--g||c.resolveWith(e,f)}};while(b--)a=f[b],a&&d.isFunction(a.promise)?a.promise().then(h(b),c.reject):--g;g||c.resolveWith(e,f)}else c!==a&&c.resolve(a);return e},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),y=d._Deferred(),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){H["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),G&&(d.inArray=function(a,b){return G.call(b,a)}),i.test("Â ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?A=function(){c.removeEventListener("DOMContentLoaded",A,!1),d.ready()}:c.attachEvent&&(A=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",A),d.ready())});return d}();(function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e),b=e=f=null}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function"),b=null;return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}})();var e=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!g(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,h=b.nodeType,i=h?d.cache:b,j=h?b[d.expando]:d.expando;if(!i[j])return;if(c){var k=e?i[j][f]:i[j];if(k){delete k[c];if(!g(k))return}}if(e){delete i[j][f];if(!g(i[j]))return}var l=i[j][f];d.support.deleteExpando||i!=a?delete i[j]:i[j]=null,l?(i[j]={},h||(i[j].toJSON=d.noop),i[j][f]=l):h&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var g=this[0].attributes,h;for(var i=0,j=g.length;i<j;i++)h=g[i].name,h.indexOf("data-")===0&&(h=h.substr(5),f(this[0],h,e[h]))}}return e}if(typeof a==="object")return this.each(function(){d.data(this,a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(c===b){e=this.triggerHandler("getData"+k[1]+"!",[k[0]]),e===b&&this.length&&(e=d.data(this[0],a),e=f(this[0],a,e));return e===b&&k[1]?this.data(k[0]):e}return this.each(function(){var b=d(this),e=[k[0],c];b.triggerHandler("setData"+k[1]+"!",e),d.data(this,a,c),b.triggerHandler("changeData"+k[1]+"!",e)})},removeData:function(a){return this.each(function(){d.removeData(this,a)})}}),d.extend({queue:function(a,b,c){if(a){b=(b||"fx")+"queue";var e=d._data(a,b);if(!c)return e||[];!e||d.isArray(c)?e=d._data(a,b,d.makeArray(c)):e.push(c);return e}},dequeue:function(a,b){b=b||"fx";var c=d.queue(a,b),e=c.shift();e==="inprogress"&&(e=c.shift()),e&&(b==="fx"&&c.unshift("inprogress"),e.call(a,function(){d.dequeue(a,b)})),c.length||d.removeData(a,b+"queue",!0)}}),d.fn.extend({queue:function(a,c){typeof a!=="string"&&(c=a,a="fx");if(c===b)return d.queue(this[0],a);return this.each(function(b){var e=d.queue(this,a,c);a==="fx"&&e[0]!=="inprogress"&&d.dequeue(this,a)})},dequeue:function(a){return this.each(function(){d.dequeue(this,a)})},delay:function(a,b){a=d.fx?d.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){d.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var h=/[\n\t\r]/g,i=/\s+/,j=/\r/g,k=/^(?:href|src|style)$/,l=/^(?:button|input)$/i,m=/^(?:button|input|object|select|textarea)$/i,n=/^a(?:rea)?$/i,o=/^(?:radio|checkbox)$/i;d.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"},d.fn.extend({attr:function(a,b){return d.access(this,a,b,!0,d.attr)},removeAttr:function(a,b){return this.each(function(){d.attr(this,a,""),this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.addClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"){var b=(a||"").split(i);for(var c=0,e=this.length;c<e;c++){var f=this[c];if(f.nodeType===1)if(f.className){var g=" "+f.className+" ",h=f.className;for(var j=0,k=b.length;j<k;j++)g.indexOf(" "+b[j]+" ")<0&&(h+=" "+b[j]);f.className=d.trim(h)}else f.className=a}}return this},removeClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"||a===b){var c=(a||"").split(i);for(var e=0,f=this.length;e<f;e++){var g=this[e];if(g.nodeType===1&&g.className)if(a){var j=(" "+g.className+" ").replace(h," ");for(var k=0,l=c.length;k<l;k++)j=j.replace(" "+c[k]+" "," ");g.className=d.trim(j)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,e=typeof b==="boolean";if(d.isFunction(a))return this.each(function(c){var e=d(this);e.toggleClass(a.call(this,c,e.attr("class"),b),b)});return this.each(function(){if(c==="string"){var f,g=0,h=d(this),j=b,k=a.split(i);while(f=k[g++])j=e?j:!h.hasClass(f),h[j?"addClass":"removeClass"](f)}else if(c==="undefined"||c==="boolean")this.className&&d._data(this,"__className__",this.className),this.className=this.className||a===!1?"":d._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(h," ").indexOf(b)>-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var k=i?f:0,l=i?f+1:h.length;k<l;k++){var m=h[k];if(m.selected&&(d.support.optDisabled?!m.disabled:m.getAttribute("disabled")===null)&&(!m.parentNode.disabled||!d.nodeName(m.parentNode,"optgroup"))){a=d(m).val();if(i)return a;g.push(a)}}if(i&&!g.length&&h.length)return d(h[f]).val();return g}if(o.test(c.type)&&!d.support.checkOn)return c.getAttribute("value")===null?"on":c.value;return(c.value||"").replace(j,"")}return b}var n=d.isFunction(a);return this.each(function(b){var c=d(this),e=a;if(this.nodeType===1){n&&(e=a.call(this,b,c.val())),e==null?e="":typeof e==="number"?e+="":d.isArray(e)&&(e=d.map(e,function(a){return a==null?"":a+""}));if(d.isArray(e)&&o.test(this.type))this.checked=d.inArray(c.val(),e)>=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=k.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&l.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var o=a.getAttributeNode("tabIndex");return o&&o.specified?o.value:m.test(a.nodeName)||n.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var p=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return p===null?b:p}h&&(a[c]=e);return a[c]}});var p=/\.(.*)$/,q=/^(?:textarea|input|select)$/i,r=/\./g,s=/ /g,t=/[^\w\s.|`]/g,u=function(a){return a.replace(t,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=v;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(){return typeof d!=="undefined"&&!d.event.triggered?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=v);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),u).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))d.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=d.event.special[h]||{};for(j=f||0;j<p.length;j++){q=p[j];if(e.guid===q.guid){if(l||n.test(q.namespace))f==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(f!=null)break}}if(p.length===0||f!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&d.removeEvent(a,h,s.handle),g=null,delete t[h]}if(d.isEmptyObject(t)){var w=s.handle;w&&(w.elem=null),delete s.events,delete s.handle,d.isEmptyObject(s)&&d.removeData(a,b,!0)}}},trigger:function(a,c,e){var f=a.type||a,g=arguments[3];if(!g){a=typeof a==="object"?a[d.expando]?a:d.extend(d.Event(f),a):d.Event(f),f.indexOf("!")>=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(p,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=!0,l[m]())}catch(q){}k&&(l["on"+m]=k),d.event.triggered=!1}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l<m;l++){var n=f[l];if(e||h.test(n.namespace)){c.handler=n.handler,c.data=n.data,c.handleObj=n;var o=n.handler.apply(this,k);o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[d.expando])return a;var e=a;a=d.Event(e);for(var f=this.props.length,g;f;)g=this.props[--f],a[g]=e[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=c.documentElement,i=c.body;a.pageX=a.clientX+(h&&h.scrollLeft||i&&i.scrollLeft||0)-(h&&h.clientLeft||i&&i.clientLeft||0),a.pageY=a.clientY+(h&&h.scrollTop||i&&i.scrollTop||0)-(h&&h.clientTop||i&&i.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:d.proxy,special:{ready:{setup:d.bindReady,teardown:d.noop},live:{add:function(a){d.event.add(this,F(a.origType,a.selector),d.extend({},a,{handler:E,guid:a.handler.guid}))},remove:function(a){d.event.remove(this,F(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){d.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},d.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},d.Event=function(a){if(!this.preventDefault)return new d.Event(a);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?w:v):this.type=a,this.timeStamp=d.now(),this[d.expando]=!0},d.Event.prototype={preventDefault:function(){this.isDefaultPrevented=w;var a=this.originalEvent;a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=w;var a=this.originalEvent;a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=w,this.stopPropagation()},isDefaultPrevented:v,isPropagationStopped:v,isImmediatePropagationStopped:v};var x=function(a){var b=a.relatedTarget;try{if(b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&(a.type=a.data,d.event.handle.apply(this,arguments))}catch(e){}},y=function(a){a.type=a.data,d.event.handle.apply(this,arguments)};d.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){d.event.special[a]={setup:function(c){d.event.add(this,b,c&&c.selector?y:x,a)},teardown:function(a){d.event.remove(this,b,a&&a.selector?y:x)}}}),d.support.submitBubbles||(d.event.special.submit={setup:function(a,b){if(this.nodeName&&this.nodeName.toLowerCase()!=="form")d.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&d(b).closest("form").length&&C("submit",this,arguments)}),d.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&d(b).closest("form").length&&a.keyCode===13&&C("submit",this,arguments)});else return!1},teardown:function(a){d.event.remove(this,".specialSubmit")}});if(!d.support.changeBubbles){var z,A=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},B=function B(a){var c=a.target,e,f;if(q.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=A(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:B,beforedeactivate:B,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&B.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&B.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",A(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in z)d.event.add(this,c+".specialChange",z[c]);return q.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return q.test(this.nodeName)}},z=d.event.special.change.filters,z.focus=z.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function c(a){a=d.event.fix(a),a.type=b;return d.event.handle.call(this,a)}d.event.special[b]={setup:function(){this.addEventListener(a,c,!0)},teardown:function(){this.removeEventListener(a,c,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i<j;i++)d.event.add(this[i],a,h,e);return this}}),d.fn.extend({unbind:function(a,b){if(typeof a!=="object"||a.preventDefault)for(var e=0,f=this.length;e<f;e++)d.event.remove(this[e],a,b);else for(var c in a)this.unbind(c,a[c]);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){d.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var c=d.Event(a);c.preventDefault(),c.stopPropagation(),d.event.trigger(c,b,this[0]);return c.result}},toggle:function(a){var b=arguments,c=1;while(c<b.length)d.proxy(a,b[c++]);return this.click(d.proxy(a,function(e){var f=(d._data(this,"lastToggle"+a.guid)||0)%c;d._data(this,"lastToggle"+a.guid,f+1),e.preventDefault();return b[f].apply(this,arguments)||!1}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var D={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};d.each(["live","die"],function(a,c){d.fn[c]=function(a,e,f,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:d(this.context);if(typeof a==="object"&&!a.preventDefault){for(var o in a)n[c](o,e,a[o],m);return this}d.isFunction(e)&&(f=e,e=b),a=(a||"").split(" ");while((h=a[i++])!=null){j=p.exec(h),k="",j&&(k=j[0],h=h.replace(p,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,h==="focus"||h==="blur"?(a.push(D[h]+k),h=h+k):h=(D[h]||h)+k;if(c==="live")for(var q=0,r=n.length;q<r;q++)d.event.add(n[q],"live."+F(h,m),{data:e,selector:m,handler:f,origType:h,origHandler:f,preType:l});else n.unbind("live."+F(h,m),f)}return this}}),d.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){d.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!=="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!=="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(f){if(f===!0)continue}else g=o=!0}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b==="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1){}a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!=="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!=="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!=="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.getAttribute("type")},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(a===b){g=!0;return 0}if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector,d=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(e){d=!0}b&&(k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(d||!l.match.PSEUDO.test(c)&&!/!=/.test(c))return b.call(a,c)}catch(e){}return k(c,null,null,[a]).length>0})}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};d.find=k,d.expr=k.selectors,d.expr[":"]=d.expr.filters,d.unique=k.uniqueSort,d.text=k.getText,d.isXMLDoc=k.isXML,d.contains=k.contains}();var G=/Until$/,H=/^(?:parents|prevUntil|prevAll)/,I=/,/,J=/^.[^:#\[\.,]*$/,K=Array.prototype.slice,L=d.expr.match.POS,M={children:!0,contents:!0,next:!0,prev:!0};d.fn.extend({find:function(a){var b=this.pushStack("","find",a),c=0;for(var e=0,f=this.length;e<f;e++){c=b.length,d.find(a,this[e],b);if(e>0)for(var g=c;g<b.length;g++)for(var h=0;h<c;h++)if(b[h]===b[g]){b.splice(g--,1);break}}return b},has:function(a){var b=d(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(d.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(O(this,a,!1),"not",a)},filter:function(a){return this.pushStack(O(this,a,!0),"filter",a)},is:function(a){return!!a&&d.filter(a,this).length>0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e<f;e++)i=a[e],j[i]||(j[i]=d.expr.match.POS.test(i)?d(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=L.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e<f;e++){g=this[e];while(g){if(l?l.index(g)>-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(N(c[0])||N(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=K.call(arguments);G.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!M[a]?d.unique(f):f,(this.length>1||I.test(e))&&H.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var P=/ jQuery\d+="(?:\d+|null)"/g,Q=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,S=/<([\w:]+)/,T=/<tbody/i,U=/<|&#?\w+;/,V=/<(?:script|object|embed|option|style)/i,W=/checked\s*(?:[^=]|=\s*.checked.)/i,X={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};X.optgroup=X.option,X.tbody=X.tfoot=X.colgroup=X.caption=X.thead,X.th=X.td,d.support.htmlSerialize||(X._default=[1,"div<div>","</div>"]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(P,""):null;if(typeof a!=="string"||V.test(a)||!d.support.leadingWhitespace&&Q.test(a)||X[(S.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(R,"<$1></$2>");try{for(var c=0,e=this.length;c<e;c++)this[c].nodeType===1&&(d.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(f){this.empty().append(a)}}return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(d.isFunction(a))return this.each(function(b){var c=d(this),e=c.html();c.replaceWith(a.call(this,b,e))});typeof a!=="string"&&(a=d(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;d(this).remove(),b?d(b).before(a):d(c).append(a)})}return this.pushStack(d(d.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,e){var f,g,h,i,j=a[0],k=[];if(!d.support.checkClone&&arguments.length===3&&typeof j==="string"&&W.test(j))return this.each(function(){d(this).domManip(a,c,e,!0)});if(d.isFunction(j))return this.each(function(f){var g=d(this);a[0]=j.call(this,f,c?g.html():b),g.domManip(a,c,e)});if(this[0]){i=j&&j.parentNode,d.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?f={fragment:i}:f=d.buildFragment(a,this,k),h=f.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&d.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)e.call(c?Y(this[l],g):this[l],f.cacheable||m>1&&l<n?d.clone(h,!0,!0):h)}k.length&&d.each(k,ba)}return this}}),d.buildFragment=function(a,b,e){var f,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]==="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!V.test(a[0])&&(d.support.checkClone||!W.test(a[0]))&&(g=!0,h=d.fragments[a[0]],h&&(h!==1&&(f=h))),f||(f=i.createDocumentFragment(),d.clean(a,i,f,e)),g&&(d.fragments[a[0]]=h?f:1);return{fragment:f,cacheable:g}},d.fragments={},d.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){d.fn[a]=function(c){var e=[],f=d(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&f.length===1){f[b](this[0]);return this}for(var h=0,i=f.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){$(a,e),f=_(a),g=_(e);for(h=0;f[h];++h)$(f[h],g[h])}if(b){Z(a,e);if(c){f=_(a),g=_(e);for(h=0;f[h];++h)Z(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||U.test(i)){if(typeof i==="string"){i=i.replace(R,"<$1></$2>");var j=(S.exec(i)||["",""])[1].toLowerCase(),k=X[j]||X._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=T.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]==="<table>"&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&Q.test(i)&&m.insertBefore(b.createTextNode(Q.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bb=/alpha\([^)]*\)/i,bc=/opacity=([^)]*)/,bd=/-([a-z])/ig,be=/([A-Z])/g,bf=/^-?\d+(?:px)?$/i,bg=/^-?\d/,bh={position:"absolute",visibility:"hidden",display:"block"},bi=["Left","Right"],bj=["Top","Bottom"],bk,bl,bm,bn=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bk(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bk)return bk(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bd,bn)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bo(a,b,e):d.swap(a,bh,function(){f=bo(a,b,e)});if(f<=0){f=bk(a,b,b),f==="0px"&&bm&&(f=bm(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bf.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return bc.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bb.test(f)?f.replace(bb,e):c.filter+" "+e}}),c.defaultView&&c.defaultView.getComputedStyle&&(bl=function(a,c,e){var f,g,h;e=e.replace(be,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bm=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bf.test(d)&&bg.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bk=bl||bm,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var bp=/%20/g,bq=/\[\]$/,br=/\r?\n/g,bs=/#.*$/,bt=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bu=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bv=/(?:^file|^widget|\-extension):$/,bw=/^(?:GET|HEAD)$/,bx=/^\/\//,by=/\?/,bz=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bA=/^(?:select|textarea)/i,bB=/\s+/,bC=/([?&])_=[^&]*/,bD=/(^|\-)([a-z])/g,bE=function(a,b,c){return b+c.toUpperCase()},bF=/^([\w\+\.\-]+:)\/\/([^\/?#:]*)(?::(\d+))?/,bG=d.fn.load,bH={},bI={},bJ,bK;try{bJ=c.location.href}catch(bL){bJ=c.createElement("a"),bJ.href="",bJ=bJ.href}bK=bF.exec(bJ.toLowerCase()),d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bG)return bG.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("<div>").append(c.replace(bz,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bA.test(this.nodeName)||bu.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(br,"\r\n")}}):{name:b.name,value:c.replace(br,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bJ,isLocal:bv.test(bK[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bM(bH),ajaxTransport:bM(bI),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bP(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bQ(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bD,bE)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bt.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bs,"").replace(bx,bK[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bB),e.crossDomain||(q=bF.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bK[1]||q[2]!=bK[2]||(q[3]||(q[1]==="http:"?80:443))!=(bK[3]||(bK[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bN(bH,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!bw.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(by.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bC,"$1_="+w);e.url=x+(x===e.url?(by.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bN(bI,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bO(g,a[g],c,f);return e.join("&").replace(bp,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bR=d.now(),bS=/(\=)\?(&|$)|()\?\?()/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bR++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bS.test(b.url)||f&&bS.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bS,l),b.url===j&&(f&&(k=k.replace(bS,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bT=d.now(),bU,bV;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bX()||bY()}:bX,bV=d.ajaxSettings.xhr(),d.support.ajax=!!bV,d.support.cors=bV&&"withCredentials"in bV,bV=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),(!a.crossDomain||a.hasContent)&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bU[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bU||(bU={},bW()),h=bT++,g.onreadystatechange=bU[h]=c):c()},abort:function(){c&&c(0,1)}}}});var bZ={},b$=/^(?:toggle|show|hide)$/,b_=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,ca,cb=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(cc("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)e=this[g],f=e.style.display,!d._data(e,"olddisplay")&&f==="none"&&(f=e.style.display=""),f===""&&d.css(e,"display")==="none"&&d._data(e,"olddisplay",cd(e.nodeName));for(g=0;g<h;g++){e=this[g],f=e.style.display;if(f===""||f==="none")e.style.display=d._data(e,"olddisplay")||""}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cc("hide",3),a,b,c);for(var e=0,f=this.length;e<f;e++){var g=d.css(this[e],"display");g!=="none"&&!d._data(this[e],"olddisplay")&&d._data(this[e],"olddisplay",g)}for(e=0;e<f;e++)this[e].style.display="none";return this},_toggle:d.fn.toggle,toggle:function(a,b,c){var e=typeof a==="boolean";d.isFunction(a)&&d.isFunction(b)?this._toggle.apply(this,arguments):a==null||e?this.each(function(){var b=e?a:d(this).is(":hidden");d(this)[b?"show":"hide"]()}):this.animate(cc("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,e){var f=d.speed(b,c,e);if(d.isEmptyObject(a))return this.each(f.complete);return this[f.queue===!1?"each":"queue"](function(){var b=d.extend({},f),c,e=this.nodeType===1,g=e&&d(this).is(":hidden"),h=this;for(c in a){var i=d.camelCase(c);c!==i&&(a[i]=a[c],delete a[c],c=i);if(a[c]==="hide"&&g||a[c]==="show"&&!g)return b.complete.call(this);if(e&&(c==="height"||c==="width")){b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(d.css(this,"display")==="inline"&&d.css(this,"float")==="none")if(d.support.inlineBlockNeedsLayout){var j=cd(this.nodeName);j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)}else this.style.display="inline-block"}d.isArray(a[c])&&((b.specialEasing=b.specialEasing||{})[c]=a[c][1],a[c]=a[c][0])}b.overflow!=null&&(this.style.overflow="hidden"),b.curAnim=d.extend({},a),d.each(a,function(c,e){var f=new d.fx(h,b,c);if(b$.test(e))f[e==="toggle"?g?"show":"hide":e](a);else{var i=b_.exec(e),j=f.cur();if(i){var k=parseFloat(i[2]),l=i[3]||(d.cssNumber[c]?"":"px");l!=="px"&&(d.style(h,c,(k||1)+l),j=(k||1)/f.cur()*j,d.style(h,c,j+l)),i[1]&&(k=(i[1]==="-="?-1:1)*k+j),f.custom(j,k,l)}else f.custom(j,e,"")}});return!0})},stop:function(a,b){var c=d.timers;a&&this.queue([]),this.each(function(){for(var a=c.length-1;a>=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:cc("show",1),slideUp:cc("hide",1),slideToggle:cc("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!ca&&(ca=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||d.fx.stop()},interval:13,stop:function(){clearInterval(ca),ca=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){d.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),d.expr&&d.expr.filters&&(d.expr.filters.animated=function(a){return d.grep(d.timers,function(b){return a===b.elem}).length});var ce=/^t(?:able|d|h)$/i,cf=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?d.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,g=f.documentElement;if(!c||!d.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=f.body,i=cg(f),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||d.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||d.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:d.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);d.offset.initialize();var c,e=b.offsetParent,f=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(d.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===e&&(l+=b.offsetTop,m+=b.offsetLeft,d.offset.doesNotAddBorder&&(!d.offset.doesAddBorderForTableAndCells||!ce.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),f=e,e=b.offsetParent),d.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;d.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},d.offset={initialize:function(){var a=c.body,b=c.createElement("div"),e,f,g,h,i=parseFloat(d.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),a=b=e=f=g=h=null,d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=e==="absolute"&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=cf.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!cf.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=cg(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=cg(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window); \ No newline at end of file
diff --git a/start/livetiles/rss/MetroJs.lt.js b/start/livetiles/rss/MetroJs.lt.js
new file mode 100644
index 0000000..c0d0331
--- /dev/null
+++ b/start/livetiles/rss/MetroJs.lt.js
@@ -0,0 +1,1054 @@
+/*
+* Metro JS for jQuery
+* http://drewgreenwell.com/
+* For details and usage info see: http://drewgreenwell.com/projects/metrojs
+
+Copyright (C) 2012, Drew Greenwell
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+(function () {
+
+jQuery.fn.metrojs = {};
+
+
+
+/* Preload Images */
+// Usage: jQuery(['img1.jpg','img2.jpg']).metrojs.preloadImages(function(){ ... });
+// Callback function gets called after all images are preloaded
+jQuery.fn.metrojs.preloadImages = function (callback) {
+ var checklist = jQuery(this).toArray();
+ var $img = jQuery("<img style='display:none;'>").appendTo("body");
+ jQuery(this).each(function () {
+ $img.attr({ src: this }).load(function () {
+ var src = jQuery(this).attr('src');
+ for (var i = 0; i < checklist.length; i++) {
+ if (checklist[i] == element) { checklist.splice(i, 1); }
+ }
+ if (checklist.length == 0) { callback(); }
+ });
+ });
+ $img.remove();
+};
+
+
+
+ jQuery.fn.liveTile = function (method) {
+ if (pubMethods[method]) {
+ var args = [];
+ for (var i = 1; i <= arguments.length; i++) {
+ args[i - 1] = arguments[i];
+ }
+ return pubMethods[method].apply(this, args);
+ } else if (typeof method === 'object' || !method) {
+ return pubMethods.init.apply(this, arguments);
+ } else {
+ jQuery.error('Method ' + method + ' does not exist on jQuery.liveTile');
+ }
+ };
+ jQuery.fn.liveTile.State = {
+ RUNNING: "running",
+ STOPPED: "stopped"
+ };
+ jQuery.fn.liveTile.defaults = {
+ mode: 'slide', // 'slide', 'flip', 'flip-list'
+ speed: 500, // how fast should animations be performed, in milliseconds
+ initDelay: -1, // how long to wait before the initial animation
+ delay: 5000, // how long to wait between animations
+ stops: "100%", // how much of the back tile should 'slide' reveal before starting a delay
+ stack: false, // should tiles in slide mode appear stacked (e.g Me tile)
+ direction: 'vertical', // which direction should animations be performed(horizontal | vertical)
+ tileCssSelector: '>div,>li', // The selector used by slide, flip, and flip-list mode to choose the front and back containers
+ listTileCssSelector: '>div,>p,>img,>a', // The selector used by flip-tile mode to choose the front and back containers.2
+ imageCssSelector: '>img,>a>img', // the selector used to choose a an image to apply a src or background to
+ ignoreDataAttributes: false, // should data attributes be ignored
+ pauseOnHover: false, // should tile animations be paused on hover in and restarted on hover out
+ repeatCount: -1, // number of times to repeat the animation
+ animationComplete: function (tileData, $front, $back) {
+ },
+ preloadImages: false, // should the images arrays be preloaded
+ fadeSlideSwap: false, // fade any image swaps on slides (e.g. mode: 'slide', stops:'50%', frontImages: ['img1.jpg', 'img2.jpg'])
+ appendBack: true, // appends the .last tile if one doesnt exist (slide and flip only)
+ triggerDelay: function (idx) { // used by flip-list to decide how random the tile flipping should be
+ return Math.random() * 3000;
+ },
+ alwaysTrigger: false, // used by flip-list to decide if all tiles are triggered every time
+ frontImages: null, // a list of images to use for the front
+ frontIsRandom: true, // should images be chosen at random or in order
+ frontIsBackgroundImage: false, // set the src attribute or css background-image property
+ frontIsInGrid: false, // only chooses one item for each iteration in flip-list
+ backImages: null, // a list of images to use for the back
+ backIsRandom: true, // should images be chosen at random or in order
+ backIsBackgroundImage: false, // set the src attribute or css background-image property
+ backIsInInGrid: false, // only chooses one item for each iteration in flip-list
+ flipListOnHover: false, // should items in flip-list flip and stop when hovered
+ useModernizr: (typeof (window.Modernizr) != "undefined"), // checks to see if modernizer is already in use
+ useHardwareAccel: true, // should css animations, transitions and transforms be used when available
+ $front: null, // the jQuery element to use as the front face of the tile; this will bypass tileCssSelector
+ $back: null // the jQuery element to use as the back face of the tile; this will bypass tileCssSelector
+ };
+
+ var privMethods = {
+ //a shuffle method to provide more randomness than sort
+ //credit: http://javascript.about.com/library/blshuffle.htm
+ //*avoiding prototype for sharepoint compatability
+ shuffleArray: function (array) {
+ var s = [];
+ while (array.length) s.push(array.splice(Math.random() * array.length, 1));
+ while (s.length) array.push(s.pop());
+ return array;
+ },
+ setTimer: function (func, interval) {
+ return setInterval(func, interval);
+ },
+ stopTimer: function (handle) {
+ clearInterval(handle);
+ return null;
+ },
+ setExtraProperties: function ($ele, imageObj) {
+ if (typeof (imageObj.alt) != "undefined")
+ $ele.attr("alt", imageObj.alt);
+ var $parent = $ele.parent();
+ if (typeof (imageObj.href) != "undefined" && $parent[0].tagName == "A") {
+ $parent.attr("href", imageObj.href);
+ if (typeof (imageObj.target) != "undefined")
+ $parent.attr("target", imageObj.target);
+ if (typeof (imageObj.onclick) != "undefined") {
+ $parent.attr("onclick", imageObj.onclick);
+ $ele.attr("onclick", "");
+ }
+ } else {
+ if (typeof (imageObj.onclick) != "undefined")
+ $ele.attr("onclick", imageObj.onclick);
+ }
+ },
+ // changes the src or background image property of an image in a flip-list
+ handleListItemSwap: function ($cont, image, isBgroundImg, stgs) {
+ var $img = $cont.find(stgs.imageCssSelector);
+ if (!isBgroundImg) {
+ $img.attr("src", image.src);
+ } else {
+ $img.css({ backgroundImage: "url('" + image.src + "')" });
+ }
+ privMethods.setExtraProperties($img, image);
+ },
+ handleSlide: function (isSlidingUp, $cont, swapFrontSource, stgs, index) {
+ if (!isSlidingUp && swapFrontSource) {
+ var image;
+ var $img = $cont.find(stgs.imageCssSelector);
+ image = stgs.frontImages[index];
+ if (stgs.fadeSlideSwap == true) {
+ $img.fadeOut(function () {
+ $img.attr("src", image.src);
+ privMethods.setExtraProperties($img, image);
+ $img.fadeIn();
+ });
+ } else {
+ $img.attr("src", image.src);
+ privMethods.setExtraProperties($img, image);
+ }
+ }
+
+ },
+ // fired if an image swap is needed. gets the image and applies properties
+ handleSwap: function ($cont, isFront, stgs, index) {
+ var image = privMethods.getImage(isFront, stgs, index);
+ var $img = $cont.find(stgs.imageCssSelector);
+ $img.attr("src", image.src);
+ privMethods.setExtraProperties($img, image);
+ },
+ // get an image from the frontImages or backImages array
+ getImage: function (isFront, stgs, index) {
+ var imgs = (isFront) ? stgs.frontImages : stgs.backImages;
+ var image;
+ image = imgs[Math.min(index, imgs.length - 1)];
+ return image;
+ }
+ };
+ var pubMethods = {
+ init: function (options) {
+ // Setup the public options for the livetile
+ var stgs = {};
+ jQuery.extend(stgs, jQuery.fn.liveTile.defaults, options);
+
+ //is there at least one item in the front images list?
+ var swapFrontSource = (typeof (stgs.frontImages) == 'object' && (stgs.frontImages instanceof Array) && stgs.frontImages.length > 0);
+ //is there at least one item in the back images list?
+ var swapBackSource = (typeof (stgs.backImages) == 'object' && (stgs.backImages instanceof Array) && stgs.backImages.length > 0);
+ var canTransform = false;
+ var canTransition = false;
+ var canTransform3d = false;
+ var canAnimate = false;
+ var canFlip3d = stgs.useHardwareAccel;
+ if (stgs.useHardwareAccel == true) {
+ if (stgs.useModernizr == false) {
+ //determine if the browser supports the neccessary accelerated features
+ if (typeof (window.MetroModernizr) != "undefined") {
+ canTransform = window.MetroModernizr.canTransform;
+ canTransition = window.MetroModernizr.canTransition;
+ canTransform3d = window.MetroModernizr.canTransform3d;
+ canAnimate = window.MetroModernizr.canAnimate;
+ } else {
+ window.MetroModernizr = {};
+ /***** check for browser capabilities credit: modernizr-1.7 *****/
+ var mod = 'metromodernizr';
+ var docElement = document.documentElement;
+ var docHead = document.head || document.getElementsByTagName('head')[0];
+ var modElem = document.createElement(mod);
+ var m_style = modElem.style;
+ var prefixes = ' -webkit- -moz- -o- -ms- -khtml- '.split(' ');
+ var domPrefixes = 'Webkit Moz O ms Khtml'.split(' ');
+ var test_props = function (props, callback) {
+ for (var i in props) {
+ if (m_style[props[i]] !== undefined && (!callback || callback(props[i], modElem))) {
+ return true;
+ }
+ }
+ };
+ var test_props_all = function (prop, callback) {
+
+ var uc_prop = prop.charAt(0).toUpperCase() + prop.substr(1),
+ props = (prop + ' ' + domPrefixes.join(uc_prop + ' ') + uc_prop).split(' ');
+
+ return !!test_props(props, callback);
+ };
+ var test_3d = function () {
+ var ret = !!test_props(['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']);
+ if (ret && 'webkitPerspective' in docElement.style) {
+ // Webkit allows this media query to succeed only if the feature is enabled.
+ // '@media (transform-3d),(-o-transform-3d),(-moz-transform-3d),(-ms-transform-3d),(-webkit-transform-3d),(modernizr){ ... }'
+ ret = testMediaQuery('@media (' + prefixes.join('transform-3d),(') + 'metromodernizr)');
+ }
+ return ret;
+ };
+ var testMediaQuery = function (mq) {
+ var st = document.createElement('style'),
+ div = document.createElement('div'),
+ ret;
+ st.textContent = mq + '{#metromodernizr{height:3px}}';
+ docHead.appendChild(st);
+ div.id = 'metromodernizr';
+ docElement.appendChild(div);
+ ret = div.offsetHeight === 3;
+ st.parentNode.removeChild(st);
+ div.parentNode.removeChild(div);
+ return !!ret;
+ };
+ canTransform = !!test_props(['transformProperty', 'WebkitTransform', 'MozTransform', 'OTransform', 'msTransform']);
+ canTransition = test_props_all('transitionProperty');
+ canTransform3d = test_3d();
+ canAnimate = test_props_all('animationName');
+ window.MetroModernizr.canTransform = canTransform;
+ window.MetroModernizr.canTransition = canTransition;
+ window.MetroModernizr.canTransform3d = canTransform3d;
+ window.MetroModernizr.canAnimate = canAnimate;
+ docElement = null;
+ docHead = null;
+ modElem = null;
+ m_style = null;
+ }
+ } else {
+ canTransform = jQuery("html").hasClass("csstransforms");
+ canTransition = jQuery("html").hasClass("csstransitions");
+ canTransform3d = jQuery("html").hasClass("csstransforms3d");
+ canAnimate = jQuery("html").hasClass("cssanimations");
+ }
+ }
+ canFlip3d = canFlip3d && canAnimate && canTransform && canTransform3d;
+ /****** end capabilities check ******/
+ if (stgs.preloadImages) {
+ if (swapFrontSource)
+ jQuery(stgs.frontImages).metrojs.preloadImages(function () { });
+ if (swapBackSource)
+ jQuery(stgs.backImages).metrojs.preloadImages(function () { });
+ }
+ return jQuery(this).each(function (tileIndex) {
+ var $this = jQuery(this);
+ $this.slideTimer = null;
+ var tdata = {}; //an object to store settings for later access
+ tdata.state = $this.slideTimer == null ? jQuery.fn.liveTile.State.STOPPED : jQuery.fn.liveTile.State.RUNNING;
+ tdata.speed = (!stgs.ignoreDataAttributes && typeof ($this.data("speed")) != "undefined") ? $this.data("speed") : stgs.speed;
+ tdata.delay = (!stgs.ignoreDataAttributes && typeof ($this.data("delay")) != "undefined") ? $this.data("delay") : stgs.delay;
+ if (tdata.delay < -1)
+ tdata.delay = stgs.triggerDelay(tileIndex);
+ else if (tdata.delay < 0)
+ tdata.delay = 3500 + (Math.random() * 4501);
+ tdata.stops = (!stgs.ignoreDataAttributes && typeof ($this.data("stops")) != "undefined") ? $this.data("stops") : stgs.stops;
+ tdata.stack = (!stgs.ignoreDataAttributes && typeof ($this.data("stack")) != "undefined") ? $this.data("stack") : stgs.mode;
+ tdata.mode = (!stgs.ignoreDataAttributes && typeof ($this.data("mode")) != "undefined") ? $this.data("mode") : stgs.mode;
+ tdata.direction = (!stgs.ignoreDataAttributes && typeof ($this.data("direction")) != "undefined") ? $this.data("direction") : stgs.direction;
+ tdata.useHwAccel = (!stgs.ignoreDataAttributes && typeof ($this.data("ha")) != "undefined") ? $this.data("ha") : stgs.useHardwareAccel;
+ tdata.initDelay = (!stgs.ignoreDataAttributes && typeof ($this.data("initdelay")) != "undefined") ? $this.data("initdelay") : (stgs.initDelay < 0) ? tdata.delay : stgs.initDelay;
+ tdata.repeatCount = (!stgs.ignoreDataAttributes && typeof ($this.data("repeat")) != "undefined") ? $this.data("repeat") : stgs.repeatCount;
+ tdata.hasRun = false; // init delay flag
+ tdata.loopCount = 0;
+ tdata.slideIndex = 0;
+ //convert stops if needed
+ tdata.stops = (typeof (stgs.stops) == 'object' && (stgs.stops instanceof Array)) ? stgs.stops : ('' + tdata.stops).split(',');
+ //add the mode to the tile if it's not already there.
+ $this.addClass(tdata.mode);
+ var $tileContainer = $this.find(stgs.tileCssSelector);
+ var $firstContainer = null;
+ if(stgs.$front != null && stgs.$front.length > 0){
+ $firstContainer = (tdata.mode == "flip-list") ? null : (tdata.mode == 'slide') ?
+ stgs.$front.addClass('slide-front') :
+ stgs.$front.addClass('flip-front');
+ }else{
+ $firstContainer = (tdata.mode == "flip-list") ? null : (tdata.mode == 'slide') ?
+ $tileContainer.first().addClass('slide-front') :
+ $tileContainer.first().addClass('flip-front');
+ }
+ var lClass = (tdata.mode == 'slide') ? 'slide-back' : 'flip-back';
+ var $scndContainer = null;
+ if(stgs.$back != null && stgs.$back.length > 0){
+ $scndContainer = (tdata.mode == "flip-list") ? null : stgs.$back.addClass(lClass);
+ }else{
+ $scndContainer = (tdata.mode == "flip-list") ? null : ($tileContainer.length > 1) ?
+ $tileContainer.last().addClass(lClass) :
+ (stgs.appendBack == true) ?
+ jQuery('<div class="' + lClass + '"></div>').appendTo($this) :
+ jQuery('<div></div>');
+ }
+ var height = $this.height();
+ var width = $this.width();
+ var margin = (tdata.direction == "vertical") ? height / 2 : width / 2;
+ var isReversed = false;
+
+ var staticCount = 0;
+ var staticIndexBack = 0;
+ var staticIndexFront = 0;
+ var doAnimations = false;
+ var flistData = []; // an array to cache flip list selectors
+ var frontRandomBag = [];
+ var prevFrontIndex = -1;
+ var backRandomBag = [];
+ var prevBackIndex = -1;
+ /* Mouse over and out functions*/
+
+ if (stgs.pauseOnHover) {
+ $this.find(stgs.tileCssSelector).hover(
+ function () {
+ tdata.stopTimer(false);
+ },
+ function () {
+ tdata.setTimer();
+ });
+ }
+ // prep tiles
+ if (tdata.mode == 'flip-list') {
+ $this.find(stgs.tileCssSelector).each(function () {
+ var $li = jQuery(this);
+ var $front = stgs.$front != null ? stgs.$front : $li.find(stgs.listTileCssSelector).first().addClass("flip-front");
+ if ($li.find(stgs.listTileCssSelector).length == 1 && stgs.appendBack == true) {
+ $li.append("<div></div>");
+ }
+ var $back = stgs.$back != null ? stgs.$back : $li.find(stgs.listTileCssSelector).last().addClass("flip-back").css({ marginTop: "0px" });
+ if (canFlip3d && tdata.useHwAccel) {
+ $li.addClass("ha");
+ $front.addClass("ha").data("tile", { animating: false });
+ $back.addClass("ha").data("tile", { animating: false });
+ if (stgs.flipListOnHover == true) {
+ $front.bind("mouseout.liveTile", null, function () {
+ $this.flipListItem(false, $li, $back, $front);
+ });
+ $back.bind("mouseout.liveTile", null, function () {
+ $this.flipListItem(true, $li, $front, $back);
+ });
+ }
+ } else {
+ if (stgs.flipListOnHover == true) {
+ $front.bind("mouseout.liveTile", function () {
+ $this.flipListItem(true, $li, $front, $back);
+ });
+ $back.bind("mouseout.liveTile", function () {
+ $this.flipListItem(false, $li, $back, $front);
+ });
+ }
+ }
+ });
+ } else if (tdata.mode == 'slide') {
+ if (tdata.stack == true) {
+ if (tdata.direction == "vertical") {
+ $scndContainer.css({ top: -height + 'px' });
+ } else {
+ $scndContainer.css({ left: -width + 'px' });
+ }
+ }
+ if (canTransition && tdata.useHwAccel) {
+ $this.addClass("ha");
+ $firstContainer.addClass("ha").data("tile", { animating: false });
+ }
+ } else if (tdata.mode == 'flip') {
+ if (canFlip3d && tdata.useHwAccel) {
+ $this.addClass("ha");
+ $firstContainer.addClass("ha").data("tile", { animating: false });
+ $scndContainer.addClass("ha").data("tile", { animating: false });
+ } else {
+ var fCss = (tdata.direction == "vertical") ?
+ { height: '0px', width: width + 'px', marginTop: margin + 'px', opacity: '0'} :
+ { height: '100%', width: '0px !important', marginLeft: margin + 'px', opacity: '0' };
+ var fCss2 = (tdata.direction == "vertical") ?
+ { height: '100%', width: '100%', marginTop: '0px', opacity: '1'} :
+ { height: '100%', width: '100%', marginLeft: '0px', opacity: '1' };
+ $scndContainer.css(fCss);
+ $firstContainer.css(fCss2);
+ //temp fix
+ // TODO: debug and remove instances of jQuery.browser for compatibility with jq 1.8+
+ if (tdata.repeatCount > -1 && jQuery.browser.msie) {
+ tdata.repeatCount += 1;
+ }
+ // if (tdata.direction == "horizontal")
+ // $scndContainer.css({ marginLeft: $scndContainer.width() / 2 + 'px', width: '0px' });
+ // else
+ // $scndContainer.css({ marginTop: $scndContainer.height() / 2 + 'px', height: '0px' });
+ }
+ }
+
+
+ //slide animation
+ $this.slide = function (callback) {
+ if (typeof (callback) == "undefined" || callback == null)
+ callback = null;
+ if (tdata.repeatCount > -1) {
+ if (tdata.loopCount > tdata.repeatCount) {
+ tdata.stopTimer(false);
+ tdata.loopCount = 0;
+ tdata.hasRun = false;
+ $this.data("LiveTile", tdata);
+ return;
+ }
+ }
+ if (!doAnimations)
+ return;
+ var clojIsReversed = isReversed;
+ var fData = $firstContainer.data("tile");
+ var stop = jQuery.trim(tdata.stops[tdata.slideIndex]);
+ var pxIdx = stop.indexOf('px');
+ var offset = 0;
+ var amount = 0
+ var metric = (tdata.direction == "vertical") ? height : width;
+ var prop = (tdata.direction == "vertical") ? "top" : "left";
+ if (pxIdx > 0) {
+ amount = parseInt(stop.substring(0, pxIdx));
+ offset = (amount - metric) + 'px';
+ } else {
+ //is a percentage
+ amount = parseInt(stop.replace('%', ''));
+ offset = (amount - 100) + '%';
+ }
+ if (canTransition && tdata.useHwAccel) {
+ if (typeof (fData.animated) != "undefined" && fData.animated == true)
+ return;
+ fData.animated = true;
+ var css = {
+ WebkitTransitionProperty: prop, WebkitTransitionDuration: tdata.speed + 'ms',
+ MozTransitionProperty: prop, MozTransitionDuration: tdata.speed + 'ms',
+ OTransitionProperty: prop, OTransitionDuration: tdata.speed + 'ms',
+ msTransitionProperty: prop, msTransitionDuration: tdata.speed + 'ms',
+ KhtmlTransitionProperty: prop, KhtmlTransitionDuration: tdata.speed + 'ms',
+ TransitionProperty: prop, TransitionDuration: tdata.speed + 'ms'
+ };
+ if (tdata.direction == "vertical") {
+ css.top = (clojIsReversed && tdata.stops.length == 1) ? "0px" : stop;
+ } else {
+ css.left = (clojIsReversed && tdata.stops.length == 1) ? "0px" : stop;
+ }
+ $firstContainer.css(css);
+ if (tdata.stack == true) {
+ if (tdata.direction == "vertical") {
+ css.top = (clojIsReversed && tdata.stops.length == 1) ? -metric + 'px' : offset;
+ } else {
+ css.left = (clojIsReversed && tdata.stops.length == 1) ? -metric + 'px' : offset;
+ }
+ $scndContainer.css(css);
+ }
+ window.setTimeout(function () {
+ var index = staticCount;
+ if (swapFrontSource && stgs.frontIsRandom) {
+ //make sure the random bag is ready
+ if (frontRandomBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevBackIndex || stgs.frontImages.length == 1)
+ frontRandomBag[i] = i;
+ }
+ frontRandomBag = privMethods.shuffleArray(frontRandomBag);
+ }
+ index = frontRandomBag.pop();
+ prevFrontIndex = index;
+ }
+ privMethods.handleSlide(clojIsReversed, $firstContainer, swapFrontSource, stgs, index);
+ fData.animated = false;
+ $firstContainer.data("tile", fData);
+ if (!clojIsReversed && swapFrontSource) {
+ staticCount += 1;
+ if (staticCount >= stgs.frontImages.length)
+ staticCount = 0;
+ }
+ stgs.animationComplete(tdata, $firstContainer, $scndContainer);
+ if (callback != null)
+ callback();
+ }, tdata.speed);
+ } else {
+ if ($firstContainer.is(':animated')) {
+ return;
+ }
+ var uCss = (tdata.direction == "vertical") ?
+ { top: (clojIsReversed && tdata.stops.length == 1) ? "0px" : stop} :
+ { left: (clojIsReversed && tdata.stops.length == 1) ? "0px" : stop };
+ var dCss = (tdata.direction == "vertical") ?
+ { top: (clojIsReversed && tdata.stops.length == 1) ? -metric + 'px' : offset} :
+ { left: (clojIsReversed && tdata.stops.length == 1) ? -metric + 'px' : offset };
+
+ $firstContainer.animate(uCss, tdata.speed, function () {
+ var index = staticCount;
+ if (swapFrontSource && stgs.frontIsRandom) {
+ //make sure the random bag is ready
+ if (frontRandomBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevBackIndex || stgs.frontImages.length == 1)
+ frontRandomBag[i] = i;
+ }
+ frontRandomBag = privMethods.shuffleArray(frontRandomBag);
+ }
+ index = frontRandomBag.pop();
+ prevFrontIndex = index;
+ }
+ privMethods.handleSlide(clojIsReversed, $firstContainer, swapFrontSource, stgs, index);
+ if (!clojIsReversed && swapFrontSource) {
+ staticCount += 1;
+ if (staticCount >= stgs.frontImages.length)
+ staticCount = 0;
+ }
+ stgs.animationComplete(tdata, $firstContainer, $scndContainer);
+ if (callback != null)
+ callback();
+ });
+ if (tdata.stack == true) {
+ $scndContainer.animate(dCss, tdata.speed, function () { });
+ }
+ }
+ //increment slide count
+ tdata.slideIndex += 1;
+ if (tdata.slideIndex >= tdata.stops.length) {
+ tdata.slideIndex = 0;
+ isReversed = !isReversed;
+ tdata.loopCount += 1;
+ }
+ };
+
+
+ //flip mode
+ $this.flip = function (callback) {
+ if (typeof (callback) == "undefined" || callback == null)
+ callback = null;
+ if (tdata.repeatCount > -1) {
+ if (tdata.loopCount > tdata.repeatCount) {
+ tdata.stopTimer(false);
+ tdata.loopCount = 0;
+ // TODO: debug and remove instances of jQuery.browser for compatibility with jq 1.8+
+ if (jQuery.browser.msie) /* straighten out issue with loopcount in IE */
+ tdata.loopCount += 1;
+ tdata.hasRun = false;
+ $this.data("LiveTile", tdata);
+ return;
+ } else {
+ tdata.loopCount += 1;
+ }
+ }
+ if (canFlip3d && tdata.useHwAccel) {
+ var spd = (tdata.speed * 2); // accelerated flip speeds are calculated on 1/2 rotation rather than 1/4 rotation like jQuery animate
+ var duration = spd + 'ms';
+ var aniFName = (tdata.direction == "vertical") ? 'flipfront180' : 'flipfrontY180';
+ var aniBName = (tdata.direction == "vertical") ? 'flipback180' : 'flipbackY180';
+ var data = $firstContainer.data("tile");
+ if (typeof (data.animated) != "undefined" && data.animated == true) {
+ return;
+ }
+ data.animated = true;
+ if (doAnimations) {
+ if (isReversed) {
+ var uCss = {
+ WebkitAnimationPlayState: 'running', WebkitAnimationName: aniBName, WebkitAnimationDuration: duration,
+ MozAnimationPlayState: 'running', MozAnimationName: aniBName, MozAnimationDuration: duration,
+ OAnimationPlayState: 'running', OAnimationName: aniBName, OAnimationDuration: duration,
+ msAnimationPlayState: 'running', msAnimationName: aniBName, msAnimationDuration: duration,
+ AnimationPlayState: 'running', AnimationName: aniBName, AnimationDuration: duration
+ };
+ $firstContainer.css(uCss).data("tile", data);
+ uCss.WebkitAnimationName = aniFName;
+ uCss.MozAnimationName = aniFName;
+ uCss.msAnimationName = aniFName;
+ uCss.OAnimationName = aniFName;
+ uCss.AnimationName = aniFName;
+ $scndContainer.css(uCss).data("tile", data);
+ window.setTimeout(function () {
+ if (swapBackSource) { // change the source image when the animation is finished
+ var isRandom = stgs.backIsRandom;
+ var index = staticIndexBack;
+ if (isRandom) {
+ //make sure the random bag is ready
+ if (backRandomBag.length == 0) {
+ for (var i = 0; i < stgs.backImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevBackIndex || stgs.backImages.length == 1)
+ backRandomBag[i] = i;
+ }
+ backRandomBag = privMethods.shuffleArray(backRandomBag);
+ }
+ index = backRandomBag.pop();
+ prevBackIndex = index;
+ }
+ privMethods.handleSwap($scndContainer, false, stgs, index);
+ staticIndexBack += 1;
+ if (staticIndexBack >= stgs.backImages.length) {
+ staticIndexBack = 0;
+ }
+ }
+ stgs.animationComplete(tdata, $firstContainer, $scndContainer);
+ if (callback != null)
+ callback();
+ data.animated = false;
+ $firstContainer.data("tile", data);
+ $scndContainer.data("tile", data);
+ }, spd);
+ } else {
+ var dCss = { WebkitAnimationPlayState: 'running', WebkitAnimationName: aniFName, WebkitAnimationDuration: duration,
+ MozAnimationPlayState: 'running', MozAnimationName: aniFName, MozAnimationDuration: duration,
+ OAnimationPlayState: 'running', OAnimationName: aniFName, OAnimationDuration: duration,
+ msAnimationPlayState: 'running', msAnimationName: aniFName, msAnimationDuration: duration,
+ AnimationPlayState: 'running', AnimationName: aniFName, AnimationDuration: duration
+ };
+ $firstContainer.css(dCss).data("tile", data);
+ dCss.WebkitAnimationName = aniBName;
+ dCss.MozAnimationName = aniBName;
+ dCss.msAnimationName = aniBName;
+ dCss.OAnimationName = aniBName;
+ dCss.AnimationName = aniBName;
+ $scndContainer.css(dCss).data("tile", data);
+ window.setTimeout(function () {
+ if (swapFrontSource) {
+ // change the source image when the animation is finished
+ var isRandom = stgs.frontIsRandom;
+ var index = staticIndexFront;
+ if (isRandom) {
+ //make sure the random bag is ready
+ if (frontRandomBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevBackIndex || stgs.frontImages.length == 1)
+ frontRandomBag[i] = i;
+ }
+ frontRandomBag = privMethods.shuffleArray(frontRandomBag);
+ }
+ index = frontRandomBag.pop();
+ prevFrontIndex = index;
+ }
+ privMethods.handleSwap($firstContainer, true, stgs, index);
+ staticIndexFront += 1;
+ if (staticIndexFront >= stgs.frontImages.length) {
+ staticIndexFront = 0;
+ }
+ }
+ stgs.animationComplete(tdata, $scndContainer, $firstContainer);
+ if (callback != null) {
+ callback();
+ }
+ data.animated = false;
+ $firstContainer.data("tile", data);
+ $scndContainer.data("tile", data);
+ }, spd);
+ }
+ }
+ //an interval isnt needed
+ isReversed = !isReversed;
+ } else {
+
+ //crossbrowser single tile flip illusion (works best with images)
+ if (isReversed) {
+ var upCss = (tdata.direction == "vertical") ?
+ { height: '0px', width: '100%', marginTop: margin + 'px', opacity: '0'} :
+ { height: '100%', width: '0px', marginLeft: margin + 'px', opacity: '0' };
+ var upCss2 = (tdata.direction == "vertical") ?
+ { height: '100%', width: '100%', marginTop: '0px', opacity: '1'} :
+ { height: '100%', width: '100%', marginLeft: '0px', opacity: '1' };
+
+ $firstContainer.stop().animate(upCss, { duration: tdata.speed });
+ window.setTimeout(function () {
+ $scndContainer.stop().animate(upCss2, { duration: tdata.speed });
+ if (swapFrontSource) {
+ var isRandom = stgs.frontIsRandom;
+ var index = staticIndexFront;
+ if (isRandom) {
+ //make sure the random bag is ready
+ if (frontRandomBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevFrontIndex || stgs.frontImages.length == 1)
+ frontRandomBag[i] = i;
+ }
+ frontRandomBag = privMethods.shuffleArray(frontRandomBag);
+ }
+ index = frontRandomBag.pop();
+ prevFrontIndex = index;
+ }
+ privMethods.handleSwap($firstContainer, true, stgs, index);
+ staticIndexFront += 1;
+ if (staticIndexFront >= stgs.frontImages.length) {
+ staticIndexFront = 0;
+ }
+ }
+ isReversed = !isReversed;
+ stgs.animationComplete(tdata, $scndContainer, $firstContainer);
+ if (callback != null)
+ callback();
+ }, tdata.speed);
+ } else {
+ var dwnCss = (tdata.direction == "vertical") ?
+ { height: '0px', width: '100%', marginTop: margin + 'px', opacity: '0'} :
+ { height: '100%', width: '0px', marginLeft: margin + 'px', opacity: '0' };
+ var dwnCss2 = (tdata.direction == "vertical") ?
+ { height: '100%', width: '100%', marginTop: '0px', opacity: '1'} :
+ { height: '100%', width: '100%', marginLeft: '0px', opacity: '1' };
+ $scndContainer.stop().animate(dwnCss, { duration: tdata.speed });
+ window.setTimeout(function () {
+ $firstContainer.stop().animate(dwnCss2, { duration: tdata.speed });
+ if (swapBackSource) {
+ var isRandom = stgs.backIsRandom;
+ var index = staticIndexBack;
+ if (isRandom) {
+ //make sure the random bag is ready
+ if (backRandomBag.length == 0) {
+ for (var i = 0; i < stgs.backImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevBackIndex || stgs.backImages.length == 1)
+ backRandomBag[i] = i;
+ }
+ backRandomBag = privMethods.shuffleArray(backRandomBag);
+ }
+ index = backRandomBag.pop();
+ prevBackIndex = index;
+ }
+ privMethods.handleSwap($scndContainer, false, stgs, index);
+ staticIndexBack += 1;
+ if (staticIndexBack >= stgs.backImages.length) {
+ staticIndexBack = 0;
+ }
+ }
+ isReversed = !isReversed;
+ stgs.animationComplete(tdata, $firstContainer, $scndContainer);
+ if (callback != null)
+ callback();
+ }, tdata.speed);
+ }
+ }
+ };
+ // flip arbitrary number of items and swap sources accordingly
+ $this.flipList = function (callback) {
+ if (typeof (callback) == "undefined" || callback == null)
+ callback = null;
+ if (tdata.repeatCount > -1) {
+ if (tdata.loopCount > tdata.repeatCount) {
+ tdata.stopTimer(false);
+ tdata.loopCount = 0;
+ tdata.hasRun = false;
+ $this.data("LiveTile", tdata);
+ return;
+ } else {
+ tdata.loopCount += 1;
+ }
+ }
+ var fBag = []; // two bags to make sure we don't duplicate images
+ var bBag = [];
+ var $tiles = $this.find(stgs.tileCssSelector);
+ //in case we want to pick one image per loop
+ var fStaticRndm = 0;
+ if (swapFrontSource) {
+ if (frontRandomBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ if (i != prevFrontIndex || stgs.frontImages.length == 1)
+ frontRandomBag[i] = i;
+ }
+ frontRandomBag = privMethods.shuffleArray(frontRandomBag);
+ }
+ fStaticRndm = frontRandomBag.pop();
+ prevFrontIndex = fStaticRndm;
+ }
+ var bStaticRndm = 0;
+ if (swapBackSource) {
+ if (backRandomBag.length == 0) {
+ for (var i = 0; i < stgs.backImages.length; i++) {
+ if (i != prevBackIndex || stgs.backImages.length == 1)
+ backRandomBag[i] = i;
+ }
+ backRandomBag = privMethods.shuffleArray(backRandomBag);
+ }
+ bStaticRndm = backRandomBag.pop();
+ prevBackIndex = bStaticRndm;
+ }
+ $tiles.each(function (idx) {
+ var $t = jQuery(this);
+ if (flistData.length < idx + 1) {
+ // cache the selector
+ var data = {};
+ data.$front = $t.find(stgs.listTileCssSelector).first();
+ data.$back = $t.find(stgs.listTileCssSelector).last();
+ data.isReversed = false;
+ flistData[idx] = data;
+ }
+ var $front = flistData[idx].$front;
+ var $back = flistData[idx].$back;
+
+ var tDelay = stgs.triggerDelay(idx);
+ var triggerSpeed = (tDelay > 0) ? (tdata.speed + tDelay) : tdata.speed;
+ var trigger = (stgs.alwaysTrigger == false) ? ((Math.random() * 351) > 150 ? true : false) : true;
+ var newImage;
+ if (flistData[idx].isReversed) {
+ if (trigger) {
+ window.setTimeout(function () {
+ flistData[idx].isReversed = false;
+ if (!swapFrontSource) {
+ $this.flipListItem(true, $t, $front, $back);
+ } else {
+ var isRandom = stgs.frontIsRandom;
+ var isInGrid = stgs.frontIsInGrid;
+ var isBground = stgs.frontIsBackgroundImage;
+ var frontImages = stgs.frontImages;
+ if (isRandom && !isInGrid) {
+ //make sure the random bag is ready
+ if (fBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ fBag[i] = i;
+ }
+ fBag = privMethods.shuffleArray(fBag);
+ }
+ newImage = frontImages[fBag.pop()];
+ } else {
+ if (!isInGrid) {
+ newImage = frontImages[Math.min(idx, frontImages.length)];
+ } else {
+ newImage = frontImages[Math.min(fStaticRndm, frontImages.length)];
+ }
+ }
+ $this.flipListItem(true, $t, $front, $back, newImage, isBground);
+ }
+ }, triggerSpeed);
+ }
+ } else {
+ if (trigger) {
+ window.setTimeout(function () {
+ flistData[idx].isReversed = true;
+ if (!swapBackSource) {
+ $this.flipListItem(false, $t, $back, $front);
+ } else {
+ var isRandom = stgs.backIsRandom;
+ var isInGrid = stgs.backIsInGrid;
+ var isBground = stgs.backIsBackgroundImage;
+ var backImages = stgs.backImages;
+ if (isRandom && !isInGrid) {
+ //make sure the random bag is ready
+ if (bBag.length == 0) {
+ for (var i = 0; i < stgs.backImages.length; i++) {
+ bBag[i] = i;
+ }
+ bBag = privMethods.shuffleArray(bBag);
+ }
+ newImage = backImages[bBag.pop()];
+ } else {
+ if (!isInGrid) {
+ newImage = backImages[Math.min(idx, backImages.length)];
+ } else {
+ newImage = backImages[Math.min(bStaticRndm, backImages.length)];
+ }
+ }
+ $this.flipListItem(false, $t, $back, $front, newImage, isBground);
+ }
+ }, triggerSpeed);
+ }
+ }
+ });
+ window.setTimeout(function () {
+ isReversed = !isReversed;
+ }, tdata.speed);
+
+ };
+
+ //does the actual animation of a flip list item
+ $this.flipListItem = function (isFront, $itm, $front, $back, newSrc, isBgroundImg) {
+
+ var dir = (!stgs.ignoreDataAttributes && typeof ($itm.data("direction")) != "undefined") ? $itm.data("direction") : tdata.direction;
+ if (canFlip3d && tdata.useHwAccel) {
+ // avoid any z-index flickering from reversing an animation too early
+ isBgroundImg = isFront ? stgs.frontIsBackgroundImage : stgs.backIsBackgroundImage;
+ var animating = isFront ? $front.data("tile").animating : $back.data("tile").animating;
+ if (animating == true) {
+ return;
+ }
+ var spd = (tdata.speed * 2);
+ var duration = spd + 'ms';
+ var aniFName = (dir == "vertical") ? 'flipfront180' : 'flipfrontY180';
+ var aniBName = (dir == "vertical") ? 'flipback180' : 'flipbackY180';
+ var fCss = {
+ WebkitAnimationPlayState: 'running', WebkitAnimationName: aniBName, WebkitAnimationDuration: duration,
+ MozAnimationPlayState: 'running', MozAnimationName: aniBName, MozAnimationDuration: duration,
+ msAnimationPlayState: 'running', msAnimationName: aniBName, msAnimationDuration: duration,
+ OAnimationPlayState: 'running', OAnimationName: aniBName, OAnimationDuration: duration,
+ AnimationPlayState: 'running', AnimationName: aniBName, AnimationDuration: duration
+ };
+ var bCss = {
+ WebkitAnimationPlayState: 'running', WebkitAnimationName: aniFName, WebkitAnimationDuration: duration,
+ MozAnimationPlayState: 'running', MozAnimationName: aniFName, MozAnimationDuration: duration,
+ msAnimationPlayState: 'running', msAnimationName: aniFName, msAnimationDuration: duration,
+ OAnimationPlayState: 'running', OAnimationName: aniFName, OAnimationDuration: duration,
+ AnimationPlayState: 'running', AnimationName: aniFName, AnimationDuration: duration
+ };
+ $front.css(fCss).data("tile").animating = true;
+ $back.css(bCss).data("tile").animating = true;
+ window.setTimeout(function () {
+ if (typeof (newSrc) != "undefined") {
+ privMethods.handleListItemSwap($front, newSrc, isBgroundImg, stgs);
+ }
+ $front.data("tile").animating = false;
+ $back.data("tile").animating = false;
+ }, 0); // once the animation is half through it can be reversed
+
+ } else {
+ var height = $itm.height();
+ var width = $itm.width();
+ var margin = (dir == "vertical") ? height / 2 : width / 2;
+ var uCss = (dir == "vertical") ?
+ { height: '0px', width: '100%', marginTop: margin + 'px', opacity: 0} :
+ { height: '100%', width: '0px', marginLeft: margin + 'px', opacity: 0 };
+ var dCss = (dir == "vertical") ?
+ { height: '100%', width: '100%', marginTop: '0px', opacity: 1} :
+ { height: '100%', width: '100%', marginLeft: '0px', opacity: 1 };
+ $front.stop().animate(uCss, { duration: tdata.speed });
+ window.setTimeout(function () {
+ $back.stop().animate(dCss, { duration: tdata.speed });
+ if (typeof (newSrc) != "undefined") {
+ privMethods.handleListItemSwap($front, newSrc, isBgroundImg, stgs);
+ }
+ }, tdata.speed);
+ }
+ };
+
+ /* Delay the tile action*/
+ tdata.doAction = function () {
+ var action = null;
+ tdata.stopTimer(false);
+ switch (tdata.mode) {
+ case 'slide':
+ action = $this.slide;
+ break;
+ case 'flip':
+ action = $this.flip;
+ break;
+ case 'flip-list':
+ action = $this.flipList;
+ break;
+ }
+ var callBack = function () {
+ tdata.setTimer();
+ };
+ if (action != null) {
+ doAnimations = true;
+ action(callBack);
+ }
+ };
+ tdata.setTimer = function () {
+ var action = null;
+ switch (tdata.mode) {
+ case 'slide':
+ action = $this.slide;
+ break;
+ case 'flip':
+ action = $this.flip;
+ break;
+ case 'flip-list':
+ action = $this.flipList;
+ break;
+ }
+
+ if (action != null) {
+ if (tdata.hasRun == false) {
+ window.setTimeout(function () {
+ doAnimations = true;
+ action();
+ tdata.setTimer();
+ }, tdata.initDelay);
+ } else {
+ if ($this.slideTimer != null)
+ $this.slideTimer = privMethods.stopTimer($this.slideTimer);
+ $this.slideTimer = privMethods.setTimer(function () { doAnimations = true; action(); }, tdata.speed + tdata.delay);
+ }
+ }
+ tdata.hasRun = true;
+ };
+
+ tdata.stopTimer = function (restart) {
+ $this.slideTimer = privMethods.stopTimer($this.slideTimer);
+ doAnimations = false;
+
+ if (typeof (restart) != "undefined" && restart == true) {
+ tdata.setTimer();
+ }
+ };
+ $this.data("LiveTile", tdata);
+ tdata.setTimer();
+ });
+ },
+ animate: function () {
+ jQuery(this).each(function () {
+ var tData = jQuery(this).data("LiveTile");
+ tData.doAction();
+ });
+ },
+ destroy: function () {
+ jQuery(this).each(function () {
+ var $t = jQuery(this);
+ $t.unbind(".liveTile");
+ var $tile = jQuery(this).data("LiveTile");
+ if ($tile != null) {
+ $tile.stopTimer(false);
+ $t.removeData("LiveTile");
+ $t.removeData("ha");
+ $t.removeData("tile");
+ delete $tile;
+ delete $t.slide;
+ delete $t.flip;
+ delete $t.flipList;
+ delete $t.liveTile;
+ }
+
+ });
+ },
+ stop: function (restart) {
+ jQuery(this).each(function () {
+ var $tile = jQuery(this).data("LiveTile");
+ $tile.stopTimer(restart);
+ $tile.loopCount = 0;
+ $tile.hasRun = false;
+ });
+ },
+ pause: function () {
+ jQuery(this).each(function () {
+ jQuery(this).data("LiveTile").stopTimer();
+ });
+ },
+ play: function () {
+ jQuery(this).each(function () {
+ jQuery(this).data("LiveTile").setTimer();
+ });
+ }
+ };
+})(); \ No newline at end of file
diff --git a/start/livetiles/rss/index.html b/start/livetiles/rss/index.html
new file mode 100644
index 0000000..45deb1f
--- /dev/null
+++ b/start/livetiles/rss/index.html
@@ -0,0 +1,151 @@
+<html>
+<head>
+<title>Live News Tile</title>
+<style>
+body { margin:0;padding:0;font-family:Segoe UI;}
+.metroBig { font-size:36px; line-height:36px; }
+.live-tile, .list-tile
+{
+ color:#fff;
+ float:left;
+ height: 124px;
+ margin:0px;
+ overflow:hidden;
+ position:relative;
+ width: 258px;
+ background-color: #BD1E49;
+ border: 0.5px solid #BD1E49;
+}
+.live-tile.two-wide, .list-tile.two-wide { width:390px; }
+.live-tile.two-tall, .list-tile.two-tall { height:390px; }
+.live-tile img, .list-tile img { border:none; }
+.live-tile.me>.slide-back>a.metroBig { position:absolute; left:0; bottom:0; padding: 0 0 12px 12px; text-decoration:none; }
+.live-tile a:link, .live-tile a:visited { color:#fff; text-decoration:underline; }
+.live-tile a:hover { color:#fff; text-decoration:none; }
+.live-tile p { font-size:13px; line-height: 16px; padding:10px; }
+.live-tile .tile-title, .list-tile .tile-title { position:absolute; bottom:0px; font-size:12px; left:0px; width:100%; padding:0 0 6px 6px; z-index:30; }
+.live-tile a.tile-title, .list-tile a.tile-title { text-decoration:none; }
+.live-tile.me>.metroBig { padding-top:45px; }
+
+.live-tile,.live-tile>div,.list-tile>div
+{ /* ensure elements on backside don't continue to take focus */
+ backface-visibility:hidden;
+ -webkit-backface-visibility:hidden;
+ -moz-backface-visibility:hidden;
+}
+
+.live-tile>div,.list-tile>div
+{
+ top:0px;
+ left:0px;
+ margin:0px;
+ height:100%;
+ width:100%;
+ position:absolute;
+ z-index:20;
+}
+.list-tile>div
+{
+ position:relative;
+}
+
+img.full , a.full
+{
+ display:block;
+ margin:0px;
+ height:100%;
+ width:100%;
+}
+.list-tile>div { background-color:transparent; }
+
+.live-tile>.back, .live-tile>.slide-back,.live-tile>.flip-back, .flip-list .flip-back
+{
+ position:absolute;
+ z-index:10;
+}
+
+</style>
+<style>
+/* begin styles for RSS Feed */
+.rss-box {
+ padding: 0px 0px;
+ color:#FFFFFF;
+ background-color: #BD1E49;
+ border: 0px solid #3366CC;
+ width:253px;
+ height:124px;
+ overflow:hidden;
+}
+
+.rss-title, .rss-title a {
+ font-family: "Segoe UI";
+ font-size: 15px;
+ color:#FFFFFF;
+ font-weight:normal;
+ margin: 0px 0;
+ padding: 0;
+ letter-spacing: 1px;
+ text-decoration:underline;
+}
+.rss-title a:hover {
+ text-decoration:underline;
+}
+.rss-items {
+ list-style:none;
+padding-left:10px !important;
+ margin: 0;
+}
+
+.rss-item {
+ font-family: Segoe UI Light;
+ font-size: 13px;
+ margin: 0;
+ color:#FFFFFF;
+ overflow:hidden;
+}
+
+.rss-item a:link, .rss-item a:visited, .rss-item a:active {
+font-family:Segoe UI;
+ font-size:14px;
+
+ }
+
+.rss-item a:hover {
+ text-decoration : underline;
+
+ }
+
+.rss-date {
+ font-family: Segoe UI;
+ font-size: 11px;
+ font-weight : normal;
+ color: #F1F1F1;
+ }
+</style>
+</head>
+<body>
+<div class="tiles">
+ <div class="live-tile">
+ <div>
+<script src="http://www.feedroll.com/rssviewer/feed2js.php?src=http%3A%2F%2Ffeeds.feedburner.com%2FWindows8Beta%3Fformat%3Dxml&chan=title&num=1&desc=1&utf=y&targ=_parent" charset="UTF-8" type="text/javascript"></script>
+<noscript>
+<a href="http://feeds.feedburner.com/Windows8Beta?format=xml" target="_parent">View RSS feed</a>
+</noscript>
+ </div>
+ <div>
+<script src="http://www.feedroll.com/rssviewer/feed2js.php?src=http://onlinewindows8.koding.com/wordpress/?feed=rss2&chan=title&num=1&desc=1&utf=y&targ=_parent" charset="UTF-8" type="text/javascript"></script>
+<noscript>
+<a href="http://onlinewindows8.koding.com/wordpress/?feed=rss2" target="_parent">View RSS feed</a>
+</noscript>
+ </div>
+ </div>
+</div>
+</body>
+ <script src="jquery-1.5.1.min.js" type="text/javascript"></script>
+ <script src="MetroJs.lt.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ $(document).ready(function () {
+ $(".live-tile,.flip-list").liveTile();
+ });
+ </script>
+</html> \ No newline at end of file
diff --git a/start/livetiles/rss/jquery-1.5.1.min.js b/start/livetiles/rss/jquery-1.5.1.min.js
new file mode 100644
index 0000000..bb3f311
--- /dev/null
+++ b/start/livetiles/rss/jquery-1.5.1.min.js
@@ -0,0 +1,19 @@
+/*!
+* Note: While Microsoft is not the author of this file, Microsoft is
+* offering you a license subject to the terms of the Microsoft Software
+* License Terms for Microsoft ASP.NET Model View Controller 3.
+* Microsoft reserves all other rights. The notices below are provided
+* for informational purposes only and are not the license terms under
+* which Microsoft distributed this file.
+*
+* jQuery JavaScript Library v1.5.1
+* http://jquery.com/
+* Copyright 2011, John Resig
+*
+* Includes Sizzle.js
+* http://sizzlejs.com/
+* Copyright 2011, The Dojo Foundation
+*
+* Date: Thu Nov 11 19:04:53 2010 -0500
+*/
+(function(a,b){function cg(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cd(a){if(!bZ[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";bZ[a]=c}return bZ[a]}function cc(a,b){var c={};d.each(cb.concat.apply([],cb.slice(0,b)),function(){c[this]=a});return c}function bY(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bX(){try{return new a.XMLHttpRequest}catch(b){}}function bW(){d(a).unload(function(){for(var a in bU)bU[a](0,1)})}function bQ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h==="string"&&(f[h.toLowerCase()]=a.converters[h]);l=k,k=e[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=f[m]||f["* "+k];if(!n){p=b;for(o in f){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=f[j[1]+" "+k];if(p){o=f[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&d.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bP(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bO(a,b,c,e){if(d.isArray(b)&&b.length)d.each(b,function(b,f){c||bq.test(a)?e(a,f):bO(a+"["+(typeof f==="object"||d.isArray(f)?b:"")+"]",f,c,e)});else if(c||b==null||typeof b!=="object")e(a,b);else if(d.isArray(b)||d.isEmptyObject(b))e(a,"");else for(var f in b)bO(a+"["+f+"]",b[f],c,e)}function bN(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bH,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l==="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bN(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bN(a,c,d,e,"*",g));return l}function bM(a){return function(b,c){typeof b!=="string"&&(c=b,b="*");if(d.isFunction(c)){var e=b.toLowerCase().split(bB),f=0,g=e.length,h,i,j;for(;f<g;f++)h=e[f],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bo(a,b,c){var e=b==="width"?bi:bj,f=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return f;d.each(e,function(){c||(f-=parseFloat(d.css(a,"padding"+this))||0),c==="margin"?f+=parseFloat(d.css(a,"margin"+this))||0:f-=parseFloat(d.css(a,"border"+this+"Width"))||0});return f}function ba(a,b){b.src?d.ajax({url:b.src,async:!1,dataType:"script"}):d.globalEval(b.text||b.textContent||b.innerHTML||""),b.parentNode&&b.parentNode.removeChild(b)}function _(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function $(a,b){if(b.nodeType===1){var c=b.nodeName.toLowerCase();b.clearAttributes(),b.mergeAttributes(a);if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(d.expando)}}function Z(a,b){if(b.nodeType===1&&d.hasData(a)){var c=d.expando,e=d.data(a),f=d.data(b,e);if(e=e[c]){var g=e.events;f=f[c]=d.extend({},e);if(g){delete f.handle,f.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)d.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function Y(a,b){return d.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function O(a,b,c){if(d.isFunction(b))return d.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return d.grep(a,function(a,d){return a===b===c});if(typeof b==="string"){var e=d.grep(a,function(a){return a.nodeType===1});if(J.test(b))return d.filter(b,e,!c);b=d.filter(b,e)}return d.grep(a,function(a,e){return d.inArray(a,b)>=0===c})}function N(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function F(a,b){return(a&&a!=="*"?a+".":"")+b.replace(r,"`").replace(s,"&")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,q=[],r=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;i<t.length;i++)g=t[i],g.origType.replace(p,"")===a.type?r.push(g.selector):t.splice(i--,1);f=d(a.target).closest(r,a.currentTarget);for(j=0,k=f.length;j<k;j++){m=f[j];for(i=0;i<t.length;i++){g=t[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,e=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,e=d(a.relatedTarget).closest(g.selector)[0];(!e||e!==h)&&q.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=q.length;j<k;j++){f=q[j];if(c&&f.level>c)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function C(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function w(){return!0}function v(){return!1}function g(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function f(a,c,f){if(f===b&&a.nodeType===1){f=a.getAttribute("data-"+c);if(typeof f==="string"){try{f=f==="true"?!0:f==="false"?!1:f==="null"?null:d.isNaN(f)?e.test(f)?d.parseJSON(f):f:parseFloat(f)}catch(g){}d.data(a,c,f)}else f=b}return f}var c=a.document,d=function(){function I(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(I,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x=!1,y,z="then done fail isResolved isRejected promise".split(" "),A,B=Object.prototype.toString,C=Object.prototype.hasOwnProperty,D=Array.prototype.push,E=Array.prototype.slice,F=String.prototype.trim,G=Array.prototype.indexOf,H={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.1",length:0,size:function(){return this.length},toArray:function(){return E.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?D.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(E.apply(this,arguments),"slice",E.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:D,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){e=i[c],f=a[c];if(i===f)continue;l&&f&&(d.isPlainObject(f)||(g=d.isArray(f)))?(g?(g=!1,h=e&&d.isArray(e)?e:[]):h=e&&d.isPlainObject(e)?e:{},i[c]=d.extend(l,h,f)):f!==b&&(i[c]=f)}return i},d.extend({noConflict:function(b){a.$=f,b&&(a.jQuery=e);return d},isReady:!1,readyWait:1,ready:function(a){a===!0&&d.readyWait--;if(!d.readyWait||a!==!0&&!d.isReady){if(!c.body)return setTimeout(d.ready,1);d.isReady=!0;if(a!==!0&&--d.readyWait>0)return;y.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=!0;if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",A,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",A),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&I()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):H[B.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!C.call(a,"constructor")&&!C.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||C.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g<h;)if(c.apply(a[g++],e)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(var j=a[0];g<h&&c.call(j,g,j)!==!1;j=a[++g]){}return a},trim:F?function(a){return a==null?"":F.call(a)}:function(a){return a==null?"":(a+"").replace(j,"").replace(k,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var e=d.type(a);a.length==null||e==="string"||e==="function"||e==="regexp"||d.isWindow(a)?D.call(c,a):d.merge(c,a)}return c},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length==="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,b,c){var d=[],e;for(var f=0,g=a.length;f<g;f++)e=b(a[f],f,c),e!=null&&(d[d.length]=e);return d.concat.apply([],d)},guid:1,proxy:function(a,c,e){arguments.length===2&&(typeof c==="string"?(e=a,a=e[c],c=b):c&&!d.isFunction(c)&&(e=c,c=b)),!c&&a&&(c=function(){return a.apply(e||this,arguments)}),a&&(c.guid=a.guid=a.guid||c.guid||d.guid++);return c},access:function(a,c,e,f,g,h){var i=a.length;if(typeof c==="object"){for(var j in c)d.access(a,j,c[j],f,g,e);return a}if(e!==b){f=!h&&f&&d.isFunction(e);for(var k=0;k<i;k++)g(a[k],c,f?e.call(a[k],k,g(a[k],c)):e,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},_Deferred:function(){var a=[],b,c,e,f={done:function(){if(!e){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=d.type(i),j==="array"?f.done.apply(f,i):j==="function"&&a.push(i);k&&f.resolveWith(k[0],k[1])}return this},resolveWith:function(d,f){if(!e&&!b&&!c){c=1;try{while(a[0])a.shift().apply(d,f)}catch(g){throw g}finally{b=[d,f],c=0}}return this},resolve:function(){f.resolveWith(d.isFunction(this.promise)?this.promise():this,arguments);return this},isResolved:function(){return c||b},cancel:function(){e=1,a=[];return this}};return f},Deferred:function(a){var b=d._Deferred(),c=d._Deferred(),e;d.extend(b,{then:function(a,c){b.done(a).fail(c);return this},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,promise:function(a){if(a==null){if(e)return e;e=a={}}var c=z.length;while(c--)a[z[c]]=b[z[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){var b=arguments.length,c=b<=1&&a&&d.isFunction(a.promise)?a:d.Deferred(),e=c.promise();if(b>1){var f=E.call(arguments,0),g=b,h=function(a){return function(b){f[a]=arguments.length>1?E.call(arguments,0):b,--g||c.resolveWith(e,f)}};while(b--)a=f[b],a&&d.isFunction(a.promise)?a.promise().then(h(b),c.reject):--g;g||c.resolveWith(e,f)}else c!==a&&c.resolve(a);return e},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),y=d._Deferred(),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){H["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),G&&(d.inArray=function(a,b){return G.call(b,a)}),i.test("Â ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?A=function(){c.removeEventListener("DOMContentLoaded",A,!1),d.ready()}:c.attachEvent&&(A=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",A),d.ready())});return d}();(function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e),b=e=f=null}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function"),b=null;return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}})();var e=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!g(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,h=b.nodeType,i=h?d.cache:b,j=h?b[d.expando]:d.expando;if(!i[j])return;if(c){var k=e?i[j][f]:i[j];if(k){delete k[c];if(!g(k))return}}if(e){delete i[j][f];if(!g(i[j]))return}var l=i[j][f];d.support.deleteExpando||i!=a?delete i[j]:i[j]=null,l?(i[j]={},h||(i[j].toJSON=d.noop),i[j][f]=l):h&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var g=this[0].attributes,h;for(var i=0,j=g.length;i<j;i++)h=g[i].name,h.indexOf("data-")===0&&(h=h.substr(5),f(this[0],h,e[h]))}}return e}if(typeof a==="object")return this.each(function(){d.data(this,a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(c===b){e=this.triggerHandler("getData"+k[1]+"!",[k[0]]),e===b&&this.length&&(e=d.data(this[0],a),e=f(this[0],a,e));return e===b&&k[1]?this.data(k[0]):e}return this.each(function(){var b=d(this),e=[k[0],c];b.triggerHandler("setData"+k[1]+"!",e),d.data(this,a,c),b.triggerHandler("changeData"+k[1]+"!",e)})},removeData:function(a){return this.each(function(){d.removeData(this,a)})}}),d.extend({queue:function(a,b,c){if(a){b=(b||"fx")+"queue";var e=d._data(a,b);if(!c)return e||[];!e||d.isArray(c)?e=d._data(a,b,d.makeArray(c)):e.push(c);return e}},dequeue:function(a,b){b=b||"fx";var c=d.queue(a,b),e=c.shift();e==="inprogress"&&(e=c.shift()),e&&(b==="fx"&&c.unshift("inprogress"),e.call(a,function(){d.dequeue(a,b)})),c.length||d.removeData(a,b+"queue",!0)}}),d.fn.extend({queue:function(a,c){typeof a!=="string"&&(c=a,a="fx");if(c===b)return d.queue(this[0],a);return this.each(function(b){var e=d.queue(this,a,c);a==="fx"&&e[0]!=="inprogress"&&d.dequeue(this,a)})},dequeue:function(a){return this.each(function(){d.dequeue(this,a)})},delay:function(a,b){a=d.fx?d.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){d.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var h=/[\n\t\r]/g,i=/\s+/,j=/\r/g,k=/^(?:href|src|style)$/,l=/^(?:button|input)$/i,m=/^(?:button|input|object|select|textarea)$/i,n=/^a(?:rea)?$/i,o=/^(?:radio|checkbox)$/i;d.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"},d.fn.extend({attr:function(a,b){return d.access(this,a,b,!0,d.attr)},removeAttr:function(a,b){return this.each(function(){d.attr(this,a,""),this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.addClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"){var b=(a||"").split(i);for(var c=0,e=this.length;c<e;c++){var f=this[c];if(f.nodeType===1)if(f.className){var g=" "+f.className+" ",h=f.className;for(var j=0,k=b.length;j<k;j++)g.indexOf(" "+b[j]+" ")<0&&(h+=" "+b[j]);f.className=d.trim(h)}else f.className=a}}return this},removeClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"||a===b){var c=(a||"").split(i);for(var e=0,f=this.length;e<f;e++){var g=this[e];if(g.nodeType===1&&g.className)if(a){var j=(" "+g.className+" ").replace(h," ");for(var k=0,l=c.length;k<l;k++)j=j.replace(" "+c[k]+" "," ");g.className=d.trim(j)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,e=typeof b==="boolean";if(d.isFunction(a))return this.each(function(c){var e=d(this);e.toggleClass(a.call(this,c,e.attr("class"),b),b)});return this.each(function(){if(c==="string"){var f,g=0,h=d(this),j=b,k=a.split(i);while(f=k[g++])j=e?j:!h.hasClass(f),h[j?"addClass":"removeClass"](f)}else if(c==="undefined"||c==="boolean")this.className&&d._data(this,"__className__",this.className),this.className=this.className||a===!1?"":d._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(h," ").indexOf(b)>-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var k=i?f:0,l=i?f+1:h.length;k<l;k++){var m=h[k];if(m.selected&&(d.support.optDisabled?!m.disabled:m.getAttribute("disabled")===null)&&(!m.parentNode.disabled||!d.nodeName(m.parentNode,"optgroup"))){a=d(m).val();if(i)return a;g.push(a)}}if(i&&!g.length&&h.length)return d(h[f]).val();return g}if(o.test(c.type)&&!d.support.checkOn)return c.getAttribute("value")===null?"on":c.value;return(c.value||"").replace(j,"")}return b}var n=d.isFunction(a);return this.each(function(b){var c=d(this),e=a;if(this.nodeType===1){n&&(e=a.call(this,b,c.val())),e==null?e="":typeof e==="number"?e+="":d.isArray(e)&&(e=d.map(e,function(a){return a==null?"":a+""}));if(d.isArray(e)&&o.test(this.type))this.checked=d.inArray(c.val(),e)>=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=k.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&l.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var o=a.getAttributeNode("tabIndex");return o&&o.specified?o.value:m.test(a.nodeName)||n.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var p=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return p===null?b:p}h&&(a[c]=e);return a[c]}});var p=/\.(.*)$/,q=/^(?:textarea|input|select)$/i,r=/\./g,s=/ /g,t=/[^\w\s.|`]/g,u=function(a){return a.replace(t,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=v;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(){return typeof d!=="undefined"&&!d.event.triggered?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=v);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),u).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))d.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=d.event.special[h]||{};for(j=f||0;j<p.length;j++){q=p[j];if(e.guid===q.guid){if(l||n.test(q.namespace))f==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(f!=null)break}}if(p.length===0||f!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&d.removeEvent(a,h,s.handle),g=null,delete t[h]}if(d.isEmptyObject(t)){var w=s.handle;w&&(w.elem=null),delete s.events,delete s.handle,d.isEmptyObject(s)&&d.removeData(a,b,!0)}}},trigger:function(a,c,e){var f=a.type||a,g=arguments[3];if(!g){a=typeof a==="object"?a[d.expando]?a:d.extend(d.Event(f),a):d.Event(f),f.indexOf("!")>=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(p,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=!0,l[m]())}catch(q){}k&&(l["on"+m]=k),d.event.triggered=!1}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l<m;l++){var n=f[l];if(e||h.test(n.namespace)){c.handler=n.handler,c.data=n.data,c.handleObj=n;var o=n.handler.apply(this,k);o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[d.expando])return a;var e=a;a=d.Event(e);for(var f=this.props.length,g;f;)g=this.props[--f],a[g]=e[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=c.documentElement,i=c.body;a.pageX=a.clientX+(h&&h.scrollLeft||i&&i.scrollLeft||0)-(h&&h.clientLeft||i&&i.clientLeft||0),a.pageY=a.clientY+(h&&h.scrollTop||i&&i.scrollTop||0)-(h&&h.clientTop||i&&i.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:d.proxy,special:{ready:{setup:d.bindReady,teardown:d.noop},live:{add:function(a){d.event.add(this,F(a.origType,a.selector),d.extend({},a,{handler:E,guid:a.handler.guid}))},remove:function(a){d.event.remove(this,F(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){d.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},d.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},d.Event=function(a){if(!this.preventDefault)return new d.Event(a);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?w:v):this.type=a,this.timeStamp=d.now(),this[d.expando]=!0},d.Event.prototype={preventDefault:function(){this.isDefaultPrevented=w;var a=this.originalEvent;a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=w;var a=this.originalEvent;a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=w,this.stopPropagation()},isDefaultPrevented:v,isPropagationStopped:v,isImmediatePropagationStopped:v};var x=function(a){var b=a.relatedTarget;try{if(b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&(a.type=a.data,d.event.handle.apply(this,arguments))}catch(e){}},y=function(a){a.type=a.data,d.event.handle.apply(this,arguments)};d.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){d.event.special[a]={setup:function(c){d.event.add(this,b,c&&c.selector?y:x,a)},teardown:function(a){d.event.remove(this,b,a&&a.selector?y:x)}}}),d.support.submitBubbles||(d.event.special.submit={setup:function(a,b){if(this.nodeName&&this.nodeName.toLowerCase()!=="form")d.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&d(b).closest("form").length&&C("submit",this,arguments)}),d.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&d(b).closest("form").length&&a.keyCode===13&&C("submit",this,arguments)});else return!1},teardown:function(a){d.event.remove(this,".specialSubmit")}});if(!d.support.changeBubbles){var z,A=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},B=function B(a){var c=a.target,e,f;if(q.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=A(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:B,beforedeactivate:B,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&B.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&B.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",A(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in z)d.event.add(this,c+".specialChange",z[c]);return q.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return q.test(this.nodeName)}},z=d.event.special.change.filters,z.focus=z.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function c(a){a=d.event.fix(a),a.type=b;return d.event.handle.call(this,a)}d.event.special[b]={setup:function(){this.addEventListener(a,c,!0)},teardown:function(){this.removeEventListener(a,c,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i<j;i++)d.event.add(this[i],a,h,e);return this}}),d.fn.extend({unbind:function(a,b){if(typeof a!=="object"||a.preventDefault)for(var e=0,f=this.length;e<f;e++)d.event.remove(this[e],a,b);else for(var c in a)this.unbind(c,a[c]);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){d.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var c=d.Event(a);c.preventDefault(),c.stopPropagation(),d.event.trigger(c,b,this[0]);return c.result}},toggle:function(a){var b=arguments,c=1;while(c<b.length)d.proxy(a,b[c++]);return this.click(d.proxy(a,function(e){var f=(d._data(this,"lastToggle"+a.guid)||0)%c;d._data(this,"lastToggle"+a.guid,f+1),e.preventDefault();return b[f].apply(this,arguments)||!1}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var D={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};d.each(["live","die"],function(a,c){d.fn[c]=function(a,e,f,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:d(this.context);if(typeof a==="object"&&!a.preventDefault){for(var o in a)n[c](o,e,a[o],m);return this}d.isFunction(e)&&(f=e,e=b),a=(a||"").split(" ");while((h=a[i++])!=null){j=p.exec(h),k="",j&&(k=j[0],h=h.replace(p,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,h==="focus"||h==="blur"?(a.push(D[h]+k),h=h+k):h=(D[h]||h)+k;if(c==="live")for(var q=0,r=n.length;q<r;q++)d.event.add(n[q],"live."+F(h,m),{data:e,selector:m,handler:f,origType:h,origHandler:f,preType:l});else n.unbind("live."+F(h,m),f)}return this}}),d.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){d.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!=="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!=="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(f){if(f===!0)continue}else g=o=!0}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b==="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1){}a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!=="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!=="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!=="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.getAttribute("type")},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(a===b){g=!0;return 0}if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector,d=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(e){d=!0}b&&(k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(d||!l.match.PSEUDO.test(c)&&!/!=/.test(c))return b.call(a,c)}catch(e){}return k(c,null,null,[a]).length>0})}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};d.find=k,d.expr=k.selectors,d.expr[":"]=d.expr.filters,d.unique=k.uniqueSort,d.text=k.getText,d.isXMLDoc=k.isXML,d.contains=k.contains}();var G=/Until$/,H=/^(?:parents|prevUntil|prevAll)/,I=/,/,J=/^.[^:#\[\.,]*$/,K=Array.prototype.slice,L=d.expr.match.POS,M={children:!0,contents:!0,next:!0,prev:!0};d.fn.extend({find:function(a){var b=this.pushStack("","find",a),c=0;for(var e=0,f=this.length;e<f;e++){c=b.length,d.find(a,this[e],b);if(e>0)for(var g=c;g<b.length;g++)for(var h=0;h<c;h++)if(b[h]===b[g]){b.splice(g--,1);break}}return b},has:function(a){var b=d(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(d.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(O(this,a,!1),"not",a)},filter:function(a){return this.pushStack(O(this,a,!0),"filter",a)},is:function(a){return!!a&&d.filter(a,this).length>0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e<f;e++)i=a[e],j[i]||(j[i]=d.expr.match.POS.test(i)?d(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=L.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e<f;e++){g=this[e];while(g){if(l?l.index(g)>-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(N(c[0])||N(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=K.call(arguments);G.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!M[a]?d.unique(f):f,(this.length>1||I.test(e))&&H.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var P=/ jQuery\d+="(?:\d+|null)"/g,Q=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,S=/<([\w:]+)/,T=/<tbody/i,U=/<|&#?\w+;/,V=/<(?:script|object|embed|option|style)/i,W=/checked\s*(?:[^=]|=\s*.checked.)/i,X={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};X.optgroup=X.option,X.tbody=X.tfoot=X.colgroup=X.caption=X.thead,X.th=X.td,d.support.htmlSerialize||(X._default=[1,"div<div>","</div>"]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(P,""):null;if(typeof a!=="string"||V.test(a)||!d.support.leadingWhitespace&&Q.test(a)||X[(S.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(R,"<$1></$2>");try{for(var c=0,e=this.length;c<e;c++)this[c].nodeType===1&&(d.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(f){this.empty().append(a)}}return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(d.isFunction(a))return this.each(function(b){var c=d(this),e=c.html();c.replaceWith(a.call(this,b,e))});typeof a!=="string"&&(a=d(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;d(this).remove(),b?d(b).before(a):d(c).append(a)})}return this.pushStack(d(d.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,e){var f,g,h,i,j=a[0],k=[];if(!d.support.checkClone&&arguments.length===3&&typeof j==="string"&&W.test(j))return this.each(function(){d(this).domManip(a,c,e,!0)});if(d.isFunction(j))return this.each(function(f){var g=d(this);a[0]=j.call(this,f,c?g.html():b),g.domManip(a,c,e)});if(this[0]){i=j&&j.parentNode,d.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?f={fragment:i}:f=d.buildFragment(a,this,k),h=f.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&d.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)e.call(c?Y(this[l],g):this[l],f.cacheable||m>1&&l<n?d.clone(h,!0,!0):h)}k.length&&d.each(k,ba)}return this}}),d.buildFragment=function(a,b,e){var f,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]==="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!V.test(a[0])&&(d.support.checkClone||!W.test(a[0]))&&(g=!0,h=d.fragments[a[0]],h&&(h!==1&&(f=h))),f||(f=i.createDocumentFragment(),d.clean(a,i,f,e)),g&&(d.fragments[a[0]]=h?f:1);return{fragment:f,cacheable:g}},d.fragments={},d.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){d.fn[a]=function(c){var e=[],f=d(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&f.length===1){f[b](this[0]);return this}for(var h=0,i=f.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){$(a,e),f=_(a),g=_(e);for(h=0;f[h];++h)$(f[h],g[h])}if(b){Z(a,e);if(c){f=_(a),g=_(e);for(h=0;f[h];++h)Z(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||U.test(i)){if(typeof i==="string"){i=i.replace(R,"<$1></$2>");var j=(S.exec(i)||["",""])[1].toLowerCase(),k=X[j]||X._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=T.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]==="<table>"&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&Q.test(i)&&m.insertBefore(b.createTextNode(Q.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bb=/alpha\([^)]*\)/i,bc=/opacity=([^)]*)/,bd=/-([a-z])/ig,be=/([A-Z])/g,bf=/^-?\d+(?:px)?$/i,bg=/^-?\d/,bh={position:"absolute",visibility:"hidden",display:"block"},bi=["Left","Right"],bj=["Top","Bottom"],bk,bl,bm,bn=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bk(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bk)return bk(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bd,bn)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bo(a,b,e):d.swap(a,bh,function(){f=bo(a,b,e)});if(f<=0){f=bk(a,b,b),f==="0px"&&bm&&(f=bm(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bf.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return bc.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bb.test(f)?f.replace(bb,e):c.filter+" "+e}}),c.defaultView&&c.defaultView.getComputedStyle&&(bl=function(a,c,e){var f,g,h;e=e.replace(be,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bm=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bf.test(d)&&bg.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bk=bl||bm,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var bp=/%20/g,bq=/\[\]$/,br=/\r?\n/g,bs=/#.*$/,bt=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bu=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bv=/(?:^file|^widget|\-extension):$/,bw=/^(?:GET|HEAD)$/,bx=/^\/\//,by=/\?/,bz=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bA=/^(?:select|textarea)/i,bB=/\s+/,bC=/([?&])_=[^&]*/,bD=/(^|\-)([a-z])/g,bE=function(a,b,c){return b+c.toUpperCase()},bF=/^([\w\+\.\-]+:)\/\/([^\/?#:]*)(?::(\d+))?/,bG=d.fn.load,bH={},bI={},bJ,bK;try{bJ=c.location.href}catch(bL){bJ=c.createElement("a"),bJ.href="",bJ=bJ.href}bK=bF.exec(bJ.toLowerCase()),d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bG)return bG.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("<div>").append(c.replace(bz,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bA.test(this.nodeName)||bu.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(br,"\r\n")}}):{name:b.name,value:c.replace(br,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bJ,isLocal:bv.test(bK[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bM(bH),ajaxTransport:bM(bI),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bP(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bQ(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bD,bE)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bt.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bs,"").replace(bx,bK[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bB),e.crossDomain||(q=bF.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bK[1]||q[2]!=bK[2]||(q[3]||(q[1]==="http:"?80:443))!=(bK[3]||(bK[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bN(bH,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!bw.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(by.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bC,"$1_="+w);e.url=x+(x===e.url?(by.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bN(bI,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bO(g,a[g],c,f);return e.join("&").replace(bp,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bR=d.now(),bS=/(\=)\?(&|$)|()\?\?()/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bR++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bS.test(b.url)||f&&bS.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bS,l),b.url===j&&(f&&(k=k.replace(bS,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bT=d.now(),bU,bV;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bX()||bY()}:bX,bV=d.ajaxSettings.xhr(),d.support.ajax=!!bV,d.support.cors=bV&&"withCredentials"in bV,bV=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),(!a.crossDomain||a.hasContent)&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bU[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bU||(bU={},bW()),h=bT++,g.onreadystatechange=bU[h]=c):c()},abort:function(){c&&c(0,1)}}}});var bZ={},b$=/^(?:toggle|show|hide)$/,b_=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,ca,cb=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(cc("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)e=this[g],f=e.style.display,!d._data(e,"olddisplay")&&f==="none"&&(f=e.style.display=""),f===""&&d.css(e,"display")==="none"&&d._data(e,"olddisplay",cd(e.nodeName));for(g=0;g<h;g++){e=this[g],f=e.style.display;if(f===""||f==="none")e.style.display=d._data(e,"olddisplay")||""}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cc("hide",3),a,b,c);for(var e=0,f=this.length;e<f;e++){var g=d.css(this[e],"display");g!=="none"&&!d._data(this[e],"olddisplay")&&d._data(this[e],"olddisplay",g)}for(e=0;e<f;e++)this[e].style.display="none";return this},_toggle:d.fn.toggle,toggle:function(a,b,c){var e=typeof a==="boolean";d.isFunction(a)&&d.isFunction(b)?this._toggle.apply(this,arguments):a==null||e?this.each(function(){var b=e?a:d(this).is(":hidden");d(this)[b?"show":"hide"]()}):this.animate(cc("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,e){var f=d.speed(b,c,e);if(d.isEmptyObject(a))return this.each(f.complete);return this[f.queue===!1?"each":"queue"](function(){var b=d.extend({},f),c,e=this.nodeType===1,g=e&&d(this).is(":hidden"),h=this;for(c in a){var i=d.camelCase(c);c!==i&&(a[i]=a[c],delete a[c],c=i);if(a[c]==="hide"&&g||a[c]==="show"&&!g)return b.complete.call(this);if(e&&(c==="height"||c==="width")){b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(d.css(this,"display")==="inline"&&d.css(this,"float")==="none")if(d.support.inlineBlockNeedsLayout){var j=cd(this.nodeName);j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)}else this.style.display="inline-block"}d.isArray(a[c])&&((b.specialEasing=b.specialEasing||{})[c]=a[c][1],a[c]=a[c][0])}b.overflow!=null&&(this.style.overflow="hidden"),b.curAnim=d.extend({},a),d.each(a,function(c,e){var f=new d.fx(h,b,c);if(b$.test(e))f[e==="toggle"?g?"show":"hide":e](a);else{var i=b_.exec(e),j=f.cur();if(i){var k=parseFloat(i[2]),l=i[3]||(d.cssNumber[c]?"":"px");l!=="px"&&(d.style(h,c,(k||1)+l),j=(k||1)/f.cur()*j,d.style(h,c,j+l)),i[1]&&(k=(i[1]==="-="?-1:1)*k+j),f.custom(j,k,l)}else f.custom(j,e,"")}});return!0})},stop:function(a,b){var c=d.timers;a&&this.queue([]),this.each(function(){for(var a=c.length-1;a>=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:cc("show",1),slideUp:cc("hide",1),slideToggle:cc("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!ca&&(ca=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||d.fx.stop()},interval:13,stop:function(){clearInterval(ca),ca=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){d.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),d.expr&&d.expr.filters&&(d.expr.filters.animated=function(a){return d.grep(d.timers,function(b){return a===b.elem}).length});var ce=/^t(?:able|d|h)$/i,cf=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?d.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,g=f.documentElement;if(!c||!d.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=f.body,i=cg(f),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||d.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||d.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:d.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);d.offset.initialize();var c,e=b.offsetParent,f=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(d.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===e&&(l+=b.offsetTop,m+=b.offsetLeft,d.offset.doesNotAddBorder&&(!d.offset.doesAddBorderForTableAndCells||!ce.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),f=e,e=b.offsetParent),d.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;d.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},d.offset={initialize:function(){var a=c.body,b=c.createElement("div"),e,f,g,h,i=parseFloat(d.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),a=b=e=f=g=h=null,d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=e==="absolute"&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=cf.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!cf.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=cg(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=cg(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window); \ No newline at end of file
diff --git a/start/livetiles/rss/rss.png b/start/livetiles/rss/rss.png
new file mode 100644
index 0000000..ec44823
--- /dev/null
+++ b/start/livetiles/rss/rss.png
Binary files differ
diff --git a/start/livetiles/weather/MetroJs.lt.js b/start/livetiles/weather/MetroJs.lt.js
new file mode 100644
index 0000000..c0d0331
--- /dev/null
+++ b/start/livetiles/weather/MetroJs.lt.js
@@ -0,0 +1,1054 @@
+/*
+* Metro JS for jQuery
+* http://drewgreenwell.com/
+* For details and usage info see: http://drewgreenwell.com/projects/metrojs
+
+Copyright (C) 2012, Drew Greenwell
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+(function () {
+
+jQuery.fn.metrojs = {};
+
+
+
+/* Preload Images */
+// Usage: jQuery(['img1.jpg','img2.jpg']).metrojs.preloadImages(function(){ ... });
+// Callback function gets called after all images are preloaded
+jQuery.fn.metrojs.preloadImages = function (callback) {
+ var checklist = jQuery(this).toArray();
+ var $img = jQuery("<img style='display:none;'>").appendTo("body");
+ jQuery(this).each(function () {
+ $img.attr({ src: this }).load(function () {
+ var src = jQuery(this).attr('src');
+ for (var i = 0; i < checklist.length; i++) {
+ if (checklist[i] == element) { checklist.splice(i, 1); }
+ }
+ if (checklist.length == 0) { callback(); }
+ });
+ });
+ $img.remove();
+};
+
+
+
+ jQuery.fn.liveTile = function (method) {
+ if (pubMethods[method]) {
+ var args = [];
+ for (var i = 1; i <= arguments.length; i++) {
+ args[i - 1] = arguments[i];
+ }
+ return pubMethods[method].apply(this, args);
+ } else if (typeof method === 'object' || !method) {
+ return pubMethods.init.apply(this, arguments);
+ } else {
+ jQuery.error('Method ' + method + ' does not exist on jQuery.liveTile');
+ }
+ };
+ jQuery.fn.liveTile.State = {
+ RUNNING: "running",
+ STOPPED: "stopped"
+ };
+ jQuery.fn.liveTile.defaults = {
+ mode: 'slide', // 'slide', 'flip', 'flip-list'
+ speed: 500, // how fast should animations be performed, in milliseconds
+ initDelay: -1, // how long to wait before the initial animation
+ delay: 5000, // how long to wait between animations
+ stops: "100%", // how much of the back tile should 'slide' reveal before starting a delay
+ stack: false, // should tiles in slide mode appear stacked (e.g Me tile)
+ direction: 'vertical', // which direction should animations be performed(horizontal | vertical)
+ tileCssSelector: '>div,>li', // The selector used by slide, flip, and flip-list mode to choose the front and back containers
+ listTileCssSelector: '>div,>p,>img,>a', // The selector used by flip-tile mode to choose the front and back containers.2
+ imageCssSelector: '>img,>a>img', // the selector used to choose a an image to apply a src or background to
+ ignoreDataAttributes: false, // should data attributes be ignored
+ pauseOnHover: false, // should tile animations be paused on hover in and restarted on hover out
+ repeatCount: -1, // number of times to repeat the animation
+ animationComplete: function (tileData, $front, $back) {
+ },
+ preloadImages: false, // should the images arrays be preloaded
+ fadeSlideSwap: false, // fade any image swaps on slides (e.g. mode: 'slide', stops:'50%', frontImages: ['img1.jpg', 'img2.jpg'])
+ appendBack: true, // appends the .last tile if one doesnt exist (slide and flip only)
+ triggerDelay: function (idx) { // used by flip-list to decide how random the tile flipping should be
+ return Math.random() * 3000;
+ },
+ alwaysTrigger: false, // used by flip-list to decide if all tiles are triggered every time
+ frontImages: null, // a list of images to use for the front
+ frontIsRandom: true, // should images be chosen at random or in order
+ frontIsBackgroundImage: false, // set the src attribute or css background-image property
+ frontIsInGrid: false, // only chooses one item for each iteration in flip-list
+ backImages: null, // a list of images to use for the back
+ backIsRandom: true, // should images be chosen at random or in order
+ backIsBackgroundImage: false, // set the src attribute or css background-image property
+ backIsInInGrid: false, // only chooses one item for each iteration in flip-list
+ flipListOnHover: false, // should items in flip-list flip and stop when hovered
+ useModernizr: (typeof (window.Modernizr) != "undefined"), // checks to see if modernizer is already in use
+ useHardwareAccel: true, // should css animations, transitions and transforms be used when available
+ $front: null, // the jQuery element to use as the front face of the tile; this will bypass tileCssSelector
+ $back: null // the jQuery element to use as the back face of the tile; this will bypass tileCssSelector
+ };
+
+ var privMethods = {
+ //a shuffle method to provide more randomness than sort
+ //credit: http://javascript.about.com/library/blshuffle.htm
+ //*avoiding prototype for sharepoint compatability
+ shuffleArray: function (array) {
+ var s = [];
+ while (array.length) s.push(array.splice(Math.random() * array.length, 1));
+ while (s.length) array.push(s.pop());
+ return array;
+ },
+ setTimer: function (func, interval) {
+ return setInterval(func, interval);
+ },
+ stopTimer: function (handle) {
+ clearInterval(handle);
+ return null;
+ },
+ setExtraProperties: function ($ele, imageObj) {
+ if (typeof (imageObj.alt) != "undefined")
+ $ele.attr("alt", imageObj.alt);
+ var $parent = $ele.parent();
+ if (typeof (imageObj.href) != "undefined" && $parent[0].tagName == "A") {
+ $parent.attr("href", imageObj.href);
+ if (typeof (imageObj.target) != "undefined")
+ $parent.attr("target", imageObj.target);
+ if (typeof (imageObj.onclick) != "undefined") {
+ $parent.attr("onclick", imageObj.onclick);
+ $ele.attr("onclick", "");
+ }
+ } else {
+ if (typeof (imageObj.onclick) != "undefined")
+ $ele.attr("onclick", imageObj.onclick);
+ }
+ },
+ // changes the src or background image property of an image in a flip-list
+ handleListItemSwap: function ($cont, image, isBgroundImg, stgs) {
+ var $img = $cont.find(stgs.imageCssSelector);
+ if (!isBgroundImg) {
+ $img.attr("src", image.src);
+ } else {
+ $img.css({ backgroundImage: "url('" + image.src + "')" });
+ }
+ privMethods.setExtraProperties($img, image);
+ },
+ handleSlide: function (isSlidingUp, $cont, swapFrontSource, stgs, index) {
+ if (!isSlidingUp && swapFrontSource) {
+ var image;
+ var $img = $cont.find(stgs.imageCssSelector);
+ image = stgs.frontImages[index];
+ if (stgs.fadeSlideSwap == true) {
+ $img.fadeOut(function () {
+ $img.attr("src", image.src);
+ privMethods.setExtraProperties($img, image);
+ $img.fadeIn();
+ });
+ } else {
+ $img.attr("src", image.src);
+ privMethods.setExtraProperties($img, image);
+ }
+ }
+
+ },
+ // fired if an image swap is needed. gets the image and applies properties
+ handleSwap: function ($cont, isFront, stgs, index) {
+ var image = privMethods.getImage(isFront, stgs, index);
+ var $img = $cont.find(stgs.imageCssSelector);
+ $img.attr("src", image.src);
+ privMethods.setExtraProperties($img, image);
+ },
+ // get an image from the frontImages or backImages array
+ getImage: function (isFront, stgs, index) {
+ var imgs = (isFront) ? stgs.frontImages : stgs.backImages;
+ var image;
+ image = imgs[Math.min(index, imgs.length - 1)];
+ return image;
+ }
+ };
+ var pubMethods = {
+ init: function (options) {
+ // Setup the public options for the livetile
+ var stgs = {};
+ jQuery.extend(stgs, jQuery.fn.liveTile.defaults, options);
+
+ //is there at least one item in the front images list?
+ var swapFrontSource = (typeof (stgs.frontImages) == 'object' && (stgs.frontImages instanceof Array) && stgs.frontImages.length > 0);
+ //is there at least one item in the back images list?
+ var swapBackSource = (typeof (stgs.backImages) == 'object' && (stgs.backImages instanceof Array) && stgs.backImages.length > 0);
+ var canTransform = false;
+ var canTransition = false;
+ var canTransform3d = false;
+ var canAnimate = false;
+ var canFlip3d = stgs.useHardwareAccel;
+ if (stgs.useHardwareAccel == true) {
+ if (stgs.useModernizr == false) {
+ //determine if the browser supports the neccessary accelerated features
+ if (typeof (window.MetroModernizr) != "undefined") {
+ canTransform = window.MetroModernizr.canTransform;
+ canTransition = window.MetroModernizr.canTransition;
+ canTransform3d = window.MetroModernizr.canTransform3d;
+ canAnimate = window.MetroModernizr.canAnimate;
+ } else {
+ window.MetroModernizr = {};
+ /***** check for browser capabilities credit: modernizr-1.7 *****/
+ var mod = 'metromodernizr';
+ var docElement = document.documentElement;
+ var docHead = document.head || document.getElementsByTagName('head')[0];
+ var modElem = document.createElement(mod);
+ var m_style = modElem.style;
+ var prefixes = ' -webkit- -moz- -o- -ms- -khtml- '.split(' ');
+ var domPrefixes = 'Webkit Moz O ms Khtml'.split(' ');
+ var test_props = function (props, callback) {
+ for (var i in props) {
+ if (m_style[props[i]] !== undefined && (!callback || callback(props[i], modElem))) {
+ return true;
+ }
+ }
+ };
+ var test_props_all = function (prop, callback) {
+
+ var uc_prop = prop.charAt(0).toUpperCase() + prop.substr(1),
+ props = (prop + ' ' + domPrefixes.join(uc_prop + ' ') + uc_prop).split(' ');
+
+ return !!test_props(props, callback);
+ };
+ var test_3d = function () {
+ var ret = !!test_props(['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']);
+ if (ret && 'webkitPerspective' in docElement.style) {
+ // Webkit allows this media query to succeed only if the feature is enabled.
+ // '@media (transform-3d),(-o-transform-3d),(-moz-transform-3d),(-ms-transform-3d),(-webkit-transform-3d),(modernizr){ ... }'
+ ret = testMediaQuery('@media (' + prefixes.join('transform-3d),(') + 'metromodernizr)');
+ }
+ return ret;
+ };
+ var testMediaQuery = function (mq) {
+ var st = document.createElement('style'),
+ div = document.createElement('div'),
+ ret;
+ st.textContent = mq + '{#metromodernizr{height:3px}}';
+ docHead.appendChild(st);
+ div.id = 'metromodernizr';
+ docElement.appendChild(div);
+ ret = div.offsetHeight === 3;
+ st.parentNode.removeChild(st);
+ div.parentNode.removeChild(div);
+ return !!ret;
+ };
+ canTransform = !!test_props(['transformProperty', 'WebkitTransform', 'MozTransform', 'OTransform', 'msTransform']);
+ canTransition = test_props_all('transitionProperty');
+ canTransform3d = test_3d();
+ canAnimate = test_props_all('animationName');
+ window.MetroModernizr.canTransform = canTransform;
+ window.MetroModernizr.canTransition = canTransition;
+ window.MetroModernizr.canTransform3d = canTransform3d;
+ window.MetroModernizr.canAnimate = canAnimate;
+ docElement = null;
+ docHead = null;
+ modElem = null;
+ m_style = null;
+ }
+ } else {
+ canTransform = jQuery("html").hasClass("csstransforms");
+ canTransition = jQuery("html").hasClass("csstransitions");
+ canTransform3d = jQuery("html").hasClass("csstransforms3d");
+ canAnimate = jQuery("html").hasClass("cssanimations");
+ }
+ }
+ canFlip3d = canFlip3d && canAnimate && canTransform && canTransform3d;
+ /****** end capabilities check ******/
+ if (stgs.preloadImages) {
+ if (swapFrontSource)
+ jQuery(stgs.frontImages).metrojs.preloadImages(function () { });
+ if (swapBackSource)
+ jQuery(stgs.backImages).metrojs.preloadImages(function () { });
+ }
+ return jQuery(this).each(function (tileIndex) {
+ var $this = jQuery(this);
+ $this.slideTimer = null;
+ var tdata = {}; //an object to store settings for later access
+ tdata.state = $this.slideTimer == null ? jQuery.fn.liveTile.State.STOPPED : jQuery.fn.liveTile.State.RUNNING;
+ tdata.speed = (!stgs.ignoreDataAttributes && typeof ($this.data("speed")) != "undefined") ? $this.data("speed") : stgs.speed;
+ tdata.delay = (!stgs.ignoreDataAttributes && typeof ($this.data("delay")) != "undefined") ? $this.data("delay") : stgs.delay;
+ if (tdata.delay < -1)
+ tdata.delay = stgs.triggerDelay(tileIndex);
+ else if (tdata.delay < 0)
+ tdata.delay = 3500 + (Math.random() * 4501);
+ tdata.stops = (!stgs.ignoreDataAttributes && typeof ($this.data("stops")) != "undefined") ? $this.data("stops") : stgs.stops;
+ tdata.stack = (!stgs.ignoreDataAttributes && typeof ($this.data("stack")) != "undefined") ? $this.data("stack") : stgs.mode;
+ tdata.mode = (!stgs.ignoreDataAttributes && typeof ($this.data("mode")) != "undefined") ? $this.data("mode") : stgs.mode;
+ tdata.direction = (!stgs.ignoreDataAttributes && typeof ($this.data("direction")) != "undefined") ? $this.data("direction") : stgs.direction;
+ tdata.useHwAccel = (!stgs.ignoreDataAttributes && typeof ($this.data("ha")) != "undefined") ? $this.data("ha") : stgs.useHardwareAccel;
+ tdata.initDelay = (!stgs.ignoreDataAttributes && typeof ($this.data("initdelay")) != "undefined") ? $this.data("initdelay") : (stgs.initDelay < 0) ? tdata.delay : stgs.initDelay;
+ tdata.repeatCount = (!stgs.ignoreDataAttributes && typeof ($this.data("repeat")) != "undefined") ? $this.data("repeat") : stgs.repeatCount;
+ tdata.hasRun = false; // init delay flag
+ tdata.loopCount = 0;
+ tdata.slideIndex = 0;
+ //convert stops if needed
+ tdata.stops = (typeof (stgs.stops) == 'object' && (stgs.stops instanceof Array)) ? stgs.stops : ('' + tdata.stops).split(',');
+ //add the mode to the tile if it's not already there.
+ $this.addClass(tdata.mode);
+ var $tileContainer = $this.find(stgs.tileCssSelector);
+ var $firstContainer = null;
+ if(stgs.$front != null && stgs.$front.length > 0){
+ $firstContainer = (tdata.mode == "flip-list") ? null : (tdata.mode == 'slide') ?
+ stgs.$front.addClass('slide-front') :
+ stgs.$front.addClass('flip-front');
+ }else{
+ $firstContainer = (tdata.mode == "flip-list") ? null : (tdata.mode == 'slide') ?
+ $tileContainer.first().addClass('slide-front') :
+ $tileContainer.first().addClass('flip-front');
+ }
+ var lClass = (tdata.mode == 'slide') ? 'slide-back' : 'flip-back';
+ var $scndContainer = null;
+ if(stgs.$back != null && stgs.$back.length > 0){
+ $scndContainer = (tdata.mode == "flip-list") ? null : stgs.$back.addClass(lClass);
+ }else{
+ $scndContainer = (tdata.mode == "flip-list") ? null : ($tileContainer.length > 1) ?
+ $tileContainer.last().addClass(lClass) :
+ (stgs.appendBack == true) ?
+ jQuery('<div class="' + lClass + '"></div>').appendTo($this) :
+ jQuery('<div></div>');
+ }
+ var height = $this.height();
+ var width = $this.width();
+ var margin = (tdata.direction == "vertical") ? height / 2 : width / 2;
+ var isReversed = false;
+
+ var staticCount = 0;
+ var staticIndexBack = 0;
+ var staticIndexFront = 0;
+ var doAnimations = false;
+ var flistData = []; // an array to cache flip list selectors
+ var frontRandomBag = [];
+ var prevFrontIndex = -1;
+ var backRandomBag = [];
+ var prevBackIndex = -1;
+ /* Mouse over and out functions*/
+
+ if (stgs.pauseOnHover) {
+ $this.find(stgs.tileCssSelector).hover(
+ function () {
+ tdata.stopTimer(false);
+ },
+ function () {
+ tdata.setTimer();
+ });
+ }
+ // prep tiles
+ if (tdata.mode == 'flip-list') {
+ $this.find(stgs.tileCssSelector).each(function () {
+ var $li = jQuery(this);
+ var $front = stgs.$front != null ? stgs.$front : $li.find(stgs.listTileCssSelector).first().addClass("flip-front");
+ if ($li.find(stgs.listTileCssSelector).length == 1 && stgs.appendBack == true) {
+ $li.append("<div></div>");
+ }
+ var $back = stgs.$back != null ? stgs.$back : $li.find(stgs.listTileCssSelector).last().addClass("flip-back").css({ marginTop: "0px" });
+ if (canFlip3d && tdata.useHwAccel) {
+ $li.addClass("ha");
+ $front.addClass("ha").data("tile", { animating: false });
+ $back.addClass("ha").data("tile", { animating: false });
+ if (stgs.flipListOnHover == true) {
+ $front.bind("mouseout.liveTile", null, function () {
+ $this.flipListItem(false, $li, $back, $front);
+ });
+ $back.bind("mouseout.liveTile", null, function () {
+ $this.flipListItem(true, $li, $front, $back);
+ });
+ }
+ } else {
+ if (stgs.flipListOnHover == true) {
+ $front.bind("mouseout.liveTile", function () {
+ $this.flipListItem(true, $li, $front, $back);
+ });
+ $back.bind("mouseout.liveTile", function () {
+ $this.flipListItem(false, $li, $back, $front);
+ });
+ }
+ }
+ });
+ } else if (tdata.mode == 'slide') {
+ if (tdata.stack == true) {
+ if (tdata.direction == "vertical") {
+ $scndContainer.css({ top: -height + 'px' });
+ } else {
+ $scndContainer.css({ left: -width + 'px' });
+ }
+ }
+ if (canTransition && tdata.useHwAccel) {
+ $this.addClass("ha");
+ $firstContainer.addClass("ha").data("tile", { animating: false });
+ }
+ } else if (tdata.mode == 'flip') {
+ if (canFlip3d && tdata.useHwAccel) {
+ $this.addClass("ha");
+ $firstContainer.addClass("ha").data("tile", { animating: false });
+ $scndContainer.addClass("ha").data("tile", { animating: false });
+ } else {
+ var fCss = (tdata.direction == "vertical") ?
+ { height: '0px', width: width + 'px', marginTop: margin + 'px', opacity: '0'} :
+ { height: '100%', width: '0px !important', marginLeft: margin + 'px', opacity: '0' };
+ var fCss2 = (tdata.direction == "vertical") ?
+ { height: '100%', width: '100%', marginTop: '0px', opacity: '1'} :
+ { height: '100%', width: '100%', marginLeft: '0px', opacity: '1' };
+ $scndContainer.css(fCss);
+ $firstContainer.css(fCss2);
+ //temp fix
+ // TODO: debug and remove instances of jQuery.browser for compatibility with jq 1.8+
+ if (tdata.repeatCount > -1 && jQuery.browser.msie) {
+ tdata.repeatCount += 1;
+ }
+ // if (tdata.direction == "horizontal")
+ // $scndContainer.css({ marginLeft: $scndContainer.width() / 2 + 'px', width: '0px' });
+ // else
+ // $scndContainer.css({ marginTop: $scndContainer.height() / 2 + 'px', height: '0px' });
+ }
+ }
+
+
+ //slide animation
+ $this.slide = function (callback) {
+ if (typeof (callback) == "undefined" || callback == null)
+ callback = null;
+ if (tdata.repeatCount > -1) {
+ if (tdata.loopCount > tdata.repeatCount) {
+ tdata.stopTimer(false);
+ tdata.loopCount = 0;
+ tdata.hasRun = false;
+ $this.data("LiveTile", tdata);
+ return;
+ }
+ }
+ if (!doAnimations)
+ return;
+ var clojIsReversed = isReversed;
+ var fData = $firstContainer.data("tile");
+ var stop = jQuery.trim(tdata.stops[tdata.slideIndex]);
+ var pxIdx = stop.indexOf('px');
+ var offset = 0;
+ var amount = 0
+ var metric = (tdata.direction == "vertical") ? height : width;
+ var prop = (tdata.direction == "vertical") ? "top" : "left";
+ if (pxIdx > 0) {
+ amount = parseInt(stop.substring(0, pxIdx));
+ offset = (amount - metric) + 'px';
+ } else {
+ //is a percentage
+ amount = parseInt(stop.replace('%', ''));
+ offset = (amount - 100) + '%';
+ }
+ if (canTransition && tdata.useHwAccel) {
+ if (typeof (fData.animated) != "undefined" && fData.animated == true)
+ return;
+ fData.animated = true;
+ var css = {
+ WebkitTransitionProperty: prop, WebkitTransitionDuration: tdata.speed + 'ms',
+ MozTransitionProperty: prop, MozTransitionDuration: tdata.speed + 'ms',
+ OTransitionProperty: prop, OTransitionDuration: tdata.speed + 'ms',
+ msTransitionProperty: prop, msTransitionDuration: tdata.speed + 'ms',
+ KhtmlTransitionProperty: prop, KhtmlTransitionDuration: tdata.speed + 'ms',
+ TransitionProperty: prop, TransitionDuration: tdata.speed + 'ms'
+ };
+ if (tdata.direction == "vertical") {
+ css.top = (clojIsReversed && tdata.stops.length == 1) ? "0px" : stop;
+ } else {
+ css.left = (clojIsReversed && tdata.stops.length == 1) ? "0px" : stop;
+ }
+ $firstContainer.css(css);
+ if (tdata.stack == true) {
+ if (tdata.direction == "vertical") {
+ css.top = (clojIsReversed && tdata.stops.length == 1) ? -metric + 'px' : offset;
+ } else {
+ css.left = (clojIsReversed && tdata.stops.length == 1) ? -metric + 'px' : offset;
+ }
+ $scndContainer.css(css);
+ }
+ window.setTimeout(function () {
+ var index = staticCount;
+ if (swapFrontSource && stgs.frontIsRandom) {
+ //make sure the random bag is ready
+ if (frontRandomBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevBackIndex || stgs.frontImages.length == 1)
+ frontRandomBag[i] = i;
+ }
+ frontRandomBag = privMethods.shuffleArray(frontRandomBag);
+ }
+ index = frontRandomBag.pop();
+ prevFrontIndex = index;
+ }
+ privMethods.handleSlide(clojIsReversed, $firstContainer, swapFrontSource, stgs, index);
+ fData.animated = false;
+ $firstContainer.data("tile", fData);
+ if (!clojIsReversed && swapFrontSource) {
+ staticCount += 1;
+ if (staticCount >= stgs.frontImages.length)
+ staticCount = 0;
+ }
+ stgs.animationComplete(tdata, $firstContainer, $scndContainer);
+ if (callback != null)
+ callback();
+ }, tdata.speed);
+ } else {
+ if ($firstContainer.is(':animated')) {
+ return;
+ }
+ var uCss = (tdata.direction == "vertical") ?
+ { top: (clojIsReversed && tdata.stops.length == 1) ? "0px" : stop} :
+ { left: (clojIsReversed && tdata.stops.length == 1) ? "0px" : stop };
+ var dCss = (tdata.direction == "vertical") ?
+ { top: (clojIsReversed && tdata.stops.length == 1) ? -metric + 'px' : offset} :
+ { left: (clojIsReversed && tdata.stops.length == 1) ? -metric + 'px' : offset };
+
+ $firstContainer.animate(uCss, tdata.speed, function () {
+ var index = staticCount;
+ if (swapFrontSource && stgs.frontIsRandom) {
+ //make sure the random bag is ready
+ if (frontRandomBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevBackIndex || stgs.frontImages.length == 1)
+ frontRandomBag[i] = i;
+ }
+ frontRandomBag = privMethods.shuffleArray(frontRandomBag);
+ }
+ index = frontRandomBag.pop();
+ prevFrontIndex = index;
+ }
+ privMethods.handleSlide(clojIsReversed, $firstContainer, swapFrontSource, stgs, index);
+ if (!clojIsReversed && swapFrontSource) {
+ staticCount += 1;
+ if (staticCount >= stgs.frontImages.length)
+ staticCount = 0;
+ }
+ stgs.animationComplete(tdata, $firstContainer, $scndContainer);
+ if (callback != null)
+ callback();
+ });
+ if (tdata.stack == true) {
+ $scndContainer.animate(dCss, tdata.speed, function () { });
+ }
+ }
+ //increment slide count
+ tdata.slideIndex += 1;
+ if (tdata.slideIndex >= tdata.stops.length) {
+ tdata.slideIndex = 0;
+ isReversed = !isReversed;
+ tdata.loopCount += 1;
+ }
+ };
+
+
+ //flip mode
+ $this.flip = function (callback) {
+ if (typeof (callback) == "undefined" || callback == null)
+ callback = null;
+ if (tdata.repeatCount > -1) {
+ if (tdata.loopCount > tdata.repeatCount) {
+ tdata.stopTimer(false);
+ tdata.loopCount = 0;
+ // TODO: debug and remove instances of jQuery.browser for compatibility with jq 1.8+
+ if (jQuery.browser.msie) /* straighten out issue with loopcount in IE */
+ tdata.loopCount += 1;
+ tdata.hasRun = false;
+ $this.data("LiveTile", tdata);
+ return;
+ } else {
+ tdata.loopCount += 1;
+ }
+ }
+ if (canFlip3d && tdata.useHwAccel) {
+ var spd = (tdata.speed * 2); // accelerated flip speeds are calculated on 1/2 rotation rather than 1/4 rotation like jQuery animate
+ var duration = spd + 'ms';
+ var aniFName = (tdata.direction == "vertical") ? 'flipfront180' : 'flipfrontY180';
+ var aniBName = (tdata.direction == "vertical") ? 'flipback180' : 'flipbackY180';
+ var data = $firstContainer.data("tile");
+ if (typeof (data.animated) != "undefined" && data.animated == true) {
+ return;
+ }
+ data.animated = true;
+ if (doAnimations) {
+ if (isReversed) {
+ var uCss = {
+ WebkitAnimationPlayState: 'running', WebkitAnimationName: aniBName, WebkitAnimationDuration: duration,
+ MozAnimationPlayState: 'running', MozAnimationName: aniBName, MozAnimationDuration: duration,
+ OAnimationPlayState: 'running', OAnimationName: aniBName, OAnimationDuration: duration,
+ msAnimationPlayState: 'running', msAnimationName: aniBName, msAnimationDuration: duration,
+ AnimationPlayState: 'running', AnimationName: aniBName, AnimationDuration: duration
+ };
+ $firstContainer.css(uCss).data("tile", data);
+ uCss.WebkitAnimationName = aniFName;
+ uCss.MozAnimationName = aniFName;
+ uCss.msAnimationName = aniFName;
+ uCss.OAnimationName = aniFName;
+ uCss.AnimationName = aniFName;
+ $scndContainer.css(uCss).data("tile", data);
+ window.setTimeout(function () {
+ if (swapBackSource) { // change the source image when the animation is finished
+ var isRandom = stgs.backIsRandom;
+ var index = staticIndexBack;
+ if (isRandom) {
+ //make sure the random bag is ready
+ if (backRandomBag.length == 0) {
+ for (var i = 0; i < stgs.backImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevBackIndex || stgs.backImages.length == 1)
+ backRandomBag[i] = i;
+ }
+ backRandomBag = privMethods.shuffleArray(backRandomBag);
+ }
+ index = backRandomBag.pop();
+ prevBackIndex = index;
+ }
+ privMethods.handleSwap($scndContainer, false, stgs, index);
+ staticIndexBack += 1;
+ if (staticIndexBack >= stgs.backImages.length) {
+ staticIndexBack = 0;
+ }
+ }
+ stgs.animationComplete(tdata, $firstContainer, $scndContainer);
+ if (callback != null)
+ callback();
+ data.animated = false;
+ $firstContainer.data("tile", data);
+ $scndContainer.data("tile", data);
+ }, spd);
+ } else {
+ var dCss = { WebkitAnimationPlayState: 'running', WebkitAnimationName: aniFName, WebkitAnimationDuration: duration,
+ MozAnimationPlayState: 'running', MozAnimationName: aniFName, MozAnimationDuration: duration,
+ OAnimationPlayState: 'running', OAnimationName: aniFName, OAnimationDuration: duration,
+ msAnimationPlayState: 'running', msAnimationName: aniFName, msAnimationDuration: duration,
+ AnimationPlayState: 'running', AnimationName: aniFName, AnimationDuration: duration
+ };
+ $firstContainer.css(dCss).data("tile", data);
+ dCss.WebkitAnimationName = aniBName;
+ dCss.MozAnimationName = aniBName;
+ dCss.msAnimationName = aniBName;
+ dCss.OAnimationName = aniBName;
+ dCss.AnimationName = aniBName;
+ $scndContainer.css(dCss).data("tile", data);
+ window.setTimeout(function () {
+ if (swapFrontSource) {
+ // change the source image when the animation is finished
+ var isRandom = stgs.frontIsRandom;
+ var index = staticIndexFront;
+ if (isRandom) {
+ //make sure the random bag is ready
+ if (frontRandomBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevBackIndex || stgs.frontImages.length == 1)
+ frontRandomBag[i] = i;
+ }
+ frontRandomBag = privMethods.shuffleArray(frontRandomBag);
+ }
+ index = frontRandomBag.pop();
+ prevFrontIndex = index;
+ }
+ privMethods.handleSwap($firstContainer, true, stgs, index);
+ staticIndexFront += 1;
+ if (staticIndexFront >= stgs.frontImages.length) {
+ staticIndexFront = 0;
+ }
+ }
+ stgs.animationComplete(tdata, $scndContainer, $firstContainer);
+ if (callback != null) {
+ callback();
+ }
+ data.animated = false;
+ $firstContainer.data("tile", data);
+ $scndContainer.data("tile", data);
+ }, spd);
+ }
+ }
+ //an interval isnt needed
+ isReversed = !isReversed;
+ } else {
+
+ //crossbrowser single tile flip illusion (works best with images)
+ if (isReversed) {
+ var upCss = (tdata.direction == "vertical") ?
+ { height: '0px', width: '100%', marginTop: margin + 'px', opacity: '0'} :
+ { height: '100%', width: '0px', marginLeft: margin + 'px', opacity: '0' };
+ var upCss2 = (tdata.direction == "vertical") ?
+ { height: '100%', width: '100%', marginTop: '0px', opacity: '1'} :
+ { height: '100%', width: '100%', marginLeft: '0px', opacity: '1' };
+
+ $firstContainer.stop().animate(upCss, { duration: tdata.speed });
+ window.setTimeout(function () {
+ $scndContainer.stop().animate(upCss2, { duration: tdata.speed });
+ if (swapFrontSource) {
+ var isRandom = stgs.frontIsRandom;
+ var index = staticIndexFront;
+ if (isRandom) {
+ //make sure the random bag is ready
+ if (frontRandomBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevFrontIndex || stgs.frontImages.length == 1)
+ frontRandomBag[i] = i;
+ }
+ frontRandomBag = privMethods.shuffleArray(frontRandomBag);
+ }
+ index = frontRandomBag.pop();
+ prevFrontIndex = index;
+ }
+ privMethods.handleSwap($firstContainer, true, stgs, index);
+ staticIndexFront += 1;
+ if (staticIndexFront >= stgs.frontImages.length) {
+ staticIndexFront = 0;
+ }
+ }
+ isReversed = !isReversed;
+ stgs.animationComplete(tdata, $scndContainer, $firstContainer);
+ if (callback != null)
+ callback();
+ }, tdata.speed);
+ } else {
+ var dwnCss = (tdata.direction == "vertical") ?
+ { height: '0px', width: '100%', marginTop: margin + 'px', opacity: '0'} :
+ { height: '100%', width: '0px', marginLeft: margin + 'px', opacity: '0' };
+ var dwnCss2 = (tdata.direction == "vertical") ?
+ { height: '100%', width: '100%', marginTop: '0px', opacity: '1'} :
+ { height: '100%', width: '100%', marginLeft: '0px', opacity: '1' };
+ $scndContainer.stop().animate(dwnCss, { duration: tdata.speed });
+ window.setTimeout(function () {
+ $firstContainer.stop().animate(dwnCss2, { duration: tdata.speed });
+ if (swapBackSource) {
+ var isRandom = stgs.backIsRandom;
+ var index = staticIndexBack;
+ if (isRandom) {
+ //make sure the random bag is ready
+ if (backRandomBag.length == 0) {
+ for (var i = 0; i < stgs.backImages.length; i++) {
+ //make sure there's not an immediate repeat
+ if (i != prevBackIndex || stgs.backImages.length == 1)
+ backRandomBag[i] = i;
+ }
+ backRandomBag = privMethods.shuffleArray(backRandomBag);
+ }
+ index = backRandomBag.pop();
+ prevBackIndex = index;
+ }
+ privMethods.handleSwap($scndContainer, false, stgs, index);
+ staticIndexBack += 1;
+ if (staticIndexBack >= stgs.backImages.length) {
+ staticIndexBack = 0;
+ }
+ }
+ isReversed = !isReversed;
+ stgs.animationComplete(tdata, $firstContainer, $scndContainer);
+ if (callback != null)
+ callback();
+ }, tdata.speed);
+ }
+ }
+ };
+ // flip arbitrary number of items and swap sources accordingly
+ $this.flipList = function (callback) {
+ if (typeof (callback) == "undefined" || callback == null)
+ callback = null;
+ if (tdata.repeatCount > -1) {
+ if (tdata.loopCount > tdata.repeatCount) {
+ tdata.stopTimer(false);
+ tdata.loopCount = 0;
+ tdata.hasRun = false;
+ $this.data("LiveTile", tdata);
+ return;
+ } else {
+ tdata.loopCount += 1;
+ }
+ }
+ var fBag = []; // two bags to make sure we don't duplicate images
+ var bBag = [];
+ var $tiles = $this.find(stgs.tileCssSelector);
+ //in case we want to pick one image per loop
+ var fStaticRndm = 0;
+ if (swapFrontSource) {
+ if (frontRandomBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ if (i != prevFrontIndex || stgs.frontImages.length == 1)
+ frontRandomBag[i] = i;
+ }
+ frontRandomBag = privMethods.shuffleArray(frontRandomBag);
+ }
+ fStaticRndm = frontRandomBag.pop();
+ prevFrontIndex = fStaticRndm;
+ }
+ var bStaticRndm = 0;
+ if (swapBackSource) {
+ if (backRandomBag.length == 0) {
+ for (var i = 0; i < stgs.backImages.length; i++) {
+ if (i != prevBackIndex || stgs.backImages.length == 1)
+ backRandomBag[i] = i;
+ }
+ backRandomBag = privMethods.shuffleArray(backRandomBag);
+ }
+ bStaticRndm = backRandomBag.pop();
+ prevBackIndex = bStaticRndm;
+ }
+ $tiles.each(function (idx) {
+ var $t = jQuery(this);
+ if (flistData.length < idx + 1) {
+ // cache the selector
+ var data = {};
+ data.$front = $t.find(stgs.listTileCssSelector).first();
+ data.$back = $t.find(stgs.listTileCssSelector).last();
+ data.isReversed = false;
+ flistData[idx] = data;
+ }
+ var $front = flistData[idx].$front;
+ var $back = flistData[idx].$back;
+
+ var tDelay = stgs.triggerDelay(idx);
+ var triggerSpeed = (tDelay > 0) ? (tdata.speed + tDelay) : tdata.speed;
+ var trigger = (stgs.alwaysTrigger == false) ? ((Math.random() * 351) > 150 ? true : false) : true;
+ var newImage;
+ if (flistData[idx].isReversed) {
+ if (trigger) {
+ window.setTimeout(function () {
+ flistData[idx].isReversed = false;
+ if (!swapFrontSource) {
+ $this.flipListItem(true, $t, $front, $back);
+ } else {
+ var isRandom = stgs.frontIsRandom;
+ var isInGrid = stgs.frontIsInGrid;
+ var isBground = stgs.frontIsBackgroundImage;
+ var frontImages = stgs.frontImages;
+ if (isRandom && !isInGrid) {
+ //make sure the random bag is ready
+ if (fBag.length == 0) {
+ for (var i = 0; i < stgs.frontImages.length; i++) {
+ fBag[i] = i;
+ }
+ fBag = privMethods.shuffleArray(fBag);
+ }
+ newImage = frontImages[fBag.pop()];
+ } else {
+ if (!isInGrid) {
+ newImage = frontImages[Math.min(idx, frontImages.length)];
+ } else {
+ newImage = frontImages[Math.min(fStaticRndm, frontImages.length)];
+ }
+ }
+ $this.flipListItem(true, $t, $front, $back, newImage, isBground);
+ }
+ }, triggerSpeed);
+ }
+ } else {
+ if (trigger) {
+ window.setTimeout(function () {
+ flistData[idx].isReversed = true;
+ if (!swapBackSource) {
+ $this.flipListItem(false, $t, $back, $front);
+ } else {
+ var isRandom = stgs.backIsRandom;
+ var isInGrid = stgs.backIsInGrid;
+ var isBground = stgs.backIsBackgroundImage;
+ var backImages = stgs.backImages;
+ if (isRandom && !isInGrid) {
+ //make sure the random bag is ready
+ if (bBag.length == 0) {
+ for (var i = 0; i < stgs.backImages.length; i++) {
+ bBag[i] = i;
+ }
+ bBag = privMethods.shuffleArray(bBag);
+ }
+ newImage = backImages[bBag.pop()];
+ } else {
+ if (!isInGrid) {
+ newImage = backImages[Math.min(idx, backImages.length)];
+ } else {
+ newImage = backImages[Math.min(bStaticRndm, backImages.length)];
+ }
+ }
+ $this.flipListItem(false, $t, $back, $front, newImage, isBground);
+ }
+ }, triggerSpeed);
+ }
+ }
+ });
+ window.setTimeout(function () {
+ isReversed = !isReversed;
+ }, tdata.speed);
+
+ };
+
+ //does the actual animation of a flip list item
+ $this.flipListItem = function (isFront, $itm, $front, $back, newSrc, isBgroundImg) {
+
+ var dir = (!stgs.ignoreDataAttributes && typeof ($itm.data("direction")) != "undefined") ? $itm.data("direction") : tdata.direction;
+ if (canFlip3d && tdata.useHwAccel) {
+ // avoid any z-index flickering from reversing an animation too early
+ isBgroundImg = isFront ? stgs.frontIsBackgroundImage : stgs.backIsBackgroundImage;
+ var animating = isFront ? $front.data("tile").animating : $back.data("tile").animating;
+ if (animating == true) {
+ return;
+ }
+ var spd = (tdata.speed * 2);
+ var duration = spd + 'ms';
+ var aniFName = (dir == "vertical") ? 'flipfront180' : 'flipfrontY180';
+ var aniBName = (dir == "vertical") ? 'flipback180' : 'flipbackY180';
+ var fCss = {
+ WebkitAnimationPlayState: 'running', WebkitAnimationName: aniBName, WebkitAnimationDuration: duration,
+ MozAnimationPlayState: 'running', MozAnimationName: aniBName, MozAnimationDuration: duration,
+ msAnimationPlayState: 'running', msAnimationName: aniBName, msAnimationDuration: duration,
+ OAnimationPlayState: 'running', OAnimationName: aniBName, OAnimationDuration: duration,
+ AnimationPlayState: 'running', AnimationName: aniBName, AnimationDuration: duration
+ };
+ var bCss = {
+ WebkitAnimationPlayState: 'running', WebkitAnimationName: aniFName, WebkitAnimationDuration: duration,
+ MozAnimationPlayState: 'running', MozAnimationName: aniFName, MozAnimationDuration: duration,
+ msAnimationPlayState: 'running', msAnimationName: aniFName, msAnimationDuration: duration,
+ OAnimationPlayState: 'running', OAnimationName: aniFName, OAnimationDuration: duration,
+ AnimationPlayState: 'running', AnimationName: aniFName, AnimationDuration: duration
+ };
+ $front.css(fCss).data("tile").animating = true;
+ $back.css(bCss).data("tile").animating = true;
+ window.setTimeout(function () {
+ if (typeof (newSrc) != "undefined") {
+ privMethods.handleListItemSwap($front, newSrc, isBgroundImg, stgs);
+ }
+ $front.data("tile").animating = false;
+ $back.data("tile").animating = false;
+ }, 0); // once the animation is half through it can be reversed
+
+ } else {
+ var height = $itm.height();
+ var width = $itm.width();
+ var margin = (dir == "vertical") ? height / 2 : width / 2;
+ var uCss = (dir == "vertical") ?
+ { height: '0px', width: '100%', marginTop: margin + 'px', opacity: 0} :
+ { height: '100%', width: '0px', marginLeft: margin + 'px', opacity: 0 };
+ var dCss = (dir == "vertical") ?
+ { height: '100%', width: '100%', marginTop: '0px', opacity: 1} :
+ { height: '100%', width: '100%', marginLeft: '0px', opacity: 1 };
+ $front.stop().animate(uCss, { duration: tdata.speed });
+ window.setTimeout(function () {
+ $back.stop().animate(dCss, { duration: tdata.speed });
+ if (typeof (newSrc) != "undefined") {
+ privMethods.handleListItemSwap($front, newSrc, isBgroundImg, stgs);
+ }
+ }, tdata.speed);
+ }
+ };
+
+ /* Delay the tile action*/
+ tdata.doAction = function () {
+ var action = null;
+ tdata.stopTimer(false);
+ switch (tdata.mode) {
+ case 'slide':
+ action = $this.slide;
+ break;
+ case 'flip':
+ action = $this.flip;
+ break;
+ case 'flip-list':
+ action = $this.flipList;
+ break;
+ }
+ var callBack = function () {
+ tdata.setTimer();
+ };
+ if (action != null) {
+ doAnimations = true;
+ action(callBack);
+ }
+ };
+ tdata.setTimer = function () {
+ var action = null;
+ switch (tdata.mode) {
+ case 'slide':
+ action = $this.slide;
+ break;
+ case 'flip':
+ action = $this.flip;
+ break;
+ case 'flip-list':
+ action = $this.flipList;
+ break;
+ }
+
+ if (action != null) {
+ if (tdata.hasRun == false) {
+ window.setTimeout(function () {
+ doAnimations = true;
+ action();
+ tdata.setTimer();
+ }, tdata.initDelay);
+ } else {
+ if ($this.slideTimer != null)
+ $this.slideTimer = privMethods.stopTimer($this.slideTimer);
+ $this.slideTimer = privMethods.setTimer(function () { doAnimations = true; action(); }, tdata.speed + tdata.delay);
+ }
+ }
+ tdata.hasRun = true;
+ };
+
+ tdata.stopTimer = function (restart) {
+ $this.slideTimer = privMethods.stopTimer($this.slideTimer);
+ doAnimations = false;
+
+ if (typeof (restart) != "undefined" && restart == true) {
+ tdata.setTimer();
+ }
+ };
+ $this.data("LiveTile", tdata);
+ tdata.setTimer();
+ });
+ },
+ animate: function () {
+ jQuery(this).each(function () {
+ var tData = jQuery(this).data("LiveTile");
+ tData.doAction();
+ });
+ },
+ destroy: function () {
+ jQuery(this).each(function () {
+ var $t = jQuery(this);
+ $t.unbind(".liveTile");
+ var $tile = jQuery(this).data("LiveTile");
+ if ($tile != null) {
+ $tile.stopTimer(false);
+ $t.removeData("LiveTile");
+ $t.removeData("ha");
+ $t.removeData("tile");
+ delete $tile;
+ delete $t.slide;
+ delete $t.flip;
+ delete $t.flipList;
+ delete $t.liveTile;
+ }
+
+ });
+ },
+ stop: function (restart) {
+ jQuery(this).each(function () {
+ var $tile = jQuery(this).data("LiveTile");
+ $tile.stopTimer(restart);
+ $tile.loopCount = 0;
+ $tile.hasRun = false;
+ });
+ },
+ pause: function () {
+ jQuery(this).each(function () {
+ jQuery(this).data("LiveTile").stopTimer();
+ });
+ },
+ play: function () {
+ jQuery(this).each(function () {
+ jQuery(this).data("LiveTile").setTimer();
+ });
+ }
+ };
+})(); \ No newline at end of file
diff --git a/start/livetiles/weather/index.html b/start/livetiles/weather/index.html
new file mode 100644
index 0000000..833d4ed
--- /dev/null
+++ b/start/livetiles/weather/index.html
@@ -0,0 +1,183 @@
+<html>
+<head>
+<title>Live Tile</title>
+<style>
+body { margin:0;padding:0;font-family:Segoe UI Light; }
+a {text-decoration:none;}
+.metroBig { font-size:36px; line-height:36px; }
+.live-tile, .list-tile
+{
+ color:#fff;
+ float:left;
+ height: 125px;
+ margin:0px;
+ overflow:hidden;
+ position:relative;
+ width: 258px;
+}
+.live-tile.two-wide, .list-tile.two-wide { width:390px; }
+.live-tile.two-tall, .list-tile.two-tall { height:390px; }
+.live-tile img, .list-tile img { border:none; }
+.live-tile.me>.slide-back>a.metroBig { position:absolute; left:0; bottom:0; padding: 0 0 12px 12px; text-decoration:none; }
+.live-tile a:link, .live-tile a:visited { color:#fff; text-decoration:underline; }
+.live-tile a:hover { color:#fff; text-decoration:none; }
+.live-tile p { font-size:13px; line-height: 16px; padding:10px; }
+.live-tile .tile-title, .list-tile .tile-title { position:absolute; bottom:0px; font-size:12px; left:0px; width:100%; padding:0 0 6px 6px; z-index:30; }
+.live-tile a.tile-title, .list-tile a.tile-title { text-decoration:none; }
+.live-tile.me>.metroBig { padding-top:45px; }
+
+.live-tile,.live-tile>div,.list-tile>div
+{ /* ensure elements on backside don't continue to take focus */
+ backface-visibility:hidden;
+ -webkit-backface-visibility:hidden;
+ -moz-backface-visibility:hidden;
+}
+
+.live-tile>div,.list-tile>div
+{
+ top:0px;
+ left:0px;
+ margin:0px;
+ height:100%;
+ width:100%;
+ position:absolute;
+ z-index:20;
+}
+.list-tile>div
+{
+ position:relative;
+}
+
+img.full , a.full
+{
+ display:block;
+ margin:0px;
+ height:100%;
+ width:100%;
+}
+.list-tile>div { background-color:transparent; }
+
+.live-tile>.back, .live-tile>.slide-back,.live-tile>.flip-back, .flip-list .flip-back
+{
+ position:absolute;
+ z-index:10;
+}
+
+
+#weather2 {
+ background: #2a7eee;
+ width: 254px;
+ height: 125px;
+ padding: 5px 10px;
+ overflow: hidden;
+ }
+
+ #weather2 h2 {
+ color: #ffffff;
+ font-size: 25px;
+ font-family:Segoe UI Light;
+ }
+
+ #weather2 p {
+ font-size: 25px;
+ font-family:Segoe UI Light;
+
+ }
+
+ #weather2 p span {
+ font-size: 14px;
+ font-family:Segoe UI Light;
+ }
+
+ #weather2 a:hover {
+ color: #000;
+ text-decoration: underline;
+ }
+#weather {
+ background: #2a7eee;
+ width: 254px;
+ height: 125px;
+ padding: 5px 10px;
+ overflow: hidden;
+ }
+
+ #weather h2 {
+ color: #ffffff;
+ font-size: 25px;
+ font-family:Segoe UI Light;
+ }
+
+ #weather p {
+ font-size: 25px;
+ font-family:Segoe UI Light;
+
+ }
+
+ #weather p span {
+ font-family:Segoe UI Light;
+ font-size: 14px;
+ }
+
+ #weather a:hover {
+ color: #000;
+ text-decoration: underline;
+ }
+</style>
+</head>
+<body>
+<div class="tiles">
+<a href="../../../iframeapps/weather.html" target="_parent">
+ <div class="live-tile">
+ <div id="weather2">
+ </div>
+ <div id="weather">
+ </div>
+ </div>
+</a>
+</div>
+</body>
+ <script src="jquery-1.5.1.min.js" type="text/javascript"></script>
+ <script src="MetroJs.lt.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ $(document).ready(function () {
+ $(".live-tile,.flip-list").liveTile();
+ });
+ </script>
+<script src="jquery.simpleWeather.js" charset="utf-8"></script>
+<script type="text/javascript">
+ $(function() {
+
+ $.simpleWeather({
+ location: 'paris, france',
+ unit: 'c',
+ success: function(weather) {
+ html = 'Paris';
+ html += '<img style="float:left;" width="125px" src="'+weather.image+'">';
+ html += '<p>'+weather.temp+'&deg; '+weather.units.temp+'<br /><br /><span>'+weather.currently+'</span></p>';
+ $("#weather2").html(html);
+ },
+ error: function(error) {
+ $("#weather2").html('<p>'+error+'</p>');
+ }
+ });
+ });
+ </script>
+<script type="text/javascript">
+ $(function() {
+
+ $.simpleWeather({
+ location: 'perth, australia',
+ unit: 'c',
+ success: function(weather) {
+ html = 'Perth';
+ html += '<img style="float:left;" width="125px" src="'+weather.image+'">';
+ html += '<p>'+weather.temp+'&deg; '+weather.units.temp+'<br /><br /><span>'+weather.currently+'</span></p>';
+ $("#weather").html(html);
+ },
+ error: function(error) {
+ $("#weather").html('<p>'+error+'</p>');
+ }
+ });
+ });
+ </script>
+</html> \ No newline at end of file
diff --git a/start/livetiles/weather/jquery-1.5.1.min.js b/start/livetiles/weather/jquery-1.5.1.min.js
new file mode 100644
index 0000000..bb3f311
--- /dev/null
+++ b/start/livetiles/weather/jquery-1.5.1.min.js
@@ -0,0 +1,19 @@
+/*!
+* Note: While Microsoft is not the author of this file, Microsoft is
+* offering you a license subject to the terms of the Microsoft Software
+* License Terms for Microsoft ASP.NET Model View Controller 3.
+* Microsoft reserves all other rights. The notices below are provided
+* for informational purposes only and are not the license terms under
+* which Microsoft distributed this file.
+*
+* jQuery JavaScript Library v1.5.1
+* http://jquery.com/
+* Copyright 2011, John Resig
+*
+* Includes Sizzle.js
+* http://sizzlejs.com/
+* Copyright 2011, The Dojo Foundation
+*
+* Date: Thu Nov 11 19:04:53 2010 -0500
+*/
+(function(a,b){function cg(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cd(a){if(!bZ[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";bZ[a]=c}return bZ[a]}function cc(a,b){var c={};d.each(cb.concat.apply([],cb.slice(0,b)),function(){c[this]=a});return c}function bY(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bX(){try{return new a.XMLHttpRequest}catch(b){}}function bW(){d(a).unload(function(){for(var a in bU)bU[a](0,1)})}function bQ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h==="string"&&(f[h.toLowerCase()]=a.converters[h]);l=k,k=e[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=f[m]||f["* "+k];if(!n){p=b;for(o in f){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=f[j[1]+" "+k];if(p){o=f[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&d.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bP(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bO(a,b,c,e){if(d.isArray(b)&&b.length)d.each(b,function(b,f){c||bq.test(a)?e(a,f):bO(a+"["+(typeof f==="object"||d.isArray(f)?b:"")+"]",f,c,e)});else if(c||b==null||typeof b!=="object")e(a,b);else if(d.isArray(b)||d.isEmptyObject(b))e(a,"");else for(var f in b)bO(a+"["+f+"]",b[f],c,e)}function bN(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bH,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l==="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bN(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bN(a,c,d,e,"*",g));return l}function bM(a){return function(b,c){typeof b!=="string"&&(c=b,b="*");if(d.isFunction(c)){var e=b.toLowerCase().split(bB),f=0,g=e.length,h,i,j;for(;f<g;f++)h=e[f],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bo(a,b,c){var e=b==="width"?bi:bj,f=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return f;d.each(e,function(){c||(f-=parseFloat(d.css(a,"padding"+this))||0),c==="margin"?f+=parseFloat(d.css(a,"margin"+this))||0:f-=parseFloat(d.css(a,"border"+this+"Width"))||0});return f}function ba(a,b){b.src?d.ajax({url:b.src,async:!1,dataType:"script"}):d.globalEval(b.text||b.textContent||b.innerHTML||""),b.parentNode&&b.parentNode.removeChild(b)}function _(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function $(a,b){if(b.nodeType===1){var c=b.nodeName.toLowerCase();b.clearAttributes(),b.mergeAttributes(a);if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(d.expando)}}function Z(a,b){if(b.nodeType===1&&d.hasData(a)){var c=d.expando,e=d.data(a),f=d.data(b,e);if(e=e[c]){var g=e.events;f=f[c]=d.extend({},e);if(g){delete f.handle,f.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)d.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function Y(a,b){return d.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function O(a,b,c){if(d.isFunction(b))return d.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return d.grep(a,function(a,d){return a===b===c});if(typeof b==="string"){var e=d.grep(a,function(a){return a.nodeType===1});if(J.test(b))return d.filter(b,e,!c);b=d.filter(b,e)}return d.grep(a,function(a,e){return d.inArray(a,b)>=0===c})}function N(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function F(a,b){return(a&&a!=="*"?a+".":"")+b.replace(r,"`").replace(s,"&")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,q=[],r=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;i<t.length;i++)g=t[i],g.origType.replace(p,"")===a.type?r.push(g.selector):t.splice(i--,1);f=d(a.target).closest(r,a.currentTarget);for(j=0,k=f.length;j<k;j++){m=f[j];for(i=0;i<t.length;i++){g=t[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,e=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,e=d(a.relatedTarget).closest(g.selector)[0];(!e||e!==h)&&q.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=q.length;j<k;j++){f=q[j];if(c&&f.level>c)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function C(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function w(){return!0}function v(){return!1}function g(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function f(a,c,f){if(f===b&&a.nodeType===1){f=a.getAttribute("data-"+c);if(typeof f==="string"){try{f=f==="true"?!0:f==="false"?!1:f==="null"?null:d.isNaN(f)?e.test(f)?d.parseJSON(f):f:parseFloat(f)}catch(g){}d.data(a,c,f)}else f=b}return f}var c=a.document,d=function(){function I(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(I,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x=!1,y,z="then done fail isResolved isRejected promise".split(" "),A,B=Object.prototype.toString,C=Object.prototype.hasOwnProperty,D=Array.prototype.push,E=Array.prototype.slice,F=String.prototype.trim,G=Array.prototype.indexOf,H={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.1",length:0,size:function(){return this.length},toArray:function(){return E.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?D.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(E.apply(this,arguments),"slice",E.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:D,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){e=i[c],f=a[c];if(i===f)continue;l&&f&&(d.isPlainObject(f)||(g=d.isArray(f)))?(g?(g=!1,h=e&&d.isArray(e)?e:[]):h=e&&d.isPlainObject(e)?e:{},i[c]=d.extend(l,h,f)):f!==b&&(i[c]=f)}return i},d.extend({noConflict:function(b){a.$=f,b&&(a.jQuery=e);return d},isReady:!1,readyWait:1,ready:function(a){a===!0&&d.readyWait--;if(!d.readyWait||a!==!0&&!d.isReady){if(!c.body)return setTimeout(d.ready,1);d.isReady=!0;if(a!==!0&&--d.readyWait>0)return;y.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=!0;if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",A,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",A),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&I()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):H[B.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!C.call(a,"constructor")&&!C.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||C.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g<h;)if(c.apply(a[g++],e)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(var j=a[0];g<h&&c.call(j,g,j)!==!1;j=a[++g]){}return a},trim:F?function(a){return a==null?"":F.call(a)}:function(a){return a==null?"":(a+"").replace(j,"").replace(k,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var e=d.type(a);a.length==null||e==="string"||e==="function"||e==="regexp"||d.isWindow(a)?D.call(c,a):d.merge(c,a)}return c},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length==="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,b,c){var d=[],e;for(var f=0,g=a.length;f<g;f++)e=b(a[f],f,c),e!=null&&(d[d.length]=e);return d.concat.apply([],d)},guid:1,proxy:function(a,c,e){arguments.length===2&&(typeof c==="string"?(e=a,a=e[c],c=b):c&&!d.isFunction(c)&&(e=c,c=b)),!c&&a&&(c=function(){return a.apply(e||this,arguments)}),a&&(c.guid=a.guid=a.guid||c.guid||d.guid++);return c},access:function(a,c,e,f,g,h){var i=a.length;if(typeof c==="object"){for(var j in c)d.access(a,j,c[j],f,g,e);return a}if(e!==b){f=!h&&f&&d.isFunction(e);for(var k=0;k<i;k++)g(a[k],c,f?e.call(a[k],k,g(a[k],c)):e,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},_Deferred:function(){var a=[],b,c,e,f={done:function(){if(!e){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=d.type(i),j==="array"?f.done.apply(f,i):j==="function"&&a.push(i);k&&f.resolveWith(k[0],k[1])}return this},resolveWith:function(d,f){if(!e&&!b&&!c){c=1;try{while(a[0])a.shift().apply(d,f)}catch(g){throw g}finally{b=[d,f],c=0}}return this},resolve:function(){f.resolveWith(d.isFunction(this.promise)?this.promise():this,arguments);return this},isResolved:function(){return c||b},cancel:function(){e=1,a=[];return this}};return f},Deferred:function(a){var b=d._Deferred(),c=d._Deferred(),e;d.extend(b,{then:function(a,c){b.done(a).fail(c);return this},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,promise:function(a){if(a==null){if(e)return e;e=a={}}var c=z.length;while(c--)a[z[c]]=b[z[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){var b=arguments.length,c=b<=1&&a&&d.isFunction(a.promise)?a:d.Deferred(),e=c.promise();if(b>1){var f=E.call(arguments,0),g=b,h=function(a){return function(b){f[a]=arguments.length>1?E.call(arguments,0):b,--g||c.resolveWith(e,f)}};while(b--)a=f[b],a&&d.isFunction(a.promise)?a.promise().then(h(b),c.reject):--g;g||c.resolveWith(e,f)}else c!==a&&c.resolve(a);return e},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),y=d._Deferred(),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){H["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),G&&(d.inArray=function(a,b){return G.call(b,a)}),i.test("Â ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?A=function(){c.removeEventListener("DOMContentLoaded",A,!1),d.ready()}:c.attachEvent&&(A=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",A),d.ready())});return d}();(function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e),b=e=f=null}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function"),b=null;return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}})();var e=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!g(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,h=b.nodeType,i=h?d.cache:b,j=h?b[d.expando]:d.expando;if(!i[j])return;if(c){var k=e?i[j][f]:i[j];if(k){delete k[c];if(!g(k))return}}if(e){delete i[j][f];if(!g(i[j]))return}var l=i[j][f];d.support.deleteExpando||i!=a?delete i[j]:i[j]=null,l?(i[j]={},h||(i[j].toJSON=d.noop),i[j][f]=l):h&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var g=this[0].attributes,h;for(var i=0,j=g.length;i<j;i++)h=g[i].name,h.indexOf("data-")===0&&(h=h.substr(5),f(this[0],h,e[h]))}}return e}if(typeof a==="object")return this.each(function(){d.data(this,a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(c===b){e=this.triggerHandler("getData"+k[1]+"!",[k[0]]),e===b&&this.length&&(e=d.data(this[0],a),e=f(this[0],a,e));return e===b&&k[1]?this.data(k[0]):e}return this.each(function(){var b=d(this),e=[k[0],c];b.triggerHandler("setData"+k[1]+"!",e),d.data(this,a,c),b.triggerHandler("changeData"+k[1]+"!",e)})},removeData:function(a){return this.each(function(){d.removeData(this,a)})}}),d.extend({queue:function(a,b,c){if(a){b=(b||"fx")+"queue";var e=d._data(a,b);if(!c)return e||[];!e||d.isArray(c)?e=d._data(a,b,d.makeArray(c)):e.push(c);return e}},dequeue:function(a,b){b=b||"fx";var c=d.queue(a,b),e=c.shift();e==="inprogress"&&(e=c.shift()),e&&(b==="fx"&&c.unshift("inprogress"),e.call(a,function(){d.dequeue(a,b)})),c.length||d.removeData(a,b+"queue",!0)}}),d.fn.extend({queue:function(a,c){typeof a!=="string"&&(c=a,a="fx");if(c===b)return d.queue(this[0],a);return this.each(function(b){var e=d.queue(this,a,c);a==="fx"&&e[0]!=="inprogress"&&d.dequeue(this,a)})},dequeue:function(a){return this.each(function(){d.dequeue(this,a)})},delay:function(a,b){a=d.fx?d.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){d.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var h=/[\n\t\r]/g,i=/\s+/,j=/\r/g,k=/^(?:href|src|style)$/,l=/^(?:button|input)$/i,m=/^(?:button|input|object|select|textarea)$/i,n=/^a(?:rea)?$/i,o=/^(?:radio|checkbox)$/i;d.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"},d.fn.extend({attr:function(a,b){return d.access(this,a,b,!0,d.attr)},removeAttr:function(a,b){return this.each(function(){d.attr(this,a,""),this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.addClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"){var b=(a||"").split(i);for(var c=0,e=this.length;c<e;c++){var f=this[c];if(f.nodeType===1)if(f.className){var g=" "+f.className+" ",h=f.className;for(var j=0,k=b.length;j<k;j++)g.indexOf(" "+b[j]+" ")<0&&(h+=" "+b[j]);f.className=d.trim(h)}else f.className=a}}return this},removeClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"||a===b){var c=(a||"").split(i);for(var e=0,f=this.length;e<f;e++){var g=this[e];if(g.nodeType===1&&g.className)if(a){var j=(" "+g.className+" ").replace(h," ");for(var k=0,l=c.length;k<l;k++)j=j.replace(" "+c[k]+" "," ");g.className=d.trim(j)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,e=typeof b==="boolean";if(d.isFunction(a))return this.each(function(c){var e=d(this);e.toggleClass(a.call(this,c,e.attr("class"),b),b)});return this.each(function(){if(c==="string"){var f,g=0,h=d(this),j=b,k=a.split(i);while(f=k[g++])j=e?j:!h.hasClass(f),h[j?"addClass":"removeClass"](f)}else if(c==="undefined"||c==="boolean")this.className&&d._data(this,"__className__",this.className),this.className=this.className||a===!1?"":d._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(h," ").indexOf(b)>-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var k=i?f:0,l=i?f+1:h.length;k<l;k++){var m=h[k];if(m.selected&&(d.support.optDisabled?!m.disabled:m.getAttribute("disabled")===null)&&(!m.parentNode.disabled||!d.nodeName(m.parentNode,"optgroup"))){a=d(m).val();if(i)return a;g.push(a)}}if(i&&!g.length&&h.length)return d(h[f]).val();return g}if(o.test(c.type)&&!d.support.checkOn)return c.getAttribute("value")===null?"on":c.value;return(c.value||"").replace(j,"")}return b}var n=d.isFunction(a);return this.each(function(b){var c=d(this),e=a;if(this.nodeType===1){n&&(e=a.call(this,b,c.val())),e==null?e="":typeof e==="number"?e+="":d.isArray(e)&&(e=d.map(e,function(a){return a==null?"":a+""}));if(d.isArray(e)&&o.test(this.type))this.checked=d.inArray(c.val(),e)>=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=k.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&l.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var o=a.getAttributeNode("tabIndex");return o&&o.specified?o.value:m.test(a.nodeName)||n.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var p=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return p===null?b:p}h&&(a[c]=e);return a[c]}});var p=/\.(.*)$/,q=/^(?:textarea|input|select)$/i,r=/\./g,s=/ /g,t=/[^\w\s.|`]/g,u=function(a){return a.replace(t,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=v;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(){return typeof d!=="undefined"&&!d.event.triggered?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=v);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),u).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))d.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=d.event.special[h]||{};for(j=f||0;j<p.length;j++){q=p[j];if(e.guid===q.guid){if(l||n.test(q.namespace))f==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(f!=null)break}}if(p.length===0||f!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&d.removeEvent(a,h,s.handle),g=null,delete t[h]}if(d.isEmptyObject(t)){var w=s.handle;w&&(w.elem=null),delete s.events,delete s.handle,d.isEmptyObject(s)&&d.removeData(a,b,!0)}}},trigger:function(a,c,e){var f=a.type||a,g=arguments[3];if(!g){a=typeof a==="object"?a[d.expando]?a:d.extend(d.Event(f),a):d.Event(f),f.indexOf("!")>=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(p,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=!0,l[m]())}catch(q){}k&&(l["on"+m]=k),d.event.triggered=!1}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l<m;l++){var n=f[l];if(e||h.test(n.namespace)){c.handler=n.handler,c.data=n.data,c.handleObj=n;var o=n.handler.apply(this,k);o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[d.expando])return a;var e=a;a=d.Event(e);for(var f=this.props.length,g;f;)g=this.props[--f],a[g]=e[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=c.documentElement,i=c.body;a.pageX=a.clientX+(h&&h.scrollLeft||i&&i.scrollLeft||0)-(h&&h.clientLeft||i&&i.clientLeft||0),a.pageY=a.clientY+(h&&h.scrollTop||i&&i.scrollTop||0)-(h&&h.clientTop||i&&i.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:d.proxy,special:{ready:{setup:d.bindReady,teardown:d.noop},live:{add:function(a){d.event.add(this,F(a.origType,a.selector),d.extend({},a,{handler:E,guid:a.handler.guid}))},remove:function(a){d.event.remove(this,F(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){d.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},d.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},d.Event=function(a){if(!this.preventDefault)return new d.Event(a);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?w:v):this.type=a,this.timeStamp=d.now(),this[d.expando]=!0},d.Event.prototype={preventDefault:function(){this.isDefaultPrevented=w;var a=this.originalEvent;a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=w;var a=this.originalEvent;a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=w,this.stopPropagation()},isDefaultPrevented:v,isPropagationStopped:v,isImmediatePropagationStopped:v};var x=function(a){var b=a.relatedTarget;try{if(b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&(a.type=a.data,d.event.handle.apply(this,arguments))}catch(e){}},y=function(a){a.type=a.data,d.event.handle.apply(this,arguments)};d.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){d.event.special[a]={setup:function(c){d.event.add(this,b,c&&c.selector?y:x,a)},teardown:function(a){d.event.remove(this,b,a&&a.selector?y:x)}}}),d.support.submitBubbles||(d.event.special.submit={setup:function(a,b){if(this.nodeName&&this.nodeName.toLowerCase()!=="form")d.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&d(b).closest("form").length&&C("submit",this,arguments)}),d.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&d(b).closest("form").length&&a.keyCode===13&&C("submit",this,arguments)});else return!1},teardown:function(a){d.event.remove(this,".specialSubmit")}});if(!d.support.changeBubbles){var z,A=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},B=function B(a){var c=a.target,e,f;if(q.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=A(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:B,beforedeactivate:B,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&B.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&B.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",A(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in z)d.event.add(this,c+".specialChange",z[c]);return q.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return q.test(this.nodeName)}},z=d.event.special.change.filters,z.focus=z.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function c(a){a=d.event.fix(a),a.type=b;return d.event.handle.call(this,a)}d.event.special[b]={setup:function(){this.addEventListener(a,c,!0)},teardown:function(){this.removeEventListener(a,c,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i<j;i++)d.event.add(this[i],a,h,e);return this}}),d.fn.extend({unbind:function(a,b){if(typeof a!=="object"||a.preventDefault)for(var e=0,f=this.length;e<f;e++)d.event.remove(this[e],a,b);else for(var c in a)this.unbind(c,a[c]);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){d.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var c=d.Event(a);c.preventDefault(),c.stopPropagation(),d.event.trigger(c,b,this[0]);return c.result}},toggle:function(a){var b=arguments,c=1;while(c<b.length)d.proxy(a,b[c++]);return this.click(d.proxy(a,function(e){var f=(d._data(this,"lastToggle"+a.guid)||0)%c;d._data(this,"lastToggle"+a.guid,f+1),e.preventDefault();return b[f].apply(this,arguments)||!1}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var D={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};d.each(["live","die"],function(a,c){d.fn[c]=function(a,e,f,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:d(this.context);if(typeof a==="object"&&!a.preventDefault){for(var o in a)n[c](o,e,a[o],m);return this}d.isFunction(e)&&(f=e,e=b),a=(a||"").split(" ");while((h=a[i++])!=null){j=p.exec(h),k="",j&&(k=j[0],h=h.replace(p,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,h==="focus"||h==="blur"?(a.push(D[h]+k),h=h+k):h=(D[h]||h)+k;if(c==="live")for(var q=0,r=n.length;q<r;q++)d.event.add(n[q],"live."+F(h,m),{data:e,selector:m,handler:f,origType:h,origHandler:f,preType:l});else n.unbind("live."+F(h,m),f)}return this}}),d.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){d.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!=="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!=="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(f){if(f===!0)continue}else g=o=!0}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b==="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1){}a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!=="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!=="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!=="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.getAttribute("type")},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(a===b){g=!0;return 0}if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector,d=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(e){d=!0}b&&(k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(d||!l.match.PSEUDO.test(c)&&!/!=/.test(c))return b.call(a,c)}catch(e){}return k(c,null,null,[a]).length>0})}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};d.find=k,d.expr=k.selectors,d.expr[":"]=d.expr.filters,d.unique=k.uniqueSort,d.text=k.getText,d.isXMLDoc=k.isXML,d.contains=k.contains}();var G=/Until$/,H=/^(?:parents|prevUntil|prevAll)/,I=/,/,J=/^.[^:#\[\.,]*$/,K=Array.prototype.slice,L=d.expr.match.POS,M={children:!0,contents:!0,next:!0,prev:!0};d.fn.extend({find:function(a){var b=this.pushStack("","find",a),c=0;for(var e=0,f=this.length;e<f;e++){c=b.length,d.find(a,this[e],b);if(e>0)for(var g=c;g<b.length;g++)for(var h=0;h<c;h++)if(b[h]===b[g]){b.splice(g--,1);break}}return b},has:function(a){var b=d(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(d.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(O(this,a,!1),"not",a)},filter:function(a){return this.pushStack(O(this,a,!0),"filter",a)},is:function(a){return!!a&&d.filter(a,this).length>0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e<f;e++)i=a[e],j[i]||(j[i]=d.expr.match.POS.test(i)?d(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=L.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e<f;e++){g=this[e];while(g){if(l?l.index(g)>-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(N(c[0])||N(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=K.call(arguments);G.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!M[a]?d.unique(f):f,(this.length>1||I.test(e))&&H.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var P=/ jQuery\d+="(?:\d+|null)"/g,Q=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,S=/<([\w:]+)/,T=/<tbody/i,U=/<|&#?\w+;/,V=/<(?:script|object|embed|option|style)/i,W=/checked\s*(?:[^=]|=\s*.checked.)/i,X={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};X.optgroup=X.option,X.tbody=X.tfoot=X.colgroup=X.caption=X.thead,X.th=X.td,d.support.htmlSerialize||(X._default=[1,"div<div>","</div>"]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(P,""):null;if(typeof a!=="string"||V.test(a)||!d.support.leadingWhitespace&&Q.test(a)||X[(S.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(R,"<$1></$2>");try{for(var c=0,e=this.length;c<e;c++)this[c].nodeType===1&&(d.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(f){this.empty().append(a)}}return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(d.isFunction(a))return this.each(function(b){var c=d(this),e=c.html();c.replaceWith(a.call(this,b,e))});typeof a!=="string"&&(a=d(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;d(this).remove(),b?d(b).before(a):d(c).append(a)})}return this.pushStack(d(d.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,e){var f,g,h,i,j=a[0],k=[];if(!d.support.checkClone&&arguments.length===3&&typeof j==="string"&&W.test(j))return this.each(function(){d(this).domManip(a,c,e,!0)});if(d.isFunction(j))return this.each(function(f){var g=d(this);a[0]=j.call(this,f,c?g.html():b),g.domManip(a,c,e)});if(this[0]){i=j&&j.parentNode,d.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?f={fragment:i}:f=d.buildFragment(a,this,k),h=f.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&d.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)e.call(c?Y(this[l],g):this[l],f.cacheable||m>1&&l<n?d.clone(h,!0,!0):h)}k.length&&d.each(k,ba)}return this}}),d.buildFragment=function(a,b,e){var f,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]==="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!V.test(a[0])&&(d.support.checkClone||!W.test(a[0]))&&(g=!0,h=d.fragments[a[0]],h&&(h!==1&&(f=h))),f||(f=i.createDocumentFragment(),d.clean(a,i,f,e)),g&&(d.fragments[a[0]]=h?f:1);return{fragment:f,cacheable:g}},d.fragments={},d.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){d.fn[a]=function(c){var e=[],f=d(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&f.length===1){f[b](this[0]);return this}for(var h=0,i=f.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){$(a,e),f=_(a),g=_(e);for(h=0;f[h];++h)$(f[h],g[h])}if(b){Z(a,e);if(c){f=_(a),g=_(e);for(h=0;f[h];++h)Z(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||U.test(i)){if(typeof i==="string"){i=i.replace(R,"<$1></$2>");var j=(S.exec(i)||["",""])[1].toLowerCase(),k=X[j]||X._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=T.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]==="<table>"&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&Q.test(i)&&m.insertBefore(b.createTextNode(Q.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bb=/alpha\([^)]*\)/i,bc=/opacity=([^)]*)/,bd=/-([a-z])/ig,be=/([A-Z])/g,bf=/^-?\d+(?:px)?$/i,bg=/^-?\d/,bh={position:"absolute",visibility:"hidden",display:"block"},bi=["Left","Right"],bj=["Top","Bottom"],bk,bl,bm,bn=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bk(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bk)return bk(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bd,bn)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bo(a,b,e):d.swap(a,bh,function(){f=bo(a,b,e)});if(f<=0){f=bk(a,b,b),f==="0px"&&bm&&(f=bm(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bf.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return bc.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bb.test(f)?f.replace(bb,e):c.filter+" "+e}}),c.defaultView&&c.defaultView.getComputedStyle&&(bl=function(a,c,e){var f,g,h;e=e.replace(be,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bm=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bf.test(d)&&bg.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bk=bl||bm,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var bp=/%20/g,bq=/\[\]$/,br=/\r?\n/g,bs=/#.*$/,bt=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bu=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bv=/(?:^file|^widget|\-extension):$/,bw=/^(?:GET|HEAD)$/,bx=/^\/\//,by=/\?/,bz=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bA=/^(?:select|textarea)/i,bB=/\s+/,bC=/([?&])_=[^&]*/,bD=/(^|\-)([a-z])/g,bE=function(a,b,c){return b+c.toUpperCase()},bF=/^([\w\+\.\-]+:)\/\/([^\/?#:]*)(?::(\d+))?/,bG=d.fn.load,bH={},bI={},bJ,bK;try{bJ=c.location.href}catch(bL){bJ=c.createElement("a"),bJ.href="",bJ=bJ.href}bK=bF.exec(bJ.toLowerCase()),d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bG)return bG.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("<div>").append(c.replace(bz,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bA.test(this.nodeName)||bu.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(br,"\r\n")}}):{name:b.name,value:c.replace(br,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bJ,isLocal:bv.test(bK[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bM(bH),ajaxTransport:bM(bI),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bP(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bQ(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bD,bE)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bt.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bs,"").replace(bx,bK[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bB),e.crossDomain||(q=bF.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bK[1]||q[2]!=bK[2]||(q[3]||(q[1]==="http:"?80:443))!=(bK[3]||(bK[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bN(bH,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!bw.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(by.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bC,"$1_="+w);e.url=x+(x===e.url?(by.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bN(bI,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bO(g,a[g],c,f);return e.join("&").replace(bp,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bR=d.now(),bS=/(\=)\?(&|$)|()\?\?()/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bR++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bS.test(b.url)||f&&bS.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bS,l),b.url===j&&(f&&(k=k.replace(bS,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bT=d.now(),bU,bV;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bX()||bY()}:bX,bV=d.ajaxSettings.xhr(),d.support.ajax=!!bV,d.support.cors=bV&&"withCredentials"in bV,bV=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),(!a.crossDomain||a.hasContent)&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bU[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bU||(bU={},bW()),h=bT++,g.onreadystatechange=bU[h]=c):c()},abort:function(){c&&c(0,1)}}}});var bZ={},b$=/^(?:toggle|show|hide)$/,b_=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,ca,cb=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(cc("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)e=this[g],f=e.style.display,!d._data(e,"olddisplay")&&f==="none"&&(f=e.style.display=""),f===""&&d.css(e,"display")==="none"&&d._data(e,"olddisplay",cd(e.nodeName));for(g=0;g<h;g++){e=this[g],f=e.style.display;if(f===""||f==="none")e.style.display=d._data(e,"olddisplay")||""}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cc("hide",3),a,b,c);for(var e=0,f=this.length;e<f;e++){var g=d.css(this[e],"display");g!=="none"&&!d._data(this[e],"olddisplay")&&d._data(this[e],"olddisplay",g)}for(e=0;e<f;e++)this[e].style.display="none";return this},_toggle:d.fn.toggle,toggle:function(a,b,c){var e=typeof a==="boolean";d.isFunction(a)&&d.isFunction(b)?this._toggle.apply(this,arguments):a==null||e?this.each(function(){var b=e?a:d(this).is(":hidden");d(this)[b?"show":"hide"]()}):this.animate(cc("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,e){var f=d.speed(b,c,e);if(d.isEmptyObject(a))return this.each(f.complete);return this[f.queue===!1?"each":"queue"](function(){var b=d.extend({},f),c,e=this.nodeType===1,g=e&&d(this).is(":hidden"),h=this;for(c in a){var i=d.camelCase(c);c!==i&&(a[i]=a[c],delete a[c],c=i);if(a[c]==="hide"&&g||a[c]==="show"&&!g)return b.complete.call(this);if(e&&(c==="height"||c==="width")){b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(d.css(this,"display")==="inline"&&d.css(this,"float")==="none")if(d.support.inlineBlockNeedsLayout){var j=cd(this.nodeName);j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)}else this.style.display="inline-block"}d.isArray(a[c])&&((b.specialEasing=b.specialEasing||{})[c]=a[c][1],a[c]=a[c][0])}b.overflow!=null&&(this.style.overflow="hidden"),b.curAnim=d.extend({},a),d.each(a,function(c,e){var f=new d.fx(h,b,c);if(b$.test(e))f[e==="toggle"?g?"show":"hide":e](a);else{var i=b_.exec(e),j=f.cur();if(i){var k=parseFloat(i[2]),l=i[3]||(d.cssNumber[c]?"":"px");l!=="px"&&(d.style(h,c,(k||1)+l),j=(k||1)/f.cur()*j,d.style(h,c,j+l)),i[1]&&(k=(i[1]==="-="?-1:1)*k+j),f.custom(j,k,l)}else f.custom(j,e,"")}});return!0})},stop:function(a,b){var c=d.timers;a&&this.queue([]),this.each(function(){for(var a=c.length-1;a>=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:cc("show",1),slideUp:cc("hide",1),slideToggle:cc("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!ca&&(ca=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||d.fx.stop()},interval:13,stop:function(){clearInterval(ca),ca=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){d.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),d.expr&&d.expr.filters&&(d.expr.filters.animated=function(a){return d.grep(d.timers,function(b){return a===b.elem}).length});var ce=/^t(?:able|d|h)$/i,cf=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?d.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,g=f.documentElement;if(!c||!d.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=f.body,i=cg(f),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||d.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||d.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:d.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);d.offset.initialize();var c,e=b.offsetParent,f=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(d.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===e&&(l+=b.offsetTop,m+=b.offsetLeft,d.offset.doesNotAddBorder&&(!d.offset.doesAddBorderForTableAndCells||!ce.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),f=e,e=b.offsetParent),d.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;d.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},d.offset={initialize:function(){var a=c.body,b=c.createElement("div"),e,f,g,h,i=parseFloat(d.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),a=b=e=f=g=h=null,d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=e==="absolute"&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=cf.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!cf.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=cg(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=cg(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window); \ No newline at end of file
diff --git a/start/livetiles/weather/jquery.simpleWeather.js b/start/livetiles/weather/jquery.simpleWeather.js
new file mode 100644
index 0000000..a2a5e7b
--- /dev/null
+++ b/start/livetiles/weather/jquery.simpleWeather.js
@@ -0,0 +1,132 @@
+/*
+ * simpleWeather
+ *
+ * A simple jQuery plugin to display the weather information
+ * for a location. Weather is pulled from the public Yahoo!
+ * Weather feed via their api.
+ *
+ * Developed by James Fleeting <hello@jamesfleeting.com>
+ * Another project from monkeeCreate <http://monkeecreate.com>
+ *
+ * Version 2.0.1 - Last updated: January 26 2012
+ */
+(function($) {
+ "use strict";
+ $.extend({
+ simpleWeather: function(options){
+ options = $.extend({
+ zipcode: '',
+ location: '',
+ unit: 'f',
+ success: function(weather){},
+ error: function(message){}
+ }, options);
+
+ var now = new Date();
+
+ var weatherUrl = 'http://query.yahooapis.com/v1/public/yql?format=json&rnd='+now.getFullYear()+now.getMonth()+now.getDay()+now.getHours()+'&diagnostics=true&callback=?&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&q=';
+ if(options.location !== '') {
+ weatherUrl += 'select * from weather.forecast where location in (select id from weather.search where query="'+options.location+'") and u="'+options.unit+'"';
+ } else if(options.zipcode !== '') {
+ weatherUrl += 'select * from weather.forecast where location in ("'+options.zipcode+'") and u="'+options.unit+'"';
+ } else {
+ options.error("No location given.");
+ return false;
+ }
+
+ $.getJSON(
+ weatherUrl,
+ function(data) {
+ if(data !== null && data.query.results !== null) {
+ $.each(data.query.results, function(i, result) {
+ if (result.constructor.toString().indexOf("Array") !== -1) {
+ result = result[0];
+ }
+
+ var currentDate = new Date();
+ var sunRise = new Date(currentDate.toDateString() +' '+ result.astronomy.sunrise);
+ var sunSet = new Date(currentDate.toDateString() +' '+ result.astronomy.sunset);
+
+ if(currentDate>sunRise && currentDate<sunSet) {
+ var timeOfDay = 'd';
+ } else {
+ var timeOfDay = 'n';
+ }
+
+ var compass = ['N', 'NNE', 'NE', 'ENE', 'E', 'ESE', 'SE', 'SSE', 'S', 'SSW', 'SW', 'WSW', 'W', 'WNW', 'NW', 'NNW', 'N'];
+ var windDirection = compass[Math.round(result.wind.direction / 22.5)];
+
+ if(result.item.condition.temp < 80 && result.atmosphere.humidity < 40) {
+ var heatIndex = -42.379+2.04901523*result.item.condition.temp+10.14333127*result.atmosphere.humidity-0.22475541*result.item.condition.temp*result.atmosphere.humidity-6.83783*(Math.pow(10, -3))*(Math.pow(result.item.condition.temp, 2))-5.481717*(Math.pow(10, -2))*(Math.pow(result.atmosphere.humidity, 2))+1.22874*(Math.pow(10, -3))*(Math.pow(result.item.condition.temp, 2))*result.atmosphere.humidity+8.5282*(Math.pow(10, -4))*result.item.condition.temp*(Math.pow(result.atmosphere.humidity, 2))-1.99*(Math.pow(10, -6))*(Math.pow(result.item.condition.temp, 2))*(Math.pow(result.atmosphere.humidity,2));
+ } else {
+ var heatIndex = result.item.condition.temp;
+ }
+
+ if(options.unit === "f") {
+ var tempAlt = Math.round((5.0/9.0)*(result.item.condition.temp-32.0));
+ } else {
+ var tempAlt = Math.round((9.0/5.0)*result.item.condition.temp+32.0);
+ }
+
+ var weather = {
+ title: result.item.title,
+ temp: result.item.condition.temp,
+ tempAlt: tempAlt,
+ code: result.item.condition.code,
+ todayCode: result.item.forecast[0].code,
+ units:{
+ temp: result.units.temperature,
+ distance: result.units.distance,
+ pressure: result.units.pressure,
+ speed: result.units.speed
+ },
+ currently: result.item.condition.text,
+ high: result.item.forecast[0].high,
+ low: result.item.forecast[0].low,
+ forecast: result.item.forecast[0].text,
+ wind:{
+ chill: result.wind.chill,
+ direction: windDirection,
+ speed: result.wind.speed
+ },
+ humidity: result.atmosphere.humidity,
+ heatindex: heatIndex,
+ pressure: result.atmosphere.pressure,
+ rising: result.atmosphere.rising,
+ visibility: result.atmosphere.visibility,
+ sunrise: result.astronomy.sunrise,
+ sunset: result.astronomy.sunset,
+ description: result.item.description,
+ thumbnail: "http://l.yimg.com/a/i/us/nws/weather/gr/"+result.item.condition.code+timeOfDay+"s.png",
+ image: "http://l.yimg.com/a/i/us/nws/weather/gr/"+result.item.condition.code+timeOfDay+".png",
+ tomorrow:{
+ high: result.item.forecast[1].high,
+ low: result.item.forecast[1].low,
+ forecast: result.item.forecast[1].text,
+ code: result.item.forecast[1].code,
+ date: result.item.forecast[1].date,
+ day: result.item.forecast[1].day,
+ image: "http://l.yimg.com/a/i/us/nws/weather/gr/"+result.item.forecast[1].code+"d.png"
+ },
+ city: result.location.city,
+ country: result.location.country,
+ region: result.location.region,
+ updated: result.item.pubDate,
+ link: result.item.link
+ };
+
+ options.success(weather);
+ });
+ } else {
+ if (data.query.results === null) {
+ options.error("Invalid location given.");
+ } else {
+ options.error("Weather could not be displayed. Try again.");
+ }
+ }
+ }
+ );
+ return this;
+ }
+ });
+})(jQuery); \ No newline at end of file
diff --git a/start/mousewheel.js b/start/mousewheel.js
new file mode 100644
index 0000000..f1d5f72
--- /dev/null
+++ b/start/mousewheel.js
@@ -0,0 +1,84 @@
+/*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net)
+ * Licensed under the MIT License (LICENSE.txt).
+ *
+ * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
+ * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
+ * Thanks to: Seamus Leahy for adding deltaX and deltaY
+ *
+ * Version: 3.0.6
+ *
+ * Requires: 1.2.2+
+ */
+
+(function($) {
+
+var types = ['DOMMouseScroll', 'mousewheel'];
+
+if ($.event.fixHooks) {
+ for ( var i=types.length; i; ) {
+ $.event.fixHooks[ types[--i] ] = $.event.mouseHooks;
+ }
+}
+
+$.event.special.mousewheel = {
+ setup: function() {
+ if ( this.addEventListener ) {
+ for ( var i=types.length; i; ) {
+ this.addEventListener( types[--i], handler, false );
+ }
+ } else {
+ this.onmousewheel = handler;
+ }
+ },
+
+ teardown: function() {
+ if ( this.removeEventListener ) {
+ for ( var i=types.length; i; ) {
+ this.removeEventListener( types[--i], handler, false );
+ }
+ } else {
+ this.onmousewheel = null;
+ }
+ }
+};
+
+$.fn.extend({
+ mousewheel: function(fn) {
+ return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel");
+ },
+
+ unmousewheel: function(fn) {
+ return this.unbind("mousewheel", fn);
+ }
+});
+
+
+function handler(event) {
+ var orgEvent = event || window.event, args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true, deltaX = 0, deltaY = 0;
+ event = $.event.fix(orgEvent);
+ event.type = "mousewheel";
+
+ // Old school scrollwheel delta
+ if ( orgEvent.wheelDelta ) { delta = orgEvent.wheelDelta/120; }
+ if ( orgEvent.detail ) { delta = -orgEvent.detail/3; }
+
+ // New school multidimensional scroll (touchpads) deltas
+ deltaY = delta;
+
+ // Gecko
+ if ( orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {
+ deltaY = 0;
+ deltaX = -1*delta;
+ }
+
+ // Webkit
+ if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY/120; }
+ if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = -1*orgEvent.wheelDeltaX/120; }
+
+ // Add event and delta to the front of the arguments
+ args.unshift(event, delta, deltaX, deltaY);
+
+ return ($.event.dispatch || $.event.handle).apply(this, args);
+}
+
+})(jQuery); \ No newline at end of file
diff --git a/start/robots.txt b/start/robots.txt
new file mode 100644
index 0000000..f783256
--- /dev/null
+++ b/start/robots.txt
@@ -0,0 +1,5 @@
+
+# This file can be used to affect how search engines and other web site crawlers see your site.
+# For more information, please see http://www.w3.org/TR/html4/appendix/notes.html#h-B.4.1.1
+# WebMatrix 2.0
+
diff --git a/start/scrollbar.css b/start/scrollbar.css
new file mode 100644
index 0000000..ea894b2
--- /dev/null
+++ b/start/scrollbar.css
@@ -0,0 +1,67 @@
+/*
+Windows 8 Scrollbar CSS
+by ntim007
+http://ntim007.kodingen.com
+http://ntim007.deviantart.com
+*/
+/* For Chrome or Safari */
+/* Scrollbar background color */
+::-webkit-scrollbar {
+background-color:#EFEFEF;
+padding:0;
+}
+/* UP, DOWN, LEFT and RIGHT button styling */
+::-webkit-scrollbar-button:hover {
+background-color:#DBDBDB !important;
+}
+::-webkit-scrollbar-button:vertical:decrement {
+background:url('images/scrollbar/up.png') no-repeat center;
+}
+::-webkit-scrollbar-button:vertical:increment {
+background:url('images/scrollbar/down.png') no-repeat center;
+}
+::-webkit-scrollbar-button:horizontal:decrement {
+background:url('images/scrollbar/left.png') no-repeat center;
+}
+::-webkit-scrollbar-button:horizontal:increment {
+background:url('images/scrollbar/right.png') no-repeat center;
+}
+::-webkit-scrollbar-button:active:vertical:decrement {
+background:url('images/scrollbar/up-active.png') no-repeat center #606060 !important;
+}
+::-webkit-scrollbar-button:active:vertical:increment {
+background:url('images/scrollbar/down-active.png') no-repeat center #606060 !important;
+}
+::-webkit-scrollbar-button:active:horizontal:decrement {
+background:url('images/scrollbar/left-active.png') no-repeat center #606060 !important;
+}
+::-webkit-scrollbar-button:active:horizontal:increment {
+background:url('images/scrollbar/right-active.png') no-repeat center #606060 !important;
+}
+/* Scrollbar thumb */
+::-webkit-scrollbar-thumb {
+background-color:#CDCDCD;
+opacity: 1;
+}
+::-webkit-scrollbar-thumb:hover {
+background-color:#A6A6A6;
+
+}
+::-webkit-scrollbar-thumb:active {
+background-color:#606060;
+
+}
+/* Some unstyled stuff */
+::-webkit-scrollbar-track {
+
+}
+::-webkit-scrollbar-track-piece {
+
+}
+
+::-webkit-scrollbar-corner {
+
+}
+::-webkit-resizer {
+
+} \ No newline at end of file
diff --git a/start/style.css b/start/style.css
new file mode 100644
index 0000000..f110cf0
--- /dev/null
+++ b/start/style.css
@@ -0,0 +1,808 @@
+/* HTML Elements */
+html {
+
+ height:100% !important;
+ position:relative;
+}
+body {
+ background-image:url('images/backgrounds/circleblue.png');
+ background-size:cover;
+ font-family: Segoe UI;
+ font-size:9pt;
+ color:#FFFFFF;
+ padding:0;
+ margin:0;
+}
+a {
+ outline:none;
+ text-decoration:none;
+}
+a:visited {
+ color:white;
+}
+a:link {
+ color:white;
+}
+iframe, img, a {
+ border:none;
+}
+img { -ms-interpolation-mode: bicubic; }
+/* Black text */
+.black {
+ color:#000000
+}
+
+/* Start text and user tile */
+#starttext {
+ position:fixed;
+ font-family: Segoe UI Light;
+ font-size:48pt;
+ color:#FFFFFF;
+ margin-top:20px;
+ margin-left:58px;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ animation: slideIn 3s;
+ animation-timing-function:ease;
+ -moz-animation: slideIn 3s;
+ -moz-animation-timing-function:ease;
+ -webkit-animation: slideIn 3s;
+ -webkit-animation-timing-function:ease;
+ -ms-animation: slideIn 3s;
+ -ms-animation-timing-function:ease;
+ -o-animation: slideIn 3s;
+ -o-animation-timing-function:ease;
+
+}
+#user {
+ position:fixed;
+ top:14px;
+ right:20px;
+ text-align:right;
+ z-index:1;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ animation: slideIn 3s;
+ animation-timing-function:ease;
+ -moz-animation: slideIn 3s;
+ -moz-animation-timing-function:ease;
+ -webkit-animation: slideIn 3s;
+ -webkit-animation-timing-function:ease;
+ -ms-animation: slideIn 3s;
+ -ms-animation-timing-function:ease;
+ -o-animation: slideIn 3s;
+ -o-animation-timing-function:ease;
+
+}
+#user #names{
+ display:inline-block;
+ margin:0;
+ padding:0;
+ padding-right:5;
+ min-height:69px;
+}
+#user #firstname {
+ font-family:Segoe UI Semilight;
+ font-size:18pt;
+ line-height:17pt;
+ margin-bottom:0;
+
+}
+#user #name {
+ font-size:11pt;
+ line-height:6pt;
+ margin-top:12;
+ margin-bottom:0;
+}
+
+/* User tile dropdown */
+#userdropdown {
+ padding:0;
+ z-index:1;
+ display:none;
+ position:fixed;
+ top:75px;
+ right:20px;
+ border: 3px solid rgba(42, 42, 42 , 0.8);
+ background-color:#FFFFFF;
+ color:black;
+ list-style:none;
+ width:100px;
+ font-size:11pt;
+}
+#userdropdown a {
+ color:#000000;
+}
+#userdropdown li {
+ padding:10px;
+}
+#userdropdown li:hover {
+ background-color:#DEDEDE;
+}
+
+/* Blocks*/
+#tiles {
+ width:3700px;
+ height:80%;
+ display:block;
+ position:absolute;
+ bottom:20%;
+ transition:all 1s;
+}
+.block {
+ position:absolute;
+ top:150px;
+ left:60px;
+ display:block;
+ z-index:0;
+}
+.blocktitle {
+ font-family: Segoe UI Light;
+ font-size:24pt;
+ opacity:0.7;
+ margin-bottom:7px;
+ min-height:45px;
+}
+.zoomoutview {
+ left:-1100px;
+ -webkit-transform:scale(0.4);
+ -moz-transform:scale(0.4);
+ -ms-transform:scale(0.4);
+ -o-transform:scale(0.4);
+ transform:scale(0.4);
+ /* IE8+ - must be on one line, unfortunately */
+ -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.4, M12=0, M21=0, M22=0.4, SizingMethod='auto expand')";
+
+ /* IE6 and 7 */
+ filter: progid:DXImageTransform.Microsoft.Matrix(
+ M11=0.4,
+ M12=0,
+ M21=0,
+ M22=0.4,
+ SizingMethod='auto expand');
+
+}
+/* Slide in animation on tiles */
+@keyframes slideIn {
+ 0% {
+ transform: scale(0.2,0.2);
+ opacity: 0;
+ left: -100%;
+ }
+
+ 100% {
+ transform: none;
+ left: 0;
+ opacity: 1;
+ }
+}
+@-moz-keyframes slideIn {
+ 0% {
+ transform: scale(0.2,0.2);
+ opacity: 0;
+ left: -100%;
+ }
+
+ 100% {
+ transform: none;
+ left: 0;
+ opacity: 1;
+ }
+}
+@-webkit-keyframes slideIn {
+ 0% {
+ transform: scale(0.2,0.2);
+ opacity: 0;
+ left: -100%;
+ }
+
+ 100% {
+ transform: none;
+ left: 0;
+ opacity: 1;
+ }
+}
+@-o-keyframes slideIn {
+ 0% {
+ transform: scale(0.2,0.2);
+ opacity: 0;
+ left: -100%;
+ }
+
+ 100% {
+ transform: none;
+ left: 0;
+ opacity: 1;
+ }
+}
+@-ms-keyframes slideIn {
+ 0% {
+ transform: scale(0.2,0.2);
+ opacity: 0;
+ left: -100%;
+ }
+
+ 100% {
+ transform: none;
+ left: 0;
+ opacity: 1;
+ }
+}
+.block div:nth-of-type(1) { animation-duration: 0.3s;-webkit-animation-duration: 0.3s;-o-animation-duration: 0.3s;-ms-animation-duration: 0.3s; }
+.block div:nth-of-type(2) { animation-duration: 0.4s;-webkit-animation-duration: 0.4s;-o-animation-duration: 0.4s;-ms-animation-duration: 0.3s; }
+.block div:nth-of-type(3) { animation-duration: 0.5s;-webkit-animation-duration: 0.5s;-o-animation-duration: 0.5s;-ms-animation-duration: 0.3s;}
+.block div:nth-of-type(4) { animation-duration: 0.6s;-webkit-animation-duration: 0.6s;-o-animation-duration: 0.6s;-ms-animation-duration: 0.3s;}
+.block div:nth-of-type(5) { animation-duration: 0.7s;-webkit-animation-duration: 0.7s;-o-animation-duration: 0.7s;-ms-animation-duration: 0.3s;}
+.block div:nth-of-type(6) { animation-duration: 0.8s;-webkit-animation-duration: 0.8s;-o-animation-duration: 0.8s;-ms-animation-duration: 0.3s;}
+.block div:nth-of-type(7) { animation-duration: 0.9s;-webkit-animation-duration: 0.9s;-o-animation-duration: 0.9s;-ms-animation-duration: 0.3s;}
+.block div:nth-of-type(n + 8) { animation-duration: 1.0s;-webkit-animation-duration: 1.0s;-o-animation-duration: 1.0s;-ms-animation-duration: 0.3s;}
+
+.block div {
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ animation: slideIn 3s;
+ animation-timing-function:ease;
+ -moz-animation: slideIn 3s;
+ -moz-animation-timing-function:ease;
+ -webkit-animation: slideIn 3s;
+ -webkit-animation-timing-function:ease;
+ -ms-animation: slideIn 3s;
+ -ms-animation-timing-function:ease;
+ -o-animation: slideIn 3s;
+ -o-animation-timing-function:ease;
+}
+
+/* Block positions */
+.two {
+ left:1000px !important;
+}
+.three {
+ left:1900px !important;
+}
+.four {
+ left:2800px !important;
+}
+.five {
+ left:3170px !important;
+}
+/* Lines (tiles) */
+div.line{
+ display:block;
+ padding-bottom:5px;
+}
+
+/* Tiles */
+.tile {
+ height:125px;
+ margin-right:5px;
+ position:relative;
+ display:inline-block;
+ transition: all 0.3s ease;
+ transform: perspective(800px) rotateY(0deg);
+ -webkit-transition: all 0.3s ease;
+ -webkit-transform: perspective(800px) rotateY(0deg);
+ -o-transition: all 0.3s ease;
+ -o-transform: perspective(800px) rotateY(0deg);
+ -ms-transition: all 0.3s ease;
+ -ms-transform: perspective(800px) rotateY(0deg);
+}
+.tile:hover {
+ box-shadow: 0px 0px 0px 4px rgba(255, 255, 255, 0.14);
+}
+.tile:active {
+ box-shadow:none;
+}
+/* Tilt Top */
+.tile:nth-of-type(4n - 1):active {
+ transform: perspective(1000px) rotateX(20deg);
+ -webkit-transform: perspective(1000px) rotateX(20deg);
+ -o-transform: perspective(1000px) rotateX(20deg);
+ -ms-transform: perspective(1000px) rotateX(20deg);
+}
+/* Tilt Right */
+.tile:nth-of-type(4n - 2):active {
+ transform: perspective(1000px) rotateY(20deg);
+ -webkit-transform: perspective(1000px) rotateY(20deg);
+ -o-transform: perspective(1000px) rotateY(20deg);
+ -ms-transform: perspective(1000px) rotateY(20deg);
+}
+/* Tilt Bottom */
+.tile:nth-of-type(4n - 3):active {
+ transform: perspective(1000px) rotateX(-20deg);
+ -webkit-transform: perspective(1000px) rotateX(-20deg);
+ -o-transform: perspective(1000px) rotateX(-20deg);
+ -ms-transform: perspective(1000px) rotateX(-20deg);
+}
+/* Tilt Left */
+.tile:nth-of-type(4n - 4):active {
+ transform: perspective(1000px) rotateY(-20deg);
+ -webkit-transform: perspective(1000px) rotateY(-20deg);
+ -o-transform: perspective(1000px) rotateY(-20deg);
+ -ms-transform: perspective(1000px) rotateY(-20deg);
+
+}
+.tile p {
+ position: absolute;
+ bottom: -5px;
+ left: 10px;
+ font-size: 9pt;
+ transition: all 0.3s ease;
+ transform: perspective(800px) rotateY(0deg);
+}
+
+/* Shortcut tiles */
+.shortcuttile {
+ position:relative;
+ display:inline-block;
+ margin-right:5px;
+ padding:5px;
+ width:113px;
+ height:113px;
+ margin-bottom:4px;
+ border:1px solid #3366CC;
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#3366CC', endColorstr='#3A75EA');
+ background-image: linear-gradient(45deg, #3366CC, #3A75EA); /* Firefox 16+ */
+ background-image: -moz-linear-gradient(45deg, #3366CC, #3A75EA); /* Firefox */
+ background-image: -webkit-linear-gradient(45deg, #3366CC, #3A75EA); /* Chrome */
+ background-image: -o-linear-gradient(45deg, #3366CC, #3A75EA); /* Opera */
+ background-image: -ms-linear-gradient(45deg, #3366CC, #3A75EA); /* IE 10 */
+ transition: all 0.3s ease;
+ transform: perspective(800px) rotateY(0deg);
+ -webkit-transition: all 0.3s ease;
+ -webkit-transform: perspective(800px) rotateY(0deg);
+ -o-transition: all 0.3s ease;
+ -o-transform: perspective(800px) rotateY(0deg);
+ -ms-transition: all 0.3s ease;
+ -ms-transform: perspective(800px) rotateY(0deg);
+}
+.shortcuttile:hover {
+ box-shadow: 0px 0px 0px 4px rgba(0, 0, 0, 0.15);
+}
+.shortcuttile:active {
+ box-shadow:none;
+}
+
+.shortcuticon {
+ margin-top:13px;
+ margin-left:23px;
+ margin-right:23px;
+ margin-bottom:20px;
+ height:64px;
+ width:64px;
+ box-shadow:0px 0px transparent;
+}
+.shortcutlabel {
+ font-size:9pt;
+ position:relative;
+}
+/* Tilt Top */
+.shortcuttile:nth-of-type(4n - 1):active {
+ transform: perspective(1000px) rotateX(20deg);
+ -webkit-transform: perspective(1000px) rotateX(20deg);
+ -o-transform: perspective(1000px) rotateX(20deg);
+ -ms-transform: perspective(1000px) rotateX(20deg);
+}
+/* Tilt Right */
+.shortcuttile:nth-of-type(4n - 2):active {
+ transform: perspective(1000px) rotateY(20deg);
+ -webkit-transform: perspective(1000px) rotateY(20deg);
+ -o-transform: perspective(1000px) rotateY(20deg);
+ -ms-transform: perspective(1000px) rotateY(20deg);
+}
+/* Tilt Bottom */
+.shortcuttile:nth-of-type(4n - 3):active {
+ transform: perspective(1000px) rotateX(-20deg);
+ -webkit-transform: perspective(1000px) rotateX(-20deg);
+ -o-transform: perspective(1000px) rotateX(-20deg);
+ -ms-transform: perspective(1000px) rotateX(-20deg);
+}
+/* Tilt Left */
+.shortcuttile:nth-of-type(4n - 4):active {
+ transform: perspective(1000px) rotateY(-20deg);
+ -webkit-transform: perspective(1000px) rotateY(-20deg);
+ -o-transform: perspective(1000px) rotateY(-20deg);
+ -ms-transform: perspective(1000px) rotateY(-20deg);
+}
+
+/* Tiles without background */
+.nobackground {
+ position:relative;
+ font-size:9pt;
+ display:inline-block;
+ margin-right:5px;
+ margin-bottom:4px;
+ padding:5px;
+ border:1px solid #3366CC;
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#3366CC', endColorstr='#3A75EA');
+ background-image: linear-gradient(45deg, #3366CC, #3A75EA); /* Firefox 16+ */
+ background-image: -moz-linear-gradient(45deg, #3366CC, #3A75EA); /* Firefox */
+ background-image: -webkit-linear-gradient(45deg, #3366CC, #3A75EA); /* Chrome */
+ background-image: -o-linear-gradient(45deg, #3366CC, #3A75EA); /* Opera */
+ background-image: -ms-linear-gradient(45deg, #3366CC, #3A75EA); /* IE 10 */
+ transition: all 0.3s ease;
+ transform: perspective(800px) rotateY(0deg);
+ -webkit-transition: all 0.3s ease;
+ -webkit-transform: perspective(800px) rotateY(0deg);
+ -o-transition: all 0.3s ease;
+ -o-transform: perspective(800px) rotateY(0deg);
+ -ms-transition: all 0.3s ease;
+ -ms-transform: perspective(800px) rotateY(0deg);
+}
+.nobackground:hover {
+ box-shadow: 0px 0px 0px 4px rgba(0, 0, 0, 0.15);
+}
+.nobackground:active {
+ box-shadow:none;
+}
+
+/* Tilt Top */
+.nobackground:nth-of-type(4n - 1):active {
+ transform: perspective(1000px) rotateX(20deg);
+ -webkit-transform: perspective(1000px) rotateX(20deg);
+ -o-transform: perspective(1000px) rotateX(20deg);
+ -ms-transform: perspective(1000px) rotateX(20deg);
+}
+/* Tilt Right */
+.nobackground:nth-of-type(4n - 2):active {
+ transform: perspective(1000px) rotateY(20deg);
+ -webkit-transform: perspective(1000px) rotateY(20deg);
+ -o-transform: perspective(1000px) rotateY(20deg);
+ -ms-transform: perspective(1000px) rotateY(20deg);
+}
+/* Tilt Bottom */
+.nobackground:nth-of-type(4n - 3):active {
+ transform: perspective(1000px) rotateX(-20deg);
+ -webkit-transform: perspective(1000px) rotateX(-20deg);
+ -o-transform: perspective(1000px) rotateX(-20deg);
+ -ms-transform: perspective(1000px) rotateX(-20deg);
+}
+/* Tilt Left */
+.nobackground:nth-of-type(4n - 4):active {
+ transform: perspective(1000px) rotateY(-20deg);
+ -webkit-transform: perspective(1000px) rotateY(-20deg);
+ -o-transform: perspective(1000px) rotateY(-20deg);
+ -ms-transform: perspective(1000px) rotateY(-20deg);
+}
+
+/* Rectangles and squares */
+.rectangle {
+ width:246px;
+ height:113px;
+}
+.square {
+ width:113px;
+ height:113px;
+}
+/* Zoom in-out button */
+#zoomoutbutton {
+ position:fixed;
+ background-color:rgba(255,255,255,0.7);
+ bottom:0px;
+ right:0px;
+ width:12px;
+ height:16px;
+ padding-left:4px;
+ color:#000;
+ font-weight:bold;
+ font-size:14pt;
+ line-height:16px;
+}
+#zoominbutton {
+ display:none;
+ position:fixed;
+ background-color:rgba(255,255,255,0.7);
+ bottom:0px;
+ right:0px;
+ width:12px;
+ height:16px;
+ padding-left:4px;
+ color:#000;
+ font-weight:bold;
+ font-size:14pt;
+ line-height:16px;
+}
+/* Charms */
+/* Hover areas */
+#hoverarea {
+ position:fixed;
+ top:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#bottomhoverarea {
+ position:fixed;
+ bottom:16px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#starthoverarea {
+ position:fixed;
+ bottom:0px;
+ left:0px;
+ width:15px;
+ height:15px;
+}
+/* Charms bar */
+#charmsbar {
+ z-index:2;
+ display:none;
+ background-color:#111111;
+ position:fixed;
+ padding:5% 0;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 86px;
+
+}
+/* Start button */
+#startbutton {
+ display:none;
+ position:fixed;
+ left:0px;
+ bottom:0px;
+ margin:0;
+ padding:0;
+}
+/* Date and time on charms */
+#datetime {
+ display:none;
+ position:fixed;
+ left:50px;
+ bottom:50px;
+ width:490px;
+ height:139px;
+ background-color: rgba(17,17,17,0.96);
+}
+#time {
+ position:absolute;
+ left:70px;
+ bottom:19px;
+ font-family: Segoe UI Light;
+ font-size: 64pt;
+}
+#date {
+ margin-top:20px;
+ margin-right:20px;
+ float:right;
+ font-size:24pt;
+}
+#iconnetwork {
+ position:absolute;
+ top:35px;
+ left:25px;
+}
+#iconbattery {
+ position:absolute;
+ bottom:35px;
+ left:32px;
+}
+
+/* Text styling on Settings, share charms */
+
+.ch1 {
+ font-family:Segoe UI Semilight;
+ font-size:28px;
+ margin-bottom:25px;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+.ch2 {
+ font-size:11pt;
+ margin-bottom:25px;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+.ch2d {
+ font-size:11pt;
+ color:#A8A8A8;
+ margin-bottom:25px;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+.sharing {
+ font-size:14pt;
+}
+/* Close button on settings, share charms */
+.closesettings {
+ float:right;
+ height:32px !important;
+ width:32px !important;
+ border-radius:10000px;
+ box-shadow:none !important;
+ background-image: url(images/charmsbar/settings/close.png);
+}
+/*.closesettings:hover {
+ background-image: url(images/charmsbar/settings/close-hover.png);
+}*/
+.closesettings:active {
+ background-image: url(images/charmsbar/settings/close-active.png);
+}
+/* Charms */
+.charms {
+ z-index:2;
+ background-color:#001E4E;
+ padding: 40px;
+ position:fixed;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 354px;
+
+}
+.charms input[type="text"] {
+ -webkit-user-select: text;
+ -khtml-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+ border:none;
+ font:normal 11pt Segoe UI;
+ background-color:#FFF;
+ transition:all 1s;
+
+}
+.charms input::selection {
+ background-color:#6666DD;
+
+}
+.charms input::-moz-selection {
+ background-color:#6666DD;
+
+}
+/* Settings charms */
+#settingscharms {
+ display:none;
+}
+/* Images on settings charm */
+#settingscharms img{
+ width:45px;
+ height:45px;
+ transition: all 0.3s ease;
+ transform: perspective(800px) rotateY(0deg);
+ box-shadow:0px 0px;
+ margin-right:3px;
+ margin-bottom:3px;
+}
+#settingscharms img:hover {
+ box-shadow: 0px 0px 0px 3px rgba(175, 175, 175, 0.2);
+}
+#settingscharms img:active {
+ box-shadow:0px 0px;
+}
+#settingscharms span {
+ line-height:40px;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+#settingscharms input[type="text"] {
+ margin:5px;
+ padding:4px;
+}
+/* Share charms */
+#sharecharms {
+ display:none;
+}
+#sharecharms span {
+ line-height:40px;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+/* Search charms */
+#searchcharms {
+ display:none;
+}
+#searchcharms span {
+ line-height:40px;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+/* Search charms elements */
+#searchcharms input[type="text"] {
+ border:none;
+ outline:none;
+ height: 30px;
+ width:250px;
+ padding-left: 10px;
+ font-family: Segoe UI;
+ font-size:11pt;
+}
+#searchcharms input[type="submit"] {
+ cursor:pointer;
+ width:32px;
+ height:32px;
+ text-indent:-999px;
+ line-height:0;
+ font-size:0;
+ padding:0;
+ color: transparent;
+ background: url(images/charmsbar/search/search.png) no-repeat #0069C0 center;
+ border: 2px solid #FFFFFF;
+ vertical-align: top;
+
+}
+#searchcharms input[type="submit"]:hover {
+ background: url(images/charmsbar/search/search.png) no-repeat #227DC9 center;
+ border: 2px solid #FFFFFF;
+}
+#searchcharms input[type="submit"]:active {
+ background: url(images/charmsbar/search/search-black.png) no-repeat #FFFFFF center;
+ border: 2px solid #FFFFFF;
+}
+#searchcharms input[type="reset"] {
+ cursor:pointer;
+ width:32px;
+ height:32px;
+ text-indent:-999px;
+ line-height:0;
+ font-size:0;
+ margin:0px;
+ color: transparent;
+ background: url(images/charmsbar/search/reset-black.png) no-repeat center;
+ border: 2px solid #FFFFFF;
+ vertical-align: top;
+}
+#searchcharms input[type="reset"]:hover {
+ background: url(images/charmsbar/search/reset-black.png) no-repeat #DFDFDF center;
+ border: 2px solid #FFFFFF;
+}
+#searchcharms input[type="reset"]:active {
+ background: url(images/charmsbar/search/reset.png) no-repeat #000000 center;
+ border: 2px solid #FFFFFF;
+}
+#searchcharms form {
+ background-color: #FFFFFF;
+ display:inline-block;
+ padding:0;
+ margin-bottom: 24px;
+}
+.searchcategory {
+ font-size:11pt;
+ height:40px;
+ padding:10px 0;
+ display:block;
+}
+.searchcategory img {
+
+}
+.searchcategory span {
+ vertical-align: top;
+ line-height:17px !important;
+ margin-left: 10px;
+}
+.searchseperator {
+ border-top:1px solid #3D5478;
+ height:0px;
+ margin-top:20px;
+} \ No newline at end of file
diff --git a/store/comingsoon.png b/store/comingsoon.png
new file mode 100644
index 0000000..affa3f5
--- /dev/null
+++ b/store/comingsoon.png
Binary files differ
diff --git a/store/css/charms.css b/store/css/charms.css
new file mode 100644
index 0000000..abfb09f
--- /dev/null
+++ b/store/css/charms.css
@@ -0,0 +1,165 @@
+body {
+font-family:Segoe UI;
+margin:0px;
+padding:0px;
+}
+img, a {
+ outline:none;
+ border:none;
+}
+#splashscreen {
+position:fixed;
+width:100%;
+height:100%;
+color:#FFFFFF;
+background-image:url('../splashscreen.png');
+background-repeat:no-repeat;
+background-color:#008A00;
+background-position:center;
+animation:splash 4s;
+-ms-animation:splash 4s;
+-webkit-animation:splash 4s;
+-o-animation:splash 4s;
+opacity:0;
+z-index:-1;
+}
+@keyframes splash {
+from {
+z-index:2;
+opacity: 1;
+}
+66% {
+opacity: 1;
+}
+to {
+opacity:0;
+z-index:1;
+display:none;
+}
+}
+@-webkit-keyframes splash {
+from {
+z-index:2;
+opacity: 1;
+}
+66% {
+opacity: 1;
+}
+to {
+opacity:0;
+z-index:1;
+display:none;
+}
+}
+@-ms-keyframes splash {
+from {
+z-index:2;
+opacity: 1;
+}
+66% {
+opacity: 1;
+}
+to {
+opacity:0;
+z-index:1;
+display:none;
+}
+}
+@-o-keyframes splash {
+from {
+z-index:2;
+opacity: 1;
+}
+66% {
+opacity: 1;
+}
+to {
+opacity:0;
+z-index:1;
+display:none;
+}
+}
+#hoverarea {
+ position:fixed;
+ top:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#bottomhoverarea {
+ position:fixed;
+ bottom:0px;
+ right:0px;
+ width:15px;
+ height:15px;
+}
+#starthoverarea {
+ position:fixed;
+ bottom:0px;
+ left:0px;
+ width:15px;
+ height:15px;
+}
+#charmsbar {
+ display:none;
+ background-color:#111111;
+ position:fixed;
+ padding:5% 0;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 86px;
+
+}
+#settingscharms {
+ padding : 40px;
+ display:none;
+ background-color:#3B66AD;
+ position:fixed;
+ top:0px;
+ right:0px;
+ height:100%;
+ width: 345px;
+
+}
+#startbutton {
+ display:none;
+ position:fixed;
+ left:0px;
+ bottom:0px;
+}
+#iconnetwork {
+ position:absolute;
+ top:35px;
+ left:25px;
+}
+#iconbattery {
+ position:absolute;
+ bottom:35px;
+ left:32px;
+}
+#datetime {
+ display:none;
+ position:fixed;
+ left:50px;
+ bottom:50px;
+ width:490px;
+ height:139px;
+ background-color: rgba(17,17,17,1);
+}
+#ctime {
+ position:absolute;
+ left:70px;
+ bottom:19px;
+ font-family: Segoe UI Light;
+ font-size: 64pt;
+ color:#FFFFFF;
+}
+#date {
+ margin-top:20px;
+ margin-right:20px;
+ float:right;
+ font-size:24pt;
+ font-family: Segoe UI;
+ color:#FFFFFF;
+}
diff --git a/store/img/charmsbar/battery.png b/store/img/charmsbar/battery.png
new file mode 100644
index 0000000..07b1b4d
--- /dev/null
+++ b/store/img/charmsbar/battery.png
Binary files differ
diff --git a/store/img/charmsbar/devices-hover.png b/store/img/charmsbar/devices-hover.png
new file mode 100644
index 0000000..ad3fa8e
--- /dev/null
+++ b/store/img/charmsbar/devices-hover.png
Binary files differ
diff --git a/store/img/charmsbar/devices.png b/store/img/charmsbar/devices.png
new file mode 100644
index 0000000..1a81a90
--- /dev/null
+++ b/store/img/charmsbar/devices.png
Binary files differ
diff --git a/store/img/charmsbar/network.png b/store/img/charmsbar/network.png
new file mode 100644
index 0000000..5dc5ef7
--- /dev/null
+++ b/store/img/charmsbar/network.png
Binary files differ
diff --git a/store/img/charmsbar/search-hover.png b/store/img/charmsbar/search-hover.png
new file mode 100644
index 0000000..16a48f9
--- /dev/null
+++ b/store/img/charmsbar/search-hover.png
Binary files differ
diff --git a/store/img/charmsbar/search.png b/store/img/charmsbar/search.png
new file mode 100644
index 0000000..d5cea8e
--- /dev/null
+++ b/store/img/charmsbar/search.png
Binary files differ
diff --git a/store/img/charmsbar/settings-hover.png b/store/img/charmsbar/settings-hover.png
new file mode 100644
index 0000000..c8f9820
--- /dev/null
+++ b/store/img/charmsbar/settings-hover.png
Binary files differ
diff --git a/store/img/charmsbar/settings.png b/store/img/charmsbar/settings.png
new file mode 100644
index 0000000..b63fbc3
--- /dev/null
+++ b/store/img/charmsbar/settings.png
Binary files differ
diff --git a/store/img/charmsbar/share-hover.png b/store/img/charmsbar/share-hover.png
new file mode 100644
index 0000000..bd3a423
--- /dev/null
+++ b/store/img/charmsbar/share-hover.png
Binary files differ
diff --git a/store/img/charmsbar/share.png b/store/img/charmsbar/share.png
new file mode 100644
index 0000000..b743bf0
--- /dev/null
+++ b/store/img/charmsbar/share.png
Binary files differ
diff --git a/store/img/charmsbar/start-hover.png b/store/img/charmsbar/start-hover.png
new file mode 100644
index 0000000..6cc3144
--- /dev/null
+++ b/store/img/charmsbar/start-hover.png
Binary files differ
diff --git a/store/img/charmsbar/start.png b/store/img/charmsbar/start.png
new file mode 100644
index 0000000..6cf722c
--- /dev/null
+++ b/store/img/charmsbar/start.png
Binary files differ
diff --git a/store/img/charmsbar/startbutton.png b/store/img/charmsbar/startbutton.png
new file mode 100644
index 0000000..db9726d
--- /dev/null
+++ b/store/img/charmsbar/startbutton.png
Binary files differ
diff --git a/store/index.html b/store/index.html
new file mode 100644
index 0000000..1c5cd7e
--- /dev/null
+++ b/store/index.html
@@ -0,0 +1,82 @@
+<!--DO NOT REMOVE THE CODE GIVEN HERE, THAT CODE POWERS THE CHARMS AND START MENU !!! -->
+<html>
+ <head>
+ <!--Title of the app -->
+ <title>Store</title>
+ <meta http-equiv="x-ua-compatible" content="IE=edge">
+ <!--Stylesheet that styles the charms bar and the startbutton -->
+ <link rel="stylesheet" href="css/charms.css"/>
+
+ <!--Script that powers the charms bar-->
+ <script>
+ function visibility(visibility , target) {
+ document.getElementById(target).style.display=visibility;
+ }
+ </script>
+ <script>
+ function doublevisibility(visibility , target , target2) {
+ document.getElementById(target).style.display=visibility;
+ document.getElementById(target2).style.display=visibility;
+ }
+ </script>
+ </head>
+ <body>
+ <!--PLACE YOUR CONTENT HERE -->
+<style type="text/css">
+body {
+ background-image: url(comingsoon.png);
+ background-repeat: no-repeat;
+}
+</style>
+ <div id="splashscreen"></div>
+ <!-- CHARMS BAR CODE -->
+ <div id="charmsbar" onmouseover="doublevisibility('inline','charmsbar','datetime')" onmouseout="doublevisibility('none','charmsbar','datetime')" >
+ <img src="img/charmsbar/search.png" onclick="visibility('block','searchcharms')" onmouseover="this.src='img/charmsbar/search-hover.png'" onmouseout="this.src='img/charmsbar/search.png'"/><br/>
+ <img src="img/charmsbar/share.png" onclick="visibility('block','sharecharms')" onmouseover="this.src='img/charmsbar/share-hover.png'" onmouseout="this.src='img/charmsbar/share.png'"/><br/>
+ <a href="../start/index.html"><img src="img/charmsbar/start.png" onmouseover="this.src='img/charmsbar/start-hover.png'" onmouseout="this.src='img/charmsbar/start.png'"/></a><br/>
+ <img src="img/charmsbar/devices.png" onmouseover="this.src='img/charmsbar/devices-hover.png'" onmouseout="this.src='img/charmsbar/devices.png'"/><br/>
+ <img src="img/charmsbar/settings.png" onclick="visibility('block','settingscharms')" onmouseover="this.src='img/charmsbar/settings-hover.png'" onmouseout="this.src='img/charmsbar/settings.png'"/><br/>
+ </div>
+ <div id="datetime">
+ <img src="img/charmsbar/network.png" id="iconnetwork" height="24px" width="24px"/>
+ <img src="img/charmsbar/battery.png" id="iconbattery"/>
+ <span id="ctime"></span>
+ <script>
+ function clock() {
+ var digital = new Date();
+ var hours = digital.getHours();
+ var minutes = digital.getMinutes();
+ var seconds = digital.getSeconds();
+ var amOrPm = "AM";
+ if (hours > 11) amOrPm = "PM";
+ if (hours > 12) hours = hours - 12;
+ if (hours == 0) hours = 12;
+ if (minutes <= 9) minutes = "0" + minutes;
+ if (seconds <= 9) seconds = "0" + seconds;
+ dispTime = hours + ":" + minutes ;
+ document.getElementById('ctime').innerHTML = dispTime;
+ setTimeout("clock()", 1000);
+ }
+ window.onload=clock;
+ </script>
+ <div id="date">
+ <script>
+
+ var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
+
+ var monName = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
+
+ var now = new Date
+
+ document.write("" + dayName[now.getDay()] + "<br/>" +"<span id=month>" + monName[now.getMonth()] + " "+now.getDate() +"")
+ </script>
+ </div>
+ </div>
+ <div id="startbutton" onmouseout="visibility('none','startbutton')">
+ <a href="../start/index.html"><img src="img/charmsbar/startbutton.png"/></a>
+ </div>
+ <div id="hoverarea" onmouseover="doublevisibility('inline','charmsbar','datetime')" class="hotcorner"></div>
+ <div id="bottomhoverarea" onmouseover="doublevisibility('inline','charmsbar','datetime')" class="hotcorner"></div>
+ <div id="starthoverarea" onmouseover="visibility('inline','startbutton')" class="hotcorner"></div>
+ </body>
+</html>
diff --git a/store/splashscreen.png b/store/splashscreen.png
new file mode 100644
index 0000000..8acd252
--- /dev/null
+++ b/store/splashscreen.png
Binary files differ