From ecf49b1b64d23275e845a71f80dbeb964ef27830 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Fri, 6 May 2016 03:30:27 +0300 Subject: [PATCH] second --- .gitignore | 4 +++- common/components/urlManager/.htaccess | 10 ++++++++++ common/components/urlManager/LangRequest.php | 17 +++++++++++++++++ common/components/urlManager/LangUrlManager.php | 32 ++++++++++++++++++++++++++++++++ common/components/urlManager/LangUrlRule.php | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ common/models/Bg.php | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ console/migrations/m160505_202248_bg.php | 23 +++++++++++++++++++++++ console/migrations/m160505_235100_page.php | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ frontend/components/BgWidget.php | 30 ++++++++++++++++++++++++++++++ frontend/components/HreflangWidget.php | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/components/Text.php | 16 ++++++++++++++++ frontend/controllers/ArticlesController.php | 41 +++++++++++++++++++++++++++++++++++++++++ frontend/controllers/BasketController.php | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/controllers/BrendsController.php | 47 +++++++++++++++++++++++++++++++++++++++++++++++ frontend/controllers/CallController.php | 33 +++++++++++++++++++++++++++++++++ frontend/controllers/IamController.php | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/controllers/LoginController.php | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/controllers/NewsController.php | 41 +++++++++++++++++++++++++++++++++++++++++ frontend/controllers/ProductsController.php | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/controllers/RegController.php | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/controllers/SubscribeController.php | 26 ++++++++++++++++++++++++++ frontend/controllers/TextController.php | 24 ++++++++++++++++++++++++ frontend/controllers/error_log | 1 + frontend/views/basket/_popup.php | 28 ++++++++++++++++++++++++++++ frontend/views/basket/ajax_info.php | 5 +++++ frontend/views/basket/ajax_items.php | 29 +++++++++++++++++++++++++++++ frontend/views/basket/index.php | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/basket/success.php | 28 ++++++++++++++++++++++++++++ frontend/views/brends/index.php | 40 ++++++++++++++++++++++++++++++++++++++++ frontend/views/brends/show.php | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/catalog/_catalog_box.php | 20 ++++++++++++++++++++ frontend/views/catalog/all.php | 39 +++++++++++++++++++++++++++++++++++++++ frontend/views/catalog/index.php | 44 ++++++++++++++++++++++++++++++++++++++++++++ frontend/views/products/_product.php | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/products/_show.php | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/products/compare.php | 46 ++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/products/index.php | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/products/search.php | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/products/show.php | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/1style.css | 874 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/_style.css | 859 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/css/begunok.css | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/files/.tmb/l1_c2l0ZV9leHRyZW1fbmV3X25ld3NfYnV0dG9uXzIuanBn1437031556.png | Bin 0 -> 2567 bytes frontend/web/files/site_extrem_new_news_button_2.jpg | Bin 0 -> 956009 bytes frontend/web/img/_logo.png | Bin 0 -> 3647 bytes frontend/web/img/arrow-next.png | Bin 0 -> 1808 bytes frontend/web/img/arrow-prev.png | Bin 0 -> 1790 bytes frontend/web/img/artweb.png | Bin 0 -> 1497 bytes frontend/web/img/banner1.jpg | Bin 0 -> 141358 bytes frontend/web/img/banner_akciya.jpg | Bin 0 -> 51619 bytes frontend/web/img/begunok_slider.png | Bin 0 -> 1372 bytes frontend/web/img/buy.png | Bin 0 -> 1120 bytes frontend/web/img/children_sub.jpg | Bin 0 -> 36785 bytes frontend/web/img/close_modal.jpg | Bin 0 -> 527 bytes frontend/web/img/del.png | Bin 0 -> 1049 bytes frontend/web/img/favicon.ico | Bin 0 -> 932 bytes frontend/web/img/help.png | Bin 0 -> 1211 bytes frontend/web/img/ico1.png | Bin 0 -> 7900 bytes frontend/web/img/ico2.png | Bin 0 -> 6833 bytes frontend/web/img/ico3.png | Bin 0 -> 4481 bytes frontend/web/img/ico4.png | Bin 0 -> 7070 bytes frontend/web/img/ico5.png | Bin 0 -> 4334 bytes frontend/web/img/ico_close.png | Bin 0 -> 26655 bytes frontend/web/img/ico_pic.jpg | Bin 0 -> 21928 bytes frontend/web/img/ico_pic2.jpg | Bin 0 -> 23953 bytes frontend/web/img/li1.png | Bin 0 -> 1153 bytes frontend/web/img/li2.png | Bin 0 -> 1150 bytes frontend/web/img/li3.png | Bin 0 -> 1125 bytes frontend/web/img/li_minus.png | Bin 0 -> 1086 bytes frontend/web/img/li_plus.png | Bin 0 -> 1109 bytes frontend/web/img/login.png | Bin 0 -> 1086 bytes frontend/web/img/logo-why.png | Bin 0 -> 4521 bytes frontend/web/img/logo.png | Bin 0 -> 4367 bytes frontend/web/img/lupa_sub.png | Bin 0 -> 1206 bytes frontend/web/img/man_sub.jpg | Bin 0 -> 36503 bytes frontend/web/img/map.jpg | Bin 0 -> 21459 bytes frontend/web/img/map.png | Bin 0 -> 1223 bytes frontend/web/img/minus.png | Bin 0 -> 26407 bytes frontend/web/img/more.png | Bin 0 -> 1018 bytes frontend/web/img/new_coll.png | Bin 0 -> 2132 bytes frontend/web/img/notpic.gif | Bin 0 -> 14525 bytes frontend/web/img/pagination.png | Bin 0 -> 1080 bytes frontend/web/img/phone.png | Bin 0 -> 1202 bytes frontend/web/img/pic.jpg | Bin 0 -> 57565 bytes frontend/web/img/plus.png | Bin 0 -> 26450 bytes frontend/web/img/pro.png | Bin 0 -> 1437 bytes frontend/web/img/sale30.jpg | Bin 0 -> 63754 bytes frontend/web/img/slider.jpg | Bin 0 -> 126298 bytes frontend/web/img/social-ico-two.png | Bin 0 -> 3757 bytes frontend/web/img/social-ico.png | Bin 0 -> 2739 bytes frontend/web/img/v_next.png | Bin 0 -> 1055 bytes frontend/web/img/v_next2.png | Bin 0 -> 1030 bytes frontend/web/img/v_prev.png | Bin 0 -> 1039 bytes frontend/web/img/v_prev2.png | Bin 0 -> 1030 bytes frontend/web/img/why.png | Bin 0 -> 4428 bytes frontend/web/img/why_item1.png | Bin 0 -> 4028 bytes frontend/web/img/why_item2.png | Bin 0 -> 3391 bytes frontend/web/img/why_item3.png | Bin 0 -> 4277 bytes frontend/web/img/why_item4.png | Bin 0 -> 3795 bytes frontend/web/img/why_item5.png | Bin 0 -> 4429 bytes frontend/web/img/why_item6.png | Bin 0 -> 3289 bytes frontend/web/img/woman_sub.jpg | Bin 0 -> 40290 bytes frontend/web/js/begunok.js | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/call.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jCarousel/jCarousel.js | 4 ++++ frontend/web/js/jcarousel/jcarousel.min.js | 4 ++++ frontend/web/js/jcarousel/skins/HOME_SLIDER/arrows_left.png | Bin 0 -> 3045 bytes frontend/web/js/jcarousel/skins/HOME_SLIDER/arrows_right.png | Bin 0 -> 3041 bytes frontend/web/js/jcarousel/skins/HOME_SLIDER/credits.txt | 1 + frontend/web/js/jcarousel/skins/HOME_SLIDER/next-horizontal.png | Bin 0 -> 4375 bytes frontend/web/js/jcarousel/skins/HOME_SLIDER/next-vertical.png | Bin 0 -> 3817 bytes frontend/web/js/jcarousel/skins/HOME_SLIDER/next.jpg | Bin 0 -> 710 bytes frontend/web/js/jcarousel/skins/HOME_SLIDER/next.png | Bin 0 -> 755 bytes frontend/web/js/jcarousel/skins/HOME_SLIDER/prev-horizontal.png | Bin 0 -> 4322 bytes frontend/web/js/jcarousel/skins/HOME_SLIDER/prev-vertical.png | Bin 0 -> 3962 bytes frontend/web/js/jcarousel/skins/HOME_SLIDER/prev.jpg | Bin 0 -> 689 bytes frontend/web/js/jcarousel/skins/HOME_SLIDER/prev.png | Bin 0 -> 769 bytes frontend/web/js/jcarousel/skins/HOME_SLIDER/skin.css | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jcarousel/skins/HOME_SLIDER/skin2.css | 185 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jcarousel/skins/HOME_SLIDER/v_next.png | Bin 0 -> 1055 bytes frontend/web/js/jcarousel/skins/HOME_SLIDER/v_next2.png | Bin 0 -> 1030 bytes frontend/web/js/jcarousel/skins/HOME_SLIDER/v_prev.png | Bin 0 -> 1039 bytes frontend/web/js/jcarousel/skins/HOME_SLIDER/v_prev2.png | Bin 0 -> 1030 bytes frontend/web/js/jcarousel/skins/ie7/credits.txt | 1 + frontend/web/js/jcarousel/skins/ie7/loading-small.gif | Bin 0 -> 3236 bytes frontend/web/js/jcarousel/skins/ie7/loading.gif | Bin 0 -> 8266 bytes frontend/web/js/jcarousel/skins/ie7/loading_small.gif | Bin 0 -> 3208 bytes frontend/web/js/jcarousel/skins/ie7/next-horizontal.gif | Bin 0 -> 3530 bytes frontend/web/js/jcarousel/skins/ie7/prev-horizontal.gif | Bin 0 -> 3517 bytes frontend/web/js/jcarousel/skins/ie7/skin.css | 190 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jcarousel/skins/tango/arrows_left.png | Bin 0 -> 3045 bytes frontend/web/js/jcarousel/skins/tango/arrows_right.png | Bin 0 -> 3041 bytes frontend/web/js/jcarousel/skins/tango/credits.txt | 1 + frontend/web/js/jcarousel/skins/tango/next-horizontal.png | Bin 0 -> 4375 bytes frontend/web/js/jcarousel/skins/tango/next-vertical.png | Bin 0 -> 3817 bytes frontend/web/js/jcarousel/skins/tango/next.jpg | Bin 0 -> 710 bytes frontend/web/js/jcarousel/skins/tango/next.png | Bin 0 -> 755 bytes frontend/web/js/jcarousel/skins/tango/prev-horizontal.png | Bin 0 -> 4322 bytes frontend/web/js/jcarousel/skins/tango/prev-vertical.png | Bin 0 -> 3962 bytes frontend/web/js/jcarousel/skins/tango/prev.jpg | Bin 0 -> 689 bytes frontend/web/js/jcarousel/skins/tango/prev.png | Bin 0 -> 769 bytes frontend/web/js/jcarousel/skins/tango/skin.css | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jcarousel/skins/tango/skin2.css | 185 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jcarousel/skins/tango/v_next.png | Bin 0 -> 1055 bytes frontend/web/js/jcarousel/skins/tango/v_next2.png | Bin 0 -> 1030 bytes frontend/web/js/jcarousel/skins/tango/v_prev.png | Bin 0 -> 1039 bytes frontend/web/js/jcarousel/skins/tango/v_prev2.png | Bin 0 -> 1030 bytes frontend/web/js/jquery-1.5.min.js | 16 ++++++++++++++++ frontend/web/js/jquery.mask.js | 463 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jquery.min.js | 6 ++++++ frontend/web/js/jquery.ui-slider.js | 10 ++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/README | 7 +++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/changelog.html | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/dynamic_ajax.html | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/dynamic_ajax.txt | 10 ++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/dynamic_ajax_php.html | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/dynamic_ajax_php.php | 43 +++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/dynamic_flickr_api.html | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/dynamic_flickr_api.php | 29 +++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/dynamic_flickr_feed.html | 190 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/dynamic_flickr_feed.php | 14 ++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/dynamic_javascript.html | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/images/arrow-down.gif | Bin 0 -> 55 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/examples/images/arrow-up.gif | Bin 0 -> 832 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/examples/images/loading-small.gif | Bin 0 -> 3236 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/examples/images/loading-thickbox.gif | Bin 0 -> 5886 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/examples/images/loading.gif | Bin 0 -> 8266 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/examples/special_easing.html | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/special_flexible.html | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/special_textscroller.html | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/special_textscroller.php | 15 +++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/special_thickbox.html | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/static_auto.html | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/static_callbacks.html | 235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/static_circular.html | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/static_controls.html | 166 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/static_multiple.html | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/static_simple.html | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/static_start.html | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/static_vertical.html | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/thickbox/thickbox.css | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/examples/thickbox/thickbox.js | 296 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/index.html | 516 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/lib/jquery-1.4.2.min.js | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/lib/jquery.jcarousel.js | 1057 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/lib/jquery.jcarousel.min.js | 16 ++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/skins/ie7/credits.txt | 1 + frontend/web/js/jsor-jcarousel-7bb2e0a/skins/ie7/loading-small.gif | Bin 0 -> 3236 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/skins/ie7/loading.gif | Bin 0 -> 8266 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/skins/ie7/loading_small.gif | Bin 0 -> 3208 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/skins/ie7/next-horizontal.gif | Bin 0 -> 3530 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/skins/ie7/prev-horizontal.gif | Bin 0 -> 3517 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/skins/ie7/skin.css | 190 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/arrows_left.png | Bin 0 -> 3045 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/arrows_right.png | Bin 0 -> 3041 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/credits.txt | 1 + frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/next-horizontal.png | Bin 0 -> 4375 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/next-vertical.png | Bin 0 -> 3817 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/next.jpg | Bin 0 -> 710 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/next.png | Bin 0 -> 755 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/prev-horizontal.png | Bin 0 -> 4322 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/prev-vertical.png | Bin 0 -> 3962 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/prev.jpg | Bin 0 -> 689 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/prev.png | Bin 0 -> 769 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/skin.css | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/skin2.css | 185 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/v_next.png | Bin 0 -> 1055 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/v_next2.png | Bin 0 -> 1030 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/v_prev.png | Bin 0 -> 1039 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/v_prev2.png | Bin 0 -> 1030 bytes frontend/web/js/jsor-jcarousel-7bb2e0a/style.css | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/main.js | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/shadowbox-3.0.3/LICENSE | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/shadowbox-3.0.3/README | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/shadowbox-3.0.3/_shadowbox.css | 30 ++++++++++++++++++++++++++++++ frontend/web/js/shadowbox-3.0.3/close.png | Bin 0 -> 255 bytes frontend/web/js/shadowbox-3.0.3/loading.gif | Bin 0 -> 2545 bytes frontend/web/js/shadowbox-3.0.3/next.png | Bin 0 -> 248 bytes frontend/web/js/shadowbox-3.0.3/pause.png | Bin 0 -> 155 bytes frontend/web/js/shadowbox-3.0.3/play.png | Bin 0 -> 211 bytes frontend/web/js/shadowbox-3.0.3/previous.png | Bin 0 -> 237 bytes frontend/web/js/shadowbox-3.0.3/shadowbox.css | 30 ++++++++++++++++++++++++++++++ frontend/web/js/shadowbox-3.0.3/shadowbox.js | 17 +++++++++++++++++ frontend/web/js/slides.min.jquery.js | 20 ++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/README | 7 +++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/changelog.html | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_ajax.html | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_ajax.txt | 10 ++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_ajax_php.html | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_ajax_php.php | 43 +++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_flickr_api.html | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_flickr_api.php | 29 +++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_flickr_feed.html | 190 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_flickr_feed.php | 14 ++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_javascript.html | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/arrow-down.gif | Bin 0 -> 55 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/arrow-up.gif | Bin 0 -> 832 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/loading-small.gif | Bin 0 -> 3236 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/loading-thickbox.gif | Bin 0 -> 5886 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/loading.gif | Bin 0 -> 8266 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_easing.html | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_flexible.html | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_textscroller.html | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_textscroller.php | 15 +++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_thickbox.html | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_auto.html | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_callbacks.html | 235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_circular.html | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_controls.html | 166 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_multiple.html | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_simple.html | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_start.html | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_vertical.html | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/thickbox/thickbox.css | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/examples/thickbox/thickbox.js | 296 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/img/a12.png | Bin 0 -> 2483 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/img/a14.png | Bin 0 -> 3536 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/img/a19.png | Bin 0 -> 4179 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/img/b05.png | Bin 0 -> 1415 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/img/b12.png | Bin 0 -> 891 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/img/b21.png | Bin 0 -> 864 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/img/pagination.png | Bin 0 -> 1080 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/index.html | 516 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/arrows_left.png | Bin 0 -> 3045 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/arrows_right.png | Bin 0 -> 3041 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/credits.txt | 1 + frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/next-horizontal.png | Bin 0 -> 4375 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/next-vertical.png | Bin 0 -> 3817 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/next.jpg | Bin 0 -> 710 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/next.png | Bin 0 -> 755 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/prev-horizontal.png | Bin 0 -> 4322 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/prev-vertical.png | Bin 0 -> 3962 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/prev.jpg | Bin 0 -> 689 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/prev.png | Bin 0 -> 769 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/skin.css | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/skin2.css | 185 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/v_next.png | Bin 0 -> 1055 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/v_next2.png | Bin 0 -> 1030 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/v_prev.png | Bin 0 -> 1039 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/v_prev2.png | Bin 0 -> 1030 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/credits.txt | 1 + frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/loading-small.gif | Bin 0 -> 3236 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/loading.gif | Bin 0 -> 8266 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/loading_small.gif | Bin 0 -> 3208 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/next-horizontal.gif | Bin 0 -> 3530 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/prev-horizontal.gif | Bin 0 -> 3517 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/skin.css | 190 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/arrows_left.png | Bin 0 -> 3045 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/arrows_right.png | Bin 0 -> 3041 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/credits.txt | 1 + frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/next-horizontal.png | Bin 0 -> 4375 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/next-vertical.png | Bin 0 -> 3817 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/next.jpg | Bin 0 -> 710 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/next.png | Bin 0 -> 755 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/prev-horizontal.png | Bin 0 -> 4322 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/prev-vertical.png | Bin 0 -> 3962 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/prev.jpg | Bin 0 -> 689 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/prev.png | Bin 0 -> 769 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/skin.css | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/skin2.css | 185 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/v_next.png | Bin 0 -> 1055 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/v_next2.png | Bin 0 -> 1030 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/v_prev.png | Bin 0 -> 1039 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/v_prev2.png | Bin 0 -> 1030 bytes frontend/web/js/widget-carousel/FILTER_SLIDER/style.css | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/FILTER_SLIDER/style.js | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/README | 7 +++++++ frontend/web/js/widget-carousel/HOME_SLIDER/changelog.html | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_ajax.html | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_ajax.txt | 10 ++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_ajax_php.html | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_ajax_php.php | 43 +++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_flickr_api.html | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_flickr_api.php | 29 +++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_flickr_feed.html | 190 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_flickr_feed.php | 14 ++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_javascript.html | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/arrow-down.gif | Bin 0 -> 55 bytes frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/arrow-up.gif | Bin 0 -> 832 bytes frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/loading-small.gif | Bin 0 -> 3236 bytes frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/loading-thickbox.gif | Bin 0 -> 5886 bytes frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/loading.gif | Bin 0 -> 8266 bytes frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_easing.html | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_flexible.html | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_textscroller.html | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_textscroller.php | 15 +++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_thickbox.html | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_auto.html | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_callbacks.html | 235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_circular.html | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_controls.html | 166 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_multiple.html | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_simple.html | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_start.html | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_vertical.html | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/thickbox/thickbox.css | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/examples/thickbox/thickbox.js | 296 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/img/a12.png | Bin 0 -> 2483 bytes frontend/web/js/widget-carousel/HOME_SLIDER/img/a14.png | Bin 0 -> 3536 bytes frontend/web/js/widget-carousel/HOME_SLIDER/img/a19.png | Bin 0 -> 4179 bytes frontend/web/js/widget-carousel/HOME_SLIDER/img/b05.png | Bin 0 -> 1415 bytes frontend/web/js/widget-carousel/HOME_SLIDER/img/b12.png | Bin 0 -> 891 bytes frontend/web/js/widget-carousel/HOME_SLIDER/img/b21.png | Bin 0 -> 864 bytes frontend/web/js/widget-carousel/HOME_SLIDER/img/pagination.png | Bin 0 -> 1080 bytes frontend/web/js/widget-carousel/HOME_SLIDER/index.html | 516 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/arrows_left.png | Bin 0 -> 3045 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/arrows_right.png | Bin 0 -> 3041 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/credits.txt | 1 + frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/next-horizontal.png | Bin 0 -> 4375 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/next-vertical.png | Bin 0 -> 3817 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/next.jpg | Bin 0 -> 710 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/next.png | Bin 0 -> 755 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/prev-horizontal.png | Bin 0 -> 4322 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/prev-vertical.png | Bin 0 -> 3962 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/prev.jpg | Bin 0 -> 689 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/prev.png | Bin 0 -> 769 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/skin.css | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/skin2.css | 185 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/v_next.png | Bin 0 -> 1055 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/v_next2.png | Bin 0 -> 1030 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/v_prev.png | Bin 0 -> 1039 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/v_prev2.png | Bin 0 -> 1030 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/credits.txt | 1 + frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/loading-small.gif | Bin 0 -> 3236 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/loading.gif | Bin 0 -> 8266 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/loading_small.gif | Bin 0 -> 3208 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/next-horizontal.gif | Bin 0 -> 3530 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/prev-horizontal.gif | Bin 0 -> 3517 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/skin.css | 190 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/arrows_left.png | Bin 0 -> 3045 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/arrows_right.png | Bin 0 -> 3041 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/credits.txt | 1 + frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/next-horizontal.png | Bin 0 -> 4375 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/next-vertical.png | Bin 0 -> 3817 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/next.jpg | Bin 0 -> 710 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/next.png | Bin 0 -> 755 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/prev-horizontal.png | Bin 0 -> 4322 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/prev-vertical.png | Bin 0 -> 3962 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/prev.jpg | Bin 0 -> 689 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/prev.png | Bin 0 -> 769 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/skin.css | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/skin2.css | 185 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/v_next.png | Bin 0 -> 1055 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/v_next2.png | Bin 0 -> 1030 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/v_prev.png | Bin 0 -> 1039 bytes frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/v_prev2.png | Bin 0 -> 1030 bytes frontend/web/js/widget-carousel/HOME_SLIDER/style.css | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/HOME_SLIDER/style.js | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/lib/jquery-1.4.2.min.js | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/lib/jquery.jcarousel.js | 1057 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/js/widget-carousel/lib/jquery.jcarousel.min.js | 2 ++ frontend/web/updatemods/counter.txt | 1 + frontend/web/updatemods/cr.php | 279 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/web/updatemods/mysql.class.php | 219 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/widgets/BannerWidget.php | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/widgets/SliderWidget.php | 137 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 396 files changed, 21109 insertions(+), 1 deletion(-) create mode 100644 common/components/urlManager/.htaccess create mode 100644 common/components/urlManager/LangRequest.php create mode 100644 common/components/urlManager/LangUrlManager.php create mode 100644 common/components/urlManager/LangUrlRule.php create mode 100644 common/models/Bg.php create mode 100644 console/migrations/m160505_202248_bg.php create mode 100644 console/migrations/m160505_235100_page.php create mode 100644 frontend/components/BgWidget.php create mode 100644 frontend/components/HreflangWidget.php create mode 100644 frontend/components/Text.php create mode 100644 frontend/controllers/ArticlesController.php create mode 100644 frontend/controllers/BasketController.php create mode 100644 frontend/controllers/BrendsController.php create mode 100644 frontend/controllers/CallController.php create mode 100644 frontend/controllers/IamController.php create mode 100644 frontend/controllers/LoginController.php create mode 100644 frontend/controllers/NewsController.php create mode 100644 frontend/controllers/ProductsController.php create mode 100644 frontend/controllers/RegController.php create mode 100644 frontend/controllers/SubscribeController.php create mode 100644 frontend/controllers/TextController.php create mode 100644 frontend/controllers/error_log create mode 100644 frontend/views/basket/_popup.php create mode 100644 frontend/views/basket/ajax_info.php create mode 100644 frontend/views/basket/ajax_items.php create mode 100644 frontend/views/basket/index.php create mode 100644 frontend/views/basket/success.php create mode 100644 frontend/views/brends/index.php create mode 100644 frontend/views/brends/show.php create mode 100644 frontend/views/catalog/_catalog_box.php create mode 100644 frontend/views/catalog/all.php create mode 100644 frontend/views/catalog/index.php create mode 100644 frontend/views/products/_product.php create mode 100644 frontend/views/products/_show.php create mode 100644 frontend/views/products/compare.php create mode 100644 frontend/views/products/index.php create mode 100644 frontend/views/products/search.php create mode 100644 frontend/views/products/show.php create mode 100644 frontend/web/css/1style.css create mode 100644 frontend/web/css/_style.css create mode 100644 frontend/web/css/begunok.css create mode 100644 frontend/web/files/.tmb/l1_c2l0ZV9leHRyZW1fbmV3X25ld3NfYnV0dG9uXzIuanBn1437031556.png create mode 100755 frontend/web/files/site_extrem_new_news_button_2.jpg create mode 100644 frontend/web/img/_logo.png create mode 100644 frontend/web/img/arrow-next.png create mode 100644 frontend/web/img/arrow-prev.png create mode 100644 frontend/web/img/artweb.png create mode 100644 frontend/web/img/banner1.jpg create mode 100644 frontend/web/img/banner_akciya.jpg create mode 100644 frontend/web/img/begunok_slider.png create mode 100644 frontend/web/img/buy.png create mode 100644 frontend/web/img/children_sub.jpg create mode 100644 frontend/web/img/close_modal.jpg create mode 100644 frontend/web/img/del.png create mode 100644 frontend/web/img/favicon.ico create mode 100644 frontend/web/img/help.png create mode 100644 frontend/web/img/ico1.png create mode 100644 frontend/web/img/ico2.png create mode 100644 frontend/web/img/ico3.png create mode 100644 frontend/web/img/ico4.png create mode 100644 frontend/web/img/ico5.png create mode 100644 frontend/web/img/ico_close.png create mode 100644 frontend/web/img/ico_pic.jpg create mode 100644 frontend/web/img/ico_pic2.jpg create mode 100644 frontend/web/img/li1.png create mode 100644 frontend/web/img/li2.png create mode 100644 frontend/web/img/li3.png create mode 100644 frontend/web/img/li_minus.png create mode 100644 frontend/web/img/li_plus.png create mode 100644 frontend/web/img/login.png create mode 100644 frontend/web/img/logo-why.png create mode 100644 frontend/web/img/logo.png create mode 100644 frontend/web/img/lupa_sub.png create mode 100644 frontend/web/img/man_sub.jpg create mode 100644 frontend/web/img/map.jpg create mode 100644 frontend/web/img/map.png create mode 100644 frontend/web/img/minus.png create mode 100644 frontend/web/img/more.png create mode 100644 frontend/web/img/new_coll.png create mode 100644 frontend/web/img/notpic.gif create mode 100644 frontend/web/img/pagination.png create mode 100644 frontend/web/img/phone.png create mode 100644 frontend/web/img/pic.jpg create mode 100644 frontend/web/img/plus.png create mode 100644 frontend/web/img/pro.png create mode 100644 frontend/web/img/sale30.jpg create mode 100644 frontend/web/img/slider.jpg create mode 100644 frontend/web/img/social-ico-two.png create mode 100644 frontend/web/img/social-ico.png create mode 100644 frontend/web/img/v_next.png create mode 100644 frontend/web/img/v_next2.png create mode 100644 frontend/web/img/v_prev.png create mode 100644 frontend/web/img/v_prev2.png create mode 100644 frontend/web/img/why.png create mode 100644 frontend/web/img/why_item1.png create mode 100644 frontend/web/img/why_item2.png create mode 100644 frontend/web/img/why_item3.png create mode 100644 frontend/web/img/why_item4.png create mode 100644 frontend/web/img/why_item5.png create mode 100644 frontend/web/img/why_item6.png create mode 100644 frontend/web/img/woman_sub.jpg create mode 100644 frontend/web/js/begunok.js create mode 100644 frontend/web/js/call.js create mode 100644 frontend/web/js/jCarousel/jCarousel.js create mode 100644 frontend/web/js/jcarousel/jcarousel.min.js create mode 100644 frontend/web/js/jcarousel/skins/HOME_SLIDER/arrows_left.png create mode 100644 frontend/web/js/jcarousel/skins/HOME_SLIDER/arrows_right.png create mode 100644 frontend/web/js/jcarousel/skins/HOME_SLIDER/credits.txt create mode 100644 frontend/web/js/jcarousel/skins/HOME_SLIDER/next-horizontal.png create mode 100644 frontend/web/js/jcarousel/skins/HOME_SLIDER/next-vertical.png create mode 100644 frontend/web/js/jcarousel/skins/HOME_SLIDER/next.jpg create mode 100644 frontend/web/js/jcarousel/skins/HOME_SLIDER/next.png create mode 100644 frontend/web/js/jcarousel/skins/HOME_SLIDER/prev-horizontal.png create mode 100644 frontend/web/js/jcarousel/skins/HOME_SLIDER/prev-vertical.png create mode 100644 frontend/web/js/jcarousel/skins/HOME_SLIDER/prev.jpg create mode 100644 frontend/web/js/jcarousel/skins/HOME_SLIDER/prev.png create mode 100644 frontend/web/js/jcarousel/skins/HOME_SLIDER/skin.css create mode 100644 frontend/web/js/jcarousel/skins/HOME_SLIDER/skin2.css create mode 100644 frontend/web/js/jcarousel/skins/HOME_SLIDER/v_next.png create mode 100644 frontend/web/js/jcarousel/skins/HOME_SLIDER/v_next2.png create mode 100644 frontend/web/js/jcarousel/skins/HOME_SLIDER/v_prev.png create mode 100644 frontend/web/js/jcarousel/skins/HOME_SLIDER/v_prev2.png create mode 100644 frontend/web/js/jcarousel/skins/ie7/credits.txt create mode 100644 frontend/web/js/jcarousel/skins/ie7/loading-small.gif create mode 100644 frontend/web/js/jcarousel/skins/ie7/loading.gif create mode 100644 frontend/web/js/jcarousel/skins/ie7/loading_small.gif create mode 100644 frontend/web/js/jcarousel/skins/ie7/next-horizontal.gif create mode 100644 frontend/web/js/jcarousel/skins/ie7/prev-horizontal.gif create mode 100644 frontend/web/js/jcarousel/skins/ie7/skin.css create mode 100644 frontend/web/js/jcarousel/skins/tango/arrows_left.png create mode 100644 frontend/web/js/jcarousel/skins/tango/arrows_right.png create mode 100644 frontend/web/js/jcarousel/skins/tango/credits.txt create mode 100644 frontend/web/js/jcarousel/skins/tango/next-horizontal.png create mode 100644 frontend/web/js/jcarousel/skins/tango/next-vertical.png create mode 100644 frontend/web/js/jcarousel/skins/tango/next.jpg create mode 100644 frontend/web/js/jcarousel/skins/tango/next.png create mode 100644 frontend/web/js/jcarousel/skins/tango/prev-horizontal.png create mode 100644 frontend/web/js/jcarousel/skins/tango/prev-vertical.png create mode 100644 frontend/web/js/jcarousel/skins/tango/prev.jpg create mode 100644 frontend/web/js/jcarousel/skins/tango/prev.png create mode 100644 frontend/web/js/jcarousel/skins/tango/skin.css create mode 100644 frontend/web/js/jcarousel/skins/tango/skin2.css create mode 100644 frontend/web/js/jcarousel/skins/tango/v_next.png create mode 100644 frontend/web/js/jcarousel/skins/tango/v_next2.png create mode 100644 frontend/web/js/jcarousel/skins/tango/v_prev.png create mode 100644 frontend/web/js/jcarousel/skins/tango/v_prev2.png create mode 100644 frontend/web/js/jquery-1.5.min.js create mode 100644 frontend/web/js/jquery.mask.js create mode 100644 frontend/web/js/jquery.min.js create mode 100644 frontend/web/js/jquery.ui-slider.js create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/README create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/changelog.html create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/dynamic_ajax.html create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/dynamic_ajax.txt create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/dynamic_ajax_php.html create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/dynamic_ajax_php.php create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/dynamic_flickr_api.html create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/dynamic_flickr_api.php create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/dynamic_flickr_feed.html create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/dynamic_flickr_feed.php create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/dynamic_javascript.html create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/images/arrow-down.gif create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/images/arrow-up.gif create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/images/loading-small.gif create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/images/loading-thickbox.gif create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/images/loading.gif create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/special_easing.html create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/special_flexible.html create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/special_textscroller.html create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/special_textscroller.php create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/special_thickbox.html create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/static_auto.html create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/static_callbacks.html create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/static_circular.html create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/static_controls.html create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/static_multiple.html create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/static_simple.html create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/static_start.html create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/static_vertical.html create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/thickbox/thickbox.css create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/examples/thickbox/thickbox.js create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/index.html create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/lib/jquery-1.4.2.min.js create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/lib/jquery.jcarousel.js create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/lib/jquery.jcarousel.min.js create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/ie7/credits.txt create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/ie7/loading-small.gif create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/ie7/loading.gif create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/ie7/loading_small.gif create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/ie7/next-horizontal.gif create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/ie7/prev-horizontal.gif create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/ie7/skin.css create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/arrows_left.png create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/arrows_right.png create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/credits.txt create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/next-horizontal.png create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/next-vertical.png create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/next.jpg create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/next.png create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/prev-horizontal.png create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/prev-vertical.png create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/prev.jpg create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/prev.png create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/skin.css create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/skin2.css create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/v_next.png create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/v_next2.png create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/v_prev.png create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/skins/tango/v_prev2.png create mode 100644 frontend/web/js/jsor-jcarousel-7bb2e0a/style.css create mode 100644 frontend/web/js/main.js create mode 100644 frontend/web/js/shadowbox-3.0.3/LICENSE create mode 100644 frontend/web/js/shadowbox-3.0.3/README create mode 100644 frontend/web/js/shadowbox-3.0.3/_shadowbox.css create mode 100644 frontend/web/js/shadowbox-3.0.3/close.png create mode 100644 frontend/web/js/shadowbox-3.0.3/loading.gif create mode 100644 frontend/web/js/shadowbox-3.0.3/next.png create mode 100644 frontend/web/js/shadowbox-3.0.3/pause.png create mode 100644 frontend/web/js/shadowbox-3.0.3/play.png create mode 100644 frontend/web/js/shadowbox-3.0.3/previous.png create mode 100644 frontend/web/js/shadowbox-3.0.3/shadowbox.css create mode 100644 frontend/web/js/shadowbox-3.0.3/shadowbox.js create mode 100644 frontend/web/js/slides.min.jquery.js create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/README create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/changelog.html create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_ajax.html create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_ajax.txt create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_ajax_php.html create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_ajax_php.php create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_flickr_api.html create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_flickr_api.php create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_flickr_feed.html create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_flickr_feed.php create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_javascript.html create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/arrow-down.gif create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/arrow-up.gif create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/loading-small.gif create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/loading-thickbox.gif create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/loading.gif create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_easing.html create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_flexible.html create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_textscroller.html create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_textscroller.php create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_thickbox.html create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_auto.html create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_callbacks.html create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_circular.html create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_controls.html create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_multiple.html create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_simple.html create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_start.html create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_vertical.html create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/thickbox/thickbox.css create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/examples/thickbox/thickbox.js create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/img/a12.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/img/a14.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/img/a19.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/img/b05.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/img/b12.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/img/b21.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/img/pagination.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/index.html create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/arrows_left.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/arrows_right.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/credits.txt create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/next-horizontal.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/next-vertical.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/next.jpg create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/next.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/prev-horizontal.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/prev-vertical.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/prev.jpg create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/prev.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/skin.css create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/skin2.css create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/v_next.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/v_next2.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/v_prev.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/v_prev2.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/credits.txt create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/loading-small.gif create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/loading.gif create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/loading_small.gif create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/next-horizontal.gif create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/prev-horizontal.gif create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/skin.css create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/arrows_left.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/arrows_right.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/credits.txt create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/next-horizontal.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/next-vertical.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/next.jpg create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/next.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/prev-horizontal.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/prev-vertical.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/prev.jpg create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/prev.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/skin.css create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/skin2.css create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/v_next.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/v_next2.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/v_prev.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/v_prev2.png create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/style.css create mode 100644 frontend/web/js/widget-carousel/FILTER_SLIDER/style.js create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/README create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/changelog.html create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_ajax.html create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_ajax.txt create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_ajax_php.html create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_ajax_php.php create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_flickr_api.html create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_flickr_api.php create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_flickr_feed.html create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_flickr_feed.php create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_javascript.html create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/arrow-down.gif create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/arrow-up.gif create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/loading-small.gif create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/loading-thickbox.gif create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/loading.gif create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_easing.html create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_flexible.html create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_textscroller.html create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_textscroller.php create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_thickbox.html create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_auto.html create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_callbacks.html create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_circular.html create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_controls.html create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_multiple.html create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_simple.html create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_start.html create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_vertical.html create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/thickbox/thickbox.css create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/examples/thickbox/thickbox.js create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/img/a12.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/img/a14.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/img/a19.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/img/b05.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/img/b12.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/img/b21.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/img/pagination.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/index.html create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/arrows_left.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/arrows_right.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/credits.txt create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/next-horizontal.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/next-vertical.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/next.jpg create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/next.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/prev-horizontal.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/prev-vertical.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/prev.jpg create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/prev.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/skin.css create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/skin2.css create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/v_next.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/v_next2.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/v_prev.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/v_prev2.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/credits.txt create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/loading-small.gif create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/loading.gif create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/loading_small.gif create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/next-horizontal.gif create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/prev-horizontal.gif create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/skin.css create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/arrows_left.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/arrows_right.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/credits.txt create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/next-horizontal.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/next-vertical.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/next.jpg create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/next.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/prev-horizontal.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/prev-vertical.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/prev.jpg create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/prev.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/skin.css create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/skin2.css create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/v_next.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/v_next2.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/v_prev.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/v_prev2.png create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/style.css create mode 100644 frontend/web/js/widget-carousel/HOME_SLIDER/style.js create mode 100644 frontend/web/js/widget-carousel/lib/jquery-1.4.2.min.js create mode 100644 frontend/web/js/widget-carousel/lib/jquery.jcarousel.js create mode 100644 frontend/web/js/widget-carousel/lib/jquery.jcarousel.min.js create mode 100755 frontend/web/updatemods/counter.txt create mode 100644 frontend/web/updatemods/cr.php create mode 100644 frontend/web/updatemods/mysql.class.php create mode 100644 frontend/widgets/BannerWidget.php create mode 100755 frontend/widgets/SliderWidget.php diff --git a/.gitignore b/.gitignore index 4be8feb..b995fc5 100644 --- a/.gitignore +++ b/.gitignore @@ -34,11 +34,13 @@ phpunit.phar /common/config/params-local.php /backend/config/main-local.php /backend/config/params-local.php +/backend/runtime/ /frontend/config/main-local.php /frontend/config/params-local.php - +/frontend/runtime/ /backend/web/assets/ /frontend/web/assets/ +/frontend/web/upload/ /frontend/web/css/node_modules/ /frontend/views/вертска composer.lock diff --git a/common/components/urlManager/.htaccess b/common/components/urlManager/.htaccess new file mode 100644 index 0000000..cc79a2f --- /dev/null +++ b/common/components/urlManager/.htaccess @@ -0,0 +1,10 @@ +AddDefaultCharset WINDOWS-1251 +#php_value display_errors 1 +#php_value error_reporting 2047 + +RewriteEngine on + + + +RewriteRule ^(.*)(date\.php|votebar|spam|\.css|uploaded|img|rating\.php|forum_comment\.php|js|admin|googlec87a9150150cf5d3.html)(.*)$ $1$2$3 [L] +RewriteRule ^(.*)$ index.php [L] diff --git a/common/components/urlManager/LangRequest.php b/common/components/urlManager/LangRequest.php new file mode 100644 index 0000000..caa4545 --- /dev/null +++ b/common/components/urlManager/LangRequest.php @@ -0,0 +1,17 @@ +urlManager->languages as $lang){ + if(strpos($_SERVER['PHP_SELF'], '/'.$lang))Yii::$app->language = $lang; + } + return parent::resolvePathInfo(); + } +} \ No newline at end of file diff --git a/common/components/urlManager/LangUrlManager.php b/common/components/urlManager/LangUrlManager.php new file mode 100644 index 0000000..46a5beb --- /dev/null +++ b/common/components/urlManager/LangUrlManager.php @@ -0,0 +1,32 @@ +langParam])){ if(Yii::$app->language != $this->lang)$params[$this->langParam]=Yii::$app->language;} + else if($params[$this->langParam] == $this->lang)unset($params[$this->langParam]); + + + return parent::createUrl($params); + } + //put your code here +} \ No newline at end of file diff --git a/common/components/urlManager/LangUrlRule.php b/common/components/urlManager/LangUrlRule.php new file mode 100644 index 0000000..31c93ae --- /dev/null +++ b/common/components/urlManager/LangUrlRule.php @@ -0,0 +1,61 @@ +getRequest()->getPreferredLanguage(); + //if language pass via url use it + if(isset($_GET[$this->langParam])&&in_array($_GET[$this->langParam],$this->languages)){ + Yii::app()->language=$_GET[$this->langParam]; + //else if preffered language is allowed + }elseif(in_array($userLang,$this->languages)) { + Yii::app()->language=$userLang; + //else use the first language from the list + }else Yii::app()->language=$this->lang; + + }*/ + //put your code here + + public function init(){ + print '=='; + print Yii::$app->getRequest()->getQueryParam('language'); + return parent::init(); + } + public function createUrl($params=array()){ + $userLang=Yii::$app->getRequest()->getPreferredLanguage(); + //if language pass via url use it + if(isset($_GET[$this->langParam])&&in_array($_GET[$this->langParam],$this->languages)){ + Yii::$app->language=$_GET[$this->langParam]; + //else if preffered language is allowed + }elseif(in_array($userLang,$this->languages)) { + Yii::$app->language=$userLang; + //else use the first language from the list + }else Yii::$app->language=$this->lang; + + //print_r($_GET); + if(!isset($params[$this->langParam])){ if(Yii::$app->language != $this->lang)$params[$this->langParam]=Yii::$app->language;} + else if($params[$this->langParam] == $this->lang)unset($params[$this->langParam]); + //print_r($params); + return parent::createUrl($params); + } + //put your code here +} \ No newline at end of file diff --git a/common/models/Bg.php b/common/models/Bg.php new file mode 100644 index 0000000..aabd040 --- /dev/null +++ b/common/models/Bg.php @@ -0,0 +1,49 @@ +'jpg, gif, png', 'skipOnEmpty'=>true], + + ]; + } + + public function attributeLabels() + { + return [ + 'title'=>'Название', + 'body'=>'Описание', + 'date'=>'Дата', + 'image'=>'Изображения', + ]; + } + + + + public function beforeDelete() { + $this->deleteImage($this->image); + return parent::beforeDelete(); + } + + public function deleteImage($file){ + if(!empty($file)){ + @unlink('upload/bg/'.$file); + } + } + + +} + diff --git a/console/migrations/m160505_202248_bg.php b/console/migrations/m160505_202248_bg.php new file mode 100644 index 0000000..99a5944 --- /dev/null +++ b/console/migrations/m160505_202248_bg.php @@ -0,0 +1,23 @@ +createTable('bg', [ + 'id' => $this->primaryKey(), + 'title' => $this->string(250)->notNull(), + 'url' => $this->string(250)->notNull(), + 'image' => $this->string(250)->notNull(), + ]); + } + + public function down() + { + $this->dropTable('bg'); + } + + +} diff --git a/console/migrations/m160505_235100_page.php b/console/migrations/m160505_235100_page.php new file mode 100644 index 0000000..689069e --- /dev/null +++ b/console/migrations/m160505_235100_page.php @@ -0,0 +1,49 @@ +createTable('page', [ + 'id' => $this->primaryKey(), + 'translit'=> $this->string(), + 'title'=> $this->string(), + 'body'=> $this->text(), + 'meta_title'=> $this->string(), + 'meta_keywords' => $this->string(), + 'meta_description'=> $this->string(), + 'seo_text'=> $this->text(), + 'h1'=> $this->string(), + + ]); + } + + /** + * @inheritdoc + */ + public function down() + { + $this->dropTable('page'); + } +} \ No newline at end of file diff --git a/frontend/components/BgWidget.php b/frontend/components/BgWidget.php new file mode 100644 index 0000000..bf78691 --- /dev/null +++ b/frontend/components/BgWidget.php @@ -0,0 +1,30 @@ +getView(); + $view->registerJs(" + var heightR = $('.f').height();// высота экрана + var widthR = $(window).width();// ширина экрана + + $('#bg').css({'height':heightR+100}); + ", View::POS_READY, 'bg'); + $this->bg = Bg::find()->orderBy('random()')->one(); + } + + public function run(){ + return ' +'; + } +} +?> \ No newline at end of file diff --git a/frontend/components/HreflangWidget.php b/frontend/components/HreflangWidget.php new file mode 100644 index 0000000..eb7adf4 --- /dev/null +++ b/frontend/components/HreflangWidget.php @@ -0,0 +1,52 @@ +requestedRoute, '/')], + Yii::$app->request->getQueryParams(), + [ + 'language' => $language, + ] + ); + return Url::to($params); + } + + public function run(){ + //$lang = (Yii::$app->language=='ru') ? 'en' : 'ru'; + $result = ''; + foreach (Yii::$app->urlManager->languages as $language) { + if ($language === Yii::$app->language) { + // skip current language + continue; + } + + $result.= Html::tag( + 'link', + '', + [ + 'rel' => 'alternate', + 'hreflang' => $language, + 'href' => $this->translateCurrentRequest($language), + ] + ); + } + return $result; + } +} +?> \ No newline at end of file diff --git a/frontend/components/Text.php b/frontend/components/Text.php new file mode 100644 index 0000000..1905d98 --- /dev/null +++ b/frontend/components/Text.php @@ -0,0 +1,16 @@ +$count) + { + //$pos = mb_strpos($text, ' ', $count, 'UTF-8'); + $text = mb_substr($text, 0, $count, 'UTF-8'); + return $text.'...'; + } + else + return $text; + } +} \ No newline at end of file diff --git a/frontend/controllers/ArticlesController.php b/frontend/controllers/ArticlesController.php new file mode 100644 index 0000000..a4ecea5 --- /dev/null +++ b/frontend/controllers/ArticlesController.php @@ -0,0 +1,41 @@ +orderBy('id DESC') ; + $countQuery = clone $query; + $pages = new Pagination(['totalCount' => $countQuery->count(), 'pageSize'=>18]); + $pages->forcePageParam = false; + $pages->pageSizeParam = false; + $news = $query->offset($pages->offset) + ->limit($pages->limit) + ->all(); + + return $this->render('index', [ + 'pages'=>$pages, + 'news'=>$news, + ]); + } + + public function actionShow(){ + if(!$news = Articles::find()->where(['id'=>$_GET['id']])->one()) + throw new HttpException(404, 'Данной странице не существует!'); + + return $this->render('show', [ + 'news'=>$news, + ]); + } + +} \ No newline at end of file diff --git a/frontend/controllers/BasketController.php b/frontend/controllers/BasketController.php new file mode 100644 index 0000000..e66a845 --- /dev/null +++ b/frontend/controllers/BasketController.php @@ -0,0 +1,124 @@ +deleteBasketMod($_GET['deleteID']); + return Yii::$app->response->redirect(['basket/index']); + } + + if(isset($_POST['update'])){ + foreach ($_POST['Mod'] as $index=>$row) { + $modelMod->updateBasket($row); + } + }elseif(isset($_POST['Mod'])){ + $body = ''; + foreach ($_POST['Mod'] as $index=>$row) { + $body .= $row['product_name'].' '.$row['name'].' Кол:'.$row['count'].' Цена:'.$row['sum_cost']; + $body .= "\n\r"; + } + $body .= "\n\r"; + + if ($modelOrder->load(Yii::$app->request->post()) && $modelOrder->save() && $modelOrder->contact('borisenko.pavel@gmail.com',$body)) { + foreach ($_POST['Mod'] as $index=>$row) { + $modelOrdersProducts = new OrdersProducts; + $mod_id = $row['id']; + unset($row['id']); + $data['OrdersProducts'] = $row; + $data['OrdersProducts']['mod_id'] = $mod_id; + $data['OrdersProducts']['order_id'] = $modelOrder->id; + + $modelOrdersProducts->load($data); + $modelOrdersProducts->save(); + } + if(!Yii::$app->user->id){ + $modelUser = new User; + $modelUser->role = 'person'; + $modelUser->username = $modelOrder->email; + $modelUser->name = $modelOrder->name; + $modelUser->phone = $modelOrder->phone; + $modelUser->password = Yii::$app->getSecurity()->generateRandomString(10); + $modelUser->group_id = 2; + $modelUser->save(); + } + $modelMod->clearBasket(); + return Yii::$app->response->redirect(['basket/success']); + } + } + + $basket_mods = $modelMod->getBasketMods(); + + if(!empty(Yii::$app->user->id)){ + $user = User::findOne(Yii::$app->user->id); + $modelOrder->email = $user->username; + $modelOrder->phone = $user->phone; + $modelOrder->name = $user->name; + $modelOrder->surname = $user->surname; + } + + return $this->render('index', [ + 'modelMod'=>$modelMod, + 'basket_mods'=>$basket_mods, + 'modelOrder'=>$modelOrder, + ]); + } + + public function actionItems(){ + $modelMod = new Mod; + if(!empty($_GET['deleteID'])){ + $modelMod->deleteBasketMod($_GET['deleteID']); + } + + if(isset($_POST['Mod'])){ + foreach ($_POST['Mod'] as $index=>$row) { + $modelMod->updateBasket($row); + } + } + $basket_mods = $modelMod->getBasketMods(); + return $this->renderAjax('ajax_items', [ + 'modelMod'=>$modelMod, + 'basket_mods'=>$basket_mods, + ]); + } + + public function actionInfo() + { + $modelMod = new Mod; + $info = $modelMod->rowBasket(); + return $this->renderAjax('ajax_info', [ + 'info'=>$info, + ]); + } + + public function actionAdd(){ + $modelMod = new Mod; + if(isset($_GET['mod_id'],$_GET['count']) && $_GET['mod_id']>0 && $_GET['count']>0){ + $modelMod->addBasket($_GET['mod_id'],$_GET['count']); + } + + Yii::$app->end(); + } + + + public function actionSuccess(){ + return $this->render('success'); + } + + + +} \ No newline at end of file diff --git a/frontend/controllers/BrendsController.php b/frontend/controllers/BrendsController.php new file mode 100644 index 0000000..6e6c94d --- /dev/null +++ b/frontend/controllers/BrendsController.php @@ -0,0 +1,47 @@ +where(['translit'=>$_GET['translit']])->one()) + throw new HttpException(404, 'Данной странице не существует!'); + + $query = Products::find()->where('brend_id=:brend_id',[':brend_id' => $brend->id])->with(['catalog'])->innerJoinWith(['cost']); + $countQuery = clone $query; + $pages = new Pagination(['totalCount' => $countQuery->count(), 'pageSize'=>18]); + $pages->forcePageParam = false; + $pages->pageSizeParam = false; + $products = $query->offset($pages->offset) + ->limit($pages->limit) + ->all(); + + return $this->render('show', [ + 'brend'=>$brend, + 'products'=>$products, + 'pages'=>$pages, + ]); + } + + public function actionIndex() + { + + $brends = Brends::find()->orderBy('sort ASC')->all(); + + return $this->render('index', [ + 'brends'=>$brends, + ]); + } + +} \ No newline at end of file diff --git a/frontend/controllers/CallController.php b/frontend/controllers/CallController.php new file mode 100644 index 0000000..f38c460 --- /dev/null +++ b/frontend/controllers/CallController.php @@ -0,0 +1,33 @@ +load(Yii::$app->request->post()) && $model->contact('borisenko.pavel@gmail.com')) { + + return Yii::$app->response->redirect(['call/success']); + } + + return $this->render('index', [ + 'model'=>$model, + ]); + } + + + public function actionSuccess(){ + return $this->render('success'); + } + +} \ No newline at end of file diff --git a/frontend/controllers/IamController.php b/frontend/controllers/IamController.php new file mode 100644 index 0000000..dd6d020 --- /dev/null +++ b/frontend/controllers/IamController.php @@ -0,0 +1,159 @@ + [ + 'class' => AccessControl::className(), + //'only' => ['person'], + 'rules' => [ + [ + 'actions' => ['index','edit','myorders','show_order','share','price'], + 'allow' => true, + 'roles' => ['@'], + ], + ], + ], + 'verbs' => [ + 'class' => VerbFilter::className(), + 'actions' => [ + 'logout' => ['post'], + ], + ], + ]; + } + + + public function actionIndex() + { + + + $model = User::findOne(Yii::$app->user->id); + + + return $this->render(Yii::$app->user->identity->role, [ + 'model' => $model, + ]); + } + + public function actionEdit() + { + + + $model = User::findOne(Yii::$app->user->id); + + $model->scenario = 'edit_'.Yii::$app->user->identity->role; + + if ($model->load(Yii::$app->request->post()) && $model->save()) { + + return Yii::$app->response->redirect(['/iam/index']); + + + } + + return $this->render('edit_'.Yii::$app->user->identity->role, [ + 'model' => $model, + ]); + } + + public function actionMyorders(){ + + + $model = Order::find()->where(['user_id'=>Yii::$app->user->id])->orderBy('id DESC')->all(); + + return $this->render('myorders',['model'=>$model]); + + } + + public function actionShow_order() + { + $model = Order::findOne($_GET['id']); + + + + $dataProvider = new ActiveDataProvider([ + 'query' => OrdersProducts::find()->where(['order_id'=>$_GET['id']]), + 'pagination' => [ + 'pageSize' => 20, + ], + ]); + return $this->render('show_order',['model'=>$model,'dataProvider'=>$dataProvider]); + } + + public function actionShare(){ + if(!empty($_GET['id'])){ + if(!$model = Share::find()->where('user_id=:user_id and product_id=:product_id',[':user_id'=>Yii::$app->user->id,':product_id'=>$_GET['id']])->one()) + $model = new Share; + + $model->product_id = $_GET['id']; + $model->save(); + + Yii::$app->getSession()->setFlash('success', 'Этот товар добавлен в закладку!'); + return $this->redirect(Yii::$app->request->referrer); + } + else{ + /* $dataProvider = new ActiveDataProvider([ + 'query' => Share::find()->where(['user_id'=>Yii::$app->user->id])->orderBy('date_time DESC'), + 'pagination' => [ + 'pageSize' => 20, + ], + ]);*/ + if(!empty($_GET['deleteID'])){ + $model = Share::find()->where(['user_id'=>Yii::$app->user->id,'id'=>$_GET['deleteID']])->one(); + $model->delete(); + return $this->redirect(Yii::$app->request->referrer); + } + $query = Share::find()->where(['user_id'=>Yii::$app->user->id])->groupBy('date')->orderBy('date DESC'); + $countQuery = clone $query; + $pages = new Pagination(['totalCount' => $countQuery->count(), 'pageSize'=>20]); + $pages->forcePageParam = false; + $pages->pageSizeParam = false; + $share = $query->offset($pages->offset) + ->limit($pages->limit) + ->all(); + return $this->render('share',['share'=>$share,'pages'=>$pages]); + } + } + + + public function actionPrice(){ + if(!empty($_GET['id'])){ + if(!$model = Price::find()->where('user_id=:user_id and product_id=:product_id',[':user_id'=>Yii::$app->user->id,':product_id'=>$_GET['id']])->one()) + $model = new Price; + + $model->product_id = $_GET['id']; + $model->save(); + + Yii::$app->getSession()->setFlash('success', 'Этот товар добавлен в закладку Узнать о снижение цены!'); + return $this->redirect(Yii::$app->request->referrer); + } + else{ + $dataProvider = new ActiveDataProvider([ + 'query' => Price::find()->where(['user_id'=>Yii::$app->user->id])->orderBy('date_time DESC'), + 'pagination' => [ + 'pageSize' => 20, + ], + ]); + return $this->render('price',['dataProvider'=>$dataProvider]); + } + } + +} \ No newline at end of file diff --git a/frontend/controllers/LoginController.php b/frontend/controllers/LoginController.php new file mode 100644 index 0000000..8670f48 --- /dev/null +++ b/frontend/controllers/LoginController.php @@ -0,0 +1,50 @@ +user->isGuest) { + return $this->goHome(); + } + + $model = new LoginForm(); + if ($model->load(Yii::$app->request->post()) && $model->login()) { + return $this->goBack(); + } else { + return $this->render('index', [ + 'model' => $model, + ]); + } + } + + public function actionLogout() + { + Yii::$app->user->logout(); + + return $this->goHome(); + } + + public function actionForgot(){ + + $model = new User; + if(!empty($_POST['User']['username'])){ + if($user = User::find()->where(['username'=>$_POST['User']['username']])->one()) + $user->sendMsg(); + Yii::$app->getSession()->setFlash('success', 'На указанный Вами эмейл отправленно письмо с паролем!'); + return $this->refresh(); + } + + return $this->render('forgot', [ + 'model' => $model, + ]); + } +} \ No newline at end of file diff --git a/frontend/controllers/NewsController.php b/frontend/controllers/NewsController.php new file mode 100644 index 0000000..dfc4a04 --- /dev/null +++ b/frontend/controllers/NewsController.php @@ -0,0 +1,41 @@ +orderBy('id DESC') ; + $countQuery = clone $query; + $pages = new Pagination(['totalCount' => $countQuery->count(), 'pageSize'=>18]); + $pages->forcePageParam = false; + $pages->pageSizeParam = false; + $news = $query->offset($pages->offset) + ->limit($pages->limit) + ->all(); + + return $this->render('index', [ + 'pages'=>$pages, + 'news'=>$news, + ]); + } + + public function actionShow(){ + if(!$news = News::find()->where(['id'=>$_GET['id']])->one()) + throw new HttpException(404, 'Данной странице не существует!'); + + return $this->render('show', [ + 'news'=>$news, + ]); + } + +} \ No newline at end of file diff --git a/frontend/controllers/ProductsController.php b/frontend/controllers/ProductsController.php new file mode 100644 index 0000000..56e1ff5 --- /dev/null +++ b/frontend/controllers/ProductsController.php @@ -0,0 +1,154 @@ +load ($_POST); + if (! $catalog = Catalog::find ()->where (['translit' => $_GET['translit']])->with ('parent')->one ()) + throw new HttpException(404, 'Данной странице не существует!'); + $query = Products::find ()->where ('catalog_id=:catalog_id OR catalog_parent_id=:catalog_parent_id', [':catalog_id' => $catalog->id, ':catalog_parent_id' => $catalog->id])->with (['catalog'])->innerJoinWith (['cost']); + if (! empty($_POST['Products']['minCost']) && ! empty($_POST['Products']['maxCost'])) $query->andWhere ('(cost>=:minCost and cost<=:maxCost)', [':minCost' => $_POST['Products']['minCost'], ':maxCost' => $_POST['Products']['maxCost']]); + if (! empty($_GET['brends'])) + { + $b = explode (';', $_GET['brends']); + $query->andWhere (['brend_id' => $b]); + } + if (! empty($_GET['filters'])) + { + $l = explode (';', $_GET['filters']); + $items = Filters::find ()->where (['parent_id' => 0])->all (); + foreach ($items as $key => $it) + { + $f = []; + foreach ($it->childs as $c) + { + if (in_array ($c['id'], $l)) $f[] = $c['id']; + } + if (count ($f) > 0) + $query->innerJoin ('productsFilters as filter_' . $key, 'filter_' . $key . '.product_id=products.id')->andWhere (['filter_' . $key . '.filter_id' => $f]); + // $childs->leftJoin('productsFilters as pf_'.$key, 'pf_'.$key.'.product_id = productsFilters.product_id')->andWhere(['pf_'.$key.'.filter_id'=>$f]); + } + } + if (! empty($modelProducts->fasovka)) + { + $query->innerJoinWith (['fasovka'])->andWhere ([ProductsFasovka::tableName () . '.fasovka_id' => $modelProducts->fasovka]); + } + if (! empty($modelProducts->type)) + { + $query->innerJoinWith (['type'])->andWhere ([ProductsType::tableName () . '.type_id' => $modelProducts->type]); + } + if (! empty($modelProducts->brends)) + { + $query->innerJoinWith (['brends'])->andWhere ([ProductsBrends::tableName () . '.brend_id' => $modelProducts->brends]); + } + $query->groupBy (['id']); + $countQuery = clone $query; + $pages = new Pagination(['totalCount' => $countQuery->count (), 'pageSize' => 15]); + $pages->forcePageParam = false; + $pages->pageSizeParam = false; + $products = $query->offset ($pages->offset) + ->limit ($pages->limit) + ->all (); + + return $this->render ('index', [ + 'modelProducts' => $modelProducts, + 'catalog' => $catalog, + 'pages' => $pages, + 'products' => $products, + ]); + } + + public function actionSearch () + { + $query = Products::find ()->innerJoinWith (['catalog'])->innerJoinWith (['cost'])->innerJoinWith (['brend']); + if (! empty($_GET['search_str'])) + { + $query->andWhere (['like', 'products.name', $_GET['search_str']]); + $query->orWhere (['like', 'catalog.name', $_GET['search_str']]); + $query->orWhere (['like', 'catalog_brends.name', $_GET['search_str']]); + $query->orWhere (['like', 'mod.art', $_GET['search_str']]); + } + $query->groupBy (['id']); + $countQuery = clone $query; + $pages = new Pagination(['totalCount' => $countQuery->count (), 'pageSize' => 20]); + $pages->forcePageParam = false; + $pages->pageSizeParam = false; + $products = $query->offset ($pages->offset) + ->limit ($pages->limit) + ->all (); + + return $this->render ('search', [ + 'pages' => $pages, + 'products' => $products, + ]); + } + + public function actionShow () + { + if (! $catalog = Catalog::find ()->where (['translit' => $_GET['translit_rubric']])->with ('parent')->one ()) + throw new HttpException(404, 'Данной странице не существует!'); + if (! $product = Products::find ()->where (['id' => $_GET['id']])->one ()) + throw new HttpException(404, 'Данной странице не существует!'); + ViewProduct::add ($product->id); + + return $this->render ('show', [ + 'catalog' => $catalog, + 'product' => $product, + ]); + } + + public function actionCompare () + { + $session = new Session; + $session->open (); + if (! empty($_GET['id'])) + { + $i = 0; + if (isset($session['compare'])) + { + foreach ($session['compare'] as $key => $compare) + { + if ($_GET['id'] == $compare) + { + $i++; + } + } + } + if ($i == 0) + { + $data[] = $_GET['id']; + $session['compare'] = $data; + } + Yii::$app->getSession ()->setFlash ('success', 'Этот товар добавлен к сравнению!'); + + return $this->redirect (Yii::$app->request->referrer); + } + else + { + //print_r($session['compare']); + $products = Products::find ()->where (['id' => $session['compare']])->all (); + + return $this->render ('compare', [ + 'products' => $products, + ]); + } + } +} \ No newline at end of file diff --git a/frontend/controllers/RegController.php b/frontend/controllers/RegController.php new file mode 100644 index 0000000..2806b41 --- /dev/null +++ b/frontend/controllers/RegController.php @@ -0,0 +1,80 @@ + [ + 'class' => AccessControl::className(), + //'only' => ['person'], + 'rules' => [ + [ + 'actions' => ['person','captcha'], + 'allow' => true, + 'roles' => ['?'], + ], + ], + ], + 'verbs' => [ + 'class' => VerbFilter::className(), + 'actions' => [ + 'logout' => ['post'], + ], + ], + ]; + } + + public function actions() + { + return [ + 'captcha' => [ + 'class' => 'yii\captcha\CaptchaAction', + ], + ]; + } + + private function saveUser($scenario = null){ + $model = new User(); + + $model = (!empty($_GET['id'])) ? User::findOne($_GET['id']) : new User; + if(!empty($scenario))$model->scenario = $scenario; + + if ($model->load(Yii::$app->request->post()) && $model->save()) { + + $modelLogin = new LoginForm(); + $modelLogin->username = $model->username; + $modelLogin->password = $model->password; + $modelLogin->login(); + return Yii::$app->response->redirect(['/iam']); + + + } + + return $model; + } + + public function actionPerson() + { + + $model = $this->saveUser('person'); + + + return $this->render('person', [ + 'model' => $model, + ]); + } + + + +} \ No newline at end of file diff --git a/frontend/controllers/SubscribeController.php b/frontend/controllers/SubscribeController.php new file mode 100644 index 0000000..cbf2a03 --- /dev/null +++ b/frontend/controllers/SubscribeController.php @@ -0,0 +1,26 @@ +load(Yii::$app->request->post()) && $model->save()) { + + Yii::$app->getSession()->setFlash('success', 'Вы успешно подписались на рассылку!'); + return $this->refresh(); + } + return $this->render('index',['model'=>$model]); + } + +} \ No newline at end of file diff --git a/frontend/controllers/TextController.php b/frontend/controllers/TextController.php new file mode 100644 index 0000000..8defa5c --- /dev/null +++ b/frontend/controllers/TextController.php @@ -0,0 +1,24 @@ +where(['translit'=>$_GET['translit']])->one()) + throw new HttpException(404, 'Данной странице не существует!'); + + return $this->render('index', [ + 'text'=>$modelText, + ]); + } + +} \ No newline at end of file diff --git a/frontend/controllers/error_log b/frontend/controllers/error_log new file mode 100644 index 0000000..e13edb0 --- /dev/null +++ b/frontend/controllers/error_log @@ -0,0 +1 @@ +[23-Mar-2015 04:22:39 UTC] PHP Fatal error: Class 'yii\web\Controller' not found in /home/webplusn/public_html/yii2/controllers/SiteController.php on line 14 diff --git a/frontend/views/basket/_popup.php b/frontend/views/basket/_popup.php new file mode 100644 index 0000000..7e830ec --- /dev/null +++ b/frontend/views/basket/_popup.php @@ -0,0 +1,28 @@ + + \ No newline at end of file diff --git a/frontend/views/basket/ajax_info.php b/frontend/views/basket/ajax_info.php new file mode 100644 index 0000000..0c17748 --- /dev/null +++ b/frontend/views/basket/ajax_info.php @@ -0,0 +1,5 @@ + +Корзина count?> \ No newline at end of file diff --git a/frontend/views/basket/ajax_items.php b/frontend/views/basket/ajax_items.php new file mode 100644 index 0000000..8c93190 --- /dev/null +++ b/frontend/views/basket/ajax_items.php @@ -0,0 +1,29 @@ + + false,'id'=>'basket_form2']); ?> +$item):?> +
+ field($item,'['.$i.']id')->hiddenInput()->label(false); ?> +
+
+
+
product_name?>
+
+ old_cost>0):?>
old_cost?> грн.
+
cost?> грн.
+
+
+
+ field($item,'['.$i.']count',['template'=>'{input}'])->textInput(['type'=>'number','class' => 'item_num','disabled1'=>true])->label(false); ?> +
+
sum_cost?> грн.
+
+
+ + +
+
Всего: getSumCost()?> грн.
+
+ \ No newline at end of file diff --git a/frontend/views/basket/index.php b/frontend/views/basket/index.php new file mode 100644 index 0000000..d4cdb68 --- /dev/null +++ b/frontend/views/basket/index.php @@ -0,0 +1,115 @@ +title = 'Корзина'; +$this->registerMetaTag(['name' => 'description', 'content' => 'Корзина']); +$this->registerMetaTag(['name' => 'keywords', 'content' => 'Корзина']); + +$this->registerJsFile(Yii::$app->request->baseUrl.'/js/jquery.mask.js',['position'=>View::POS_HEAD,'depends'=>['yii\web\YiiAsset']]); + +$this->registerJs(" +$('#order-phone,#order-phone2').mask('(000) 000-0000'); +", View::POS_READY, 'mask'); + + +$this->registerJs(" +$('#order-delivery input[type=\"radio\"]').click(function(){ + $('.delivery-data').hide(); + $('#delivery-data-'+$(this).val()).show(); +}); +", View::POS_READY, 'order-delivery'); +?> + + + + +
+ +

Корзина

+
+'btn-success']) ?> + false]); ?> +
+
+field($modelOrder,'surname'); ?> +field($modelOrder,'name'); ?> +field($modelOrder,'patronymic'); ?> +field($modelOrder,'phone'); ?> +field($modelOrder,'phone2'); ?> +field($modelOrder,'city'); ?> +field($modelOrder,'adress'); ?> +field($modelOrder,'email'); ?> + field($modelOrder, 'delivery') + ->radioList(ArrayHelper::map(Delivery::find()->where(['parent_id'=>0])->asArray()->all(), 'id', 'title')) + ?> +
+ +where(['parent_id'=>0])->all() as $item):?> +
+ text?> + field($modelOrder, 'delivery') + ->radioList(ArrayHelper::map(Delivery::find()->where(['parent_id'=>$item->id])->asArray()->all(), 'id', 'title'),['id' => 'order-delivery-childs'])->label(false) + ?> +
+ + +field($modelOrder, 'payment')->radioList(['Оплатить наличными'=>'Оплатить наличными','Оплатить на карту Приват Банка'=>'Оплатить на карту Приват Банка','Оплатить по безналичному расчету'=>'Оплатить по безналичному расчету','Оплатить Правекс-телеграф'=>'Оплатить Правекс-телеграф','Наложенным платежом'=>'Наложенным платежом']); ?> +
+ + +field($modelOrder,'body')->textarea(['rows'=>7]); ?> +'submit4')); ?> +
+
+
+ + +$item):?> +
+ +
+ product_name?> +

Код: art?>, цвет: color?>

+ field($item,'['.$i.']id')->hiddenInput()->label(false); ?> + field($item,'['.$i.']product_name')->hiddenInput()->label(false); ?> + field($item,'['.$i.']art')->hiddenInput()->label(false); ?> + field($item,'['.$i.']name')->hiddenInput()->label(false); ?> + field($item,'['.$i.']cost')->hiddenInput()->label(false); ?> + field($item,'['.$i.']sum_cost')->hiddenInput()->label(false); ?> +
+
цена за один cost?> грн, цена sum_cost?> грн
+ field($item,'['.$i.']count')->textInput(['type'=>'number'])->label(false); ?>
+
+ Удалить +
+
+ + +"update",'class'=>'submit4 fl')); ?> + +
+ field($modelOrder, 'total')->hiddenInput(['value'=>$modelMod->getSumCost()])->label(false); ?> + Общая сумма: getSumCost();?> грн. +
+
+ + + +
+ + + +
\ No newline at end of file diff --git a/frontend/views/basket/success.php b/frontend/views/basket/success.php new file mode 100644 index 0000000..133cba8 --- /dev/null +++ b/frontend/views/basket/success.php @@ -0,0 +1,28 @@ +title = 'Корзина'; +$this->registerMetaTag(['name' => 'description', 'content' => 'Корзина']); +$this->registerMetaTag(['name' => 'keywords', 'content' => 'Корзина']); + +?> + + + + +
+ +

Корзина

+Ваш заказ принят! Большое Спасибо! Менеджер с Вами свяжется в ближайшее время. + +
diff --git a/frontend/views/brends/index.php b/frontend/views/brends/index.php new file mode 100644 index 0000000..643cc33 --- /dev/null +++ b/frontend/views/brends/index.php @@ -0,0 +1,40 @@ +title = 'Бренды'; +$this->registerMetaTag(['name' => 'description', 'content' => 'Бренды']); +$this->registerMetaTag(['name' => 'keywords', 'content' => 'Бренды']); + +$this->params['breadcrumbs'][] = ['label'=>'Бренды','url'=>['/brends/index']]; +?> + + + + +
+ +

Бренды

+ + + +
diff --git a/frontend/views/brends/show.php b/frontend/views/brends/show.php new file mode 100644 index 0000000..9262623 --- /dev/null +++ b/frontend/views/brends/show.php @@ -0,0 +1,50 @@ +title = $brend->name; + $this->registerMetaTag (['name' => 'description', 'content' => $brend->name]); + $this->registerMetaTag (['name' => 'keywords', 'content' => $brend->name]); + $this->params['breadcrumbs'][] = ['label' => 'Бренды', 'url' => ['/brends/index']]; + $this->params['breadcrumbs'][] = ['label' => $brend->name]; + +?> + + + + +
+
+

name ?>

+ +
+ +
    + + +
  • + render ('/products/_product', ['item' => $item, 'num' => 3]) ?> +
  • + + +
+
+
+ + $pages, + 'registerLinkTags' => true, + ]); ?> + + +
+
\ No newline at end of file diff --git a/frontend/views/catalog/_catalog_box.php b/frontend/views/catalog/_catalog_box.php new file mode 100644 index 0000000..14a47bc --- /dev/null +++ b/frontend/views/catalog/_catalog_box.php @@ -0,0 +1,20 @@ + +
+ +
\ No newline at end of file diff --git a/frontend/views/catalog/all.php b/frontend/views/catalog/all.php new file mode 100644 index 0000000..9aa7c4f --- /dev/null +++ b/frontend/views/catalog/all.php @@ -0,0 +1,39 @@ +title = 'Каталог'; +$this->registerMetaTag(['name' => 'description', 'content' => 'Каталог']); +$this->registerMetaTag(['name' => 'keywords', 'content' => 'Каталог']); + +?> + +
+
+

Каталог

+ +
+ + name;?> +
+ + + + +
+
diff --git a/frontend/views/catalog/index.php b/frontend/views/catalog/index.php new file mode 100644 index 0000000..4845f99 --- /dev/null +++ b/frontend/views/catalog/index.php @@ -0,0 +1,44 @@ + +title = $catalog->meta_title; +$this->registerMetaTag(['name' => 'description', 'content' => $catalog->meta_description]); +$this->registerMetaTag(['name' => 'keywords', 'content' => $catalog->meta_keywords]); +?> + + +
+ + +
+ render('_catalog_box',['catalog'=>$catalog]) ?> + +
+
+

name?>

+
+ + childs as $item):?> +
+ + name?> +
+ +
+ + body?> + +
+ + +
\ No newline at end of file diff --git a/frontend/views/products/_product.php b/frontend/views/products/_product.php new file mode 100644 index 0000000..b1692e9 --- /dev/null +++ b/frontend/views/products/_product.php @@ -0,0 +1,67 @@ + +
+
+ + + +
+ name ?> + + +'; + + // есть скидка + if ($item->costMax->old_cost != 0 && $item->costMax->old_cost != $item->costMax->cost) + { + // одинаковая скидка + if ($item->costMax->count_diff == 1) + { + echo ''.$item->costMax->old_cost.' грн.'; + } + } + + echo '

'.$item->costMax->cost.' грн.

'; + + echo '
'; + +?> + + Купить + +
+ +
\ No newline at end of file diff --git a/frontend/views/products/_show.php b/frontend/views/products/_show.php new file mode 100644 index 0000000..e384f84 --- /dev/null +++ b/frontend/views/products/_show.php @@ -0,0 +1,122 @@ +title = (!empty($product->meta_title))?$product->meta_title:$product->name; +$this->registerMetaTag(['name' => 'description', 'content' => ((!empty($product->meta_description))?$product->meta_description:$product->name)]); +$this->registerMetaTag(['name' => 'keywords', 'content' => $product->meta_keywords]); +$this->registerJs(" + var checkData = function(obj){ + $('#cost').text($(obj).data('cost')); + $('#product_id').val($(obj).data('id')); + } + $('.fasovka input[type=\"radio\"]').click(function() { + checkData(this); + }); + checkData($( '.fasovka input:checked' )); +", View::POS_READY, 'fasovka'); + +$this->registerJs(" + + $('#product_gallery a').click(function() { + var image = $(this).attr('href'); + $('#productPic').attr('src', image); + return false; + }); + +", View::POS_READY, 'gallery'); + +$this->registerJsFile(Yii::$app->request->baseUrl.'/js/jquery.sliderkit.1.9.2.pack.js',['position'=>View::POS_HEAD,'depends'=>['yii\web\YiiAsset']]); +$this->registerJs(" + + $('.skit').sliderkit({ + cssprefix: 'skit', + shownavitems: 3, + auto: false, + scroll: 1, + circular: false, + // freeheight: true, + scrollspeed: 500 + }); + +", View::POS_READY, 'sliderkit'); +?> + + +
+ + +
+ render('/catalog/_catalog_box',['catalog'=>$catalog]) ?> + +
+
+

name?>

+
+ +
+
+ +
+ +
+
+
+
+ + + + +
+
+ +
+
+

Фасовка

+
+ mods as $key=>$item):?> + > + +
+
+ +
+
+ + Купить +
цена 0 грн
+
+
+

Характеристики

+ char?> + +

Описание

+ body?> +
+ +
+
+ + +
+ + +
\ No newline at end of file diff --git a/frontend/views/products/compare.php b/frontend/views/products/compare.php new file mode 100644 index 0000000..0f2c1e7 --- /dev/null +++ b/frontend/views/products/compare.php @@ -0,0 +1,46 @@ +title = 'СРАВНЕНИЕ'; +$this->registerMetaTag(['name' => 'description', 'content' => 'СРАВНЕНИЕ']); +$this->registerMetaTag(['name' => 'keywords', 'content' => 'СРАВНЕНИЕ']); + +$this->params['breadcrumbs'][] = ['label'=>'Каталог','url'=>['/catalog/all']]; +$this->params['breadcrumbs'][] = ['label'=>'СРАВНЕНИЕ','url'=>['/products/compare']]; +?> + + + + + +

СРАВНЕНИЕ

+
+ +
+
+ diff --git a/frontend/views/products/index.php b/frontend/views/products/index.php new file mode 100644 index 0000000..0ffc3a6 --- /dev/null +++ b/frontend/views/products/index.php @@ -0,0 +1,99 @@ + +params['catalog_id'] = $catalog->id; + $this->title = $catalog->meta_title; + $this->registerMetaTag (['name' => 'description', 'content' => $catalog->meta_description]); + $this->registerMetaTag (['name' => 'keywords', 'content' => $catalog->meta_keywords]); + $this->registerCssFile (Yii::$app->request->BaseUrl . '/css/begunok.css'); + $this->registerJsFile (Yii::$app->request->baseUrl . '/js/jquery.ui-slider.js', ['position' => View::POS_HEAD, 'depends' => ['yii\web\JqueryAsset']]); + $this->registerJsFile (Yii::$app->request->baseUrl . '/js/begunok.js', ['position' => View::POS_HEAD, 'depends' => ['yii\web\JqueryAsset']]); + $this->params['breadcrumbs'][] = ['label' => 'Каталог', 'url' => ['/catalog/all']]; + if (! empty($catalog->parent)) $this->params['breadcrumbs'][] = ['label' => $catalog->parent->name, 'url' => ['products/index', 'translit' => $catalog->parent->translit]]; + $this->params['breadcrumbs'][] = ['label' => $catalog->name]; +?> + + + +
+
+
+ + + $catalog->translit, 'catalog_id' => $catalog->id]) ?> + + $catalog->translit, 'catalog_id' => $catalog->id]) ?> + +
+
Цена
+ false]); ?> + +
+
+
+
+ field ($modelProducts, 'minCost'); ?> + field ($modelProducts, 'maxCost'); ?> +
+ 'submit4', 'style' => 'margin-left:50px;']); ?> + +
+
+ +
+
+ + +

name ?>

+
+ +
    + + +
  • + render ('_product', ['item' => $item, 'num' => 3]) ?> +
  • + + +
+
+
+ + $pages, + 'registerLinkTags' => true, + ]); ?> +
+ +
+
+ + +
+ + + + + diff --git a/frontend/views/products/search.php b/frontend/views/products/search.php new file mode 100644 index 0000000..8eb66ea --- /dev/null +++ b/frontend/views/products/search.php @@ -0,0 +1,60 @@ + +title = 'Поиск'; + $this->registerMetaTag (['name' => 'description', 'content' => 'Поиск']); + $this->registerMetaTag (['name' => 'keywords', 'content' => 'Поиск']); +?> + + +
+ +
+

Поиск

+ +
+ +
+ +
    + + +
  • + render ('_product', ['item' => $item, 'num' => 3]) ?> +
  • + + +
+
+
+ $pages, + 'registerLinkTags' => true, + ]); ?> +
 
+
+ + +
+ +
+ \ No newline at end of file diff --git a/frontend/views/products/show.php b/frontend/views/products/show.php new file mode 100644 index 0000000..8456550 --- /dev/null +++ b/frontend/views/products/show.php @@ -0,0 +1,176 @@ +title = (! empty($product->meta_title)) ? $product->meta_title : $product->name; + $this->registerMetaTag (['name' => 'description', 'content' => ((! empty($product->meta_description)) ? $product->meta_description : $product->name)]); + $this->registerMetaTag (['name' => 'keywords', 'content' => $product->meta_keywords]); + $this->registerJs (' + + var checkData = function($index) + { + var $source = $(".productLeftBar .product_mod > li").eq($index).find("a"); + var $target = $(".productLeftBar .cost_box"); + + $("#cost").text($source.data("cost")); + $("#old_cost").text($source.data("old_cost")); + + if (parseInt ($source.data("old_cost")) == 0) + { + $target.find("strike").hide(); + } + else + { + $target.find("strike").show(); + } + + $("#product_id").val($source.data("id")); + $("#art").text($source.data("art")); + $("#color").text($source.data("color")); + $("#pic").attr("src",$source.data("image")); + $("#picoriginal").attr("href",$source.data("imageoriginal")); + } + + $(".product_mod > li").click(function() + { + checkData($(this).index()); + + Shadowbox.setup($("#picoriginal")); + + return false; + }); + + checkData(0); + + ', View::POS_READY, 'fasovka'); + + $this->registerJs (" + $('#nav_product li a').addClass('active'); + $('#nav_product li').find('.info').toggle(); + + $('#nav_product li a').bind('click',function() + { + if($(this).parent().find('.info').css('display')=='none')$(this).addClass('active'); + else $(this).removeClass('active'); + $(this).parent().find('.info').toggle(); + + return false; + }); + ", View::POS_READY, 'nav_product'); + + $this->registerCssFile (Yii::$app->request->BaseUrl . '/js/shadowbox-3.0.3/shadowbox.css'); + $this->registerJsFile (Yii::$app->request->baseUrl . '/js/shadowbox-3.0.3/shadowbox.js', ['position' => View::POS_HEAD, 'depends' => ['yii\web\JqueryAsset']]); + $this->registerJs (" + Shadowbox.init({ + + }); + ", View::POS_READY, 'Shadowbox'); +?> + + + +session->getFlash ('success')): ?> +
+ +
+ + +
+

name ?>

+
Цветовые решения
+
    + mods as $key => $item): ?> +
  • + + <?= $item->name ?> + +
  • + +
+
+ +
+
код:
цвет:
+
+ 0 грн.
+ 0 грн. +
+ + В Корзину +
+
+ + + +
+ +
+ +
+ +
+ + +
+
+ +
+
+
    + fotos as $key => $item): ?> +
  • <?= $item->name ?>
  • + +
+ + +
+
+
\ No newline at end of file diff --git a/frontend/web/css/1style.css b/frontend/web/css/1style.css new file mode 100644 index 0000000..e3d0a04 --- /dev/null +++ b/frontend/web/css/1style.css @@ -0,0 +1,874 @@ +html,form, +body { padding:0px;margin:0px; +font-family: 'Ubuntu',Arial, Tahoma, Helvetica, sans-serif;font-size:14px;color:#1d1d1b;height:100%; +} +h1,h2,h3{margin:0px;padding:0px 0px 10px 0px;} +.fl{float:left;} +.fotter .wrap .fr{float:right; width: 180px; height: 50px; position: relative;} +.fotter .wrap .fr img{position: absolute; top: 50%; margin-top: -10px; right: 0;} +.fotter .wrap .fl {line-height: 50px;} +.both{clear:both;} +h1{margin:10px 0px;font-size:24px;} +h3{margin-bottom:30px;} +p{margin:3px 0px;padding:0px;} + +a{color:#6a6a6a;font-size:14px;text-decoration:underline;} +a:hover{color:#799920;} + +.wrap { + width:960px;margin:0px auto; +} +.f{background: #ffffff;} + +.br{-webkit-box-shadow: -1px 5px 14px 0px rgba(50, 46, 50, 0.46); +-moz-box-shadow: -1px 5px 14px 0px rgba(50, 46, 50, 0.46); +box-shadow: -1px 5px 14px 0px rgba(50, 46, 50, 0.46); +padding:20px;} + +nav.top{background:#f5f5f5;padding:10px 0px;border-bottom:1px solid #d2d2d2;font-size:12px;} +nav.top ul{list-style:none;margin:0px;padding:0px;} +nav.top ul li{float:left;padding-right:20px;} +nav.top a{color:#6a6a6a;text-decoration:none;} + +#help{background:url('../img/help.png') right no-repeat;padding-right:20px;} +#help span{border-bottom:1px dotted #6a6a6a;} + +#login{background:url('../img/login.png') right no-repeat;padding-right:20px;} +#login span{border-bottom:1px dotted #6a6a6a;} + +.search{margin:-5px 0px -5px 100px;float:left;} +nav input[type="text"]{width:325px;outline:0;border:1px solid #d8d6d6;border-radius:5px;padding:5px 0px 5px 0px;font-size:14px;text-indent:10px;} +nav input[type="submit"]{width:35px;height:29px;border:none;background:url('../img/lupa_sub.png') center no-repeat;margin-left:-35px;cursor:pointer;} + + + +.header{margin:0px 0px 20px;} + +.phone{float:left;position:relative;text-align:center;margin-top:20px;} +.phone .tel{font-size:23px;} +.phone .tel span.more{margin-bottom: 3px} +.more_block{background:#ffffff;border:1px solid #d2d2d2;padding:10px;position:absolute;font-size:20px;display:none;z-index:99;} + +.more{background:url('../img/more.png') no-repeat;width:12px;height:7px;display:inline-block;cursor:pointer;margin-bottom:5px;} + + +.logo{margin:0px auto 0px;width:193px;} +.logo a{display:block;width:193px;height:84px;background:url('../img/logo.png') no-repeat;} +.logo a span{display:none;} + +#call{color:#6a6a6a;text-decoration:none;border-bottom:1px dotted #6a6a6a;} + +.basket{float:right;position:relative;border:1px solid #d2d2d2;border-radius:5px;padding:15px 20px;font-size:18px;text-transform: uppercase;margin-top:13px;} +.basket .info{float:left;border-right:1px solid #d2d2d2;padding-right:10px;margin-right:17px;} +.basket .info span{color:#f75d50;font-size:22px;} +.basket a:link,.basket a:visited{text-decoration:none;color:#000000;font-size:18px;} + +.basket span.more {margin-bottom: -1px} +.menu{background:#596065;border:1px solid #e8e8e8;} +.menu ul{margin:0px;padding:0px;list-style:none;} +.menu ul li{float:left;border-right:1px solid #e8e8e8;} +.menu ul li a{float:left;padding:15px 20px 15px 20px;text-transform: uppercase;color:#ffffff;font-size:14px;font-weight:bold;text-decoration: none;} +.menu ul li a:hover{color:#e5e4e4;} +.menu ul li.active a{background:#f5f5f5;color:#596065;} + +.menu_childs{background:#f5f5f5;border:1px solid #e8e8e8;border-bottom:2px solid #596065;} +.menu_childs ul{margin:0px;padding:0px;list-style:none;} +.menu_childs ul li{float:left;} +.menu_childs ul li a{float:left;padding:15px 23px 15px 23px;text-transform: uppercase;color:#596065;font-size:14px;font-weight:bold;text-decoration: none;} +.menu_childs ul li a:hover{color:#878b8e;} + +.fr ul li{border:none;} +.akciya a{background:#f75d50;color:#ffffff;} +.brends a{background:#95ba2f;color:#ffffff;} + +a.myorders{color:#f75d50} + + +.slider{margin-top:20px;} + + + + + + + + +#slides{width:720px;height:340px;position:relative;} +.banner{float:left;margin-right:20px;} + +.slides_container { + width:720px; + overflow:hidden; + position:relative; + display:none; +} + +/* + Each slide + Important: + Set the width of your slides + If height not specified height will be set by the slide content + Set to display block +*/ + +.slides_container div.slide { + width:720px; + height:340px; + display:block; +} + + +/* + Next/prev buttons +*/ + +#slides .prev { + position:absolute; + top:150px; + left:20px; + width:25px; + height:39px; + display:block; + z-index:999; +} + +#slides .next { + position:absolute; + top:150px; + right:15px; + width:25px; + height:39px; + display:block; + z-index:999; +} + + +/* + Pagination +*/ + +#slides .pagination { + padding:0px; + position:relative;z-index:999;margin:-30px auto;display:table; +} + +#slides .pagination ul{list-style:none;margin:0px;padding:0px;} + +#slides .pagination li { + float:left; + margin:0 3px; + list-style:none; +} + +#slides .pagination li a { + display:block; + width:10px; + height:0; + padding-top:12px; + background-image:url(../img/pagination.png); + background-position:0 -12px; + float:left; + overflow:hidden; +} + +#slides .pagination li.current a { + background-position:0 0px; +} + + + +.sub{margin:2px 0px 0px 0px;} +.sub img{float:left;margin-right:2px;} + +.rubrics{margin:35px 0px;padding-bottom:10px;} +.rubrics ul{list-style:none;margin:0px;padding:0px;} +.rubrics ul li{float:left;margin:0px 35px;} +.rubrics ul li a{float:left;width:120px;padding-top:130px;text-align:center;text-transform: uppercase;color:#494949;text-decoration:none;font-weight:bold;} +.rubrics ul li.item1 a{background:url('../img/ico1.png') no-repeat;} +.rubrics ul li.item2 a{background:url('../img/ico2.png') no-repeat;} +.rubrics ul li.item3 a{background:url('../img/ico3.png') no-repeat;} +.rubrics ul li.item4 a{background:url('../img/ico4.png') no-repeat;} +.rubrics ul li.item5 a{background:url('../img/ico5.png') no-repeat;} + + +.products{border-top:1px solid #d2d2d2;padding-bottom:30px;padding-top:20px;} +.products ul{list-style:none;margin:0px;padding:0px;} +.products ul li.item{float:left;width:160px;margin:0px 35px 15px;text-align:center;position:relative;} +.products ul li a.name{display:block;color:#494949;text-decoration:none;margin:15px 0px;height:30px;text-transform: uppercase;} +.products ul li .info{text-align: left;} +.pn{border:none;} + +.cost{color:#f75d50;font-size:20px;margin:0px;padding:0px;} +.cost span.valute{font-size:16px;} +strike{font-size:18px;} + +a.link_buy{display:block;margin:10px auto;width:122px;height:38px;line-height:38px;background:url('../img/buy.png') no-repeat;text-transform: uppercase;color:#ffffff;text-decoration:none;font-weight:bold;text-align:center;} + +.mycarousel{position:absolute;right:-34px;top:-20px;} +ul.mycarousel{list-style:none;margin:0px;padding:0px;} +ul.mycarousel li{margin:0px;padding:0px;} +.mycarousel img{border:1px solid #d2d2d2;} + +h3{text-align:center;text-transform: uppercase;font-size:20px;} +h2.why{width:213px;height:49px;background:url('../img/logo-why.png') no-repeat;margin:0px auto; padding: 0 0 20px 0;} +h2.why span{display:none;} + +ul.why_list{list-style:none;margin:0px;padding:0px;} +ul.why_list li{float:left;width:180px;margin-right:30px;} +ul.why_list li span{font-weight:bold;color:#799920;} +ul.why_list li.item1{background:url('../img/why_item1.png') left no-repeat;padding:36px 0px 20px 110px;} +ul.why_list li.item2{background:url('../img/why_item2.png') left no-repeat;padding:20px 0px 20px 110px;} +ul.why_list li.item3{background:url('../img/why_item3.png') left no-repeat;padding:40px 0px 40px 110px;} +ul.why_list li.item4{background:url('../img/why_item4.png') left no-repeat;padding:20px 0px 20px 110px;} +ul.why_list li.item5{background:url('../img/why_item5.png') left no-repeat;padding:30px 0px 30px 110px;} +ul.why_list li.item6{background:url('../img/why_item6.png') left no-repeat;padding:40px 0px 40px 110px;} + +.banner_akciya{margin:50px 0px;} + +.bottom{background:#4d5458;padding:40px 0px;color:#ffffff;} +.bottom .leftbar{float:left;width:210px;margin-right:70px;} +.bottom ul{list-style:none;margin:0px;padding:0px;line-height: 23px;} +.bottom ul a{color:#ffffff;font-size:16px;text-decoration:none;} +.bottom ul a:hover{color:#799920;} + +.phones{padding-left:25px;background:url('../img/phone.png') left top no-repeat;margin-top:50px;line-height: 23px;} +.map{padding:5px 0px 5px 25px;background:url('../img/map.png') left no-repeat; margin-bottom: 7px;} +a.more_map{color:#99a5ad;border-bottom:1px dotted #99a5ad;text-decoration:none;font-size:11px;text-align:center;} + +.bread-crumbs{padding:10px 0px 10px 20px;border-bottom:1px solid #d2d2d2;} +.bread-crumbs ul{list-style:none;margin:0px 0px 0px 0px;padding:0px;} +.bread-crumbs ul li{float:left;padding-right:5px;} +.bread-crumbs ul li a:visited,.bread-crumbs ul li a:link{font-size:14px;color:#7d7d7d;text-decoration:underline;} +.bread-crumbs ul li a:hover{color:#464646;text-decoration: none;} +.breadcrumb > li + li:before { + color: #ccc; + content: "/ "; + padding: 0 5px; +} + + +.loyout{padding:20px 0px;} +.leftbar{float:left;width:200px;margin-right:35px;} +.rightbar{float:right;width:380px;margin-left:35px;} +.rightbar2{float:right;width:240px;margin-left:35px;} +.content {overflow:hidden;min-height:500px;} +* html .content{height:1%;} +.content2 {overflow:hidden;} +* html .content2{height:1%;} + +.filters{border-top:1px solid #d2d2d2;padding:20px 0px 0px;margin-top:20px;} +.filters .begin{text-transform: uppercase;font-weight:bold;} +.filters ul{list-style:none;margin:0px;padding:0px;line-height:22px;} +.filters ul li a{color:#8fa951;text-decoration:none;} +.filters ul li a:hover{text-decoration:underline;} + +.productLeftBar{float:left;width:230px;padding-left:20px;margin-right:20px;} +.productRightBar{float:right;width:280px;margin-left:20px;} +.productLeftBar h1{font-size:27px;border-bottom:1px solid #d2d2d2;margin-bottom:10px;} + +ul.product_mod{list-style:none;margin:10px 0px 0px 0px;padding:0px;} +ul.product_mod li{float:left;margin-right:7px;} +ul.product_mod li img{border:1px solid #d2d2d2;} + +ul.product_colors{list-style:none;margin:10px 0px 0px 0px;padding:0px;} +ul.product_colors li{float:left;margin-right:7px;} +ul.product_colors li img{border:1px solid #d2d2d2;} +.productLeftBar .begin{text-transform: uppercase;font-weight:bold;} + +.cost_box{border-top:1px solid #d2d2d2;border-bottom:1px solid #d2d2d2;margin:10px 0px;padding:10px 0px;} +.cost_box .w{float:left;margin-right:20px;padding-top:5px;} + +.product_service ul{list-style:none;margin:0px;padding:0px;} +.product_service ul li a{color:#799920;text-decoration:none;border-bottom:1px dotted #799920;font-size:12px;} +.product_service ul li.item1{background:url('../img/li1.png') left no-repeat;padding:3px 23px;} +.product_service ul li.item2{background:url('../img/li2.png') left no-repeat;padding:3px 23px;} +.product_service ul li.item3{background:url('../img/li3.png') left no-repeat;padding:3px 23px;} + +#nav_product{list-style:none;margin:0px;padding:0px;line-height:23px;} +#nav_product li a{background:url('../img/li_plus.png') left no-repeat;padding:3px 15px;color:#000000;text-transform: uppercase;text-decoration:none;font-weight:bold;} +#nav_product li a.active{background:url('../img/li_minus.png') left no-repeat;} +#nav_product li .info{display:none;border-bottom:1px solid #d2d2d2;padding:10px 0px;margin-bottom:10px;} + + +.modal_box{ + position: fixed; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: 999; + + background: #000; +filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50); /* IE 5.5+*/ +-moz-opacity: 0.5; /* Mozilla 1.6 Р С‘ РЅРёР¶Рµ */ +-khtml-opacity: 0.5; /* Konqueror 3.1, Safari 1.1 */ +opacity: 0.5; + +} +#data_box{position:absolute;top:100px;z-index:1000;width:400px;background:#ffffff; + -webkit-box-shadow: 0 0 15px #000; + -moz-box-shadow: 0 0 15px #000; + box-shadow: 0 0 15px #000; + border:7px solid #1b9bb6; + border-radius:5px; +} +#data_box .data_wrp{padding:25px 15px 15px 15px;} +#data_box .data_wrp h1{text-transform: uppercase;} +#data_box .data_wrp hr{height: 1px;border: none;color: #000000;background: #000000;margin: 45px 0px 20px 0px;} +#data_box .data_wrp hr.hr{height: 1px;border: none;color: #000000;background: #000000;margin: 20px 0px 20px 0px;} +#data_box .pic-tango{margin-right:7px;margin-bottom:7px;} +#modal_close{cursor:pointer;margin-top:-80px;margin-right:-50px;} + + +.rightbar .control-label{float:left;width:80px;padding-top:5px;} +.form-control{outline:0;border:1px solid #d8d6d6;border-radius:5px;padding:5px 0px 5px 0px;font-size:14px;text-indent:10px;margin-bottom:3px;width:250px;} +.form-control:focus { +border:#1b9bb6 1px solid; +box-shadow: 0 0 10px #1b9bb6; +-webkit-box-shadow: 0 0 10px #1b9bb6; +-moz-box-shadow: 0 0 10px #1b9bb6; +} +.help-block{color:red;font-size:12px;margin-bottom:5px;} + +.basket_item{padding:10px 0px;border-bottom:1px solid #b7b7b7;} +.basket_item img{margin-right:20px;} +.basket_item .count{margin:20px 0px;} +.basket_item .fr{margin-top:5px;} +.basket_item .info{overflow:hidden;} +a.del:visited,a.del:link{background:url('../img/del.png') left center no-repeat;padding:2px 25px;font-size:12px;font-weight:normal;color:#787878;text-decoration: underline;} +a.del:hover{color:#a52828;text-decoration: underline;} + +.total{text-align:right;color:#87476a;font-size:20px;margin:10px 0px;} + +.submit4{margin-top:5px;border:none;padding:8px 13px;background:#95ba2f;border-radius:5px;color:#ffffff;text-transform: uppercase;text-decoration:none;font-size:14px;font-weight:bold;cursor:pointer;} +.submit4:hover{background:#f75d50;} + +.submit4m{border:none;padding:8px 13px;background:#95ba2f;border-radius:5px;color:#ffffff;text-transform: uppercase;text-decoration:none;font-size:12px;font-weight:bold;cursor:pointer;} +.submit4m:hover{background:#f75d50;} + +.btn-primary{margin-top:5px;border:none;padding:8px 13px;background:#95ba2f;border-radius:5px;color:#ffffff;text-transform: uppercase;text-decoration:none;font-size:14px;font-weight:bold;cursor:pointer;} +.btn-primary:hover{background:#f75d50;} + +a.logout:visited,a.logout:link{border:none;padding:3px 5px;background:#f75d50;border-radius:5px;color:#ffffff;text-transform: uppercase;text-decoration:none;font-size:11px;font-weight:normal;cursor:pointer;} +a.logout:hover{background:#95ba2f;} + +.boy_box{border-bottom:1px solid #b7b7b7;padding:0px 0px 15px 0px;} +.boy_box div{padding-top:10px;} + +.content_product .info{padding:0px 0px 20px 0px;} + +a.btn-success{display:inline-block;border:2px solid #d8d6d6;color:#95ba2f;border-radius:5px;padding:5px;margin-bottom:10px;text-decoration:none;font-size:14px;} +a.btn-success:hover{border:#95ba2f 2px solid;color:#f75d50;} + + +.txtb1{font-size:14px;font-weight:bold;} +.txtf{font-size:14px;font-weight:bold;color:#87476a;} +.txtfb{font-size:20px;font-weight:bold;color:#87476a;} + +.count{margin:20px 0px;} +.count input[type="number"]{outline:0;width:50px;border:1px solid #d8d6d6;border-radius:5px;padding:5px 0px 5px 0px;font-size:14px;text-indent:10px;margin-bottom:7px;} + +a.link2:visited,a.link2:link{font-size:14px;font-weight:bold;color:#95ba2f;text-decoration: none;} +a.link2:hover{color:#f75d50;text-decoration: underline;} + + + +.well{margin:50px auto;width:400px;background:#f5f5f5;border:1px solid #e8e8e8;padding:20px;border-radius:5px;} +.control-label{float:left;width:100px;padding-top:5px;} +#user-verifycode-image{display:block;} +.form-inline{display:inline;} +.form-inline .form-group{float:left;margin-right:10px;} +.form-inline .form-group select{width:100px;} +.form-group{margin-bottom: 10px;} +.table-bordered{width:100%;border:1px solid silver;} +.table-bordered th{background: #B3D1FD;padding:5px;} +.table-bordered tr td{border:1px solid silver;padding:5px;} +.table-bordered .filters{display: none;} + +.formCost label{float:left;width:30px;} + +ul.brends_list{list-style: none;margin:0px;padding:0px;} +ul.brends_list li{float:left;text-align:center;margin:0px 15px 20px 15px;} + +.compare{text-align: center;} +.compare a:visited,.compare a:link{font-size:12px;text-decoration: underline;} + +.alert-success{margin:10px 0px;padding:10px;border:1px solid #3ed824;border-radius: 5px;background: #c0feb5;} + +.news_item{padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid silver;} +.news_item img{margin-right:20px;} +.news_item a{font-size:16px;} + +.pic{margin-right:20px;} + +#subscribe-sale{width:100px;float:left;margin-right:20px;} +.saletxt{width:150px;float:left;color:#ffffff;} +#subscribe-email{width:390px;} + +.txts{color:#9da9b1;font-size:18px;margin-bottom:20px;} + +.content ul.pagination{list-style:none;text-align:center;} +.content ul.pagination li{display:inline;} +.content ul.pagination li a{padding:3px;color:#82a02f;font-size: 16px;margin:0px; text-decoration: none; } +.content ul.pagination li a:hover {text-decoration: underline} +.content ul.pagination li.active a{color: #333333;} +.boxitem{height:300px;} +ul.social {margin-top: 20px;} +.social{list-style: none;margin: 10px;padding: 0px;height:48px;} +.social li{display:inline-block;margin-right:7px;padding-bottom: 10px;} +.social li a{ + width:36px; + height:36px; + display:block; + margin:0;padding:0; + text-indent:-9999px; + background:#bcbcbc url(../img/social-ico-two.png) no-repeat 0 0; + border-radius:48px; + -moz-border-radius:48px; + -webkit-border-radius:48px; + -webkit-transition: all 0.5s ease-out; + -moz-transition: all 0.5s ease-out; + transition: all 0.5s ease-out; +} +.social .fb{background-position:-44px 0; +cursor: pointer; +} +.social .vk{ +cursor: pointer; +} +.social .vk:hover{background-color:#5B7FA6;} +.social .fb:hover{background-color:#354f89; +} +.social .gp{background-position:-132px 0; +cursor: pointer;} +.social .gp:hover{background-color:#c72f21;} +.social .tw{background-position:-144px 0; +cursor: pointer;} +.social .tw:hover{background-color:#6398c9;} +.social .ok{background-position:-89px 0; +cursor: pointer;} +.social .ok:hover{background-color:#f88f15;} +.social ul li a:hover{ + background-color:#065baa; +} + +.socialbox{margin:10px 0px;} +.hide{display:none;} + + + +.fotter{background: #484f55;height: 50px;color:#98a3ab;} +.fotter a{color:#98a3ab; line-height: 50px; float: left;} + + +.view_products2{list-style: none;overflow:auto;height:400px;} +.view_products2 img{float:left;margin-right:20px;} +.view_products2 li{margin:10px 0px;} + + +.pixbox{width:134px;height:200px;overflow: hidden;text-align: center;} + + +.form-order{background:#f5f5f5;padding:10px;border:1px solid #d2d2d2;} +#order-payment{float:right;width:280px;} +#order-delivery{float:right;width:280px;} + +.delivery-data{padding:5px;border:1px solid #1bb631;background: #b7f5bf;display:none;border-radius: 5px;} + +.jcarousel-next-disabled, .jcarousel-prev-disabled {display: none !important;} +.content2 br {display: none;} +.pixbox a { + width: 134px; + height: 200px; + display: table-cell; + vertical-align: middle; +} +.pixbox img { + max-width: 134px; + max-height: 200px; + vertical-align: middle; +} +.pagination li.prev.disabled span { + padding: 9px; + border-radius: 10%; + color: #4D5458; + font-size: 14px; + margin: 0px; + border: 1px solid #4d5458; +} +.fr {float: right;} + +.nobottom{border-bottom:none !important;} + +.dotted a{border-bottom: 1px dotted #808080;} + +.mycabinet{padding-left:20px;margin-top:20px;} +.mycabinet .begin{text-transform:uppercase;font-size: 13px;font-weight:bold; padding-bottom:15px;} +.mycabinet ul{margin:0px;padding:0px;list-style:none;} +.mycabinet ul li{padding-top:10px;padding-bottom:10px;} +.mycabinet a{color:#799920;text-decoration:none;} + +.lay_title .uppercase{text-transform:uppercase;} +.lay_title .center{text-align:center;} +.lay_title{padding-top:15px;font-size:24px;} + +.user_data{width:390px;border-right:1px solid #d2d2d2;float:left;} +.user_data .col{padding-bottom:35px;} +.user_data .col.last{padding-bottom:0px;} +.user_data .title{text-transform:uppercase;font-weight:bold;width:170px;float:left;font-size:13px;} +.user_data .data{float:left;font-size:13px;} + +.edit_menu{float:left;padding-left:60px;font-size:13px;} +.edit_menu div{padding-bottom:20px;} +.edit_menu a{color:#799920;text-decoration:none;} +.edit_menu .dotted{border-bottom:1px dotted #799920;} + +.user_edit_area{padding-top:30px;} + +/* part two */ + +.user_data_editing{float:left;} +.inputs .col{padding-bottom:12px !important;} +.user_data_editing .col{padding-bottom:35px; width:432px;} +.user_data_editing .title{text-transform:uppercase;font-weight:bold;width:170px;float:left;font-size:13px;} +.user_data_editing .data{float:left;font-size:13px; width:262px;} + +.user_data_editing input[type="text"] { + padding:0; + margin:0; + border:1px solid #d2d2d2; + padding-top:7px; + padding-bottom:7px; + padding-left:10px; + padding-right:10px; + border-radius:4px; + font-size:12px; + margin-top:-10px; + width: 240px; +} + +.user_data_editing .add {color:#799920; text-decoration:none;border-bottom:1px dotted #799920;} +.add_more{padding-bottom:24px; padding-left:170px;} + +.delete{float:right;} +.delete_button{background: url('../img/ico_close.png') right no-repeat; width:16px;height:16px;float:right;} + +.content_area{width:450px;} + +.bottom3{border-top:3px solid #95ba2f !important;border-bottom:3px solid #799920 !important; float:left;font-size:15px;} +.bottom3:hover{border-top:3px solid #f75d50 !important;border-bottom:3px solid #c33327 !important;} +#cancel{text-decoration:none;color:#799920;font-size:13px;border-bottom:1px dotted #799920;float:left;margin-left:40px;} + +.buttons{ + display: inline-flex; + align-items: center;} + +/* part three */ + +.favorites{background-color:#f5f5f5; padding:5px;font-size:14px;} +.favorites .fav_point{background-color:#ffffff;border:1px solid #d2d2d2;border-radius:3px;padding-top:10px;padding-bottom:10px;padding-left:20px;padding-right:20px; margin-top:5px;} +.favorites .fav_point .left{float:left; padding-right:0; width:178px;} +.favorites .fav_point .right{float:right; padding-right:0; padding-left:0;} + +.favorites .link{color:#799920; text-decoration:none;border-bottom:1px dotted #799920;} + +.redtext{color:#f75d50;} +.greentext{color:#95ba2f;} + +/* part three one */ +.hold .orders_view{display:none !important;} +.orders_view{width:680px;margin-top:13px;padding-top:13px;padding-bottom:5px;border-top:1px solid #d2d2d2;display:block;} +.orders_view .order{float:left;width:225px;text-align:center;} +.orders_view .order .order_price{color:#f75d50;font-weight:bold;font-size:15px;} +.orders_view .order .order_price span{font-size:24px;} +.orders_view .order img{padding-bottom:22px;} +.orders_view .order .note{font-size:13px;} +.orders_view .order .note span{color:#f75d50;} + +.basket_hovered{ + position:absolute; + border:1px solid #d2d2d2;border-radius:5px;padding:15px 20px; + background-color:white; + right:-1px; + margin-top:10px; + width:640px; + display:none; + z-index:1111; +} + + +.open .basket_hovered{ + display:block; +} + +.open, .open .basket_hovered { + -moz-box-shadow: 0px 0px 5px rgba(149,149,149,0.75); + -webkit-box-shadow: 0px 0px 5px rgba(149,149,149,0.75); + box-shadow: 0px 0px 5px rgba(149,149,149,0.75); +} +.basket_hovered1:before{ + position:absolute; + left:0; + content:' '; + width:100%; + background-color:white; + height:10px; + top:45px; + z-index:1112; +} + +.basket_item input{ + border: 1px solid #d2d2d2; + border-radius: 4px; + padding:9px; + width:26px; + font-size:18px; + font-weight:bold; + text-align:center; + background-color:white; + color: black; + margin:7px; +} +input[type=number]::-webkit-inner-spin-button, +input[type=number]::-webkit-outer-spin-button {-webkit-appearance: none; + margin:0;} + + +.minus{background:url('../img/minus.png') no-repeat;width:15px;height:15px;display:inline-block;cursor:pointer;} +.plus{background:url('../img/plus.png') no-repeat;width:15px;height:15px;display:inline-block;cursor:pointer;} + +.basket_sum{padding-top:15px;} + +.basket_sum .sum_text{font-size:15px; text-transform:none;padding-top:12px;float: right !important;padding-top: 1px;margin-bottom: 11px;} +.basket_sum .sum_text span{font-size:18px; color:#f75d50; font-weight:bold;} +.basket_sum a{color:white !important; font-size:15px !important; float:right;} + + +.black{z-index:9999; background-color:rgba(0,0,0,0.5);width:100%;height:100%;position:fixed;display:block;padding-top:9%;} +.black.hidden{display:none;} +.black .item_added_win{background-color:#ffffff;width:640px; margin:auto;position:relative;} + +.black_close{position:absolute; top:30px;right:30px;background:url('../img/ico_close2.png') no-repeat;width:22px;height:22px;display:inline-block;cursor:pointer;} + +.block_content{padding-left:20px;padding-right:20px;} +.item_added_win h2{text-transform:uppercase;text-align:center;padding:30px;} + +.block_content .item{padding-top:20px;padding-bottom:20px;border-bottom:1px solid #d2d2d2;} + +.uppercase{text-transform:uppercase;} + +.w230{width:230px;} +.w260{width:260px;} +.w430{width:430px;} +.borderbottom{border-bottom:1px solid #d2d2d2;} +.left_block .begin{text-transform:uppercase;font-size: 13px;font-weight:bold; padding-bottom:15px;} + +.color_variants .variant{ + text-align:center; + border:1px solid #d2d2d2; + float:left; + margin-right:5px; + margin-bottom:5px; +} +.variant:hover{cursor:pointer;} +.color_variants{margin-top:14px;margin-bottom:-5px;} +.color_variants .variant.active{width:44px;height:44px;border:2px solid #95ba2f;} +.color_variants .variant.active a{width:44px;height:44px;} + +.tobasket{margin-top:20px;margin-bottom:20px;} +.tobasket:hover{color:white;} + +.variant{width:46px;height:46px;} +.variant.active{width:44px;height:44px;} + +.layout{margin-top:15px;} +.left_block{float:left;} +.right_block{float:right;} +.center_block{float:left;margin-left:23px;} + +.left_block .links{margin-top:25px;} + +.left_block .links li{list-style: none; padding-left:25px;display:inline-block;cursor:pointer;height:20px;} +.left_block .links ul{margin:0;padding:0;} +.left_block .links a{font-size:13.5px;text-decoration:none; color:#8ba73e;} + + +.links .add_bookmarks{background:url('../img/ico_add_bookmark.png') no-repeat center left; } +.links .what_price{background:url('../img/ico_price.png') no-repeat center left; } +.links .add_compare{background:url('../img/ico_scales.png') no-repeat center left; } + +.spoiler_one{padding-top:15px;padding-bottom:15px;border-bottom:1px solid #d2d2d2;} +.spoiler_one .spoiler_content{margin-top:15px;font-size:13px;} +.spoiler_one .spoiler_content.hidden{display:none;} + +.title_spoiler:hover {cursor: pointer} + +.title_spoiler{ + background:url('../img/ico_open.png') no-repeat center left; + padding-left: 17px; + font-size:13px; + text-transform:uppercase; + color:#333333; + font-weight:bold; + text-decoration:none; +} +.title_spoiler.closed{ + background:url('../img/ico_close3.png') no-repeat center left; +} + +.features{ + list-style:none; + padding:0; + margin:0; + font-size:13px; +} +.features a{ + font-size:13px; + text-decoration:none; + border-bottom:1px dotted #8ba73e; + color:#8ba73e; +} +.features li{ + padding-top:5px; + padding-bottom:4px; +} + +.note_prod{ + width:225px; + height:23px; + overflow:hidden; + border-radius:5px; + display:table; + text-transform:uppercase; + font-size:11px; + font-weight:bold; +} + +.note_prod .one{ + z-index:999; +} +.note_prod .two{ + z-index:998; +} + +.note_prod .blue{ + float:left; + padding-top:5px; + padding-bottom:5px; + background-color:#42b9f6; + padding-left:10px; + padding-right:5px; + position:relative; +} + +.note_prod .blue:after{ + content:''; + width: 0; + height: 0; + border-top: 13px solid transparent; + border-left: 5px solid #42b9f6; + border-bottom: 13px solid transparent; + position:absolute; + top:-1px; + margin-left:5px; +} +.note_prod .red{ + float:left; + padding-top:5px; + padding-bottom:5px; + background-color:#f75d50; + padding-left:10px; + padding-right:5px; + position:relative; + color:#ffffff; +} +.note_prod .red:after{ + content:''; + width: 0; + height: 0; + border-top: 13px solid transparent; + border-left: 5px solid #f75d50; + border-bottom: 13px solid transparent; + position:absolute; + top:-1px; + margin-left:5px; +} +.note_prod .yellow{ + float:left; + padding-top:5px; + padding-bottom:5px; + background-color:#fbc665; + padding-left:10px; + padding-right:5px; + position:relative; +} +.note_prod .yellow:after{ + content:''; + width: 0; + height: 0; + border-top: 13px solid transparent; + border-left: 5px solid #fbc665; + border-bottom: 13px solid transparent; + position:absolute; + top:-1px; + margin-left:5px; +} + + +.products_block .product{float:left; width:190px; vertical-align:bottom;} +.product .image{height:225px;position:relative;} +.product .image img{position:absolute;bottom:0;left:15px;} + +.price{ + font-size: 18px; + color: #f75d50; + font-weight: bold; + text-align:center;} + +.product{padding-bottom:30px;position:relative;} +.product p{font-size:15px; text-align:center; margin-top:15px;} +.left52{margin-left:52px;} +.product a{color:#ffffff;} +.mrg1{margin-top: 25px; margin-bottom: 15px;} + +.products_martopbot{margin-top:60px;margin-bottom:100px;} + +.cont_shop_but{display:table-cell;vertical-align:middle;padding:35px;} +.cont_shop{text-decoration:none;font-size:12px;border-bottom:1px dotted #799920;color:#799920;} + +.icons{ + width:45px; + height:50%; + position:absolute; + z-index:9; + right:0; + padding-top:25px; + padding-right:15px; +} +.icons a{ + width:44px; + height:44px; + float: left; + border: 1px solid #d2d2d2; + margin-bottom: 5px; + background-color: white; +} +a:hover{cursor:pointer;} + + +.basket_item .form-group{display:inline;} + +.basket.open:after{ + content: ''; + position: absolute; + top: 43px; + width: 100%; + height: 10px; + background-color: white; + left: 0; + z-index: 9990; +} + +.basket_hovered .basket_sum{float:left;} + +a.active{font-weight:bold;text-decoration: underline;} \ No newline at end of file diff --git a/frontend/web/css/_style.css b/frontend/web/css/_style.css new file mode 100644 index 0000000..2eb355c --- /dev/null +++ b/frontend/web/css/_style.css @@ -0,0 +1,859 @@ +html,form, +body { padding:0px;margin:0px; +font-family: 'Ubuntu',Arial, Tahoma, Helvetica, sans-serif;font-size:14px;color:#1d1d1b;height:100%; +} +h1,h2,h3{margin:0px;padding:0px 0px 10px 0px;} +.fl{float:left;} +.fotter .wrap .fr{float:right; width: 180px; height: 50px; position: relative;} +.fotter .wrap .fr img{position: absolute; top: 50%; margin-top: -10px; right: 0;} +.fotter .wrap .fl {line-height: 50px;} +.both{clear:both;} +h1{margin:10px 0px;font-size:24px;} +h3{margin-bottom:30px;} +p{margin:3px 0px;padding:0px;} + +a{color:#6a6a6a;font-size:14px;text-decoration:underline;} +a:hover{color:#799920;} + +.wrap { + width:960px;margin:0px auto; +} +.f{background: #ffffff;} + +.br{-webkit-box-shadow: -1px 5px 14px 0px rgba(50, 46, 50, 0.46); +-moz-box-shadow: -1px 5px 14px 0px rgba(50, 46, 50, 0.46); +box-shadow: -1px 5px 14px 0px rgba(50, 46, 50, 0.46); +padding:20px;} + +nav.top{background:#f5f5f5;padding:10px 0px;border-bottom:1px solid #d2d2d2;font-size:12px;} +nav.top ul{list-style:none;margin:0px;padding:0px;} +nav.top ul li{float:left;padding-right:20px;} +nav.top a{color:#6a6a6a;text-decoration:none;} + +#help{background:url('../img/help.png') right no-repeat;padding-right:20px;} +#help span{border-bottom:1px dotted #6a6a6a;} + +#login{background:url('../img/login.png') right no-repeat;padding-right:20px;} +#login span{border-bottom:1px dotted #6a6a6a;} + +.search{margin:-5px 0px -5px 100px;float:left;} +nav input[type="text"]{width:325px;outline:0;border:1px solid #d8d6d6;border-radius:5px;padding:5px 0px 5px 0px;font-size:14px;text-indent:10px;} +nav input[type="submit"]{width:35px;height:29px;border:none;background:url('../img/lupa_sub.png') center no-repeat;margin-left:-35px;cursor:pointer;} + + + +.header{margin:0px 0px 20px;} + +.phone{float:left;position:relative;text-align:center;margin-top:20px;} +.phone .tel{font-size:23px;} +.phone .tel span.more{margin-bottom: 3px} +.more_block{background:#ffffff;border:1px solid #d2d2d2;padding:10px;position:absolute;font-size:20px;display:none;z-index:99;} + +.more{background:url('../img/more.png') no-repeat;width:12px;height:7px;display:inline-block;cursor:pointer;margin-bottom:5px;} + + +.logo{margin:0px auto 0px;width:193px;} +.logo a{display:block;width:193px;height:84px;background:url('../img/logo.png') no-repeat;} +.logo a span{display:none;} + +#call{color:#6a6a6a;text-decoration:none;border-bottom:1px dotted #6a6a6a;} + +.basket{float:right;position:relative;border:1px solid #d2d2d2;border-radius:5px;padding:15px 20px;font-size:18px;text-transform: uppercase;margin-top:13px;} +.basket .info{float:left;border-right:1px solid #d2d2d2;padding-right:10px;margin-right:17px;} +.basket .info span{color:#f75d50;font-size:22px;} +.basket a:link,.basket a:visited{text-decoration:none;color:#000000;font-size:18px;} + +.basket span.more {margin-bottom: -1px} +.menu{background:#596065;border:1px solid #e8e8e8;} +.menu ul{margin:0px;padding:0px;list-style:none;} +.menu ul li{float:left;border-right:1px solid #e8e8e8;} +.menu ul li a{float:left;padding:15px 20px 15px 20px;text-transform: uppercase;color:#ffffff;font-size:14px;font-weight:bold;text-decoration: none;} +.menu ul li a:hover{color:#e5e4e4;} +.menu ul li.active a{background:#f5f5f5;color:#596065;} + +.menu_childs{background:#f5f5f5;border:1px solid #e8e8e8;border-bottom:2px solid #596065;} +.menu_childs ul{margin:0px;padding:0px;list-style:none;} +.menu_childs ul li{float:left;} +.menu_childs ul li a{float:left;padding:15px 23px 15px 23px;text-transform: uppercase;color:#596065;font-size:14px;font-weight:bold;text-decoration: none;} +.menu_childs ul li a:hover{color:#878b8e;} + +.fr ul li{border:none;} +.akciya a{background:#f75d50;color:#ffffff;} +.brends a{background:#95ba2f;color:#ffffff;} + +a.myorders{color:#f75d50} + + +.slider{margin-top:20px;} + + + + + + + + +#slides{width:720px;height:340px;position:relative;} +.banner{float:left;margin-right:20px;} + +.slides_container { + width:720px; + overflow:hidden; + position:relative; + display:none; +} + +/* + Each slide + Important: + Set the width of your slides + If height not specified height will be set by the slide content + Set to display block +*/ + +.slides_container div.slide { + width:720px; + height:340px; + display:block; +} + + +/* + Next/prev buttons +*/ + +#slides .prev { + position:absolute; + top:150px; + left:20px; + width:25px; + height:39px; + display:block; + z-index:999; +} + +#slides .next { + position:absolute; + top:150px; + right:15px; + width:25px; + height:39px; + display:block; + z-index:999; +} + + +/* + Pagination +*/ + +#slides .pagination { + padding:0px; + position:relative;z-index:999;margin:-30px auto;display:table; +} + +#slides .pagination ul{list-style:none;margin:0px;padding:0px;} + +#slides .pagination li { + float:left; + margin:0 3px; + list-style:none; +} + +#slides .pagination li a { + display:block; + width:10px; + height:0; + padding-top:12px; + background-image:url(../img/pagination.png); + background-position:0 -12px; + float:left; + overflow:hidden; +} + +#slides .pagination li.current a { + background-position:0 0px; +} + + + +.sub{margin:2px 0px 0px 0px;} +.sub img{float:left;margin-right:2px;} + +.rubrics{margin:35px 0px;padding-bottom:10px;} +.rubrics ul{list-style:none;margin:0px;padding:0px;} +.rubrics ul li{float:left;margin:0px 35px;} +.rubrics ul li a{float:left;width:120px;padding-top:130px;text-align:center;text-transform: uppercase;color:#494949;text-decoration:none;font-weight:bold;} +.rubrics ul li.item1 a{background:url('../img/ico1.png') no-repeat;} +.rubrics ul li.item2 a{background:url('../img/ico2.png') no-repeat;} +.rubrics ul li.item3 a{background:url('../img/ico3.png') no-repeat;} +.rubrics ul li.item4 a{background:url('../img/ico4.png') no-repeat;} +.rubrics ul li.item5 a{background:url('../img/ico5.png') no-repeat;} + + +.products{border-top:1px solid #d2d2d2;padding-bottom:30px;padding-top:20px;} +.products ul{list-style:none;margin:0px;padding:0px;} +.products ul li.item{float:left;width:160px;margin:0px 35px 15px;text-align:center;position:relative;} +.products ul li a.name{display:block;color:#494949;text-decoration:none;margin:15px 0px;height:30px;} +.products ul li .info{text-align: left;} +.pn{border:none;} + +.cost{color:#f75d50;font-size:20px;margin:0px;padding:0px;} +.cost span.valute{font-size:16px;} +strike{font-size:18px;} + +a.link_buy{display:block;margin:10px auto;width:122px;height:38px;line-height:38px;background:url('../img/buy.png') no-repeat;text-transform: uppercase;color:#ffffff;text-decoration:none;font-weight:bold;text-align:center;} + +.mycarousel{position:absolute;right:-34px;top:-20px;} +ul.mycarousel{list-style:none;margin:0px;padding:0px;} +ul.mycarousel li{margin:0px;padding:0px;} +.mycarousel img{border:1px solid #d2d2d2;} + +h3{text-align:center;text-transform: uppercase;font-size:20px;} +h2.why{width:213px;height:49px;background:url('../img/logo-why.png') no-repeat;margin:0px auto; padding: 0 0 20px 0;} +h2.why span{display:none;} + +ul.why_list{list-style:none;margin:0px;padding:0px;} +ul.why_list li{float:left;width:180px;margin-right:30px;} +ul.why_list li span{font-weight:bold;color:#799920;} +ul.why_list li.item1{background:url('../img/why_item1.png') left no-repeat;padding:36px 0px 20px 110px;} +ul.why_list li.item2{background:url('../img/why_item2.png') left no-repeat;padding:20px 0px 20px 110px;} +ul.why_list li.item3{background:url('../img/why_item3.png') left no-repeat;padding:40px 0px 40px 110px;} +ul.why_list li.item4{background:url('../img/why_item4.png') left no-repeat;padding:20px 0px 20px 110px;} +ul.why_list li.item5{background:url('../img/why_item5.png') left no-repeat;padding:30px 0px 30px 110px;} +ul.why_list li.item6{background:url('../img/why_item6.png') left no-repeat;padding:40px 0px 40px 110px;} + +.banner_akciya{margin:50px 0px;} + +.bottom{background:#4d5458;padding:40px 0px;color:#ffffff;} +.bottom .leftbar{float:left;width:210px;margin-right:70px;} +.bottom ul{list-style:none;margin:0px;padding:0px;line-height: 23px;} +.bottom ul a{color:#ffffff;font-size:16px;text-decoration:none;} +.bottom ul a:hover{color:#799920;} + +.phones{padding-left:25px;background:url('../img/phone.png') left top no-repeat;margin-top:50px;line-height: 23px;} +.map{padding:5px 0px 5px 25px;background:url('../img/map.png') left no-repeat; margin-bottom: 7px;} +a.more_map{color:#99a5ad;border-bottom:1px dotted #99a5ad;text-decoration:none;font-size:11px;text-align:center;} + +.bread-crumbs{padding:10px 0px 10px 20px;border-bottom:1px solid #d2d2d2;} +.bread-crumbs ul{list-style:none;margin:0px 0px 0px 0px;padding:0px;} +.bread-crumbs ul li{float:left;padding-right:5px;} +.bread-crumbs ul li a:visited,.bread-crumbs ul li a:link{font-size:14px;color:#7d7d7d;text-decoration:underline;} +.bread-crumbs ul li a:hover{color:#464646;text-decoration: none;} +.breadcrumb > li + li:before { + color: #ccc; + content: "/ "; + padding: 0 5px; +} + + +.loyout{padding:20px 0px;} +.leftbar{float:left;width:200px;margin-right:35px;} +.rightbar{float:right;width:380px;margin-left:35px;} +.rightbar2{float:right;width:240px;margin-left:35px;} +.content {overflow:hidden;min-height:500px;} +* html .content{height:1%;} +.content2 {overflow:hidden;} +* html .content2{height:1%;} + +.filters{border-top:1px solid #d2d2d2;padding:20px 0px 0px;margin-top:20px;} +.filters .begin{text-transform: uppercase;font-weight:bold;} +.filters ul{list-style:none;margin:0px;padding:0px;line-height:22px;} +.filters ul li a{color:#8fa951;text-decoration:none;} +.filters ul li a:hover{text-decoration:underline;} + +.productLeftBar{float:left;width:230px;padding-left:20px;margin-right:20px;} +.productRightBar{float:right;width:280px;margin-left:20px;} +.productLeftBar h1{font-size:27px;border-bottom:1px solid #d2d2d2;margin-bottom:10px;} + +ul.product_mod{list-style:none;margin:10px 0px 0px 0px;padding:0px;} +ul.product_mod li{float:left;margin-right:7px;} +ul.product_mod li img{border:1px solid #d2d2d2;} + +ul.product_colors{list-style:none;margin:10px 0px 0px 0px;padding:0px;} +ul.product_colors li{float:left;margin-right:7px;} +ul.product_colors li img{border:1px solid #d2d2d2;} +.productLeftBar .begin{text-transform: uppercase;font-weight:bold;} + +.cost_box{border-top:1px solid #d2d2d2;border-bottom:1px solid #d2d2d2;margin:10px 0px;padding:10px 0px;} +.cost_box .w{float:left;margin-right:20px;padding-top:5px;} + +.product_service ul{list-style:none;margin:0px;padding:0px;} +.product_service ul li a{color:#799920;text-decoration:none;border-bottom:1px dotted #799920;font-size:12px;} +.product_service ul li.item1{background:url('../img/li1.png') left no-repeat;padding:3px 23px;} +.product_service ul li.item2{background:url('../img/li2.png') left no-repeat;padding:3px 23px;} +.product_service ul li.item3{background:url('../img/li3.png') left no-repeat;padding:3px 23px;} + +#nav_product{list-style:none;margin:0px;padding:0px;line-height:23px;} +#nav_product li a{background:url('../img/li_plus.png') left no-repeat;padding:3px 15px;color:#000000;text-transform: uppercase;text-decoration:none;font-weight:bold;} +#nav_product li a.active{background:url('../img/li_minus.png') left no-repeat;} +#nav_product li .info{display:none;border-bottom:1px solid #d2d2d2;padding:10px 0px;margin-bottom:10px;} + + +.modal_box{ + position: fixed; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: 999; + + background: #000; +filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50); /* IE 5.5+*/ +-moz-opacity: 0.5; /* Mozilla 1.6 Р С‘ РЅРёР¶Рµ */ +-khtml-opacity: 0.5; /* Konqueror 3.1, Safari 1.1 */ +opacity: 0.5; + +} +#data_box{position:absolute;top:100px;z-index:1000;width:400px;background:#ffffff; + -webkit-box-shadow: 0 0 15px #000; + -moz-box-shadow: 0 0 15px #000; + box-shadow: 0 0 15px #000; + border:7px solid #1b9bb6; + border-radius:5px; +} +#data_box .data_wrp{padding:25px 15px 15px 15px;} +#data_box .data_wrp h1{text-transform: uppercase;} +#data_box .data_wrp hr{height: 1px;border: none;color: #000000;background: #000000;margin: 45px 0px 20px 0px;} +#data_box .data_wrp hr.hr{height: 1px;border: none;color: #000000;background: #000000;margin: 20px 0px 20px 0px;} +#data_box .pic-tango{margin-right:7px;margin-bottom:7px;} +#modal_close{cursor:pointer;margin-top:-80px;margin-right:-50px;} + + +.rightbar .control-label{float:left;width:80px;padding-top:5px;} +.form-control{outline:0;border:1px solid #d8d6d6;border-radius:5px;padding:5px 0px 5px 0px;font-size:14px;text-indent:10px;margin-bottom:3px;width:250px;} +.form-control:focus { +border:#1b9bb6 1px solid; +box-shadow: 0 0 10px #1b9bb6; +-webkit-box-shadow: 0 0 10px #1b9bb6; +-moz-box-shadow: 0 0 10px #1b9bb6; +} +.help-block{color:red;font-size:12px;margin-bottom:5px;} + +.basket_item{padding:10px 0px;border-bottom:1px solid #b7b7b7;} +.basket_item img{margin-right:20px;} +.basket_item .count{margin:20px 0px;} +.basket_item .fr{margin-top:5px;} +.basket_item .info{overflow:hidden;} +a.del:visited,a.del:link{background:url('../img/del.png') left center no-repeat;padding:2px 25px;font-size:12px;font-weight:normal;color:#787878;text-decoration: underline;} +a.del:hover{color:#a52828;text-decoration: underline;} + +.total{text-align:right;color:#87476a;font-size:20px;margin:10px 0px;} + +.submit4{margin-top:5px;border:none;padding:8px 13px;background:#95ba2f;border-radius:5px;color:#ffffff;text-transform: uppercase;text-decoration:none;font-size:14px;font-weight:bold;cursor:pointer;} +.submit4:hover{background:#f75d50;} + +.submit4m{border:none;padding:8px 13px;background:#95ba2f;border-radius:5px;color:#ffffff;text-transform: uppercase;text-decoration:none;font-size:12px;font-weight:bold;cursor:pointer;} +.submit4m:hover{background:#f75d50;} + +.btn-primary{margin-top:5px;border:none;padding:8px 13px;background:#95ba2f;border-radius:5px;color:#ffffff;text-transform: uppercase;text-decoration:none;font-size:14px;font-weight:bold;cursor:pointer;} +.btn-primary:hover{background:#f75d50;} + +a.logout:visited,a.logout:link{border:none;padding:3px 5px;background:#f75d50;border-radius:5px;color:#ffffff;text-transform: uppercase;text-decoration:none;font-size:11px;font-weight:normal;cursor:pointer;} +a.logout:hover{background:#95ba2f;} + +.boy_box{border-bottom:1px solid #b7b7b7;padding:0px 0px 15px 0px;} +.boy_box div{padding-top:10px;} + +.content_product .info{padding:0px 0px 20px 0px;} + +a.btn-success{display:inline-block;border:2px solid #d8d6d6;color:#95ba2f;border-radius:5px;padding:5px;margin-bottom:10px;text-decoration:none;font-size:14px;} +a.btn-success:hover{border:#95ba2f 2px solid;color:#f75d50;} + + +.txtb1{font-size:14px;font-weight:bold;} +.txtf{font-size:14px;font-weight:bold;color:#87476a;} +.txtfb{font-size:20px;font-weight:bold;color:#87476a;} + +.count{margin:20px 0px;} +.count input[type="number"]{outline:0;width:50px;border:1px solid #d8d6d6;border-radius:5px;padding:5px 0px 5px 0px;font-size:14px;text-indent:10px;margin-bottom:7px;} + +a.link2:visited,a.link2:link{font-size:14px;font-weight:bold;color:#95ba2f;text-decoration: none;} +a.link2:hover{color:#f75d50;text-decoration: underline;} + + + +.well{margin:50px auto;width:400px;background:#f5f5f5;border:1px solid #e8e8e8;padding:20px;border-radius:5px;} +.control-label{float:left;width:100px;padding-top:5px;} +#user-verifycode-image{display:block;} +.form-inline{display:inline;} +.form-inline .form-group{float:left;} +.form-inline .form-group select{width:100px;} +.form-group{margin-bottom: 10px;} +.table-bordered{width:100%;border:1px solid silver;} +.table-bordered th{background: #B3D1FD;padding:5px;} +.table-bordered tr td{border:1px solid silver;padding:5px;} +.table-bordered .filters{display: none;} + +.formCost label{float:left;width:30px;} + +ul.brends_list{list-style: none;margin:0px;padding:0px;} +ul.brends_list li{float:left;text-align:center;margin:0px 15px 20px 15px;} + +.compare{text-align: center;} +.compare a:visited,.compare a:link{font-size:12px;text-decoration: underline;} + +.alert-success{margin:10px 0px;padding:10px;border:1px solid #3ed824;border-radius: 5px;background: #c0feb5;} + +.news_item{padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid silver;} +.news_item img{margin-right:20px;} +.news_item a{font-size:16px;} + +.pic{margin-right:20px;} + +#subscribe-sale{width:100px;float:left;margin-right:20px;} +.saletxt{width:150px;float:left;color:#ffffff;} +#subscribe-email{width:390px;} + +.txts{color:#9da9b1;font-size:18px;margin-bottom:20px;} + +.content ul.pagination{list-style:none;text-align:center;} +.content ul.pagination li{display:inline;} +.content ul.pagination li a{padding:3px;color:#82a02f;font-size: 16px;margin:0px; text-decoration: none; } +.content ul.pagination li a:hover {text-decoration: underline} +.content ul.pagination li.active a{color: #333333;} +.boxitem{height:300px;} +ul.social {margin-top: 20px;} +.social{list-style: none;margin: 10px;padding: 0px;height:48px;} +.social li{display:inline-block;margin-right:7px;padding-bottom: 10px;} +.social li a{ + width:36px; + height:36px; + display:block; + margin:0;padding:0; + text-indent:-9999px; + background:#bcbcbc url(../img/social-ico-two.png) no-repeat 0 0; + border-radius:48px; + -moz-border-radius:48px; + -webkit-border-radius:48px; + -webkit-transition: all 0.5s ease-out; + -moz-transition: all 0.5s ease-out; + transition: all 0.5s ease-out; +} +.social .fb{background-position:-44px 0; +cursor: pointer; +} +.social .vk{ +cursor: pointer; +} +.social .vk:hover{background-color:#5B7FA6;} +.social .fb:hover{background-color:#354f89; +} +.social .gp{background-position:-132px 0; +cursor: pointer;} +.social .gp:hover{background-color:#c72f21;} +.social .tw{background-position:-144px 0; +cursor: pointer;} +.social .tw:hover{background-color:#6398c9;} +.social .ok{background-position:-89px 0; +cursor: pointer;} +.social .ok:hover{background-color:#f88f15;} +.social ul li a:hover{ + background-color:#065baa; +} + +.socialbox{margin:10px 0px;} +.hide{display:none;} + + + +.fotter{background: #484f55;height: 50px;color:#98a3ab;} +.fotter a{color:#98a3ab; line-height: 50px; float: left;} + + +.view_products2{list-style: none;overflow:auto;height:400px;} +.view_products2 img{float:left;margin-right:20px;} +.view_products2 li{margin:10px 0px;} + + +.pixbox{width:134px;height:200px;overflow: hidden;} + + +.form-order{background:#f5f5f5;padding:10px;border:1px solid #d2d2d2;} +#order-payment{float:right;width:280px;} +#order-delivery{float:right;width:280px;} + +.delivery-data{padding:5px;border:1px solid #1bb631;background: #b7f5bf;display:none;border-radius: 5px;} + +.jcarousel-next-disabled, .jcarousel-prev-disabled {display: none !important;} +.content2 br {display: none;} +.pixbox a { + width: 134px; + height: 200px; + display: table-cell; + vertical-align: middle; +} +.pixbox img { + max-width: 134px; + max-height: 200px; + vertical-align: middle; +} +.pagination li.prev.disabled span { + padding: 9px; + border-radius: 10%; + color: #4D5458; + font-size: 14px; + margin: 0px; + border: 1px solid #4d5458; +} +.fr {float: right;} + +.nobottom{border-bottom:none !important;} + +.dotted a{border-bottom: 1px dotted #808080;} + +.mycabinet{padding-left:20px;margin-top:20px;} +.mycabinet .begin{text-transform:uppercase;font-size: 13px;font-weight:bold; padding-bottom:15px;} +.mycabinet ul{margin:0px;padding:0px;list-style:none;} +.mycabinet ul li{padding-top:10px;padding-bottom:10px;} +.mycabinet a{color:#799920;text-decoration:none;} + +.lay_title .uppercase{text-transform:uppercase;} +.lay_title .center{text-align:center;} +.lay_title{padding-top:15px;font-size:24px;} + +.user_data{width:390px;border-right:1px solid #d2d2d2;float:left;} +.user_data .col{padding-bottom:35px;} +.user_data .col.last{padding-bottom:0px;} +.user_data .title{text-transform:uppercase;font-weight:bold;width:170px;float:left;font-size:13px;} +.user_data .data{float:left;font-size:13px;} + +.edit_menu{float:left;padding-left:60px;font-size:13px;} +.edit_menu div{padding-bottom:20px;} +.edit_menu a{color:#799920;text-decoration:none;} +.edit_menu .dotted{border-bottom:1px dotted #799920;} + +.user_edit_area{padding-top:30px;} + +/* part two */ + +.user_data_editing{float:left;} +.inputs .col{padding-bottom:12px !important;} +.user_data_editing .col{padding-bottom:35px; width:432px;} +.user_data_editing .title{text-transform:uppercase;font-weight:bold;width:170px;float:left;font-size:13px;} +.user_data_editing .data{float:left;font-size:13px; width:262px;} + +.user_data_editing input[type="text"] { + padding:0; + margin:0; + border:1px solid #d2d2d2; + padding-top:7px; + padding-bottom:7px; + padding-left:10px; + padding-right:10px; + border-radius:4px; + font-size:12px; + margin-top:-10px; + width: 240px; +} + +.user_data_editing .add {color:#799920; text-decoration:none;border-bottom:1px dotted #799920;} +.add_more{padding-bottom:24px; padding-left:170px;} + +.delete{float:right;} +.delete_button{background: url('../img/ico_close.png') right no-repeat; width:16px;height:16px;float:right;} + +.content_area{width:450px;} + +.bottom3{border-top:3px solid #95ba2f !important;border-bottom:3px solid #799920 !important; float:left;font-size:15px;} +.bottom3:hover{border-top:3px solid #f75d50 !important;border-bottom:3px solid #c33327 !important;} +#cancel{text-decoration:none;color:#799920;font-size:13px;border-bottom:1px dotted #799920;float:left;margin-left:40px;} + +.buttons{ + display: inline-flex; + align-items: center;} + +/* part three */ + +.favorites{background-color:#f5f5f5; padding:5px;font-size:14px;} +.favorites .fav_point{background-color:#ffffff;border:1px solid #d2d2d2;border-radius:3px;padding-top:10px;padding-bottom:10px;padding-left:20px;padding-right:20px; margin-top:5px;} +.favorites .fav_point .left{float:left; padding-right:0; width:178px;} +.favorites .fav_point .right{float:right; padding-right:0; padding-left:0;} + +.favorites .link{color:#799920; text-decoration:none;border-bottom:1px dotted #799920;} + +.redtext{color:#f75d50;} +.greentext{color:#95ba2f;} + +/* part three one */ +.hold .orders_view{display:none !important;} +.orders_view{width:680px;margin-top:13px;padding-top:13px;padding-bottom:5px;border-top:1px solid #d2d2d2;display:block;} +.orders_view .order{float:left;width:225px;text-align:center;} +.orders_view .order .order_price{color:#f75d50;font-weight:bold;font-size:15px;} +.orders_view .order .order_price span{font-size:24px;} +.orders_view .order img{padding-bottom:22px;} +.orders_view .order .note{font-size:13px;} +.orders_view .order .note span{color:#f75d50;} + +.basket_hovered{ + position:absolute; + border:1px solid #d2d2d2;border-radius:5px;padding:15px 20px; + background-color:white; + right:-1px; + margin-top:10px; + width:640px; + display:none; + z-index:1111; +} + + +.open .basket_hovered{ + display:block; +} + +.open, .open .basket_hovered { + -moz-box-shadow: 0px 0px 5px rgba(149,149,149,0.75); + -webkit-box-shadow: 0px 0px 5px rgba(149,149,149,0.75); + box-shadow: 0px 0px 5px rgba(149,149,149,0.75); +} +.basket_hovered1:before{ + position:absolute; + left:0; + content:' '; + width:100%; + background-color:white; + height:10px; + top:45px; + z-index:1112; +} + +.basket_item input{ + border: 1px solid #d2d2d2; + border-radius: 4px; + padding:9px; + width:26px; + font-size:18px; + font-weight:bold; + text-align:center; + background-color:white; + color: black; + margin:7px; +} +input[type=number]::-webkit-inner-spin-button, +input[type=number]::-webkit-outer-spin-button {-webkit-appearance: none; + margin:0;} + + +.minus{background:url('../img/minus.png') no-repeat;width:15px;height:15px;display:inline-block;cursor:pointer;} +.plus{background:url('../img/plus.png') no-repeat;width:15px;height:15px;display:inline-block;cursor:pointer;} + +.basket_sum{padding-top:15px;} + +.basket_sum .sum_text{font-size:15px; text-transform:none;padding-top:12px;} +.basket_sum .sum_text span{font-size:18px; color:#f75d50; font-weight:bold;} +.basket_sum a{color:white !important; font-size:15px !important; float:right;} + + +.black{z-index:9999; background-color:rgba(0,0,0,0.5);width:100%;height:100%;position:fixed;display:block;padding-top:9%;} +.black.hidden{display:none;} +.black .item_added_win{background-color:#ffffff;width:640px; margin:auto;position:relative;} + +.black_close{position:absolute; top:30px;right:30px;background:url('../img/ico_close2.png') no-repeat;width:22px;height:22px;display:inline-block;cursor:pointer;} + +.block_content{padding-left:20px;padding-right:20px;} +.item_added_win h2{text-transform:uppercase;text-align:center;padding:30px;} + +.block_content .item{padding-top:20px;padding-bottom:20px;border-bottom:1px solid #d2d2d2;} + +.uppercase{text-transform:uppercase;} + +.w230{width:230px;} +.w260{width:260px;} +.w430{width:430px;} +.borderbottom{border-bottom:1px solid #d2d2d2;} +.left_block .begin{text-transform:uppercase;font-size: 13px;font-weight:bold; padding-bottom:15px;} + +.color_variants .variant{ + text-align:center; + border:1px solid #d2d2d2; + float:left; + margin-right:5px; + margin-bottom:5px; +} +.variant:hover{cursor:pointer;} +.color_variants{margin-top:14px;margin-bottom:-5px;} +.color_variants .variant.active{width:44px;height:44px;border:2px solid #95ba2f;} +.color_variants .variant.active a{width:44px;height:44px;} + +.tobasket{margin-top:20px;margin-bottom:20px;} +.tobasket:hover{color:white;} + +.variant{width:46px;height:46px;} +.variant.active{width:44px;height:44px;} + +.layout{margin-top:15px;} +.left_block{float:left;} +.right_block{float:right;} +.center_block{float:left;margin-left:23px;} + +.left_block .links{margin-top:25px;} + +.left_block .links li{list-style: none; padding-left:25px;display:inline-block;cursor:pointer;height:20px;} +.left_block .links ul{margin:0;padding:0;} +.left_block .links a{font-size:13.5px;text-decoration:none; color:#8ba73e;} + + +.links .add_bookmarks{background:url('../img/ico_add_bookmark.png') no-repeat center left; } +.links .what_price{background:url('../img/ico_price.png') no-repeat center left; } +.links .add_compare{background:url('../img/ico_scales.png') no-repeat center left; } + +.spoiler_one{padding-top:15px;padding-bottom:15px;border-bottom:1px solid #d2d2d2;} +.spoiler_one .spoiler_content{margin-top:15px;font-size:13px;} +.spoiler_one .spoiler_content.hidden{display:none;} + +.title_spoiler:hover {cursor: pointer} + +.title_spoiler{ + background:url('../img/ico_open.png') no-repeat center left; + padding-left: 17px; + font-size:13px; + text-transform:uppercase; + color:#333333; + font-weight:bold; + text-decoration:none; +} +.title_spoiler.closed{ + background:url('../img/ico_close3.png') no-repeat center left; +} + +.features{ + list-style:none; + padding:0; + margin:0; + font-size:13px; +} +.features a{ + font-size:13px; + text-decoration:none; + border-bottom:1px dotted #8ba73e; + color:#8ba73e; +} +.features li{ + padding-top:5px; + padding-bottom:4px; +} + +.note_prod{ + width:225px; + height:23px; + overflow:hidden; + border-radius:5px; + display:table; + text-transform:uppercase; + font-size:11px; + font-weight:bold; +} + +.note_prod .one{ + z-index:999; +} +.note_prod .two{ + z-index:998; +} + +.note_prod .blue{ + float:left; + padding-top:5px; + padding-bottom:5px; + background-color:#42b9f6; + padding-left:10px; + padding-right:5px; + position:relative; +} + +.note_prod .blue:after{ + content:''; + width: 0; + height: 0; + border-top: 13px solid transparent; + border-left: 5px solid #42b9f6; + border-bottom: 13px solid transparent; + position:absolute; + top:-1px; + margin-left:5px; +} +.note_prod .red{ + float:left; + padding-top:5px; + padding-bottom:5px; + background-color:#f75d50; + padding-left:10px; + padding-right:5px; + position:relative; + color:#ffffff; +} +.note_prod .red:after{ + content:''; + width: 0; + height: 0; + border-top: 13px solid transparent; + border-left: 5px solid #f75d50; + border-bottom: 13px solid transparent; + position:absolute; + top:-1px; + margin-left:5px; +} +.note_prod .yellow{ + float:left; + padding-top:5px; + padding-bottom:5px; + background-color:#fbc665; + padding-left:10px; + padding-right:5px; + position:relative; +} +.note_prod .yellow:after{ + content:''; + width: 0; + height: 0; + border-top: 13px solid transparent; + border-left: 5px solid #fbc665; + border-bottom: 13px solid transparent; + position:absolute; + top:-1px; + margin-left:5px; +} + + +.products_block .product{float:left; width:190px; vertical-align:bottom;} +.product .image{height:225px;position:relative;} +.product .image img{position:absolute;bottom:0;left:15px;} + +.price{ + font-size: 18px; + color: #f75d50; + font-weight: bold; + text-align:center;} + +.product{padding-bottom:30px;position:relative;} +.product p{font-size:15px; text-align:center; margin-top:15px;} +.left52{margin-left:52px;} +.product a{color:#ffffff;} +.mrg1{margin-top: 25px; margin-bottom: 15px;} + +.products_martopbot{margin-top:60px;margin-bottom:100px;} + +.cont_shop_but{display:table-cell;vertical-align:middle;padding:35px;} +.cont_shop{text-decoration:none;font-size:12px;border-bottom:1px dotted #799920;color:#799920;} + +.icons{ + width:45px; + height:50%; + position:absolute; + z-index:9; + right:0; + padding-top:25px; + padding-right:15px; +} +.icons a{ + width:44px; + height:44px; + float: left; + border: 1px solid #d2d2d2; + margin-bottom: 5px; + background-color: white; +} +a:hover{cursor:pointer;} + + +.basket_item .form-group{display:inline;} \ No newline at end of file diff --git a/frontend/web/css/begunok.css b/frontend/web/css/begunok.css new file mode 100644 index 0000000..af53de4 --- /dev/null +++ b/frontend/web/css/begunok.css @@ -0,0 +1,97 @@ +/* это правила оформления. К скрипту отношения не имеют */ +.cost_box form { + width: 250px; + position: relative; + margin: 0px; + +} + +.formCost { + float: left; + margin-bottom: 10px; +} +.formCost div{float:left;} +.formCost label { + float: left; + font-size: 14px; + color:#929292; + font-weight: bold; + margin-right: 5px; + margin-top:5px; + position: relative; + top: 2px; +} +.formCost input { + float: left; + text-align: right; + font-size: 14px; + font-weight: bold; + width: 55px; + height: 20px;padding:5px; + background: none; + border: 1px solid #d2d2d2; + margin-right: 10px; + border-radius:5px; +} + +.sliderCont { margin-top:20px; + width: 178px; + height: 27px; + float: left; +} + +/* А это правила для скрипта: */ +#slider { + width: 200px; +} + +.ui-slider { + position: relative; +} +.ui-slider .ui-slider-handle { + position: absolute; + z-index: 2; + width: 15px; + height: 15px; + background: url(../img/begunok_slider.png) no-repeat; + cursor: pointer +} +.ui-slider .ui-slider-range { + position: absolute; + z-index: 1; + font-size: .7em; + display: block; + border: 0; + overflow: hidden; +} +.ui-slider-horizontal { + height: 4px; +} +.ui-slider-horizontal .ui-slider-handle { + top: -5px; + margin-left: -6px; +} +.ui-slider-horizontal .ui-slider-range { + top: 0; + height: 100%; +} +.ui-slider-horizontal .ui-slider-range-min { + left: 0; +} +.ui-slider-horizontal .ui-slider-range-max { + right: 0; +} +.ui-widget-content { + border: 3px solid #d2d2d2; + background: #fff; +} +.ui-widget-header { + border: 1px solid #D4D4D4; + background: #F00; +} +.ui-corner-all { + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; +} + diff --git a/frontend/web/files/.tmb/l1_c2l0ZV9leHRyZW1fbmV3X25ld3NfYnV0dG9uXzIuanBn1437031556.png b/frontend/web/files/.tmb/l1_c2l0ZV9leHRyZW1fbmV3X25ld3NfYnV0dG9uXzIuanBn1437031556.png new file mode 100644 index 0000000..61480af Binary files /dev/null and b/frontend/web/files/.tmb/l1_c2l0ZV9leHRyZW1fbmV3X25ld3NfYnV0dG9uXzIuanBn1437031556.png differ diff --git a/frontend/web/files/site_extrem_new_news_button_2.jpg b/frontend/web/files/site_extrem_new_news_button_2.jpg new file mode 100755 index 0000000..8921176 Binary files /dev/null and b/frontend/web/files/site_extrem_new_news_button_2.jpg differ diff --git a/frontend/web/img/_logo.png b/frontend/web/img/_logo.png new file mode 100644 index 0000000..832dd10 Binary files /dev/null and b/frontend/web/img/_logo.png differ diff --git a/frontend/web/img/arrow-next.png b/frontend/web/img/arrow-next.png new file mode 100644 index 0000000..5730386 Binary files /dev/null and b/frontend/web/img/arrow-next.png differ diff --git a/frontend/web/img/arrow-prev.png b/frontend/web/img/arrow-prev.png new file mode 100644 index 0000000..38cec55 Binary files /dev/null and b/frontend/web/img/arrow-prev.png differ diff --git a/frontend/web/img/artweb.png b/frontend/web/img/artweb.png new file mode 100644 index 0000000..1ff9b54 Binary files /dev/null and b/frontend/web/img/artweb.png differ diff --git a/frontend/web/img/banner1.jpg b/frontend/web/img/banner1.jpg new file mode 100644 index 0000000..9c9dff0 Binary files /dev/null and b/frontend/web/img/banner1.jpg differ diff --git a/frontend/web/img/banner_akciya.jpg b/frontend/web/img/banner_akciya.jpg new file mode 100644 index 0000000..1d1ce8c Binary files /dev/null and b/frontend/web/img/banner_akciya.jpg differ diff --git a/frontend/web/img/begunok_slider.png b/frontend/web/img/begunok_slider.png new file mode 100644 index 0000000..9554960 Binary files /dev/null and b/frontend/web/img/begunok_slider.png differ diff --git a/frontend/web/img/buy.png b/frontend/web/img/buy.png new file mode 100644 index 0000000..10dc778 Binary files /dev/null and b/frontend/web/img/buy.png differ diff --git a/frontend/web/img/children_sub.jpg b/frontend/web/img/children_sub.jpg new file mode 100644 index 0000000..0ac48bb Binary files /dev/null and b/frontend/web/img/children_sub.jpg differ diff --git a/frontend/web/img/close_modal.jpg b/frontend/web/img/close_modal.jpg new file mode 100644 index 0000000..912fe9c Binary files /dev/null and b/frontend/web/img/close_modal.jpg differ diff --git a/frontend/web/img/del.png b/frontend/web/img/del.png new file mode 100644 index 0000000..4774115 Binary files /dev/null and b/frontend/web/img/del.png differ diff --git a/frontend/web/img/favicon.ico b/frontend/web/img/favicon.ico new file mode 100644 index 0000000..8b86c2b Binary files /dev/null and b/frontend/web/img/favicon.ico differ diff --git a/frontend/web/img/help.png b/frontend/web/img/help.png new file mode 100644 index 0000000..2bbf994 Binary files /dev/null and b/frontend/web/img/help.png differ diff --git a/frontend/web/img/ico1.png b/frontend/web/img/ico1.png new file mode 100644 index 0000000..efa6356 Binary files /dev/null and b/frontend/web/img/ico1.png differ diff --git a/frontend/web/img/ico2.png b/frontend/web/img/ico2.png new file mode 100644 index 0000000..cc4125d Binary files /dev/null and b/frontend/web/img/ico2.png differ diff --git a/frontend/web/img/ico3.png b/frontend/web/img/ico3.png new file mode 100644 index 0000000..2f39c68 Binary files /dev/null and b/frontend/web/img/ico3.png differ diff --git a/frontend/web/img/ico4.png b/frontend/web/img/ico4.png new file mode 100644 index 0000000..17ba48a Binary files /dev/null and b/frontend/web/img/ico4.png differ diff --git a/frontend/web/img/ico5.png b/frontend/web/img/ico5.png new file mode 100644 index 0000000..e8173fd Binary files /dev/null and b/frontend/web/img/ico5.png differ diff --git a/frontend/web/img/ico_close.png b/frontend/web/img/ico_close.png new file mode 100644 index 0000000..d3e87b9 Binary files /dev/null and b/frontend/web/img/ico_close.png differ diff --git a/frontend/web/img/ico_pic.jpg b/frontend/web/img/ico_pic.jpg new file mode 100644 index 0000000..4f33db3 Binary files /dev/null and b/frontend/web/img/ico_pic.jpg differ diff --git a/frontend/web/img/ico_pic2.jpg b/frontend/web/img/ico_pic2.jpg new file mode 100644 index 0000000..d0b72bb Binary files /dev/null and b/frontend/web/img/ico_pic2.jpg differ diff --git a/frontend/web/img/li1.png b/frontend/web/img/li1.png new file mode 100644 index 0000000..f02d9a6 Binary files /dev/null and b/frontend/web/img/li1.png differ diff --git a/frontend/web/img/li2.png b/frontend/web/img/li2.png new file mode 100644 index 0000000..83d323f Binary files /dev/null and b/frontend/web/img/li2.png differ diff --git a/frontend/web/img/li3.png b/frontend/web/img/li3.png new file mode 100644 index 0000000..ea42367 Binary files /dev/null and b/frontend/web/img/li3.png differ diff --git a/frontend/web/img/li_minus.png b/frontend/web/img/li_minus.png new file mode 100644 index 0000000..07df77c Binary files /dev/null and b/frontend/web/img/li_minus.png differ diff --git a/frontend/web/img/li_plus.png b/frontend/web/img/li_plus.png new file mode 100644 index 0000000..eeb0038 Binary files /dev/null and b/frontend/web/img/li_plus.png differ diff --git a/frontend/web/img/login.png b/frontend/web/img/login.png new file mode 100644 index 0000000..ef52742 Binary files /dev/null and b/frontend/web/img/login.png differ diff --git a/frontend/web/img/logo-why.png b/frontend/web/img/logo-why.png new file mode 100644 index 0000000..fd03391 Binary files /dev/null and b/frontend/web/img/logo-why.png differ diff --git a/frontend/web/img/logo.png b/frontend/web/img/logo.png new file mode 100644 index 0000000..e28c51c Binary files /dev/null and b/frontend/web/img/logo.png differ diff --git a/frontend/web/img/lupa_sub.png b/frontend/web/img/lupa_sub.png new file mode 100644 index 0000000..328455d Binary files /dev/null and b/frontend/web/img/lupa_sub.png differ diff --git a/frontend/web/img/man_sub.jpg b/frontend/web/img/man_sub.jpg new file mode 100644 index 0000000..660bb11 Binary files /dev/null and b/frontend/web/img/man_sub.jpg differ diff --git a/frontend/web/img/map.jpg b/frontend/web/img/map.jpg new file mode 100644 index 0000000..af5d539 Binary files /dev/null and b/frontend/web/img/map.jpg differ diff --git a/frontend/web/img/map.png b/frontend/web/img/map.png new file mode 100644 index 0000000..cbeff6d Binary files /dev/null and b/frontend/web/img/map.png differ diff --git a/frontend/web/img/minus.png b/frontend/web/img/minus.png new file mode 100644 index 0000000..ce49162 Binary files /dev/null and b/frontend/web/img/minus.png differ diff --git a/frontend/web/img/more.png b/frontend/web/img/more.png new file mode 100644 index 0000000..61b63f7 Binary files /dev/null and b/frontend/web/img/more.png differ diff --git a/frontend/web/img/new_coll.png b/frontend/web/img/new_coll.png new file mode 100644 index 0000000..a82c96d Binary files /dev/null and b/frontend/web/img/new_coll.png differ diff --git a/frontend/web/img/notpic.gif b/frontend/web/img/notpic.gif new file mode 100644 index 0000000..a3d732f Binary files /dev/null and b/frontend/web/img/notpic.gif differ diff --git a/frontend/web/img/pagination.png b/frontend/web/img/pagination.png new file mode 100644 index 0000000..9593831 Binary files /dev/null and b/frontend/web/img/pagination.png differ diff --git a/frontend/web/img/phone.png b/frontend/web/img/phone.png new file mode 100644 index 0000000..4e965a4 Binary files /dev/null and b/frontend/web/img/phone.png differ diff --git a/frontend/web/img/pic.jpg b/frontend/web/img/pic.jpg new file mode 100644 index 0000000..3006b3e Binary files /dev/null and b/frontend/web/img/pic.jpg differ diff --git a/frontend/web/img/plus.png b/frontend/web/img/plus.png new file mode 100644 index 0000000..e1d2047 Binary files /dev/null and b/frontend/web/img/plus.png differ diff --git a/frontend/web/img/pro.png b/frontend/web/img/pro.png new file mode 100644 index 0000000..e31f0fc Binary files /dev/null and b/frontend/web/img/pro.png differ diff --git a/frontend/web/img/sale30.jpg b/frontend/web/img/sale30.jpg new file mode 100644 index 0000000..e006190 Binary files /dev/null and b/frontend/web/img/sale30.jpg differ diff --git a/frontend/web/img/slider.jpg b/frontend/web/img/slider.jpg new file mode 100644 index 0000000..22bdea6 Binary files /dev/null and b/frontend/web/img/slider.jpg differ diff --git a/frontend/web/img/social-ico-two.png b/frontend/web/img/social-ico-two.png new file mode 100644 index 0000000..d18479b Binary files /dev/null and b/frontend/web/img/social-ico-two.png differ diff --git a/frontend/web/img/social-ico.png b/frontend/web/img/social-ico.png new file mode 100644 index 0000000..1982290 Binary files /dev/null and b/frontend/web/img/social-ico.png differ diff --git a/frontend/web/img/v_next.png b/frontend/web/img/v_next.png new file mode 100644 index 0000000..e5056d1 Binary files /dev/null and b/frontend/web/img/v_next.png differ diff --git a/frontend/web/img/v_next2.png b/frontend/web/img/v_next2.png new file mode 100644 index 0000000..600203b Binary files /dev/null and b/frontend/web/img/v_next2.png differ diff --git a/frontend/web/img/v_prev.png b/frontend/web/img/v_prev.png new file mode 100644 index 0000000..36c087e Binary files /dev/null and b/frontend/web/img/v_prev.png differ diff --git a/frontend/web/img/v_prev2.png b/frontend/web/img/v_prev2.png new file mode 100644 index 0000000..791e630 Binary files /dev/null and b/frontend/web/img/v_prev2.png differ diff --git a/frontend/web/img/why.png b/frontend/web/img/why.png new file mode 100644 index 0000000..5e624ab Binary files /dev/null and b/frontend/web/img/why.png differ diff --git a/frontend/web/img/why_item1.png b/frontend/web/img/why_item1.png new file mode 100644 index 0000000..840d762 Binary files /dev/null and b/frontend/web/img/why_item1.png differ diff --git a/frontend/web/img/why_item2.png b/frontend/web/img/why_item2.png new file mode 100644 index 0000000..223b49a Binary files /dev/null and b/frontend/web/img/why_item2.png differ diff --git a/frontend/web/img/why_item3.png b/frontend/web/img/why_item3.png new file mode 100644 index 0000000..127a7f1 Binary files /dev/null and b/frontend/web/img/why_item3.png differ diff --git a/frontend/web/img/why_item4.png b/frontend/web/img/why_item4.png new file mode 100644 index 0000000..47de446 Binary files /dev/null and b/frontend/web/img/why_item4.png differ diff --git a/frontend/web/img/why_item5.png b/frontend/web/img/why_item5.png new file mode 100644 index 0000000..3bf7f51 Binary files /dev/null and b/frontend/web/img/why_item5.png differ diff --git a/frontend/web/img/why_item6.png b/frontend/web/img/why_item6.png new file mode 100644 index 0000000..5c33e90 Binary files /dev/null and b/frontend/web/img/why_item6.png differ diff --git a/frontend/web/img/woman_sub.jpg b/frontend/web/img/woman_sub.jpg new file mode 100644 index 0000000..877150b Binary files /dev/null and b/frontend/web/img/woman_sub.jpg differ diff --git a/frontend/web/js/begunok.js b/frontend/web/js/begunok.js new file mode 100644 index 0000000..03b3cac --- /dev/null +++ b/frontend/web/js/begunok.js @@ -0,0 +1,78 @@ +jQuery(document).ready(function(){ + + +/* слайдер цен */ + +jQuery("#begunok").slider({ + min: 0, + max: $('#max').val(), + values: [0,$('#max').val()], + range: true, + stop: function(event, ui) { + jQuery("input#products-mincost").val(jQuery("#begunok").slider("values",0)); + jQuery("input#products-maxcost").val(jQuery("#begunok").slider("values",1)); + + }, + slide: function(event, ui){ + jQuery("input#products-mincost").val(jQuery("#begunok").slider("values",0)); + jQuery("input#products-maxcost").val(jQuery("#begunok").slider("values",1)); + } +}); + +var min_cost = function(){ + var value1=jQuery("input#products-mincost").val(); + var value2=jQuery("input#products-maxcost").val(); + + if(parseInt(value1) > parseInt(value2)){ + value1 = value2; + jQuery("input#products-mincost").val(value1); + } + jQuery("#begunok").slider("values",0,value1); +} + +jQuery("input#minCost").change(function(){ + + min_cost(); +}); +min_cost(); + +var max_cost = function(){ + var value1=jQuery("input#products-mincost").val(); + var value2=jQuery("input#products-maxcost").val(); + + if (value2 > $('#max').val()) { value2 = $('#max').val(); jQuery("input#products-maxcost").val($('#max').val())} + + if(parseInt(value1) > parseInt(value2)){ + value2 = value1; + jQuery("input#products-maxcost").val(value2); + } + jQuery("#begunok").slider("values",1,value2); +} + +jQuery("input#maxCost").change(function(){ + max_cost(); + +}); +max_cost(); + + +// фильтрация ввода в поля + jQuery('input').keypress(function(event){ + var key, keyChar; + if(!event) var event = window.event; + + if (event.keyCode) key = event.keyCode; + else if(event.which) key = event.which; + + if(key==null || key==0 || key==8 || key==13 || key==9 || key==46 || key==37 || key==39 ) return true; + keyChar=String.fromCharCode(key); + + if(!/\d/.test(keyChar)) return false; + + }); + + +}); + + + diff --git a/frontend/web/js/call.js b/frontend/web/js/call.js new file mode 100644 index 0000000..9dd472b --- /dev/null +++ b/frontend/web/js/call.js @@ -0,0 +1,48 @@ +(function($){ + + $.fn.call = function(callerSettings) { + + var login_id = this; + + $(login_id).bind('click',function(){ + winW = document.body.offsetWidth; + winH = document.body.offsetHeight + $('.modal_box').remove(); + $('#data_box').remove(); + $('body').append(''); + $('body').append('
'); + $('#data_box').append('
'); + $('#data_box').css( "left", ((winW-350)/2)+'px' ); + + var scrollTop = document.documentElement.scrollTop + if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1) { + scrollTop = document.body.scrollTop; + } + $('#data_box').css( {"top" : (scrollTop+200)+'px',"width":"350px"} ); + + $('#data_box .data_wrp').append(''); + app = '

Обратный звонок

'; + app += '
'; + app += '
'; + app += ''; + app += ''; + app += ''; + app += ''; + app += ''; + app += ''; + app += '
'; + app += '
'; + app += '
'; + + $('#data_box .data_wrp').append(app); + + $(".modal_box, #modal_close").click(function() { + $('.modal_box').remove(); + $('#data_box').remove(); + }); + return false; + }) + + } + +})(jQuery); \ No newline at end of file diff --git a/frontend/web/js/jCarousel/jCarousel.js b/frontend/web/js/jCarousel/jCarousel.js new file mode 100644 index 0000000..89e9c3e --- /dev/null +++ b/frontend/web/js/jCarousel/jCarousel.js @@ -0,0 +1,4 @@ +/*! jCarousel - v0.3.4 - 2015-09-23 + * http://sorgalla.com/jcarousel/ + * Copyright (c) 2006-2015 Jan Sorgalla; Licensed MIT */ +!function(a){"use strict";var b=a.jCarousel={};b.version="0.3.4";var c=/^([+\-]=)?(.+)$/;b.parseTarget=function(a){var b=!1,d="object"!=typeof a?c.exec(a):null;return d?(a=parseInt(d[2],10)||0,d[1]&&(b=!0,"-="===d[1]&&(a*=-1))):"object"!=typeof a&&(a=parseInt(a,10)||0),{target:a,relative:b}},b.detectCarousel=function(a){for(var b;a.length>0;){if(b=a.filter("[data-jcarousel]"),b.length>0)return b;if(b=a.find("[data-jcarousel]"),b.length>0)return b;a=a.parent()}return null},b.base=function(c){return{version:b.version,_options:{},_element:null,_carousel:null,_init:a.noop,_create:a.noop,_destroy:a.noop,_reload:a.noop,create:function(){return this._element.attr("data-"+c.toLowerCase(),!0).data(c,this),!1===this._trigger("create")?this:(this._create(),this._trigger("createend"),this)},destroy:function(){return!1===this._trigger("destroy")?this:(this._destroy(),this._trigger("destroyend"),this._element.removeData(c).removeAttr("data-"+c.toLowerCase()),this)},reload:function(a){return!1===this._trigger("reload")?this:(a&&this.options(a),this._reload(),this._trigger("reloadend"),this)},element:function(){return this._element},options:function(b,c){if(0===arguments.length)return a.extend({},this._options);if("string"==typeof b){if("undefined"==typeof c)return"undefined"==typeof this._options[b]?null:this._options[b];this._options[b]=c}else this._options=a.extend({},this._options,b);return this},carousel:function(){return this._carousel||(this._carousel=b.detectCarousel(this.options("carousel")||this._element),this._carousel||a.error('Could not detect carousel for plugin "'+c+'"')),this._carousel},_trigger:function(b,d,e){var f,g=!1;return e=[this].concat(e||[]),(d||this._element).each(function(){f=a.Event((c+":"+b).toLowerCase()),a(this).trigger(f,e),f.isDefaultPrevented()&&(g=!0)}),!g}}},b.plugin=function(c,d){var e=a[c]=function(b,c){this._element=a(b),this.options(c),this._init(),this.create()};return e.fn=e.prototype=a.extend({},b.base(c),d),a.fn[c]=function(b){var d=Array.prototype.slice.call(arguments,1),f=this;return this.each("string"==typeof b?function(){var e=a(this).data(c);if(!e)return a.error("Cannot call methods on "+c+' prior to initialization; attempted to call method "'+b+'"');if(!a.isFunction(e[b])||"_"===b.charAt(0))return a.error('No such method "'+b+'" for '+c+" instance");var g=e[b].apply(e,d);return g!==e&&"undefined"!=typeof g?(f=g,!1):void 0}:function(){var d=a(this).data(c);d instanceof e?d.reload(b):new e(this,b)}),f},e}}(jQuery),function(a,b){"use strict";var c=function(a){return parseFloat(a)||0};a.jCarousel.plugin("jcarousel",{animating:!1,tail:0,inTail:!1,resizeTimer:null,lt:null,vertical:!1,rtl:!1,circular:!1,underflow:!1,relative:!1,_options:{list:function(){return this.element().children().eq(0)},items:function(){return this.list().children()},animation:400,transitions:!1,wrap:null,vertical:null,rtl:null,center:!1},_list:null,_items:null,_target:a(),_first:a(),_last:a(),_visible:a(),_fullyvisible:a(),_init:function(){var a=this;return this.onWindowResize=function(){a.resizeTimer&&clearTimeout(a.resizeTimer),a.resizeTimer=setTimeout(function(){a.reload()},100)},this},_create:function(){this._reload(),a(b).on("resize.jcarousel",this.onWindowResize)},_destroy:function(){a(b).off("resize.jcarousel",this.onWindowResize)},_reload:function(){this.vertical=this.options("vertical"),null==this.vertical&&(this.vertical=this.list().height()>this.list().width()),this.rtl=this.options("rtl"),null==this.rtl&&(this.rtl=function(b){if("rtl"===(""+b.attr("dir")).toLowerCase())return!0;var c=!1;return b.parents("[dir]").each(function(){return/rtl/i.test(a(this).attr("dir"))?(c=!0,!1):void 0}),c}(this._element)),this.lt=this.vertical?"top":"left",this.relative="relative"===this.list().css("position"),this._list=null,this._items=null;var b=this.index(this._target)>=0?this._target:this.closest();this.circular="circular"===this.options("wrap"),this.underflow=!1;var c={left:0,top:0};return b.length>0&&(this._prepare(b),this.list().find("[data-jcarousel-clone]").remove(),this._items=null,this.underflow=this._fullyvisible.length>=this.items().length,this.circular=this.circular&&!this.underflow,c[this.lt]=this._position(b)+"px"),this.move(c),this},list:function(){if(null===this._list){var b=this.options("list");this._list=a.isFunction(b)?b.call(this):this._element.find(b)}return this._list},items:function(){if(null===this._items){var b=this.options("items");this._items=(a.isFunction(b)?b.call(this):this.list().find(b)).not("[data-jcarousel-clone]")}return this._items},index:function(a){return this.items().index(a)},closest:function(){var b,d=this,e=this.list().position()[this.lt],f=a(),g=!1,h=this.vertical?"bottom":this.rtl&&!this.relative?"left":"right";return this.rtl&&this.relative&&!this.vertical&&(e+=this.list().width()-this.clipping()),this.items().each(function(){if(f=a(this),g)return!1;var i=d.dimension(f);if(e+=i,e>=0){if(b=i-c(f.css("margin-"+h)),!(Math.abs(e)-i+b/2<=0))return!1;g=!0}}),f},target:function(){return this._target},first:function(){return this._first},last:function(){return this._last},visible:function(){return this._visible},fullyvisible:function(){return this._fullyvisible},hasNext:function(){if(!1===this._trigger("hasnext"))return!0;var a=this.options("wrap"),b=this.items().length-1,c=this.options("center")?this._target:this._last;return b>=0&&!this.underflow&&(a&&"first"!==a||this.index(c)0&&!this.underflow&&(a&&"last"!==a||this.index(this._first)>0||this.tail&&this.inTail)?!0:!1},clipping:function(){return this._element["inner"+(this.vertical?"Height":"Width")]()},dimension:function(a){return a["outer"+(this.vertical?"Height":"Width")](!0)},scroll:function(b,c,d){if(this.animating)return this;if(!1===this._trigger("scroll",null,[b,c]))return this;a.isFunction(c)&&(d=c,c=!0);var e=a.jCarousel.parseTarget(b);if(e.relative){var f,g,h,i,j,k,l,m,n=this.items().length-1,o=Math.abs(e.target),p=this.options("wrap");if(e.target>0){var q=this.index(this._last);if(q>=n&&this.tail)this.inTail?"both"===p||"last"===p?this._scroll(0,c,d):a.isFunction(d)&&d.call(this,!1):this._scrollTail(c,d);else if(f=this.index(this._target),this.underflow&&f===n&&("circular"===p||"both"===p||"last"===p)||!this.underflow&&q===n&&("both"===p||"last"===p))this._scroll(0,c,d);else if(h=f+o,this.circular&&h>n){for(m=n,j=this.items().get(-1);m++=0,k&&j.after(j.clone(!0).attr("data-jcarousel-clone",!0)),this.list().append(j),k||(l={},l[this.lt]=this.dimension(j),this.moveBy(l)),this._items=null;this._scroll(j,c,d)}else this._scroll(Math.min(h,n),c,d)}else if(this.inTail)this._scroll(Math.max(this.index(this._first)-o+1,0),c,d);else if(g=this.index(this._first),f=this.index(this._target),i=this.underflow?f:g,h=i-o,0>=i&&(this.underflow&&"circular"===p||"both"===p||"first"===p))this._scroll(n,c,d);else if(this.circular&&0>h){for(m=h,j=this.items().get(0);m++<0;){j=this.items().eq(-1),k=this._visible.index(j)>=0,k&&j.after(j.clone(!0).attr("data-jcarousel-clone",!0)),this.list().prepend(j),this._items=null;var r=this.dimension(j);l={},l[this.lt]=-r,this.moveBy(l)}this._scroll(j,c,d)}else this._scroll(Math.max(h,0),c,d)}else this._scroll(e.target,c,d);return this._trigger("scrollend"),this},moveBy:function(a,b){var d=this.list().position(),e=1,f=0;return this.rtl&&!this.vertical&&(e=-1,this.relative&&(f=this.list().width()-this.clipping())),a.left&&(a.left=d.left+f+c(a.left)*e+"px"),a.top&&(a.top=d.top+f+c(a.top)*e+"px"),this.move(a,b)},move:function(b,c){c=c||{};var d=this.options("transitions"),e=!!d,f=!!d.transforms,g=!!d.transforms3d,h=c.duration||0,i=this.list();if(!e&&h>0)return void i.animate(b,c);var j=c.complete||a.noop,k={};if(e){var l={transitionDuration:i.css("transitionDuration"),transitionTimingFunction:i.css("transitionTimingFunction"),transitionProperty:i.css("transitionProperty")},m=j;j=function(){a(this).css(l),m.call(this)},k={transitionDuration:(h>0?h/1e3:0)+"s",transitionTimingFunction:d.easing||c.easing,transitionProperty:h>0?function(){return f||g?"all":b.left?"left":"top"}():"none",transform:"none"}}g?k.transform="translate3d("+(b.left||0)+","+(b.top||0)+",0)":f?k.transform="translate("+(b.left||0)+","+(b.top||0)+")":a.extend(k,b),e&&h>0&&i.one("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd",j),i.css(k),0>=h&&i.each(function(){j.call(this)})},_scroll:function(b,c,d){if(this.animating)return a.isFunction(d)&&d.call(this,!1),this;if("object"!=typeof b?b=this.items().eq(b):"undefined"==typeof b.jquery&&(b=a(b)),0===b.length)return a.isFunction(d)&&d.call(this,!1),this;this.inTail=!1,this._prepare(b);var e=this._position(b),f=this.list().position()[this.lt];if(e===f)return a.isFunction(d)&&d.call(this,!1),this;var g={};return g[this.lt]=e+"px",this._animate(g,c,d),this},_scrollTail:function(b,c){if(this.animating||!this.tail)return a.isFunction(c)&&c.call(this,!1),this;var d=this.list().position()[this.lt];this.rtl&&this.relative&&!this.vertical&&(d+=this.list().width()-this.clipping()),this.rtl&&!this.vertical?d+=this.tail:d-=this.tail,this.inTail=!0;var e={};return e[this.lt]=d+"px",this._update({target:this._target.next(),fullyvisible:this._fullyvisible.slice(1).add(this._visible.last())}),this._animate(e,b,c),this},_animate:function(b,c,d){if(d=d||a.noop,!1===this._trigger("animate"))return d.call(this,!1),this;this.animating=!0;var e=this.options("animation"),f=a.proxy(function(){this.animating=!1;var a=this.list().find("[data-jcarousel-clone]");a.length>0&&(a.remove(),this._reload()),this._trigger("animateend"),d.call(this,!0)},this),g="object"==typeof e?a.extend({},e):{duration:e},h=g.complete||a.noop;return c===!1?g.duration=0:"undefined"!=typeof a.fx.speeds[g.duration]&&(g.duration=a.fx.speeds[g.duration]),g.complete=function(){f(),h.call(this)},this.move(b,g),this},_prepare:function(b){var d,e,f,g,h=this.index(b),i=h,j=this.dimension(b),k=this.clipping(),l=this.vertical?"bottom":this.rtl?"left":"right",m=this.options("center"),n={target:b,first:b,last:b,visible:b,fullyvisible:k>=j?b:a()};if(m&&(j/=2,k/=2),k>j)for(;;){if(d=this.items().eq(++i),0===d.length){if(!this.circular)break;if(d=this.items().eq(0),b.get(0)===d.get(0))break;if(e=this._visible.index(d)>=0,e&&d.after(d.clone(!0).attr("data-jcarousel-clone",!0)),this.list().append(d),!e){var o={};o[this.lt]=this.dimension(d),this.moveBy(o)}this._items=null}if(g=this.dimension(d),0===g)break;if(j+=g,n.last=d,n.visible=n.visible.add(d),f=c(d.css("margin-"+l)),k>=j-f&&(n.fullyvisible=n.fullyvisible.add(d)),j>=k)break}if(!this.circular&&!m&&k>j)for(i=h;;){if(--i<0)break;if(d=this.items().eq(i),0===d.length)break;if(g=this.dimension(d),0===g)break;if(j+=g,n.first=d,n.visible=n.visible.add(d),f=c(d.css("margin-"+l)),k>=j-f&&(n.fullyvisible=n.fullyvisible.add(d)),j>=k)break}return this._update(n),this.tail=0,m||"circular"===this.options("wrap")||"custom"===this.options("wrap")||this.index(n.last)!==this.items().length-1||(j-=c(n.last.css("margin-"+l)),j>k&&(this.tail=j-k)),this},_position:function(a){var b=this._first,c=b.position()[this.lt],d=this.options("center"),e=d?this.clipping()/2-this.dimension(b)/2:0;return this.rtl&&!this.vertical?(c-=this.relative?this.list().width()-this.dimension(b):this.clipping()-this.dimension(b),c+=e):c-=e,!d&&(this.index(a)>this.index(b)||this.inTail)&&this.tail?(c=this.rtl&&!this.vertical?c-this.tail:c+this.tail,this.inTail=!0):this.inTail=!1,-c},_update:function(b){var c,d=this,e={target:this._target,first:this._first,last:this._last,visible:this._visible,fullyvisible:this._fullyvisible},f=this.index(b.first||e.first)e)return this.scroll(e,c,d);if(e>=g&&h>=e)return a.isFunction(d)&&d.call(this,!1),this;for(var i,j=this.items(),k=this.clipping(),l=this.vertical?"bottom":this.rtl?"left":"right",m=0;;){if(i=j.eq(e),0===i.length)break;if(m+=this.dimension(i),m>=k){var n=parseFloat(i.css("margin-"+l))||0;m-n!==k&&e++;break}if(0>=e)break;e--}return this.scroll(e,c,d)}}(jQuery),function(a){"use strict";a.jCarousel.plugin("jcarouselControl",{_options:{target:"+=1",event:"click",method:"scroll"},_active:null,_init:function(){this.onDestroy=a.proxy(function(){this._destroy(),this.carousel().one("jcarousel:createend",a.proxy(this._create,this))},this),this.onReload=a.proxy(this._reload,this),this.onEvent=a.proxy(function(b){b.preventDefault();var c=this.options("method");a.isFunction(c)?c.call(this):this.carousel().jcarousel(this.options("method"),this.options("target"))},this)},_create:function(){this.carousel().one("jcarousel:destroy",this.onDestroy).on("jcarousel:reloadend jcarousel:scrollend",this.onReload),this._element.on(this.options("event")+".jcarouselcontrol",this.onEvent),this._reload()},_destroy:function(){this._element.off(".jcarouselcontrol",this.onEvent),this.carousel().off("jcarousel:destroy",this.onDestroy).off("jcarousel:reloadend jcarousel:scrollend",this.onReload)},_reload:function(){var b,c=a.jCarousel.parseTarget(this.options("target")),d=this.carousel();if(c.relative)b=d.jcarousel(c.target>0?"hasNext":"hasPrev");else{var e="object"!=typeof c.target?d.jcarousel("items").eq(c.target):c.target;b=d.jcarousel("target").index(e)>=0}return this._active!==b&&(this._trigger(b?"active":"inactive"),this._active=b),this}})}(jQuery),function(a){"use strict";a.jCarousel.plugin("jcarouselPagination",{_options:{perPage:null,item:function(a){return''+a+""},event:"click",method:"scroll"},_carouselItems:null,_pages:{},_items:{},_currentPage:null,_init:function(){this.onDestroy=a.proxy(function(){this._destroy(),this.carousel().one("jcarousel:createend",a.proxy(this._create,this))},this),this.onReload=a.proxy(this._reload,this),this.onScroll=a.proxy(this._update,this)},_create:function(){this.carousel().one("jcarousel:destroy",this.onDestroy).on("jcarousel:reloadend",this.onReload).on("jcarousel:scrollend",this.onScroll),this._reload()},_destroy:function(){this._clear(),this.carousel().off("jcarousel:destroy",this.onDestroy).off("jcarousel:reloadend",this.onReload).off("jcarousel:scrollend",this.onScroll),this._carouselItems=null},_reload:function(){var b=this.options("perPage");if(this._pages={},this._items={},a.isFunction(b)&&(b=b.call(this)),null==b)this._pages=this._calculatePages();else for(var c,d=parseInt(b,10)||0,e=this._getCarouselItems(),f=1,g=0;;){if(c=e.eq(g++),0===c.length)break;this._pages[f]=this._pages[f]?this._pages[f].add(c):c,g%d===0&&f++}this._clear();var h=this,i=this.carousel().data("jcarousel"),j=this._element,k=this.options("item"),l=this._getCarouselItems().length;a.each(this._pages,function(b,c){var d=h._items[b]=a(k.call(h,b,c));d.on(h.options("event")+".jcarouselpagination",a.proxy(function(){var a=c.eq(0);if(i.circular){var d=i.index(i.target()),e=i.index(a);parseFloat(b)>parseFloat(h._currentPage)?d>e&&(a="+="+(l-d+e)):e>d&&(a="-="+(d+(l-e)))}i[this.options("method")](a)},h)),j.append(d)}),this._update()},_update:function(){var b,c=this.carousel().jcarousel("target");a.each(this._pages,function(a,d){return d.each(function(){return c.is(this)?(b=a,!1):void 0}),b?!1:void 0}),this._currentPage!==b&&(this._trigger("inactive",this._items[this._currentPage]),this._trigger("active",this._items[b])),this._currentPage=b},items:function(){return this._items},reloadCarouselItems:function(){return this._carouselItems=null,this},_clear:function(){this._element.empty(),this._currentPage=null},_calculatePages:function(){for(var a,b,c=this.carousel().data("jcarousel"),d=this._getCarouselItems(),e=c.clipping(),f=0,g=0,h=1,i={};;){if(a=d.eq(g++),0===a.length)break;b=c.dimension(a),f+b>e&&(h++,f=0),f+=b,i[h]=i[h]?i[h].add(a):a}return i},_getCarouselItems:function(){return this._carouselItems||(this._carouselItems=this.carousel().jcarousel("items")),this._carouselItems}})}(jQuery),function(a,b){"use strict";var c,d,e={hidden:"visibilitychange",mozHidden:"mozvisibilitychange",msHidden:"msvisibilitychange",webkitHidden:"webkitvisibilitychange"};a.each(e,function(a,e){return"undefined"!=typeof b[a]?(c=a,d=e,!1):void 0}),a.jCarousel.plugin("jcarouselAutoscroll",{_options:{target:"+=1",interval:3e3,autostart:!0},_timer:null,_started:!1,_init:function(){this.onDestroy=a.proxy(function(){this._destroy(),this.carousel().one("jcarousel:createend",a.proxy(this._create,this))},this),this.onAnimateEnd=a.proxy(this._start,this),this.onVisibilityChange=a.proxy(function(){b[c]?this._stop():this._start()},this)},_create:function(){this.carousel().one("jcarousel:destroy",this.onDestroy),a(b).on(d,this.onVisibilityChange),this.options("autostart")&&this.start()},_destroy:function(){this._stop(),this.carousel().off("jcarousel:destroy",this.onDestroy),a(b).off(d,this.onVisibilityChange)},_start:function(){return this._stop(),this._started?(this.carousel().one("jcarousel:animateend",this.onAnimateEnd),this._timer=setTimeout(a.proxy(function(){this.carousel().jcarousel("scroll",this.options("target"))},this),this.options("interval")),this):void 0},_stop:function(){return this._timer&&(this._timer=clearTimeout(this._timer)),this.carousel().off("jcarousel:animateend",this.onAnimateEnd),this},start:function(){return this._started=!0,this._start(),this},stop:function(){return this._started=!1,this._stop(),this}})}(jQuery,document); \ No newline at end of file diff --git a/frontend/web/js/jcarousel/jcarousel.min.js b/frontend/web/js/jcarousel/jcarousel.min.js new file mode 100644 index 0000000..077c607 --- /dev/null +++ b/frontend/web/js/jcarousel/jcarousel.min.js @@ -0,0 +1,4 @@ +/*! jCarousel - v0.3.4 - 2015-09-23 +* http://sorgalla.com/jcarousel/ +* Copyright (c) 2006-2015 Jan Sorgalla; Licensed MIT */ +!function(a){"use strict";var b=a.jCarousel={};b.version="0.3.4";var c=/^([+\-]=)?(.+)$/;b.parseTarget=function(a){var b=!1,d="object"!=typeof a?c.exec(a):null;return d?(a=parseInt(d[2],10)||0,d[1]&&(b=!0,"-="===d[1]&&(a*=-1))):"object"!=typeof a&&(a=parseInt(a,10)||0),{target:a,relative:b}},b.detectCarousel=function(a){for(var b;a.length>0;){if(b=a.filter("[data-jcarousel]"),b.length>0)return b;if(b=a.find("[data-jcarousel]"),b.length>0)return b;a=a.parent()}return null},b.base=function(c){return{version:b.version,_options:{},_element:null,_carousel:null,_init:a.noop,_create:a.noop,_destroy:a.noop,_reload:a.noop,create:function(){return this._element.attr("data-"+c.toLowerCase(),!0).data(c,this),!1===this._trigger("create")?this:(this._create(),this._trigger("createend"),this)},destroy:function(){return!1===this._trigger("destroy")?this:(this._destroy(),this._trigger("destroyend"),this._element.removeData(c).removeAttr("data-"+c.toLowerCase()),this)},reload:function(a){return!1===this._trigger("reload")?this:(a&&this.options(a),this._reload(),this._trigger("reloadend"),this)},element:function(){return this._element},options:function(b,c){if(0===arguments.length)return a.extend({},this._options);if("string"==typeof b){if("undefined"==typeof c)return"undefined"==typeof this._options[b]?null:this._options[b];this._options[b]=c}else this._options=a.extend({},this._options,b);return this},carousel:function(){return this._carousel||(this._carousel=b.detectCarousel(this.options("carousel")||this._element),this._carousel||a.error('Could not detect carousel for plugin "'+c+'"')),this._carousel},_trigger:function(b,d,e){var f,g=!1;return e=[this].concat(e||[]),(d||this._element).each(function(){f=a.Event((c+":"+b).toLowerCase()),a(this).trigger(f,e),f.isDefaultPrevented()&&(g=!0)}),!g}}},b.plugin=function(c,d){var e=a[c]=function(b,c){this._element=a(b),this.options(c),this._init(),this.create()};return e.fn=e.prototype=a.extend({},b.base(c),d),a.fn[c]=function(b){var d=Array.prototype.slice.call(arguments,1),f=this;return this.each("string"==typeof b?function(){var e=a(this).data(c);if(!e)return a.error("Cannot call methods on "+c+' prior to initialization; attempted to call method "'+b+'"');if(!a.isFunction(e[b])||"_"===b.charAt(0))return a.error('No such method "'+b+'" for '+c+" instance");var g=e[b].apply(e,d);return g!==e&&"undefined"!=typeof g?(f=g,!1):void 0}:function(){var d=a(this).data(c);d instanceof e?d.reload(b):new e(this,b)}),f},e}}(jQuery),function(a,b){"use strict";var c=function(a){return parseFloat(a)||0};a.jCarousel.plugin("jcarousel",{animating:!1,tail:0,inTail:!1,resizeTimer:null,lt:null,vertical:!1,rtl:!1,circular:!1,underflow:!1,relative:!1,_options:{list:function(){return this.element().children().eq(0)},items:function(){return this.list().children()},animation:400,transitions:!1,wrap:null,vertical:null,rtl:null,center:!1},_list:null,_items:null,_target:a(),_first:a(),_last:a(),_visible:a(),_fullyvisible:a(),_init:function(){var a=this;return this.onWindowResize=function(){a.resizeTimer&&clearTimeout(a.resizeTimer),a.resizeTimer=setTimeout(function(){a.reload()},100)},this},_create:function(){this._reload(),a(b).on("resize.jcarousel",this.onWindowResize)},_destroy:function(){a(b).off("resize.jcarousel",this.onWindowResize)},_reload:function(){this.vertical=this.options("vertical"),null==this.vertical&&(this.vertical=this.list().height()>this.list().width()),this.rtl=this.options("rtl"),null==this.rtl&&(this.rtl=function(b){if("rtl"===(""+b.attr("dir")).toLowerCase())return!0;var c=!1;return b.parents("[dir]").each(function(){return/rtl/i.test(a(this).attr("dir"))?(c=!0,!1):void 0}),c}(this._element)),this.lt=this.vertical?"top":"left",this.relative="relative"===this.list().css("position"),this._list=null,this._items=null;var b=this.index(this._target)>=0?this._target:this.closest();this.circular="circular"===this.options("wrap"),this.underflow=!1;var c={left:0,top:0};return b.length>0&&(this._prepare(b),this.list().find("[data-jcarousel-clone]").remove(),this._items=null,this.underflow=this._fullyvisible.length>=this.items().length,this.circular=this.circular&&!this.underflow,c[this.lt]=this._position(b)+"px"),this.move(c),this},list:function(){if(null===this._list){var b=this.options("list");this._list=a.isFunction(b)?b.call(this):this._element.find(b)}return this._list},items:function(){if(null===this._items){var b=this.options("items");this._items=(a.isFunction(b)?b.call(this):this.list().find(b)).not("[data-jcarousel-clone]")}return this._items},index:function(a){return this.items().index(a)},closest:function(){var b,d=this,e=this.list().position()[this.lt],f=a(),g=!1,h=this.vertical?"bottom":this.rtl&&!this.relative?"left":"right";return this.rtl&&this.relative&&!this.vertical&&(e+=this.list().width()-this.clipping()),this.items().each(function(){if(f=a(this),g)return!1;var i=d.dimension(f);if(e+=i,e>=0){if(b=i-c(f.css("margin-"+h)),!(Math.abs(e)-i+b/2<=0))return!1;g=!0}}),f},target:function(){return this._target},first:function(){return this._first},last:function(){return this._last},visible:function(){return this._visible},fullyvisible:function(){return this._fullyvisible},hasNext:function(){if(!1===this._trigger("hasnext"))return!0;var a=this.options("wrap"),b=this.items().length-1,c=this.options("center")?this._target:this._last;return b>=0&&!this.underflow&&(a&&"first"!==a||this.index(c)0&&!this.underflow&&(a&&"last"!==a||this.index(this._first)>0||this.tail&&this.inTail)?!0:!1},clipping:function(){return this._element["inner"+(this.vertical?"Height":"Width")]()},dimension:function(a){return a["outer"+(this.vertical?"Height":"Width")](!0)},scroll:function(b,c,d){if(this.animating)return this;if(!1===this._trigger("scroll",null,[b,c]))return this;a.isFunction(c)&&(d=c,c=!0);var e=a.jCarousel.parseTarget(b);if(e.relative){var f,g,h,i,j,k,l,m,n=this.items().length-1,o=Math.abs(e.target),p=this.options("wrap");if(e.target>0){var q=this.index(this._last);if(q>=n&&this.tail)this.inTail?"both"===p||"last"===p?this._scroll(0,c,d):a.isFunction(d)&&d.call(this,!1):this._scrollTail(c,d);else if(f=this.index(this._target),this.underflow&&f===n&&("circular"===p||"both"===p||"last"===p)||!this.underflow&&q===n&&("both"===p||"last"===p))this._scroll(0,c,d);else if(h=f+o,this.circular&&h>n){for(m=n,j=this.items().get(-1);m++=0,k&&j.after(j.clone(!0).attr("data-jcarousel-clone",!0)),this.list().append(j),k||(l={},l[this.lt]=this.dimension(j),this.moveBy(l)),this._items=null;this._scroll(j,c,d)}else this._scroll(Math.min(h,n),c,d)}else if(this.inTail)this._scroll(Math.max(this.index(this._first)-o+1,0),c,d);else if(g=this.index(this._first),f=this.index(this._target),i=this.underflow?f:g,h=i-o,0>=i&&(this.underflow&&"circular"===p||"both"===p||"first"===p))this._scroll(n,c,d);else if(this.circular&&0>h){for(m=h,j=this.items().get(0);m++<0;){j=this.items().eq(-1),k=this._visible.index(j)>=0,k&&j.after(j.clone(!0).attr("data-jcarousel-clone",!0)),this.list().prepend(j),this._items=null;var r=this.dimension(j);l={},l[this.lt]=-r,this.moveBy(l)}this._scroll(j,c,d)}else this._scroll(Math.max(h,0),c,d)}else this._scroll(e.target,c,d);return this._trigger("scrollend"),this},moveBy:function(a,b){var d=this.list().position(),e=1,f=0;return this.rtl&&!this.vertical&&(e=-1,this.relative&&(f=this.list().width()-this.clipping())),a.left&&(a.left=d.left+f+c(a.left)*e+"px"),a.top&&(a.top=d.top+f+c(a.top)*e+"px"),this.move(a,b)},move:function(b,c){c=c||{};var d=this.options("transitions"),e=!!d,f=!!d.transforms,g=!!d.transforms3d,h=c.duration||0,i=this.list();if(!e&&h>0)return void i.animate(b,c);var j=c.complete||a.noop,k={};if(e){var l={transitionDuration:i.css("transitionDuration"),transitionTimingFunction:i.css("transitionTimingFunction"),transitionProperty:i.css("transitionProperty")},m=j;j=function(){a(this).css(l),m.call(this)},k={transitionDuration:(h>0?h/1e3:0)+"s",transitionTimingFunction:d.easing||c.easing,transitionProperty:h>0?function(){return f||g?"all":b.left?"left":"top"}():"none",transform:"none"}}g?k.transform="translate3d("+(b.left||0)+","+(b.top||0)+",0)":f?k.transform="translate("+(b.left||0)+","+(b.top||0)+")":a.extend(k,b),e&&h>0&&i.one("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd",j),i.css(k),0>=h&&i.each(function(){j.call(this)})},_scroll:function(b,c,d){if(this.animating)return a.isFunction(d)&&d.call(this,!1),this;if("object"!=typeof b?b=this.items().eq(b):"undefined"==typeof b.jquery&&(b=a(b)),0===b.length)return a.isFunction(d)&&d.call(this,!1),this;this.inTail=!1,this._prepare(b);var e=this._position(b),f=this.list().position()[this.lt];if(e===f)return a.isFunction(d)&&d.call(this,!1),this;var g={};return g[this.lt]=e+"px",this._animate(g,c,d),this},_scrollTail:function(b,c){if(this.animating||!this.tail)return a.isFunction(c)&&c.call(this,!1),this;var d=this.list().position()[this.lt];this.rtl&&this.relative&&!this.vertical&&(d+=this.list().width()-this.clipping()),this.rtl&&!this.vertical?d+=this.tail:d-=this.tail,this.inTail=!0;var e={};return e[this.lt]=d+"px",this._update({target:this._target.next(),fullyvisible:this._fullyvisible.slice(1).add(this._visible.last())}),this._animate(e,b,c),this},_animate:function(b,c,d){if(d=d||a.noop,!1===this._trigger("animate"))return d.call(this,!1),this;this.animating=!0;var e=this.options("animation"),f=a.proxy(function(){this.animating=!1;var a=this.list().find("[data-jcarousel-clone]");a.length>0&&(a.remove(),this._reload()),this._trigger("animateend"),d.call(this,!0)},this),g="object"==typeof e?a.extend({},e):{duration:e},h=g.complete||a.noop;return c===!1?g.duration=0:"undefined"!=typeof a.fx.speeds[g.duration]&&(g.duration=a.fx.speeds[g.duration]),g.complete=function(){f(),h.call(this)},this.move(b,g),this},_prepare:function(b){var d,e,f,g,h=this.index(b),i=h,j=this.dimension(b),k=this.clipping(),l=this.vertical?"bottom":this.rtl?"left":"right",m=this.options("center"),n={target:b,first:b,last:b,visible:b,fullyvisible:k>=j?b:a()};if(m&&(j/=2,k/=2),k>j)for(;;){if(d=this.items().eq(++i),0===d.length){if(!this.circular)break;if(d=this.items().eq(0),b.get(0)===d.get(0))break;if(e=this._visible.index(d)>=0,e&&d.after(d.clone(!0).attr("data-jcarousel-clone",!0)),this.list().append(d),!e){var o={};o[this.lt]=this.dimension(d),this.moveBy(o)}this._items=null}if(g=this.dimension(d),0===g)break;if(j+=g,n.last=d,n.visible=n.visible.add(d),f=c(d.css("margin-"+l)),k>=j-f&&(n.fullyvisible=n.fullyvisible.add(d)),j>=k)break}if(!this.circular&&!m&&k>j)for(i=h;;){if(--i<0)break;if(d=this.items().eq(i),0===d.length)break;if(g=this.dimension(d),0===g)break;if(j+=g,n.first=d,n.visible=n.visible.add(d),f=c(d.css("margin-"+l)),k>=j-f&&(n.fullyvisible=n.fullyvisible.add(d)),j>=k)break}return this._update(n),this.tail=0,m||"circular"===this.options("wrap")||"custom"===this.options("wrap")||this.index(n.last)!==this.items().length-1||(j-=c(n.last.css("margin-"+l)),j>k&&(this.tail=j-k)),this},_position:function(a){var b=this._first,c=b.position()[this.lt],d=this.options("center"),e=d?this.clipping()/2-this.dimension(b)/2:0;return this.rtl&&!this.vertical?(c-=this.relative?this.list().width()-this.dimension(b):this.clipping()-this.dimension(b),c+=e):c-=e,!d&&(this.index(a)>this.index(b)||this.inTail)&&this.tail?(c=this.rtl&&!this.vertical?c-this.tail:c+this.tail,this.inTail=!0):this.inTail=!1,-c},_update:function(b){var c,d=this,e={target:this._target,first:this._first,last:this._last,visible:this._visible,fullyvisible:this._fullyvisible},f=this.index(b.first||e.first)e)return this.scroll(e,c,d);if(e>=g&&h>=e)return a.isFunction(d)&&d.call(this,!1),this;for(var i,j=this.items(),k=this.clipping(),l=this.vertical?"bottom":this.rtl?"left":"right",m=0;;){if(i=j.eq(e),0===i.length)break;if(m+=this.dimension(i),m>=k){var n=parseFloat(i.css("margin-"+l))||0;m-n!==k&&e++;break}if(0>=e)break;e--}return this.scroll(e,c,d)}}(jQuery),function(a){"use strict";a.jCarousel.plugin("jcarouselControl",{_options:{target:"+=1",event:"click",method:"scroll"},_active:null,_init:function(){this.onDestroy=a.proxy(function(){this._destroy(),this.carousel().one("jcarousel:createend",a.proxy(this._create,this))},this),this.onReload=a.proxy(this._reload,this),this.onEvent=a.proxy(function(b){b.preventDefault();var c=this.options("method");a.isFunction(c)?c.call(this):this.carousel().jcarousel(this.options("method"),this.options("target"))},this)},_create:function(){this.carousel().one("jcarousel:destroy",this.onDestroy).on("jcarousel:reloadend jcarousel:scrollend",this.onReload),this._element.on(this.options("event")+".jcarouselcontrol",this.onEvent),this._reload()},_destroy:function(){this._element.off(".jcarouselcontrol",this.onEvent),this.carousel().off("jcarousel:destroy",this.onDestroy).off("jcarousel:reloadend jcarousel:scrollend",this.onReload)},_reload:function(){var b,c=a.jCarousel.parseTarget(this.options("target")),d=this.carousel();if(c.relative)b=d.jcarousel(c.target>0?"hasNext":"hasPrev");else{var e="object"!=typeof c.target?d.jcarousel("items").eq(c.target):c.target;b=d.jcarousel("target").index(e)>=0}return this._active!==b&&(this._trigger(b?"active":"inactive"),this._active=b),this}})}(jQuery),function(a){"use strict";a.jCarousel.plugin("jcarouselPagination",{_options:{perPage:null,item:function(a){return''+a+""},event:"click",method:"scroll"},_carouselItems:null,_pages:{},_items:{},_currentPage:null,_init:function(){this.onDestroy=a.proxy(function(){this._destroy(),this.carousel().one("jcarousel:createend",a.proxy(this._create,this))},this),this.onReload=a.proxy(this._reload,this),this.onScroll=a.proxy(this._update,this)},_create:function(){this.carousel().one("jcarousel:destroy",this.onDestroy).on("jcarousel:reloadend",this.onReload).on("jcarousel:scrollend",this.onScroll),this._reload()},_destroy:function(){this._clear(),this.carousel().off("jcarousel:destroy",this.onDestroy).off("jcarousel:reloadend",this.onReload).off("jcarousel:scrollend",this.onScroll),this._carouselItems=null},_reload:function(){var b=this.options("perPage");if(this._pages={},this._items={},a.isFunction(b)&&(b=b.call(this)),null==b)this._pages=this._calculatePages();else for(var c,d=parseInt(b,10)||0,e=this._getCarouselItems(),f=1,g=0;;){if(c=e.eq(g++),0===c.length)break;this._pages[f]=this._pages[f]?this._pages[f].add(c):c,g%d===0&&f++}this._clear();var h=this,i=this.carousel().data("jcarousel"),j=this._element,k=this.options("item"),l=this._getCarouselItems().length;a.each(this._pages,function(b,c){var d=h._items[b]=a(k.call(h,b,c));d.on(h.options("event")+".jcarouselpagination",a.proxy(function(){var a=c.eq(0);if(i.circular){var d=i.index(i.target()),e=i.index(a);parseFloat(b)>parseFloat(h._currentPage)?d>e&&(a="+="+(l-d+e)):e>d&&(a="-="+(d+(l-e)))}i[this.options("method")](a)},h)),j.append(d)}),this._update()},_update:function(){var b,c=this.carousel().jcarousel("target");a.each(this._pages,function(a,d){return d.each(function(){return c.is(this)?(b=a,!1):void 0}),b?!1:void 0}),this._currentPage!==b&&(this._trigger("inactive",this._items[this._currentPage]),this._trigger("active",this._items[b])),this._currentPage=b},items:function(){return this._items},reloadCarouselItems:function(){return this._carouselItems=null,this},_clear:function(){this._element.empty(),this._currentPage=null},_calculatePages:function(){for(var a,b,c=this.carousel().data("jcarousel"),d=this._getCarouselItems(),e=c.clipping(),f=0,g=0,h=1,i={};;){if(a=d.eq(g++),0===a.length)break;b=c.dimension(a),f+b>e&&(h++,f=0),f+=b,i[h]=i[h]?i[h].add(a):a}return i},_getCarouselItems:function(){return this._carouselItems||(this._carouselItems=this.carousel().jcarousel("items")),this._carouselItems}})}(jQuery),function(a,b){"use strict";var c,d,e={hidden:"visibilitychange",mozHidden:"mozvisibilitychange",msHidden:"msvisibilitychange",webkitHidden:"webkitvisibilitychange"};a.each(e,function(a,e){return"undefined"!=typeof b[a]?(c=a,d=e,!1):void 0}),a.jCarousel.plugin("jcarouselAutoscroll",{_options:{target:"+=1",interval:3e3,autostart:!0},_timer:null,_started:!1,_init:function(){this.onDestroy=a.proxy(function(){this._destroy(),this.carousel().one("jcarousel:createend",a.proxy(this._create,this))},this),this.onAnimateEnd=a.proxy(this._start,this),this.onVisibilityChange=a.proxy(function(){b[c]?this._stop():this._start()},this)},_create:function(){this.carousel().one("jcarousel:destroy",this.onDestroy),a(b).on(d,this.onVisibilityChange),this.options("autostart")&&this.start()},_destroy:function(){this._stop(),this.carousel().off("jcarousel:destroy",this.onDestroy),a(b).off(d,this.onVisibilityChange)},_start:function(){return this._stop(),this._started?(this.carousel().one("jcarousel:animateend",this.onAnimateEnd),this._timer=setTimeout(a.proxy(function(){this.carousel().jcarousel("scroll",this.options("target"))},this),this.options("interval")),this):void 0},_stop:function(){return this._timer&&(this._timer=clearTimeout(this._timer)),this.carousel().off("jcarousel:animateend",this.onAnimateEnd),this},start:function(){return this._started=!0,this._start(),this},stop:function(){return this._started=!1,this._stop(),this}})}(jQuery,document); \ No newline at end of file diff --git a/frontend/web/js/jcarousel/skins/HOME_SLIDER/arrows_left.png b/frontend/web/js/jcarousel/skins/HOME_SLIDER/arrows_left.png new file mode 100644 index 0000000..4252afe Binary files /dev/null and b/frontend/web/js/jcarousel/skins/HOME_SLIDER/arrows_left.png differ diff --git a/frontend/web/js/jcarousel/skins/HOME_SLIDER/arrows_right.png b/frontend/web/js/jcarousel/skins/HOME_SLIDER/arrows_right.png new file mode 100644 index 0000000..e9468f6 Binary files /dev/null and b/frontend/web/js/jcarousel/skins/HOME_SLIDER/arrows_right.png differ diff --git a/frontend/web/js/jcarousel/skins/HOME_SLIDER/credits.txt b/frontend/web/js/jcarousel/skins/HOME_SLIDER/credits.txt new file mode 100644 index 0000000..e5ec8c2 --- /dev/null +++ b/frontend/web/js/jcarousel/skins/HOME_SLIDER/credits.txt @@ -0,0 +1 @@ +Button images copyright by Tango Icon Library Team (http://tango.freedesktop.org/Tango_Icon_Library) \ No newline at end of file diff --git a/frontend/web/js/jcarousel/skins/HOME_SLIDER/next-horizontal.png b/frontend/web/js/jcarousel/skins/HOME_SLIDER/next-horizontal.png new file mode 100644 index 0000000..6fcd3d9 Binary files /dev/null and b/frontend/web/js/jcarousel/skins/HOME_SLIDER/next-horizontal.png differ diff --git a/frontend/web/js/jcarousel/skins/HOME_SLIDER/next-vertical.png b/frontend/web/js/jcarousel/skins/HOME_SLIDER/next-vertical.png new file mode 100644 index 0000000..066a3e0 Binary files /dev/null and b/frontend/web/js/jcarousel/skins/HOME_SLIDER/next-vertical.png differ diff --git a/frontend/web/js/jcarousel/skins/HOME_SLIDER/next.jpg b/frontend/web/js/jcarousel/skins/HOME_SLIDER/next.jpg new file mode 100644 index 0000000..5ad08bf Binary files /dev/null and b/frontend/web/js/jcarousel/skins/HOME_SLIDER/next.jpg differ diff --git a/frontend/web/js/jcarousel/skins/HOME_SLIDER/next.png b/frontend/web/js/jcarousel/skins/HOME_SLIDER/next.png new file mode 100644 index 0000000..b2fb161 Binary files /dev/null and b/frontend/web/js/jcarousel/skins/HOME_SLIDER/next.png differ diff --git a/frontend/web/js/jcarousel/skins/HOME_SLIDER/prev-horizontal.png b/frontend/web/js/jcarousel/skins/HOME_SLIDER/prev-horizontal.png new file mode 100644 index 0000000..36472c0 Binary files /dev/null and b/frontend/web/js/jcarousel/skins/HOME_SLIDER/prev-horizontal.png differ diff --git a/frontend/web/js/jcarousel/skins/HOME_SLIDER/prev-vertical.png b/frontend/web/js/jcarousel/skins/HOME_SLIDER/prev-vertical.png new file mode 100644 index 0000000..bb30f85 Binary files /dev/null and b/frontend/web/js/jcarousel/skins/HOME_SLIDER/prev-vertical.png differ diff --git a/frontend/web/js/jcarousel/skins/HOME_SLIDER/prev.jpg b/frontend/web/js/jcarousel/skins/HOME_SLIDER/prev.jpg new file mode 100644 index 0000000..59a2cdb Binary files /dev/null and b/frontend/web/js/jcarousel/skins/HOME_SLIDER/prev.jpg differ diff --git a/frontend/web/js/jcarousel/skins/HOME_SLIDER/prev.png b/frontend/web/js/jcarousel/skins/HOME_SLIDER/prev.png new file mode 100644 index 0000000..426628d Binary files /dev/null and b/frontend/web/js/jcarousel/skins/HOME_SLIDER/prev.png differ diff --git a/frontend/web/js/jcarousel/skins/HOME_SLIDER/skin.css b/frontend/web/js/jcarousel/skins/HOME_SLIDER/skin.css new file mode 100644 index 0000000..31cfa88 --- /dev/null +++ b/frontend/web/js/jcarousel/skins/HOME_SLIDER/skin.css @@ -0,0 +1,183 @@ +.jcarousel-skin-tango .jcarousel-container { + +} + +.jcarousel-skin-tango .jcarousel-direction-rtl { + direction: rtl; +} + +.jcarousel-skin-tango .jcarousel-container-horizontal { + width: 240px;text-align:left;border1:1px solid red; + padding: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-container-vertical { + width: 42px; + height: 200px; + padding: 20px 0px; +} + +.jcarousel-skin-tango .jcarousel-clip { + overflow: hidden; +} + +.jcarousel-skin-tango .jcarousel-clip-horizontal { + width: 200px; + height1: 300px; +} + +.jcarousel-skin-tango .jcarousel-clip-vertical { + width: 42px; + height: 200px; + margin:0px;padding:0px; +} + +.jcarousel-skin-tango .jcarousel-item { + width: 42px; + height1: 300px; +} + +.jcarousel-skin-tango .jcarousel-item-horizontal { + margin-left: 0; + margin-right: 10px; +} + +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-item-horizontal { + margin-left: 10px; + margin-right: 0; +} + +.jcarousel-skin-tango .jcarousel-item-vertical { + margin-bottom: 5px; +} + +.jcarousel-skin-tango .jcarousel-item-placeholder { + background: #fff; + color: #000; +} + +/** + * Horizontal Buttons + */ +.jcarousel-skin-tango .jcarousel-next-horizontal { + position: absolute; + top: -40px; + right: 0px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_right.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-next-horizontal { + left: 5px; + right: auto; + background-image: url(prev.jpg); +} + +.jcarousel-skin-tango .jcarousel-next-horizontal:hover, +.jcarousel-skin-tango .jcarousel-next-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-next-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal, +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:hover, +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:focus, +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal { + position: absolute; + top: -40px; + right: 20px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_left.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-prev-horizontal { + left: auto; + right: 5px; + background-image: url(next.jpg); +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal:hover, +.jcarousel-skin-tango .jcarousel-prev-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal, +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:hover, +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:focus, +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +/** + * Vertical Buttons + */ +.jcarousel-skin-tango .jcarousel-next-vertical { + position: absolute; + bottom: 5px; + left: 15px; + width: 11px; + height: 7px; + cursor: pointer; + background: transparent url(v_next.png) no-repeat 0 0; +} + +.jcarousel-skin-tango .jcarousel-next-vertical:hover, +.jcarousel-skin-tango .jcarousel-next-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-next-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-next-disabled-vertical, +.jcarousel-skin-tango .jcarousel-next-disabled-vertical:hover, +.jcarousel-skin-tango .jcarousel-next-disabled-vertical:focus, +.jcarousel-skin-tango .jcarousel-next-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-vertical { + position: absolute; + top: 5px; + left: 15px; + width: 11px; + height: 7px; + cursor: pointer; + background: transparent url(v_prev.png) no-repeat 0 0; +} + +.jcarousel-skin-tango .jcarousel-prev-vertical:hover, +.jcarousel-skin-tango .jcarousel-prev-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical, +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical:hover, +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical:focus, +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} diff --git a/frontend/web/js/jcarousel/skins/HOME_SLIDER/skin2.css b/frontend/web/js/jcarousel/skins/HOME_SLIDER/skin2.css new file mode 100644 index 0000000..dbcce80 --- /dev/null +++ b/frontend/web/js/jcarousel/skins/HOME_SLIDER/skin2.css @@ -0,0 +1,185 @@ +.jcarousel-skin-tango2 .jcarousel-container { + +} + +.jcarousel-skin-tango2 img{width:50px;float:left;margin-right:20px;} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl { + direction: rtl; +} + +.jcarousel-skin-tango2 .jcarousel-container-horizontal { + width: 240px;text-align:left; + padding: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-container-vertical { + width: 242px; + height: 320px; + padding: 40px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-clip { + overflow: hidden; +} + +.jcarousel-skin-tango2 .jcarousel-clip-horizontal { + width: 200px; + height1: 320px; +} + +.jcarousel-skin-tango2 .jcarousel-clip-vertical { + width: 242px; + height: 320px; + margin:0px;padding:0px; +} + +.jcarousel-skin-tango2 .jcarousel-item { + width: 242px; + height1: 300px; +} + +.jcarousel-skin-tango2 .jcarousel-item-horizontal { + margin-left: 0; + margin-right: 10px; +} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl .jcarousel-item-horizontal { + margin-left: 10px; + margin-right: 0; +} + +.jcarousel-skin-tango2 .jcarousel-item-vertical { + margin-bottom: 5px; +} + +.jcarousel-skin-tango2 .jcarousel-item-placeholder { + background: #fff; + color: #000; +} + +/** + * Horizontal Buttons + */ +.jcarousel-skin-tango2 .jcarousel-next-horizontal { + position: absolute; + top: -40px; + right: 0px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_right.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl .jcarousel-next-horizontal { + left: 5px; + right: auto; + background-image: url(prev.jpg); +} + +.jcarousel-skin-tango2 .jcarousel-next-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-next-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal, +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal:focus, +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-horizontal { + position: absolute; + top: -40px; + right: 20px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_left.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl .jcarousel-prev-horizontal { + left: auto; + right: 5px; + background-image: url(next.jpg); +} + +.jcarousel-skin-tango2 .jcarousel-prev-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-prev-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal:focus, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +/** + * Vertical Buttons + */ +.jcarousel-skin-tango2 .jcarousel-next-vertical { + position: absolute; + bottom: 5px; + left: 115px; + width: 20px; + height: 12px; + cursor: pointer; + background: transparent url(v_next2.png) no-repeat 0 0; +} + +.jcarousel-skin-tango2 .jcarousel-next-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-next-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical, +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical:focus, +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-vertical { + position: absolute; + top: 5px; + left: 115px; + width: 29px; + height: 12px; + cursor: pointer; + background: transparent url(v_prev2.png) no-repeat 0 0; +} + +.jcarousel-skin-tango2 .jcarousel-prev-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-prev-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical:focus, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} diff --git a/frontend/web/js/jcarousel/skins/HOME_SLIDER/v_next.png b/frontend/web/js/jcarousel/skins/HOME_SLIDER/v_next.png new file mode 100644 index 0000000..e5056d1 Binary files /dev/null and b/frontend/web/js/jcarousel/skins/HOME_SLIDER/v_next.png differ diff --git a/frontend/web/js/jcarousel/skins/HOME_SLIDER/v_next2.png b/frontend/web/js/jcarousel/skins/HOME_SLIDER/v_next2.png new file mode 100644 index 0000000..600203b Binary files /dev/null and b/frontend/web/js/jcarousel/skins/HOME_SLIDER/v_next2.png differ diff --git a/frontend/web/js/jcarousel/skins/HOME_SLIDER/v_prev.png b/frontend/web/js/jcarousel/skins/HOME_SLIDER/v_prev.png new file mode 100644 index 0000000..36c087e Binary files /dev/null and b/frontend/web/js/jcarousel/skins/HOME_SLIDER/v_prev.png differ diff --git a/frontend/web/js/jcarousel/skins/HOME_SLIDER/v_prev2.png b/frontend/web/js/jcarousel/skins/HOME_SLIDER/v_prev2.png new file mode 100644 index 0000000..791e630 Binary files /dev/null and b/frontend/web/js/jcarousel/skins/HOME_SLIDER/v_prev2.png differ diff --git a/frontend/web/js/jcarousel/skins/ie7/credits.txt b/frontend/web/js/jcarousel/skins/ie7/credits.txt new file mode 100644 index 0000000..87ccdbc --- /dev/null +++ b/frontend/web/js/jcarousel/skins/ie7/credits.txt @@ -0,0 +1 @@ +Button images copyright by Microsoft Corporation (http://microsoft.com) \ No newline at end of file diff --git a/frontend/web/js/jcarousel/skins/ie7/loading-small.gif b/frontend/web/js/jcarousel/skins/ie7/loading-small.gif new file mode 100644 index 0000000..b25ada9 Binary files /dev/null and b/frontend/web/js/jcarousel/skins/ie7/loading-small.gif differ diff --git a/frontend/web/js/jcarousel/skins/ie7/loading.gif b/frontend/web/js/jcarousel/skins/ie7/loading.gif new file mode 100644 index 0000000..5c7f808 Binary files /dev/null and b/frontend/web/js/jcarousel/skins/ie7/loading.gif differ diff --git a/frontend/web/js/jcarousel/skins/ie7/loading_small.gif b/frontend/web/js/jcarousel/skins/ie7/loading_small.gif new file mode 100644 index 0000000..5979f6d Binary files /dev/null and b/frontend/web/js/jcarousel/skins/ie7/loading_small.gif differ diff --git a/frontend/web/js/jcarousel/skins/ie7/next-horizontal.gif b/frontend/web/js/jcarousel/skins/ie7/next-horizontal.gif new file mode 100644 index 0000000..36c1f78 Binary files /dev/null and b/frontend/web/js/jcarousel/skins/ie7/next-horizontal.gif differ diff --git a/frontend/web/js/jcarousel/skins/ie7/prev-horizontal.gif b/frontend/web/js/jcarousel/skins/ie7/prev-horizontal.gif new file mode 100644 index 0000000..3b93296 Binary files /dev/null and b/frontend/web/js/jcarousel/skins/ie7/prev-horizontal.gif differ diff --git a/frontend/web/js/jcarousel/skins/ie7/skin.css b/frontend/web/js/jcarousel/skins/ie7/skin.css new file mode 100644 index 0000000..243873f --- /dev/null +++ b/frontend/web/js/jcarousel/skins/ie7/skin.css @@ -0,0 +1,190 @@ +.jcarousel-skin-ie7 .jcarousel-container { + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + border-radius: 10px; + background: #D4D0C8; + border: 1px solid #808080; +} + +.jcarousel-skin-ie7 .jcarousel-direction-rtl { + direction: rtl; +} + +.jcarousel-skin-ie7 .jcarousel-container-horizontal { + width: 245px; + padding: 20px 40px; +} + +.jcarousel-skin-ie7 .jcarousel-container-vertical { + width: 75px; + height: 245px; + padding: 40px 20px; +} + +.jcarousel-skin-ie7 .jcarousel-clip { + overflow: hidden; +} + +.jcarousel-skin-ie7 .jcarousel-clip-horizontal { + width: 245px; + height: 77px; +} + +.jcarousel-skin-ie7 .jcarousel-clip-vertical { + width: 77px; + height: 245px; +} + +.jcarousel-skin-ie7 .jcarousel-item { + width: 75px; + height: 75px; + border: 1px solid #fff; +} + +.jcarousel-skin-ie7 .jcarousel-item:hover, +.jcarousel-skin-ie7 .jcarousel-item:focus { + border-color: #808080; +} + +.jcarousel-skin-ie7 .jcarousel-item-horizontal { + margin-left: 0; + margin-right: 7px; +} + +.jcarousel-skin-ie7 .jcarousel-direction-rtl .jcarousel-item-horizontal { + margin-left: 7px; + margin-right: 0; +} + +.jcarousel-skin-ie7 .jcarousel-item-vertical { + margin-bottom: 7px; +} + +.jcarousel-skin-ie7 .jcarousel-item-placeholder { +} + +/** + * Horizontal Buttons + */ +.jcarousel-skin-ie7 .jcarousel-next-horizontal { + position: absolute; + top: 43px; + right: 5px; + width: 32px; + height: 32px; + cursor: pointer; + background: transparent url(next-horizontal.gif) no-repeat 0 0; +} + +.jcarousel-skin-ie7 .jcarousel-direction-rtl .jcarousel-next-horizontal { + left: 5px; + right: auto; + background-image: url(prev-horizontal.gif); +} + +.jcarousel-skin-ie7 .jcarousel-next-horizontal:hover, +.jcarousel-skin-ie7 .jcarousel-next-horizontal:focus { + background-position: -32px 0; +} + +.jcarousel-skin-ie7 .jcarousel-next-horizontal:active { + background-position: -64px 0; +} + +.jcarousel-skin-ie7 .jcarousel-next-disabled-horizontal, +.jcarousel-skin-ie7 .jcarousel-next-disabled-horizontal:hover, +.jcarousel-skin-ie7 .jcarousel-next-disabled-horizontal:focus, +.jcarousel-skin-ie7 .jcarousel-next-disabled-horizontal:active { + cursor: default; + background-position: -96px 0; +} + +.jcarousel-skin-ie7 .jcarousel-prev-horizontal { + position: absolute; + top: 43px; + left: 5px; + width: 32px; + height: 32px; + cursor: pointer; + background: transparent url(prev-horizontal.gif) no-repeat 0 0; +} + +.jcarousel-skin-ie7 .jcarousel-direction-rtl .jcarousel-prev-horizontal { + left: auto; + right: 5px; + background-image: url(next-horizontal.gif); +} + +.jcarousel-skin-ie7 .jcarousel-prev-horizontal:hover, +.jcarousel-skin-ie7 .jcarousel-prev-horizontal:focus { + background-position: -32px 0; +} + +.jcarousel-skin-ie7 .jcarousel-prev-horizontal:active { + background-position: -64px 0; +} + +.jcarousel-skin-ie7 .jcarousel-prev-disabled-horizontal, +.jcarousel-skin-ie7 .jcarousel-prev-disabled-horizontal:hover, +.jcarousel-skin-ie7 .jcarousel-prev-disabled-horizontal:focus, +.jcarousel-skin-ie7 .jcarousel-prev-disabled-horizontal:active { + cursor: default; + background-position: -96px 0; +} + +/** + * Vertical Buttons + */ +.jcarousel-skin-ie7 .jcarousel-next-vertical { + position: absolute; + bottom: 5px; + left: 43px; + width: 32px; + height: 32px; + cursor: pointer; + background: transparent url(next-vertical.gif) no-repeat 0 0; +} + +.jcarousel-skin-ie7 .jcarousel-next-vertical:hover, +.jcarousel-skin-ie7 .jcarousel-next-vertical:focus { + background-position: 0 -32px; +} + +.jcarousel-skin-ie7 .jcarousel-next-vertical:active { + background-position: 0 -64px; +} + +.jcarousel-skin-ie7 .jcarousel-next-disabled-vertical, +.jcarousel-skin-ie7 .jcarousel-next-disabled-vertical:hover, +.jcarousel-skin-ie7 .jcarousel-next-disabled-vertical:focus, +.jcarousel-skin-ie7 .jcarousel-next-disabled-vertical:active { + cursor: default; + background-position: 0 -96px; +} + +.jcarousel-skin-ie7 .jcarousel-prev-vertical { + position: absolute; + top: 5px; + left: 43px; + width: 32px; + height: 32px; + cursor: pointer; + background: transparent url(prev-vertical.gif) no-repeat 0 0; +} + +.jcarousel-skin-ie7 .jcarousel-prev-vertical:hover, +.jcarousel-skin-ie7 .jcarousel-prev-vertical:focus { + background-position: 0 -32px; +} + +.jcarousel-skin-ie7 .jcarousel-prev-vertical:active { + background-position: 0 -64px; +} + +.jcarousel-skin-ie7 .jcarousel-prev-disabled-vertical, +.jcarousel-skin-ie7 .jcarousel-prev-disabled-vertical:hover, +.jcarousel-skin-ie7 .jcarousel-prev-disabled-vertical:focus, +.jcarousel-skin-ie7 .jcarousel-prev-disabled-vertical:active { + cursor: default; + background-position: 0 -96px; +} diff --git a/frontend/web/js/jcarousel/skins/tango/arrows_left.png b/frontend/web/js/jcarousel/skins/tango/arrows_left.png new file mode 100644 index 0000000..4252afe Binary files /dev/null and b/frontend/web/js/jcarousel/skins/tango/arrows_left.png differ diff --git a/frontend/web/js/jcarousel/skins/tango/arrows_right.png b/frontend/web/js/jcarousel/skins/tango/arrows_right.png new file mode 100644 index 0000000..e9468f6 Binary files /dev/null and b/frontend/web/js/jcarousel/skins/tango/arrows_right.png differ diff --git a/frontend/web/js/jcarousel/skins/tango/credits.txt b/frontend/web/js/jcarousel/skins/tango/credits.txt new file mode 100644 index 0000000..e5ec8c2 --- /dev/null +++ b/frontend/web/js/jcarousel/skins/tango/credits.txt @@ -0,0 +1 @@ +Button images copyright by Tango Icon Library Team (http://tango.freedesktop.org/Tango_Icon_Library) \ No newline at end of file diff --git a/frontend/web/js/jcarousel/skins/tango/next-horizontal.png b/frontend/web/js/jcarousel/skins/tango/next-horizontal.png new file mode 100644 index 0000000..6fcd3d9 Binary files /dev/null and b/frontend/web/js/jcarousel/skins/tango/next-horizontal.png differ diff --git a/frontend/web/js/jcarousel/skins/tango/next-vertical.png b/frontend/web/js/jcarousel/skins/tango/next-vertical.png new file mode 100644 index 0000000..066a3e0 Binary files /dev/null and b/frontend/web/js/jcarousel/skins/tango/next-vertical.png differ diff --git a/frontend/web/js/jcarousel/skins/tango/next.jpg b/frontend/web/js/jcarousel/skins/tango/next.jpg new file mode 100644 index 0000000..5ad08bf Binary files /dev/null and b/frontend/web/js/jcarousel/skins/tango/next.jpg differ diff --git a/frontend/web/js/jcarousel/skins/tango/next.png b/frontend/web/js/jcarousel/skins/tango/next.png new file mode 100644 index 0000000..b2fb161 Binary files /dev/null and b/frontend/web/js/jcarousel/skins/tango/next.png differ diff --git a/frontend/web/js/jcarousel/skins/tango/prev-horizontal.png b/frontend/web/js/jcarousel/skins/tango/prev-horizontal.png new file mode 100644 index 0000000..36472c0 Binary files /dev/null and b/frontend/web/js/jcarousel/skins/tango/prev-horizontal.png differ diff --git a/frontend/web/js/jcarousel/skins/tango/prev-vertical.png b/frontend/web/js/jcarousel/skins/tango/prev-vertical.png new file mode 100644 index 0000000..bb30f85 Binary files /dev/null and b/frontend/web/js/jcarousel/skins/tango/prev-vertical.png differ diff --git a/frontend/web/js/jcarousel/skins/tango/prev.jpg b/frontend/web/js/jcarousel/skins/tango/prev.jpg new file mode 100644 index 0000000..59a2cdb Binary files /dev/null and b/frontend/web/js/jcarousel/skins/tango/prev.jpg differ diff --git a/frontend/web/js/jcarousel/skins/tango/prev.png b/frontend/web/js/jcarousel/skins/tango/prev.png new file mode 100644 index 0000000..426628d Binary files /dev/null and b/frontend/web/js/jcarousel/skins/tango/prev.png differ diff --git a/frontend/web/js/jcarousel/skins/tango/skin.css b/frontend/web/js/jcarousel/skins/tango/skin.css new file mode 100644 index 0000000..31cfa88 --- /dev/null +++ b/frontend/web/js/jcarousel/skins/tango/skin.css @@ -0,0 +1,183 @@ +.jcarousel-skin-tango .jcarousel-container { + +} + +.jcarousel-skin-tango .jcarousel-direction-rtl { + direction: rtl; +} + +.jcarousel-skin-tango .jcarousel-container-horizontal { + width: 240px;text-align:left;border1:1px solid red; + padding: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-container-vertical { + width: 42px; + height: 200px; + padding: 20px 0px; +} + +.jcarousel-skin-tango .jcarousel-clip { + overflow: hidden; +} + +.jcarousel-skin-tango .jcarousel-clip-horizontal { + width: 200px; + height1: 300px; +} + +.jcarousel-skin-tango .jcarousel-clip-vertical { + width: 42px; + height: 200px; + margin:0px;padding:0px; +} + +.jcarousel-skin-tango .jcarousel-item { + width: 42px; + height1: 300px; +} + +.jcarousel-skin-tango .jcarousel-item-horizontal { + margin-left: 0; + margin-right: 10px; +} + +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-item-horizontal { + margin-left: 10px; + margin-right: 0; +} + +.jcarousel-skin-tango .jcarousel-item-vertical { + margin-bottom: 5px; +} + +.jcarousel-skin-tango .jcarousel-item-placeholder { + background: #fff; + color: #000; +} + +/** + * Horizontal Buttons + */ +.jcarousel-skin-tango .jcarousel-next-horizontal { + position: absolute; + top: -40px; + right: 0px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_right.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-next-horizontal { + left: 5px; + right: auto; + background-image: url(prev.jpg); +} + +.jcarousel-skin-tango .jcarousel-next-horizontal:hover, +.jcarousel-skin-tango .jcarousel-next-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-next-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal, +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:hover, +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:focus, +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal { + position: absolute; + top: -40px; + right: 20px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_left.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-prev-horizontal { + left: auto; + right: 5px; + background-image: url(next.jpg); +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal:hover, +.jcarousel-skin-tango .jcarousel-prev-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal, +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:hover, +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:focus, +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +/** + * Vertical Buttons + */ +.jcarousel-skin-tango .jcarousel-next-vertical { + position: absolute; + bottom: 5px; + left: 15px; + width: 11px; + height: 7px; + cursor: pointer; + background: transparent url(v_next.png) no-repeat 0 0; +} + +.jcarousel-skin-tango .jcarousel-next-vertical:hover, +.jcarousel-skin-tango .jcarousel-next-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-next-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-next-disabled-vertical, +.jcarousel-skin-tango .jcarousel-next-disabled-vertical:hover, +.jcarousel-skin-tango .jcarousel-next-disabled-vertical:focus, +.jcarousel-skin-tango .jcarousel-next-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-vertical { + position: absolute; + top: 5px; + left: 15px; + width: 11px; + height: 7px; + cursor: pointer; + background: transparent url(v_prev.png) no-repeat 0 0; +} + +.jcarousel-skin-tango .jcarousel-prev-vertical:hover, +.jcarousel-skin-tango .jcarousel-prev-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical, +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical:hover, +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical:focus, +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} diff --git a/frontend/web/js/jcarousel/skins/tango/skin2.css b/frontend/web/js/jcarousel/skins/tango/skin2.css new file mode 100644 index 0000000..dbcce80 --- /dev/null +++ b/frontend/web/js/jcarousel/skins/tango/skin2.css @@ -0,0 +1,185 @@ +.jcarousel-skin-tango2 .jcarousel-container { + +} + +.jcarousel-skin-tango2 img{width:50px;float:left;margin-right:20px;} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl { + direction: rtl; +} + +.jcarousel-skin-tango2 .jcarousel-container-horizontal { + width: 240px;text-align:left; + padding: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-container-vertical { + width: 242px; + height: 320px; + padding: 40px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-clip { + overflow: hidden; +} + +.jcarousel-skin-tango2 .jcarousel-clip-horizontal { + width: 200px; + height1: 320px; +} + +.jcarousel-skin-tango2 .jcarousel-clip-vertical { + width: 242px; + height: 320px; + margin:0px;padding:0px; +} + +.jcarousel-skin-tango2 .jcarousel-item { + width: 242px; + height1: 300px; +} + +.jcarousel-skin-tango2 .jcarousel-item-horizontal { + margin-left: 0; + margin-right: 10px; +} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl .jcarousel-item-horizontal { + margin-left: 10px; + margin-right: 0; +} + +.jcarousel-skin-tango2 .jcarousel-item-vertical { + margin-bottom: 5px; +} + +.jcarousel-skin-tango2 .jcarousel-item-placeholder { + background: #fff; + color: #000; +} + +/** + * Horizontal Buttons + */ +.jcarousel-skin-tango2 .jcarousel-next-horizontal { + position: absolute; + top: -40px; + right: 0px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_right.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl .jcarousel-next-horizontal { + left: 5px; + right: auto; + background-image: url(prev.jpg); +} + +.jcarousel-skin-tango2 .jcarousel-next-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-next-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal, +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal:focus, +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-horizontal { + position: absolute; + top: -40px; + right: 20px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_left.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl .jcarousel-prev-horizontal { + left: auto; + right: 5px; + background-image: url(next.jpg); +} + +.jcarousel-skin-tango2 .jcarousel-prev-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-prev-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal:focus, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +/** + * Vertical Buttons + */ +.jcarousel-skin-tango2 .jcarousel-next-vertical { + position: absolute; + bottom: 5px; + left: 115px; + width: 20px; + height: 12px; + cursor: pointer; + background: transparent url(v_next2.png) no-repeat 0 0; +} + +.jcarousel-skin-tango2 .jcarousel-next-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-next-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical, +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical:focus, +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-vertical { + position: absolute; + top: 5px; + left: 115px; + width: 29px; + height: 12px; + cursor: pointer; + background: transparent url(v_prev2.png) no-repeat 0 0; +} + +.jcarousel-skin-tango2 .jcarousel-prev-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-prev-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical:focus, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} diff --git a/frontend/web/js/jcarousel/skins/tango/v_next.png b/frontend/web/js/jcarousel/skins/tango/v_next.png new file mode 100644 index 0000000..e5056d1 Binary files /dev/null and b/frontend/web/js/jcarousel/skins/tango/v_next.png differ diff --git a/frontend/web/js/jcarousel/skins/tango/v_next2.png b/frontend/web/js/jcarousel/skins/tango/v_next2.png new file mode 100644 index 0000000..600203b Binary files /dev/null and b/frontend/web/js/jcarousel/skins/tango/v_next2.png differ diff --git a/frontend/web/js/jcarousel/skins/tango/v_prev.png b/frontend/web/js/jcarousel/skins/tango/v_prev.png new file mode 100644 index 0000000..36c087e Binary files /dev/null and b/frontend/web/js/jcarousel/skins/tango/v_prev.png differ diff --git a/frontend/web/js/jcarousel/skins/tango/v_prev2.png b/frontend/web/js/jcarousel/skins/tango/v_prev2.png new file mode 100644 index 0000000..791e630 Binary files /dev/null and b/frontend/web/js/jcarousel/skins/tango/v_prev2.png differ diff --git a/frontend/web/js/jquery-1.5.min.js b/frontend/web/js/jquery-1.5.min.js new file mode 100644 index 0000000..9144b8a --- /dev/null +++ b/frontend/web/js/jquery-1.5.min.js @@ -0,0 +1,16 @@ +/*! + * jQuery JavaScript Library v1.5 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Jan 31 08:31:29 2011 -0500 + */ +(function(a,b){function b$(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function bX(a){if(!bR[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";bR[a]=c}return bR[a]}function bW(a,b){var c={};d.each(bV.concat.apply([],bV.slice(0,b)),function(){c[this]=a});return c}function bJ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f=a.converters,g,h=e.length,i,j=e[0],k,l,m,n,o;for(g=1;g=0===c})}function N(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function F(a,b){return(a&&a!=="*"?a+".":"")+b.replace(q,"`").replace(r,"&")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,p,q=[],r=[],s=d._data(this,u);typeof s==="function"&&(s=s.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;ic)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,p=f.handleObj.origHandler.apply(f.elem,arguments);if(p===!1||a.isPropagationStopped()){c=f.level,p===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function C(a,b,c){c[0].type=a;return d.event.handle.apply(b,c)}function w(){return!0}function v(){return!1}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",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(;j0)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.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");e.type="text/javascript",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(;g1?(g=Array(c),d.each(b,function(a,b){d.when(b).then(function(b){g[a]=arguments.length>1?E.call(arguments,0):b,--c||e.resolveWith(f,g)},e.reject)})):e!==a&&e.resolve(a);return f},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 a.jQuery=a.$=d}();(function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML="
a";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option"));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:b.getElementsByTagName("input")[0].value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,_scriptEval:null,noCloneEvent:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},g.disabled=!0,d.support.optDisabled=!h.disabled,d.support.scriptEval=function(){if(d.support._scriptEval===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();e.type="text/javascript";try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(d.support._scriptEval=!0,delete a[f]):d.support._scriptEval=!1,b.removeChild(e),b=e=f=null}return d.support._scriptEval};try{delete b.test}catch(i){d.support.deleteExpando=!1}b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function j(){d.support.noCloneEvent=!1,b.detachEvent("onclick",j)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="";var k=c.createDocumentFragment();k.appendChild(b.firstChild),d.support.checkClone=k.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="
",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
t
";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 l=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=l("submit"),d.support.changeBubbles=l("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&&!d.isEmptyObject(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]={}),typeof c==="object"&&(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,g=b.nodeType,h=g?d.cache:b,i=g?b[d.expando]:d.expando;if(!h[i])return;if(c){var j=e?h[i][f]:h[i];if(j){delete j[c];if(!d.isEmptyObject(j))return}}if(e){delete h[i][f];if(!d.isEmptyObject(h[i]))return}var k=h[i][f];d.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},h[i][f]=k):g&&(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-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,j=c.type==="select-one";if(f<0)return null;for(var k=j?f:0,l=j?f+1:h.length;k=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=j.test(c);if(c==="selected"&&!d.support.optSelected){var n=a.parentNode;n&&(n.selectedIndex,n.parentNode&&n.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&k.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:l.test(a.nodeName)||m.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 o=/\.(.*)$/,p=/^(?:textarea|input|select)$/i,q=/\./g,r=/ /g,s=/[^\w\s.|`]/g,t=function(a){return a.replace(s,"\\$&")},u="events";d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a);if(f===!1)f=v;else if(!f)return;var h,i;f.handler&&(h=f,f=h.handler),f.guid||(f.guid=d.guid++);var j=d._data(c);if(!j)return;var k=j[u],l=j.handle;typeof k==="function"?(l=k.handle,k=k.events):k||(c.nodeType||(j[u]=j=function(){}),j.events=k={}),l||(j.handle=l=function(){return typeof d!=="undefined"&&!d.event.triggered?d.event.handle.apply(l.elem,arguments):b}),l.elem=c,e=e.split(" ");var m,n=0,o;while(m=e[n++]){i=h?d.extend({},h):{handler:f,data:g},m.indexOf(".")>-1?(o=m.split("."),m=o.shift(),i.namespace=o.slice(0).sort().join(".")):(o=[],i.namespace=""),i.type=m,i.guid||(i.guid=f.guid);var p=k[m],q=d.event.special[m]||{};if(!p){p=k[m]=[];if(!q.setup||q.setup.call(c,g,o,l)===!1)c.addEventListener?c.addEventListener(m,l,!1):c.attachEvent&&c.attachEvent("on"+m,l)}q.add&&(q.add.call(c,i),i.handler.guid||(i.handler.guid=f.guid)),p.push(i),d.event.global[m]=!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),w=s&&s[u];if(!s||!w)return;typeof w==="function"&&(s=w,w=w.events),c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in w)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(),t).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=w[h];if(!p)continue;if(!e){for(j=0;j=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=e.nodeType?d._data(e,"handle"):(d._data(e,u)||{}).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(o,""),n=d.nodeName(l,"a")&&m==="click",p=d.event.special[m]||{};if((!p._default||p._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,u),typeof i==="function"&&(i=i.events),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l-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(p.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;return 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;if(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")return B.call(this,a)},keydown:function(a){var b=a.target,c=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")return 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 p.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return p.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;i0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function s(a,b,c,d,e,f){for(var g=0,h=d.length;g0){k=j;break}}j=j[a]}d[g]=k}}}function r(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0;[0,0].sort(function(){h=!1;return 0});var i=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 l,m,o,p,q,r,s,u,v=!0,w=i.isXML(d),x=[],y=b;do{a.exec(""),l=a.exec(y);if(l){y=l[3],x.push(l[1]);if(l[2]){p=l[3];break}}}while(l);if(x.length>1&&k.exec(b))if(x.length===2&&j.relative[x[0]])m=t(x[0]+x[1],d);else{m=j.relative[x[0]]?[d]:i(x.shift(),d);while(x.length)b=x.shift(),j.relative[b]&&(b+=x.shift()),m=t(b,m)}else{!g&&x.length>1&&d.nodeType===9&&!w&&j.match.ID.test(x[0])&&!j.match.ID.test(x[x.length-1])&&(q=i.find(x.shift(),d,w),d=q.expr?i.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:n(g)}:i.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),m=q.expr?i.filter(q.expr,q.set):q.set,x.length>0?o=n(m):v=!1;while(x.length)r=x.pop(),s=r,j.relative[r]?s=x.pop():r="",s==null&&(s=d),j.relative[r](o,s,w)}else o=x=[]}o||(o=m),o||i.error(r||b);if(f.call(o)==="[object Array]")if(v)if(d&&d.nodeType===1)for(u=0;o[u]!=null;u++)o[u]&&(o[u]===!0||o[u].nodeType===1&&i.contains(d,o[u]))&&e.push(m[u]);else for(u=0;o[u]!=null;u++)o[u]&&o[u].nodeType===1&&e.push(m[u]);else e.push.apply(e,o);else n(o,e);p&&(i(p,h,e,g),i.uniqueSort(e));return e};i.uniqueSort=function(a){if(p){g=h,a.sort(p);if(g)for(var b=1;b0},i.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=j.order.length;e":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!/\W/.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(/\\/g,"")},TAG:function(a,b){return a[1].toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||i.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]&&i.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(/\\/g,"");!f&&j.attrMap[g]&&(a[1]=j.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(/\\/g,""),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]=i(b[3],null,null,c);else{var g=i.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(j.match.POS.test(b[0])||j.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.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!i(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.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 bc[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=j.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||i.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,k=g.length;h=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=j.attrHandle[c]?j.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=j.setFilters[e];if(f)return f(a,c,b,d)}}},k=j.match.POS,l=function(a,b){return"\\"+(b-0+1)};for(var m in j.match)j.match[m]=new RegExp(j.match[m].source+/(?![^\[]*\])(?![^\(]*\))/.source),j.leftMatch[m]=new RegExp(/(^(?:.|\r|\n)*?)/.source+j.match[m].source.replace(/\\(\d+)/g,l));var n=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(o){n=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.insertBefore(a,e.firstChild),c.getElementById(d)&&(j.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:[]}},j.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&&(j.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.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(j.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=i,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){i=function(b,e,f,g){e=e||c;if(!g&&!i.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return n(e.getElementsByTagName(b),f);if(h[2]&&j.find.CLASS&&e.getElementsByClassName)return n(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return n([e.body],f);if(h&&h[3]){var k=e.getElementById(h[3]);if(!k||!k.parentNode)return n([],f);if(k.id===h[3])return n([k],f)}try{return n(e.querySelectorAll(b),f)}catch(l){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e.getAttribute("id"),o=m||d,p=e.parentNode,q=/^\s*[+~]/.test(b);m?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),q&&p&&(e=e.parentNode);try{if(!q||p)return n(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(r){}finally{m||e.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)i[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&&(i.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!i.isXML(a))try{if(d||!j.match.PSEUDO.test(c)&&!/!=/.test(c))return b.call(a,c)}catch(e){}return i(c,null,null,[a]).length>0})}(),function(){var a=c.createElement("div");a.innerHTML="
";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;j.order.splice(1,0,"CLASS"),j.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?i.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?i.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:i.contains=function(){return!1},i.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var t=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=j.match.PSEUDO.exec(a))e+=c[0],a=a.replace(j.match.PSEUDO,"");a=j.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(var g=c;g0},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-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-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=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_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
","
"]),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?!0: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>");try{for(var c=0,e=this.length;c1&&l0?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&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){f=a.getElementsByTagName("*"),g=e.getElementsByTagName("*");for(h=0;f[h];++h)$(f[h],g[h]);$(a,e)}if(b){Z(a,e);if(c&&"getElementsByTagName"in a){f=a.getElementsByTagName("*"),g=e.getElementsByTagName("*");if(f.length)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>");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]===""&&!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 ba=/alpha\([^)]*\)/i,bb=/opacity=([^)]*)/,bc=/-([a-z])/ig,bd=/([A-Z])/g,be=/^-?\d+(?:px)?$/i,bf=/^-?\d/,bg={position:"absolute",visibility:"hidden",display:"block"},bh=["Left","Right"],bi=["Top","Bottom"],bj,bk,bl,bm=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=bj(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(bj)return bj(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(bc,bm)}}),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=bn(a,b,e):d.swap(a,bg,function(){f=bn(a,b,e)});if(f<=0){f=bj(a,b,b),f==="0px"&&bl&&(f=bl(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(!be.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return bb.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=ba.test(f)?f.replace(ba,e):c.filter+" "+e}}),c.defaultView&&c.defaultView.getComputedStyle&&(bk=function(a,c,e){var f,g,h;e=e.replace(bd,"-$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&&(bl=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!be.test(d)&&bf.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}),bj=bk||bl,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 bo=/%20/g,bp=/\[\]$/,bq=/\r?\n/g,br=/#.*$/,bs=/^(.*?):\s*(.*?)\r?$/mg,bt=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bu=/^(?:GET|HEAD)$/,bv=/^\/\//,bw=/\?/,bx=/)<[^<]*)*<\/script>/gi,by=/^(?:select|textarea)/i,bz=/\s+/,bA=/([?&])_=[^&]*/,bB=/^(\w+:)\/\/([^\/?#:]+)(?::(\d+))?/,bC=d.fn.load,bD={},bE={};d.fn.extend({load:function(a,b,c){if(typeof a!=="string"&&bC)return bC.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}var g="GET";b&&(d.isFunction(b)?(c=b,b=null):typeof b==="object"&&(b=d.param(b,d.ajaxSettings.traditional),g="POST"));var h=this;d.ajax({url:a,type:g,dataType:"html",data:b,complete:function(a,b,e){e=a.responseText,a.isResolved()&&(a.done(function(a){e=a}),h.html(f?d("
").append(e.replace(bx,"")).find(f):e)),c&&h.each(c,[e,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||by.test(this.nodeName)||bt.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(bq,"\r\n")}}):{name:b.name,value:c.replace(bq,"\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,b){d[b]=function(a,c,e,f){d.isFunction(c)&&(f=f||e,e=c,c=null);return d.ajax({type:b,url:a,data:c,success:e,dataType:f})}}),d.extend({getScript:function(a,b){return d.get(a,null,b,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a){d.extend(!0,d.ajaxSettings,a),a.context&&(d.ajaxSettings.context=a.context)},ajaxSettings:{url:location.href,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:bF(bD),ajaxTransport:bF(bE),ajax:function(a,e){function w(a,c,e,l){if(t!==2){t=2,p&&clearTimeout(p),o=b,m=l||"",v.readyState=a?4:0;var n,q,r,s=e?bI(f,v,e):b,u,w;if(a>=200&&a<300||a===304){if(f.ifModified){if(u=v.getResponseHeader("Last-Modified"))d.lastModified[f.url]=u;if(w=v.getResponseHeader("Etag"))d.etag[f.url]=w}if(a===304)c="notmodified",n=!0;else try{q=bJ(f,s),c="success",n=!0}catch(x){c="parsererror",r=x}}else r=c,a&&(c="error",a<0&&(a=0));v.status=a,v.statusText=c,n?i.resolveWith(g,[q,c,v]):i.rejectWith(g,[v,c,r]),v.statusCode(k),k=b,f.global&&h.trigger("ajax"+(n?"Success":"Error"),[v,f,n?q:r]),j.resolveWith(g,[v,c]),f.global&&(h.trigger("ajaxComplete",[v,f]),--d.active||d.event.trigger("ajaxStop"))}}typeof e!=="object"&&(e=a,a=b),e=e||{};var f=d.extend(!0,{},d.ajaxSettings,e),g=(f.context=("context"in e?e:d.ajaxSettings).context)||f,h=g===f?d.event:d(g),i=d.Deferred(),j=d._Deferred(),k=f.statusCode||{},l={},m,n,o,p,q=c.location,r=q.protocol||"http:",s,t=0,u,v={readyState:0,setRequestHeader:function(a,b){t===0&&(l[a.toLowerCase()]=b);return this},getAllResponseHeaders:function(){return t===2?m:null},getResponseHeader:function(a){var b;if(t===2){if(!n){n={};while(b=bs.exec(m))n[b[1].toLowerCase()]=b[2]}b=n[a.toLowerCase()]}return b||null},abort:function(a){a=a||"abort",o&&o.abort(a),w(0,a);return this}};i.promise(v),v.success=v.done,v.error=v.fail,v.complete=j.done,v.statusCode=function(a){if(a){var b;if(t<2)for(b in a)k[b]=[k[b],a[b]];else b=a[v.status],v.then(b,b)}return this},f.url=(""+(a||f.url)).replace(br,"").replace(bv,r+"//"),f.dataTypes=d.trim(f.dataType||"*").toLowerCase().split(bz),f.crossDomain||(s=bB.exec(f.url.toLowerCase()),f.crossDomain=s&&(s[1]!=r||s[2]!=q.hostname||(s[3]||(s[1]==="http:"?80:443))!=(q.port||(r==="http:"?80:443)))),f.data&&f.processData&&typeof f.data!=="string"&&(f.data=d.param(f.data,f.traditional)),bG(bD,f,e,v),f.type=f.type.toUpperCase(),f.hasContent=!bu.test(f.type),f.global&&d.active++===0&&d.event.trigger("ajaxStart");if(!f.hasContent){f.data&&(f.url+=(bw.test(f.url)?"&":"?")+f.data);if(f.cache===!1){var x=d.now(),y=f.url.replace(bA,"$1_="+x);f.url=y+(y===f.url?(bw.test(f.url)?"&":"?")+"_="+x:"")}}if(f.data&&f.hasContent&&f.contentType!==!1||e.contentType)l["content-type"]=f.contentType;f.ifModified&&(d.lastModified[f.url]&&(l["if-modified-since"]=d.lastModified[f.url]),d.etag[f.url]&&(l["if-none-match"]=d.etag[f.url])),l.accept=f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+(f.dataTypes[0]!=="*"?", */*; q=0.01":""):f.accepts["*"];for(u in f.headers)l[u.toLowerCase()]=f.headers[u];if(!f.beforeSend||f.beforeSend.call(g,v,f)!==!1&&t!==2){for(u in {success:1,error:1,complete:1})v[u](f[u]);o=bG(bE,f,e,v);if(o){t=v.readyState=1,f.global&&h.trigger("ajaxSend",[v,f]),f.async&&f.timeout>0&&(p=setTimeout(function(){v.abort("timeout")},f.timeout));try{o.send(l,w)}catch(z){status<2?w(-1,z):d.error(z)}}else w(-1,"No Transport")}else w(0,"abort"),v=!1;return v},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.each(a,function(){f(this.name,this.value)});else for(var g in a)bH(g,a[g],c,f);return e.join("&").replace(bo,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bK=d.now(),bL=/(\=)\?(&|$)|()\?\?()/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bK++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){e=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bL.test(b.url)||e&&bL.test(b.data))){var f,g=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h=a[g],i=b.url,j=b.data,k="$1"+g+"$2";b.jsonp!==!1&&(i=i.replace(bL,k),b.url===i&&(e&&(j=j.replace(bL,k)),b.data===j&&(i+=(/\?/.test(i)?"&":"?")+b.jsonp+"="+g))),b.url=i,b.data=j,a[g]=function(a){f=[a]},b.complete=[function(){a[g]=h;if(h)f&&d.isFunction(h)&&a[g](f[0]);else try{delete a[g]}catch(b){}},b.complete],b.converters["script json"]=function(){f||d.error(g+" was not called");return f[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript"},contents:{script:/javascript/},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.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 bM=d.now(),bN={},bO,bP;d.ajaxSettings.xhr=a.ActiveXObject?function(){if(a.location.protocol!=="file:")try{return new a.XMLHttpRequest}catch(b){}try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(c){}}:function(){return new a.XMLHttpRequest};try{bP=d.ajaxSettings.xhr()}catch(bQ){}d.support.ajax=!!bP,d.support.cors=bP&&"withCredentials"in bP,bP=b,d.support.ajax&&d.ajaxTransport(function(b){if(!b.crossDomain||d.support.cors){var c;return{send:function(e,f){bO||(bO=1,d(a).bind("unload",function(){d.each(bN,function(a,b){b.onreadystatechange&&b.onreadystatechange(1)})}));var g=b.xhr(),h;b.username?g.open(b.type,b.url,b.async,b.username,b.password):g.open(b.type,b.url,b.async),(!b.crossDomain||b.hasContent)&&!e["x-requested-with"]&&(e["x-requested-with"]="XMLHttpRequest");try{d.each(e,function(a,b){g.setRequestHeader(a,b)})}catch(i){}g.send(b.hasContent&&b.data||null),c=function(a,e){if(c&&(e||g.readyState===4)){c=0,h&&(g.onreadystatechange=d.noop,delete bN[h]);if(e)g.readyState!==4&&g.abort();else{var i=g.status,j,k=g.getAllResponseHeaders(),l={},m=g.responseXML;m&&m.documentElement&&(l.xml=m),l.text=g.responseText;try{j=g.statusText}catch(n){j=""}i=i===0?!b.crossDomain||j?k?304:0:302:i==1223?204:i,f(i,j,l,k)}}},b.async&&g.readyState!==4?(h=bM++,bN[h]=g,g.onreadystatechange=c):c()},abort:function(){c&&c(0,1)}}}});var bR={},bS=/^(?:toggle|show|hide)$/,bT=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,bU,bV=[["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(bW("show",3),a,b,c);for(var g=0,h=this.length;g=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:bW("show",1),slideUp:bW("hide",1),slideToggle:bW("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=parseFloat(d.css(this.elem,this.prop));return a||0},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||"px",this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!bU&&(bU=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
";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=bZ.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&&(!bZ.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=b$(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=b$(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")}})})(window); diff --git a/frontend/web/js/jquery.mask.js b/frontend/web/js/jquery.mask.js new file mode 100644 index 0000000..2644d23 --- /dev/null +++ b/frontend/web/js/jquery.mask.js @@ -0,0 +1,463 @@ +/** + * jquery.mask.js + * @version: v1.10.12 + * @author: Igor Escobar + * + * Created by Igor Escobar on 2012-03-10. Please report any bug at http://blog.igorescobar.com + * + * Copyright (c) 2012 Igor Escobar http://blog.igorescobar.com + * + * The MIT License (http://www.opensource.org/licenses/mit-license.php) + * + * 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. + */ +/*jshint laxbreak: true */ +/* global define */ + +// UMD (Universal Module Definition) patterns for JavaScript modules that work everywhere. +// https://github.com/umdjs/umd/blob/master/jqueryPlugin.js +(function (factory) { + if (typeof define === "function" && define.amd) { + // AMD. Register as an anonymous module. + define(["jquery"], factory); + } else { + // Browser globals + factory(window.jQuery || window.Zepto); + } +}(function ($) { + "use strict"; + var Mask = function (el, mask, options) { + el = $(el); + + var jMask = this, old_value = el.val(), regexMask; + + mask = typeof mask === "function" ? mask(el.val(), undefined, el, options) : mask; + + var p = { + invalid: [], + getCaret: function () { + try { + var sel, + pos = 0, + ctrl = el.get(0), + dSel = document.selection, + cSelStart = ctrl.selectionStart; + + // IE Support + if (dSel && navigator.appVersion.indexOf("MSIE 10") === -1) { + sel = dSel.createRange(); + sel.moveStart('character', el.is("input") ? -el.val().length : -el.text().length); + pos = sel.text.length; + } + // Firefox support + else if (cSelStart || cSelStart === '0') { + pos = cSelStart; + } + + return pos; + } catch (e) {} + }, + setCaret: function(pos) { + try { + if (el.is(":focus")) { + var range, ctrl = el.get(0); + + if (ctrl.setSelectionRange) { + ctrl.setSelectionRange(pos,pos); + } else if (ctrl.createTextRange) { + range = ctrl.createTextRange(); + range.collapse(true); + range.moveEnd('character', pos); + range.moveStart('character', pos); + range.select(); + } + } + } catch (e) {} + }, + events: function() { + el + .on('keyup.mask', p.behaviour) + .on("paste.mask drop.mask", function() { + setTimeout(function() { + el.keydown().keyup(); + }, 100); + }) + .on('change.mask', function(){ + el.data('changed', true); + }) + .on("blur.mask", function(){ + if (old_value !== el.val() && !el.data('changed')) { + el.trigger("change"); + } + el.data('changed', false); + }) + // it's very important that this callback remains in this position + // otherwhise old_value it's going to work buggy + .on('keydown.mask, blur.mask', function() { + old_value = el.val(); + }) + // clear the value if it not complete the mask + .on("focusout.mask", function() { + if (options.clearIfNotMatch && !regexMask.test(p.val())) { + p.val(''); + } + }); + }, + getRegexMask: function() { + var maskChunks = [], translation, pattern, optional, recursive, oRecursive, r; + + for (var i = 0; i < mask.length; i++) { + translation = jMask.translation[mask[i]]; + + if (translation) { + + pattern = translation.pattern.toString().replace(/.{1}$|^.{1}/g, ""); + optional = translation.optional; + recursive = translation.recursive; + + if (recursive) { + maskChunks.push(mask[i]); + oRecursive = {digit: mask[i], pattern: pattern}; + } else { + maskChunks.push(!optional && !recursive ? pattern : (pattern + "?")); + } + + } else { + maskChunks.push(mask[i].replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')); + } + } + + r = maskChunks.join(""); + + if (oRecursive) { + r = r.replace(new RegExp("(" + oRecursive.digit + "(.*" + oRecursive.digit + ")?)"), "($1)?") + .replace(new RegExp(oRecursive.digit, "g"), oRecursive.pattern); + } + + return new RegExp(r); + }, + destroyEvents: function() { + el.off(['keydown', 'keyup', 'paste', 'drop', 'blur', 'focusout', ''].join('.mask ')); + }, + val: function(v) { + var isInput = el.is('input'), + method = isInput ? 'val' : 'text', + r; + + if (arguments.length > 0) { + if (el[method]() !== v) { + el[method](v); + } + r = el; + } else { + r = el[method](); + } + + return r; + }, + getMCharsBeforeCount: function(index, onCleanVal) { + for (var count = 0, i = 0, maskL = mask.length; i < maskL && i < index; i++) { + if (!jMask.translation[mask.charAt(i)]) { + index = onCleanVal ? index + 1 : index; + count++; + } + } + return count; + }, + caretPos: function (originalCaretPos, oldLength, newLength, maskDif) { + var translation = jMask.translation[mask.charAt(Math.min(originalCaretPos - 1, mask.length - 1))]; + + return !translation ? p.caretPos(originalCaretPos + 1, oldLength, newLength, maskDif) + : Math.min(originalCaretPos + newLength - oldLength - maskDif, newLength); + }, + behaviour: function(e) { + e = e || window.event; + p.invalid = []; + var keyCode = e.keyCode || e.which; + if ($.inArray(keyCode, jMask.byPassKeys) === -1) { + + var caretPos = p.getCaret(), + currVal = p.val(), + currValL = currVal.length, + changeCaret = caretPos < currValL, + newVal = p.getMasked(), + newValL = newVal.length, + maskDif = p.getMCharsBeforeCount(newValL - 1) - p.getMCharsBeforeCount(currValL - 1); + + p.val(newVal); + + // change caret but avoid CTRL+A + if (changeCaret && !(keyCode === 65 && e.ctrlKey)) { + // Avoid adjusting caret on backspace or delete + if (!(keyCode === 8 || keyCode === 46)) { + caretPos = p.caretPos(caretPos, currValL, newValL, maskDif); + } + p.setCaret(caretPos); + } + + return p.callbacks(e); + } + }, + getMasked: function (skipMaskChars) { + var buf = [], + value = p.val(), + m = 0, maskLen = mask.length, + v = 0, valLen = value.length, + offset = 1, addMethod = "push", + resetPos = -1, + lastMaskChar, + check; + + if (options.reverse) { + addMethod = "unshift"; + offset = -1; + lastMaskChar = 0; + m = maskLen - 1; + v = valLen - 1; + check = function () { + return m > -1 && v > -1; + }; + } else { + lastMaskChar = maskLen - 1; + check = function () { + return m < maskLen && v < valLen; + }; + } + + while (check()) { + var maskDigit = mask.charAt(m), + valDigit = value.charAt(v), + translation = jMask.translation[maskDigit]; + + if (translation) { + if (valDigit.match(translation.pattern)) { + buf[addMethod](valDigit); + if (translation.recursive) { + if (resetPos === -1) { + resetPos = m; + } else if (m === lastMaskChar) { + m = resetPos - offset; + } + + if (lastMaskChar === resetPos) { + m -= offset; + } + } + m += offset; + } else if (translation.optional) { + m += offset; + v -= offset; + } else if (translation.fallback) { + buf[addMethod](translation.fallback); + m += offset; + v -= offset; + } else { + p.invalid.push({p: v, v: valDigit, e: translation.pattern}); + } + v += offset; + } else { + if (!skipMaskChars) { + buf[addMethod](maskDigit); + } + + if (valDigit === maskDigit) { + v += offset; + } + + m += offset; + } + } + + var lastMaskCharDigit = mask.charAt(lastMaskChar); + if (maskLen === valLen + 1 && !jMask.translation[lastMaskCharDigit]) { + buf.push(lastMaskCharDigit); + } + + return buf.join(""); + }, + callbacks: function (e) { + var val = p.val(), + changed = val !== old_value, + defaultArgs = [val, e, el, options], + callback = function(name, criteria, args) { + if (typeof options[name] === "function" && criteria) { + options[name].apply(this, args); + } + }; + + callback('onChange', changed === true, defaultArgs); + callback('onKeyPress', changed === true, defaultArgs); + callback('onComplete', val.length === mask.length, defaultArgs); + callback('onInvalid', p.invalid.length > 0, [val, e, el, p.invalid, options]); + } + }; + + + // public methods + jMask.mask = mask; + jMask.options = options; + jMask.remove = function() { + var caret = p.getCaret(); + p.destroyEvents(); + p.val(jMask.getCleanVal()); + p.setCaret(caret - p.getMCharsBeforeCount(caret)); + return el; + }; + + // get value without mask + jMask.getCleanVal = function() { + return p.getMasked(true); + }; + + jMask.init = function(only_mask) { + only_mask = only_mask || false; + options = options || {}; + + jMask.byPassKeys = $.jMaskGlobals.byPassKeys; + jMask.translation = $.jMaskGlobals.translation; + + jMask.translation = $.extend({}, jMask.translation, options.translation); + jMask = $.extend(true, {}, jMask, options); + + regexMask = p.getRegexMask(); + + if (only_mask === false) { + + if (options.placeholder) { + el.attr('placeholder' , options.placeholder); + } + + // autocomplete needs to be off. we can't intercept events + // the browser doesn't fire any kind of event when something is + // selected in a autocomplete list so we can't sanitize it. + el.attr('autocomplete', 'off'); + p.destroyEvents(); + p.events(); + + var caret = p.getCaret(); + p.val(p.getMasked()); + p.setCaret(caret + p.getMCharsBeforeCount(caret, true)); + + } else { + p.events(); + p.val(p.getMasked()); + } + }; + + jMask.init(!el.is("input")); + + }; + + $.maskWatchers = {}; + var HTMLAttributes = function () { + var input = $(this), + options = {}, + prefix = "data-mask-", + mask = input.attr('data-mask'); + + if (input.attr(prefix + 'reverse')) { + options.reverse = true; + } + + if (input.attr(prefix + 'clearifnotmatch')) { + options.clearIfNotMatch = true; + } + + if (notSameMaskObject(input, mask, options)) { + return input.data('mask', new Mask(this, mask, options)); + } + }, + notSameMaskObject = function(field, mask, options) { + options = options || {}; + var maskObject = $(field).data('mask'), stringify = JSON.stringify; + try { + return typeof maskObject !== "object" || stringify(maskObject.options) !== stringify(options) || maskObject.mask !== mask; + } catch (e) {} + }; + + + $.fn.mask = function(mask, options) { + options = options || {}; + var selector = this.selector, + globals = $.jMaskGlobals, + interval = $.jMaskGlobals.watchInterval, + maskFunction = function() { + if (notSameMaskObject(this, mask, options)) { + return $(this).data('mask', new Mask(this, mask, options)); + } + }; + + $(this).each(maskFunction); + + if (selector && selector !== "" && globals.watchInputs) { + clearInterval($.maskWatchers[selector]); + $.maskWatchers[selector] = setInterval(function(){ + $(document).find(selector).each(maskFunction); + }, interval); + } + }; + + $.fn.unmask = function() { + clearInterval($.maskWatchers[this.selector]); + delete $.maskWatchers[this.selector]; + return this.each(function() { + if ($(this).data('mask')) { + $(this).data('mask').remove().removeData('mask'); + } + }); + }; + + $.fn.cleanVal = function() { + return this.data('mask').getCleanVal(); + }; + + var globals = { + maskElements: 'input,td,span,div', + dataMaskAttr: '*[data-mask]', + dataMask: true, + watchInterval: 300, + watchInputs: true, + watchDataMask: false, + byPassKeys: [9, 16, 17, 18, 36, 37, 38, 39, 40, 91], + translation: { + '0': {pattern: /\d/}, + '9': {pattern: /\d/, optional: true}, + '#': {pattern: /\d/, recursive: true}, + 'A': {pattern: /[a-zA-Z0-9]/}, + 'S': {pattern: /[a-zA-Z]/} + } + }; + + $.jMaskGlobals = $.jMaskGlobals || {}; + globals = $.jMaskGlobals = $.extend(true, {}, globals, $.jMaskGlobals); + + // looking for inputs with data-mask attribute + if (globals.dataMask) { + $(globals.dataMaskAttr).each(HTMLAttributes); + } + + setInterval(function(){ + if ($.jMaskGlobals.watchDataMask) { + $(document).find($.jMaskGlobals.maskElements).filter(globals.dataMaskAttr).each(HTMLAttributes); + } + }, globals.watchInterval); +})); \ No newline at end of file diff --git a/frontend/web/js/jquery.min.js b/frontend/web/js/jquery.min.js new file mode 100644 index 0000000..f364443 --- /dev/null +++ b/frontend/web/js/jquery.min.js @@ -0,0 +1,6 @@ +/*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.3",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b="length"in a&&a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1; + +return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function aa(){return!0}function ba(){return!1}function ca(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),ha=/^\s+/,ia=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ja=/<([\w:]+)/,ka=/\s*$/g,ra={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:k.htmlSerialize?[0,"",""]:[1,"X
","
"]},sa=da(y),ta=sa.appendChild(y.createElement("div"));ra.optgroup=ra.option,ra.tbody=ra.tfoot=ra.colgroup=ra.caption=ra.thead,ra.th=ra.td;function ua(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ua(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function va(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wa(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xa(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function ya(a){var b=pa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function za(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Aa(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Ba(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xa(b).text=a.text,ya(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!ga.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ta.innerHTML=a.outerHTML,ta.removeChild(f=ta.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ua(f),h=ua(a),g=0;null!=(e=h[g]);++g)d[g]&&Ba(e,d[g]);if(b)if(c)for(h=h||ua(a),d=d||ua(f),g=0;null!=(e=h[g]);g++)Aa(e,d[g]);else Aa(a,f);return d=ua(f,"script"),d.length>0&&za(d,!i&&ua(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=da(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(la.test(f)){h=h||o.appendChild(b.createElement("div")),i=(ja.exec(f)||["",""])[1].toLowerCase(),l=ra[i]||ra._default,h.innerHTML=l[1]+f.replace(ia,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&ha.test(f)&&p.push(b.createTextNode(ha.exec(f)[0])),!k.tbody){f="table"!==i||ka.test(f)?""!==l[1]||ka.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ua(p,"input"),va),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ua(o.appendChild(f),"script"),g&&za(h),c)){e=0;while(f=h[e++])oa.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ua(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&za(ua(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ua(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fa,""):void 0;if(!("string"!=typeof a||ma.test(a)||!k.htmlSerialize&&ga.test(a)||!k.leadingWhitespace&&ha.test(a)||ra[(ja.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ia,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ua(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ua(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&na.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ua(i,"script"),xa),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ua(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,ya),j=0;f>j;j++)d=g[j],oa.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qa,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Ca,Da={};function Ea(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fa(a){var b=y,c=Da[a];return c||(c=Ea(a,b),"none"!==c&&c||(Ca=(Ca||m("
"); + $("#TB_overlay").click(tb_remove); + } + }else{//all others + if(document.getElementById("TB_overlay") === null){ + $("body").append("
"); + $("#TB_overlay").click(tb_remove); + } + } + + if(caption===null){caption="";} + $("body").append("
");//add loader to the page + $('#TB_load').show();//show loader + + var baseURL; + if(url.indexOf("?")!==-1){ //ff there is a query string involved + baseURL = url.substr(0, url.indexOf("?")); + }else{ + baseURL = url; + } + + var urlString = /\.jpg|\.jpeg|\.png|\.gif|\.bmp/g; + var urlType = baseURL.toLowerCase().match(urlString); + + if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images + + TB_PrevCaption = ""; + TB_PrevURL = ""; + TB_PrevHTML = ""; + TB_NextCaption = ""; + TB_NextURL = ""; + TB_NextHTML = ""; + TB_imageCount = ""; + TB_FoundURL = false; + if(imageGroup){ + TB_TempArray = $("a[@rel="+imageGroup+"]").get(); + for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) { + var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString); + if (!(TB_TempArray[TB_Counter].href == url)) { + if (TB_FoundURL) { + TB_NextCaption = TB_TempArray[TB_Counter].title; + TB_NextURL = TB_TempArray[TB_Counter].href; + TB_NextHTML = "  Next >"; + } else { + TB_PrevCaption = TB_TempArray[TB_Counter].title; + TB_PrevURL = TB_TempArray[TB_Counter].href; + TB_PrevHTML = "  < Prev"; + } + } else { + TB_FoundURL = true; + TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length); + } + } + } + + imgPreloader = new Image(); + imgPreloader.onload = function(){ + imgPreloader.onload = null; + + // Resizing large images - orginal by Christian Montoya edited by me. + var pagesize = tb_getPageSize(); + var x = pagesize[0] - 150; + var y = pagesize[1] - 150; + var imageWidth = imgPreloader.width; + var imageHeight = imgPreloader.height; + if (imageWidth > x) { + imageHeight = imageHeight * (x / imageWidth); + imageWidth = x; + if (imageHeight > y) { + imageWidth = imageWidth * (y / imageHeight); + imageHeight = y; + } + } else if (imageHeight > y) { + imageWidth = imageWidth * (y / imageHeight); + imageHeight = y; + if (imageWidth > x) { + imageHeight = imageHeight * (x / imageWidth); + imageWidth = x; + } + } + // End Resizing + + TB_WIDTH = imageWidth + 30; + TB_HEIGHT = imageHeight + 60; + $("#TB_window").append(""+caption+"" + "
"+caption+"
" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "
close or Esc Key
"); + + $("#TB_closeWindowButton").click(tb_remove); + + if (!(TB_PrevHTML === "")) { + function goPrev(){ + if($(document).unbind("click",goPrev)){$(document).unbind("click",goPrev);} + $("#TB_window").remove(); + $("body").append("
"); + tb_show(TB_PrevCaption, TB_PrevURL, imageGroup); + return false; + } + $("#TB_prev").click(goPrev); + } + + if (!(TB_NextHTML === "")) { + function goNext(){ + $("#TB_window").remove(); + $("body").append("
"); + tb_show(TB_NextCaption, TB_NextURL, imageGroup); + return false; + } + $("#TB_next").click(goNext); + + } + + document.onkeydown = function(e){ + if (e == null) { // ie + keycode = event.keyCode; + } else { // mozilla + keycode = e.which; + } + if(keycode == 27){ // close + tb_remove(); + } else if(keycode == 190){ // display previous image + if(!(TB_NextHTML == "")){ + document.onkeydown = ""; + goNext(); + } + } else if(keycode == 188){ // display next image + if(!(TB_PrevHTML == "")){ + document.onkeydown = ""; + goPrev(); + } + } + }; + + tb_position(); + $("#TB_load").remove(); + $("#TB_ImageOff").click(tb_remove); + $("#TB_window").css({display:"block"}); //for safari using css instead of show + }; + + imgPreloader.src = url; + }else{//code to show html pages + + var queryString = url.replace(/^[^\?]+\??/,''); + var params = tb_parseQuery( queryString ); + + TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no paramaters were added to URL + TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no paramaters were added to URL + ajaxContentW = TB_WIDTH - 30; + ajaxContentH = TB_HEIGHT - 45; + + if(url.indexOf('TB_iframe') != -1){ + urlNoQuery = url.split('TB_'); + $("#TB_window").append("
"+caption+"
close or Esc Key
"); + }else{ + if($("#TB_window").css("display") != "block"){ + if(params['modal'] != "true"){ + $("#TB_window").append("
"+caption+"
close or Esc Key
"); + }else{ + $("#TB_overlay").unbind(); + $("#TB_window").append("
"); + } + }else{ + $("#TB_ajaxContent")[0].style.width = ajaxContentW +"px"; + $("#TB_ajaxContent")[0].style.height = ajaxContentH +"px"; + $("#TB_ajaxContent")[0].scrollTop = 0; + $("#TB_ajaxWindowTitle").html(caption); + } + } + + $("#TB_closeWindowButton").click(tb_remove); + + if(url.indexOf('TB_inline') != -1){ + $("#TB_ajaxContent").html($('#' + params['inlineId']).html()); + tb_position(); + $("#TB_load").remove(); + $("#TB_window").css({display:"block"}); + }else if(url.indexOf('TB_iframe') != -1){ + tb_position(); + if(frames['TB_iframeContent'] === undefined){//be nice to safari + $("#TB_load").remove(); + $("#TB_window").css({display:"block"}); + $(document).keyup( function(e){ var key = e.keyCode; if(key == 27){tb_remove();}}); + } + }else{ + $("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method + tb_position(); + $("#TB_load").remove(); + tb_init("#TB_ajaxContent a.thickbox"); + $("#TB_window").css({display:"block"}); + }); + } + + } + + if(!params['modal']){ + document.onkeyup = function(e){ + if (e == null) { // ie + keycode = event.keyCode; + } else { // mozilla + keycode = e.which; + } + if(keycode == 27){ // close + tb_remove(); + } + }; + } + + } catch(e) { + //nothing here + } +} + +//helper functions below +function tb_showIframe(){ + $("#TB_load").remove(); + $("#TB_window").css({display:"block"}); +} + +function tb_remove() { + $("#TB_imageOff").unbind("click"); + $("#TB_overlay").unbind("click"); + $("#TB_closeWindowButton").unbind("click"); + $("#TB_window").fadeOut("fast",function(){$('#TB_window,#TB_overlay,#TB_HideSelect').remove();}); + $("#TB_load").remove(); + if (typeof document.body.style.maxHeight == "undefined") {//if IE 6 + $("body","html").css({height: "auto", width: "auto"}); + $("html").css("overflow",""); + } + document.onkeydown = ""; + return false; +} + +function tb_position() { +$("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'}); + if ( !(jQuery.browser.msie && typeof XMLHttpRequest == 'function')) { // take away IE6 + $("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'}); + } +} + +function tb_parseQuery ( query ) { + var Params = {}; + if ( ! query ) {return Params;}// return empty object + var Pairs = query.split(/[;&]/); + for ( var i = 0; i < Pairs.length; i++ ) { + var KeyVal = Pairs[i].split('='); + if ( ! KeyVal || KeyVal.length != 2 ) {continue;} + var key = unescape( KeyVal[0] ); + var val = unescape( KeyVal[1] ); + val = val.replace(/\+/g, ' '); + Params[key] = val; + } + return Params; +} + +function tb_getPageSize(){ + var de = document.documentElement; + var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth; + var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight; + arrayPageSize = [w,h]; + return arrayPageSize; +} diff --git a/frontend/web/js/jsor-jcarousel-7bb2e0a/index.html b/frontend/web/js/jsor-jcarousel-7bb2e0a/index.html new file mode 100644 index 0000000..7a3fc68 --- /dev/null +++ b/frontend/web/js/jsor-jcarousel-7bb2e0a/index.html @@ -0,0 +1,516 @@ + + + +jCarousel - Riding carousels with jQuery + + + + +
+

jCarousel

+

Riding carousels with jQuery

+

Author: Jan Sorgalla
+ Version: 0.2.8 (Changelog)
+ Download: jcarousel.tar.gz or jcarousel.zip
+ Source Code: http://github.com/jsor/jcarousel
+ Bugtracker: http://github.com/jsor/jcarousel/issues
+ Licence: Dual licensed under the MIT + and GPL licenses.

+ + +

Contents

+
    +
  1. Introduction
  2. +
  3. Examples
  4. +
  5. Getting started
  6. +
  7. Dynamic content loading
  8. +
  9. Accessing the jCarousel instance
  10. +
  11. Defining the number of visible items
  12. +
  13. Configuration
  14. +
  15. Credits
  16. +
+ + +

Introduction

+

jCarousel is a jQuery plugin for controlling + a list of items in horizontal or vertical order. The items, which can be static + HTML content or loaded with (or without) AJAX, can be scrolled back and forth + (with or without animation).

+ + +

Examples

+

The following examples illustrate the possibilities of jCarousel:

+ + + + +

Getting started

+

To use the jCarousel component, include the jQuery + library, the jCarousel source file and a jCarousel skin stylesheet file inside the <head> tag + of your HTML document:

+
+<script type="text/javascript" src="/path/to/jquery-1.4.2.min.js"></script>
+<script type="text/javascript" src="/path/to/lib/jquery.jcarousel.min.js"></script>
+<link rel="stylesheet" type="text/css" href="/path/to/skin/skin.css" />
+
+

The download package contains some example skin packages. Feel free to build your own skins based on it.

+

jCarousel expects a very basic HTML markup structure inside your HTML document:

+
+<ul id="mycarousel" class="jcarousel-skin-name">
+   <!-- The content goes in here -->
+</ul>
+
+

jCarousel automatically wraps the required HTML markup around the list. The + class attribute applies the jCarousel skin "name" to the + carousel.

+

To setup jCarousel, add the following code inside the <head> + tag of your HTML document:

+
+<script type="text/javascript">
+jQuery(document).ready(function() {
+    jQuery('#mycarousel').jcarousel({
+        // Configuration goes here
+    });
+});
+</script>
+
+

jCarousel accepts a lot of configuration options, see chapter "Configuration" + for further informations.

+

After jCarousel has been initialised, the fully created markup in + the DOM is:

+
+<div class="jcarousel-skin-name">
+  <div class="jcarousel-container">
+    <div class="jcarousel-clip">
+      <ul class="jcarousel-list">
+        <li class="jcarousel-item-1">First item</li>
+        <li class="jcarousel-item-2">Second item</li>
+      </ul>
+    </div>
+    <div disabled="disabled" class="jcarousel-prev jcarousel-prev-disabled"></div>
+    <div class="jcarousel-next"></div>
+  </div>
+</div>
+
+ +

As you can see, there are some elements added which have assigned classes + (in addition to the classes you may have already assigned manually). Feel + free to design your carousel with the classes you can see above.

+

Note:

+
    +
  • The skin class "jcarousel-skin-name" has been moved + from the <ul> to the top <div> element.
  • +
  • The last 2 nested <div>'s under <div class="jcarousel-container"> + are the next/prev buttons of the carousel. The first one illustrates a disabled button, the second an enabled one. The disabled + button has the attribute + disabled (which actually makes no sense for <div> + elements, but you can also use <button> elements or + whatever you want) as well as the additional class jcarousel-prev-disabled + (or jcarousel-next-disabled).
  • +
  • All <li> elements of the list have the class jcarousel-item-n + assigned where n represents the position in the list.
  • +
  • Not shown here is, that all classes are followed by additional classes with a suffix + dependent on the orientation of the carousel, ie. <ul class="jcarousel-list + jcarousel-list-horizontal"> for a horizontal carousel.
  • +
+ + +

Dynamic content loading

+

By passing the callback function itemLoadCallback as configuration + option, you are able to dynamically create <li> items for the content.

+
+<script type="text/javascript">
+jQuery(document).ready(function() {
+    jQuery('#mycarousel').jcarousel({
+        itemLoadCallback: itemLoadCallbackFunction
+    });
+});
+</script>
+

itemLoadCallbackFunction is a JavaScript function that is called + when the carousel requests a set of items to be loaded. Two parameters are + passed: The instance of the requesting carousel and a flag which indicates + the current state of the carousel ('init', 'prev' or 'next').

+
+<script type="text/javascript">
+function itemLoadCallbackFunction(carousel, state)
+{
+    for (var i = carousel.first; i <= carousel.last; i++) {
+        // Check if the item already exists
+        if (!carousel.has(i)) {
+            // Add the item
+            carousel.add(i, "I'm item #" + i);
+        }
+    }
+};
+</script>
+

jCarousel contains a convenience method add() that can be + passed the index of the item to create and the innerHTML string of the + item to be + created. If the item already exists, it just updates the innerHTML. You can + access the index of the first and last visible element by the public variables carousel.first and carousel.last. +

+ + +

Accessing the jCarousel instance

+

The instance of the carousel will be stored with the data() method of jQuery under the key jcarousel for a simple access.

+

If you have created a carousel like:

+
+jQuery(document).ready(function() {
+    jQuery('#mycarousel').jcarousel();
+});
+

You can access the instance with:

+
+var carousel = jQuery('#mycarousel').data('jcarousel');
+

You can also access methods of the instance directly, for example the add() method: +

+var index = 1;
+var html = 'My content of item no. 1';
+jQuery('#mycarousel').jcarousel('add', index, html);
+ + +

Defining the number of visible items

+ +

Sometimes people are confused how to define the number of visible items because there is no option for this as they expect (Yes, there is an option visible, we discuss this later).

+

You simply define the number of visible items by defining the width (or height) with the class .jcarousel-clip (or the more distinct .jcarousel-clip-horizontal and .jcarousel-clip-vertical classes) in your skin stylesheet.

+

This offers a lot of flexibility, because you can define the width in pixel for a fixed carousel or in percent for a flexible carousel (This example shows a carousel with a clip width in percent, resize the browser to see it in effect).

+

So, why there is an option visible? If you set the option visible, jCarousel sets the width of the visible items to always make this number of items visible. Open this example and resize your browser window to see it in effect.

+ + +

Configuration

+

jCarousel accepts a list of options to control the appearance and behaviour + of the carousel. Here is the list of options you may set:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDefaultDescription
verticalboolfalseSpecifies wether the carousel appears in horizontal or vertical orientation. + Changes the carousel from a left/right style to a up/down style carousel.
rtlboolfalseSpecifies wether the carousel appears in RTL (Right-To-Left) mode.
startinteger1The index of the item to start with.
offsetinteger1The index of the first available item at initialisation.
sizeintegerNumber of existing <li> elements if size is not passed explicitlyThe number of total items.
scrollinteger3The number of items to scroll by.
visibleintegernullIf passed, the width/height of the items will be calculated and set + depending on the width/height of the clipping, so that exactly that + number of items will be visible.
animationmixed"fast"The speed of the scroll animation as string in jQuery terms ("slow" + or "fast") or milliseconds as integer + (See jQuery Documentation). + If set to 0, animation is turned off.
easingstringnullThe name of the easing effect that you want to use (See jQuery + Documentation).
autointeger0Specifies how many seconds to periodically autoscroll the content. + If set to 0 (default) then autoscrolling is turned off. +
wrapstringnullSpecifies whether to wrap at the first/last item (or both) and jump + back to the start/end. Options are "first", "last", + "both" or "circular" as string. If set to null, + wrapping is turned off (default).
initCallbackfunctionnullJavaScript function that is called right after initialisation of the + carousel. Two parameters are passed: The instance of the requesting + carousel and the state of the carousel initialisation (init, reset or + reload).
setupCallbackfunctionnullJavaScript function that is called right after the carousel is completely setup. + One parameter is passed: The instance of the requesting carousel.
itemLoadCallbackfunctionnullJavaScript function that is called when the carousel requests a set + of items to be loaded. Two parameters are passed: The instance of the + requesting carousel and the state of the carousel action (prev, next + or init). Alternatively, you can pass a hash of one or two functions + which are triggered before and/or after animation: +
+itemLoadCallback: {
+  onBeforeAnimation: callback1,
+  onAfterAnimation: callback2
+}
itemFirstInCallback functionnullJavaScript function that is called (after the scroll animation) when + an item becomes the first one in the visible range of the carousel. + Four parameters are passed: The instance of the requesting carousel + and the <li> object itself, the index which indicates + the position of the item in the list and the state of the carousel action + (prev, next or init). Alternatively, you can pass a hash of one or two + functions which are triggered before and/or after animation: +
+itemFirstInCallback: {
+  onBeforeAnimation: callback1,
+  onAfterAnimation: callback2
+}
itemFirstOutCallbackfunctionnullJavaScript function that is called (after the scroll animation) when + an item isn't longer the first one in the visible range of the carousel. + Four parameters are passed: The instance of the requesting carousel + and the <li> object itself, the index which indicates + the position of the item in the list and the state of the carousel action + (prev, next or init). Alternatively, you can pass a hash of one or two + functions which are triggered before and/or after animation: +
+itemFirstOutCallback: {
+  onBeforeAnimation: callback1,
+  onAfterAnimation: callback2
+}
itemLastInCallbackfunctionnullJavaScript function that is called (after the scroll animation) when + an item becomes the last one in the visible range of the carousel. Four + parameters are passed: The instance of the requesting carousel and the + <li> object itself, the index which indicates the + position of the item in the list and the state of the carousel action + (prev, next or init). Alternatively, you can pass a hash of one or two + functions which are triggered before and/or after animation: +
+itemLastInCallback: {
+  onBeforeAnimation: callback1,
+  onAfterAnimation: callback2
+}
itemLastOutCallbackfunctionnullJavaScript function that is called when an item isn't longer the last + one in the visible range of the carousel. Four parameters are passed: + The instance of the requesting carousel and the <li> + object itself, the index which indicates the position of the item in + the list and the state of the carousel action (prev, next or init). + Alternatively, you can pass a hash of one or two functions which are + triggered before and/or after animation: +
+itemLastOutCallback: {
+  onBeforeAnimation: callback1,
+  onAfterAnimation: callback2
+}
itemVisibleInCallbackfunctionnullJavaScript function that is called (after the scroll animation) when + an item is in the visible range of the carousel. Four parameters are + passed: The instance of the requesting carousel and the <li> + object itself, the index which indicates the position of the item in + the list and the state of the carousel action (prev, next or init). + Alternatively, you can pass a hash of one or two functions which are + triggered before and/or after animation: +
+itemVisibleInCallback: {
+  onBeforeAnimation: callback1,
+  onAfterAnimation: callback2
+}
itemVisibleOutCallbackfunctionnullJavaScript function that is called (after the scroll animation) when + an item isn't longer in the visible range of the carousel. Four parameters + are passed: The instance of the requesting carousel and the <li> + object itself, the index which indicates the position of the item in + the list and the state of the carousel action (prev, next or init). + Alternatively, you can pass a hash of one or two functions which are + triggered before and/or after animation: +
+itemVisibleOutCallback: {
+  onBeforeAnimation: callback1,
+  onAfterAnimation: callback2
+}
animationStepCallbackfunctionnullJavaScript function that is called after each animation step. This + function is directly passed to jQuery's .animate() method + as the step parameter. See the jQuery documentation for the + parameters it will receive.
buttonNextCallbackfunctionnullJavaScript function that is called when the state of the 'next' control + is changing. The responsibility of this method is to enable or disable + the 'next' control. Three parameters are passed: The instance of the + requesting carousel, the control element and a flag indicating whether + the button should be enabled or disabled.
buttonPrevCallbackfunctionnullJavaScript function that is called when the state of the 'previous' + control is changing. The responsibility of this method is to enable + or disable the 'previous' control. Three parameters are passed: The + instance of the requesting carousel, the control element and a flag + indicating whether the button should be enabled or disabled.
buttonNextHTMLstring<div></div>The HTML markup for the auto-generated next button. If set to null, + no next-button is created.
buttonPrevHTMLstring<div></div>The HTML markup for the auto-generated prev button. If set to null, + no prev-button is created.
buttonNextEventstring"click"Specifies the event which triggers the next scroll.
buttonPrevEventstring"click"Specifies the event which triggers the prev scroll.
itemFallbackDimensionintegernullIf, for some reason, jCarousel can not detect the width of an item, you can set a fallback dimension (width or height, depending on the orientation) here to ensure correct calculations.
+ + +

Credits

+

Thanks to John Resig for his fantastic jQuery + library.
+ jCarousel is inspired by the Carousel + Component written by Bill Scott.

+ + + diff --git a/frontend/web/js/jsor-jcarousel-7bb2e0a/lib/jquery-1.4.2.min.js b/frontend/web/js/jsor-jcarousel-7bb2e0a/lib/jquery-1.4.2.min.js new file mode 100644 index 0000000..7c24308 --- /dev/null +++ b/frontend/web/js/jsor-jcarousel-7bb2e0a/lib/jquery-1.4.2.min.js @@ -0,0 +1,154 @@ +/*! + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Sat Feb 13 22:33:48 2010 -0500 + */ +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(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(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
a"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="
";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
","
"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(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,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
"; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); diff --git a/frontend/web/js/jsor-jcarousel-7bb2e0a/lib/jquery.jcarousel.js b/frontend/web/js/jsor-jcarousel-7bb2e0a/lib/jquery.jcarousel.js new file mode 100644 index 0000000..1bbb0bb --- /dev/null +++ b/frontend/web/js/jsor-jcarousel-7bb2e0a/lib/jquery.jcarousel.js @@ -0,0 +1,1057 @@ +/*! + * jCarousel - Riding carousels with jQuery + * http://sorgalla.com/jcarousel/ + * + * Copyright (c) 2006 Jan Sorgalla (http://sorgalla.com) + * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) + * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. + * + * Built on top of the jQuery library + * http://jquery.com + * + * Inspired by the "Carousel Component" by Bill Scott + * http://billwscott.com/carousel/ + */ + +/*global window, jQuery */ +(function($) { + // Default configuration properties. + var defaults = { + vertical: false, + rtl: false, + start: 1, + offset: 1, + size: null, + scroll: 3, + visible: null, + animation: 'normal', + easing: 'swing', + auto: 0, + wrap: null, + initCallback: null, + setupCallback: null, + reloadCallback: null, + itemLoadCallback: null, + itemFirstInCallback: null, + itemFirstOutCallback: null, + itemLastInCallback: null, + itemLastOutCallback: null, + itemVisibleInCallback: null, + itemVisibleOutCallback: null, + animationStepCallback: null, + buttonNextHTML: '
', + buttonPrevHTML: '
', + buttonNextEvent: 'click', + buttonPrevEvent: 'click', + buttonNextCallback: null, + buttonPrevCallback: null, + itemFallbackDimension: null + }, windowLoaded = false; + + $(window).bind('load.jcarousel', function() { windowLoaded = true; }); + + /** + * The jCarousel object. + * + * @constructor + * @class jcarousel + * @param e {HTMLElement} The element to create the carousel for. + * @param o {Object} A set of key/value pairs to set as configuration properties. + * @cat Plugins/jCarousel + */ + $.jcarousel = function(e, o) { + this.options = $.extend({}, defaults, o || {}); + + this.locked = false; + this.autoStopped = false; + + this.container = null; + this.clip = null; + this.list = null; + this.buttonNext = null; + this.buttonPrev = null; + this.buttonNextState = null; + this.buttonPrevState = null; + + // Only set if not explicitly passed as option + if (!o || o.rtl === undefined) { + this.options.rtl = ($(e).attr('dir') || $('html').attr('dir') || '').toLowerCase() == 'rtl'; + } + + this.wh = !this.options.vertical ? 'width' : 'height'; + this.lt = !this.options.vertical ? (this.options.rtl ? 'right' : 'left') : 'top'; + + // Extract skin class + var skin = '', split = e.className.split(' '); + + for (var i = 0; i < split.length; i++) { + if (split[i].indexOf('jcarousel-skin') != -1) { + $(e).removeClass(split[i]); + skin = split[i]; + break; + } + } + + if (e.nodeName.toUpperCase() == 'UL' || e.nodeName.toUpperCase() == 'OL') { + this.list = $(e); + this.clip = this.list.parents('.jcarousel-clip'); + this.container = this.list.parents('.jcarousel-container'); + } else { + this.container = $(e); + this.list = this.container.find('ul,ol').eq(0); + this.clip = this.container.find('.jcarousel-clip'); + } + + if (this.clip.size() === 0) { + this.clip = this.list.wrap('
').parent(); + } + + if (this.container.size() === 0) { + this.container = this.clip.wrap('
').parent(); + } + + if (skin !== '' && this.container.parent()[0].className.indexOf('jcarousel-skin') == -1) { + this.container.wrap('
'); + } + + this.buttonPrev = $('.jcarousel-prev', this.container); + + if (this.buttonPrev.size() === 0 && this.options.buttonPrevHTML !== null) { + this.buttonPrev = $(this.options.buttonPrevHTML).appendTo(this.container); + } + + this.buttonPrev.addClass(this.className('jcarousel-prev')); + + this.buttonNext = $('.jcarousel-next', this.container); + + if (this.buttonNext.size() === 0 && this.options.buttonNextHTML !== null) { + this.buttonNext = $(this.options.buttonNextHTML).appendTo(this.container); + } + + this.buttonNext.addClass(this.className('jcarousel-next')); + + this.clip.addClass(this.className('jcarousel-clip')).css({ + position: 'relative' + }); + + this.list.addClass(this.className('jcarousel-list')).css({ + overflow: 'hidden', + position: 'relative', + top: 0, + margin: 0, + padding: 0 + }).css((this.options.rtl ? 'right' : 'left'), 0); + + this.container.addClass(this.className('jcarousel-container')).css({ + position: 'relative' + }); + + if (!this.options.vertical && this.options.rtl) { + this.container.addClass('jcarousel-direction-rtl').attr('dir', 'rtl'); + } + + var di = this.options.visible !== null ? Math.ceil(this.clipping() / this.options.visible) : null; + var li = this.list.children('li'); + + var self = this; + + if (li.size() > 0) { + var wh = 0, j = this.options.offset; + li.each(function() { + self.format(this, j++); + wh += self.dimension(this, di); + }); + + this.list.css(this.wh, (wh + 100) + 'px'); + + // Only set if not explicitly passed as option + if (!o || o.size === undefined) { + this.options.size = li.size(); + } + } + + // For whatever reason, .show() does not work in Safari... + this.container.css('display', 'block'); + this.buttonNext.css('display', 'block'); + this.buttonPrev.css('display', 'block'); + + this.funcNext = function() { self.next(); }; + this.funcPrev = function() { self.prev(); }; + this.funcResize = function() { + if (self.resizeTimer) { + clearTimeout(self.resizeTimer); + } + + self.resizeTimer = setTimeout(function() { + self.reload(); + }, 100); + }; + + if (this.options.initCallback !== null) { + this.options.initCallback(this, 'init'); + } + + if (!windowLoaded && $.browser.safari) { + this.buttons(false, false); + $(window).bind('load.jcarousel', function() { self.setup(); }); + } else { + this.setup(); + } + }; + + // Create shortcut for internal use + var $jc = $.jcarousel; + + $jc.fn = $jc.prototype = { + jcarousel: '0.2.8' + }; + + $jc.fn.extend = $jc.extend = $.extend; + + $jc.fn.extend({ + /** + * Setups the carousel. + * + * @method setup + * @return undefined + */ + setup: function() { + this.first = null; + this.last = null; + this.prevFirst = null; + this.prevLast = null; + this.animating = false; + this.timer = null; + this.resizeTimer = null; + this.tail = null; + this.inTail = false; + + if (this.locked) { + return; + } + + this.list.css(this.lt, this.pos(this.options.offset) + 'px'); + var p = this.pos(this.options.start, true); + this.prevFirst = this.prevLast = null; + this.animate(p, false); + + $(window).unbind('resize.jcarousel', this.funcResize).bind('resize.jcarousel', this.funcResize); + + if (this.options.setupCallback !== null) { + this.options.setupCallback(this); + } + }, + + /** + * Clears the list and resets the carousel. + * + * @method reset + * @return undefined + */ + reset: function() { + this.list.empty(); + + this.list.css(this.lt, '0px'); + this.list.css(this.wh, '10px'); + + if (this.options.initCallback !== null) { + this.options.initCallback(this, 'reset'); + } + + this.setup(); + }, + + /** + * Reloads the carousel and adjusts positions. + * + * @method reload + * @return undefined + */ + reload: function() { + if (this.tail !== null && this.inTail) { + this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) + this.tail); + } + + this.tail = null; + this.inTail = false; + + if (this.options.reloadCallback !== null) { + this.options.reloadCallback(this); + } + + if (this.options.visible !== null) { + var self = this; + var di = Math.ceil(this.clipping() / this.options.visible), wh = 0, lt = 0; + this.list.children('li').each(function(i) { + wh += self.dimension(this, di); + if (i + 1 < self.first) { + lt = wh; + } + }); + + this.list.css(this.wh, wh + 'px'); + this.list.css(this.lt, -lt + 'px'); + } + + this.scroll(this.first, false); + }, + + /** + * Locks the carousel. + * + * @method lock + * @return undefined + */ + lock: function() { + this.locked = true; + this.buttons(); + }, + + /** + * Unlocks the carousel. + * + * @method unlock + * @return undefined + */ + unlock: function() { + this.locked = false; + this.buttons(); + }, + + /** + * Sets the size of the carousel. + * + * @method size + * @return undefined + * @param s {Number} The size of the carousel. + */ + size: function(s) { + if (s !== undefined) { + this.options.size = s; + if (!this.locked) { + this.buttons(); + } + } + + return this.options.size; + }, + + /** + * Checks whether a list element exists for the given index (or index range). + * + * @method get + * @return bool + * @param i {Number} The index of the (first) element. + * @param i2 {Number} The index of the last element. + */ + has: function(i, i2) { + if (i2 === undefined || !i2) { + i2 = i; + } + + if (this.options.size !== null && i2 > this.options.size) { + i2 = this.options.size; + } + + for (var j = i; j <= i2; j++) { + var e = this.get(j); + if (!e.length || e.hasClass('jcarousel-item-placeholder')) { + return false; + } + } + + return true; + }, + + /** + * Returns a jQuery object with list element for the given index. + * + * @method get + * @return jQuery + * @param i {Number} The index of the element. + */ + get: function(i) { + return $('>.jcarousel-item-' + i, this.list); + }, + + /** + * Adds an element for the given index to the list. + * If the element already exists, it updates the inner html. + * Returns the created element as jQuery object. + * + * @method add + * @return jQuery + * @param i {Number} The index of the element. + * @param s {String} The innerHTML of the element. + */ + add: function(i, s) { + var e = this.get(i), old = 0, n = $(s); + + if (e.length === 0) { + var c, j = $jc.intval(i); + e = this.create(i); + while (true) { + c = this.get(--j); + if (j <= 0 || c.length) { + if (j <= 0) { + this.list.prepend(e); + } else { + c.after(e); + } + break; + } + } + } else { + old = this.dimension(e); + } + + if (n.get(0).nodeName.toUpperCase() == 'LI') { + e.replaceWith(n); + e = n; + } else { + e.empty().append(s); + } + + this.format(e.removeClass(this.className('jcarousel-item-placeholder')), i); + + var di = this.options.visible !== null ? Math.ceil(this.clipping() / this.options.visible) : null; + var wh = this.dimension(e, di) - old; + + if (i > 0 && i < this.first) { + this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) - wh + 'px'); + } + + this.list.css(this.wh, $jc.intval(this.list.css(this.wh)) + wh + 'px'); + + return e; + }, + + /** + * Removes an element for the given index from the list. + * + * @method remove + * @return undefined + * @param i {Number} The index of the element. + */ + remove: function(i) { + var e = this.get(i); + + // Check if item exists and is not currently visible + if (!e.length || (i >= this.first && i <= this.last)) { + return; + } + + var d = this.dimension(e); + + if (i < this.first) { + this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) + d + 'px'); + } + + e.remove(); + + this.list.css(this.wh, $jc.intval(this.list.css(this.wh)) - d + 'px'); + }, + + /** + * Moves the carousel forwards. + * + * @method next + * @return undefined + */ + next: function() { + if (this.tail !== null && !this.inTail) { + this.scrollTail(false); + } else { + this.scroll(((this.options.wrap == 'both' || this.options.wrap == 'last') && this.options.size !== null && this.last == this.options.size) ? 1 : this.first + this.options.scroll); + } + }, + + /** + * Moves the carousel backwards. + * + * @method prev + * @return undefined + */ + prev: function() { + if (this.tail !== null && this.inTail) { + this.scrollTail(true); + } else { + this.scroll(((this.options.wrap == 'both' || this.options.wrap == 'first') && this.options.size !== null && this.first == 1) ? this.options.size : this.first - this.options.scroll); + } + }, + + /** + * Scrolls the tail of the carousel. + * + * @method scrollTail + * @return undefined + * @param b {Boolean} Whether scroll the tail back or forward. + */ + scrollTail: function(b) { + if (this.locked || this.animating || !this.tail) { + return; + } + + this.pauseAuto(); + + var pos = $jc.intval(this.list.css(this.lt)); + + pos = !b ? pos - this.tail : pos + this.tail; + this.inTail = !b; + + // Save for callbacks + this.prevFirst = this.first; + this.prevLast = this.last; + + this.animate(pos); + }, + + /** + * Scrolls the carousel to a certain position. + * + * @method scroll + * @return undefined + * @param i {Number} The index of the element to scoll to. + * @param a {Boolean} Flag indicating whether to perform animation. + */ + scroll: function(i, a) { + if (this.locked || this.animating) { + return; + } + + this.pauseAuto(); + this.animate(this.pos(i), a); + }, + + /** + * Prepares the carousel and return the position for a certian index. + * + * @method pos + * @return {Number} + * @param i {Number} The index of the element to scoll to. + * @param fv {Boolean} Whether to force last item to be visible. + */ + pos: function(i, fv) { + var pos = $jc.intval(this.list.css(this.lt)); + + if (this.locked || this.animating) { + return pos; + } + + if (this.options.wrap != 'circular') { + i = i < 1 ? 1 : (this.options.size && i > this.options.size ? this.options.size : i); + } + + var back = this.first > i; + + // Create placeholders, new list width/height + // and new list position + var f = this.options.wrap != 'circular' && this.first <= 1 ? 1 : this.first; + var c = back ? this.get(f) : this.get(this.last); + var j = back ? f : f - 1; + var e = null, l = 0, p = false, d = 0, g; + + while (back ? --j >= i : ++j < i) { + e = this.get(j); + p = !e.length; + if (e.length === 0) { + e = this.create(j).addClass(this.className('jcarousel-item-placeholder')); + c[back ? 'before' : 'after' ](e); + + if (this.first !== null && this.options.wrap == 'circular' && this.options.size !== null && (j <= 0 || j > this.options.size)) { + g = this.get(this.index(j)); + if (g.length) { + e = this.add(j, g.clone(true)); + } + } + } + + c = e; + d = this.dimension(e); + + if (p) { + l += d; + } + + if (this.first !== null && (this.options.wrap == 'circular' || (j >= 1 && (this.options.size === null || j <= this.options.size)))) { + pos = back ? pos + d : pos - d; + } + } + + // Calculate visible items + var clipping = this.clipping(), cache = [], visible = 0, v = 0; + c = this.get(i - 1); + j = i; + + while (++visible) { + e = this.get(j); + p = !e.length; + if (e.length === 0) { + e = this.create(j).addClass(this.className('jcarousel-item-placeholder')); + // This should only happen on a next scroll + if (c.length === 0) { + this.list.prepend(e); + } else { + c[back ? 'before' : 'after' ](e); + } + + if (this.first !== null && this.options.wrap == 'circular' && this.options.size !== null && (j <= 0 || j > this.options.size)) { + g = this.get(this.index(j)); + if (g.length) { + e = this.add(j, g.clone(true)); + } + } + } + + c = e; + d = this.dimension(e); + if (d === 0) { + throw new Error('jCarousel: No width/height set for items. This will cause an infinite loop. Aborting...'); + } + + if (this.options.wrap != 'circular' && this.options.size !== null && j > this.options.size) { + cache.push(e); + } else if (p) { + l += d; + } + + v += d; + + if (v >= clipping) { + break; + } + + j++; + } + + // Remove out-of-range placeholders + for (var x = 0; x < cache.length; x++) { + cache[x].remove(); + } + + // Resize list + if (l > 0) { + this.list.css(this.wh, this.dimension(this.list) + l + 'px'); + + if (back) { + pos -= l; + this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) - l + 'px'); + } + } + + // Calculate first and last item + var last = i + visible - 1; + if (this.options.wrap != 'circular' && this.options.size && last > this.options.size) { + last = this.options.size; + } + + if (j > last) { + visible = 0; + j = last; + v = 0; + while (++visible) { + e = this.get(j--); + if (!e.length) { + break; + } + v += this.dimension(e); + if (v >= clipping) { + break; + } + } + } + + var first = last - visible + 1; + if (this.options.wrap != 'circular' && first < 1) { + first = 1; + } + + if (this.inTail && back) { + pos += this.tail; + this.inTail = false; + } + + this.tail = null; + if (this.options.wrap != 'circular' && last == this.options.size && (last - visible + 1) >= 1) { + var m = $jc.intval(this.get(last).css(!this.options.vertical ? 'marginRight' : 'marginBottom')); + if ((v - m) > clipping) { + this.tail = v - clipping - m; + } + } + + if (fv && i === this.options.size && this.tail) { + pos -= this.tail; + this.inTail = true; + } + + // Adjust position + while (i-- > first) { + pos += this.dimension(this.get(i)); + } + + // Save visible item range + this.prevFirst = this.first; + this.prevLast = this.last; + this.first = first; + this.last = last; + + return pos; + }, + + /** + * Animates the carousel to a certain position. + * + * @method animate + * @return undefined + * @param p {Number} Position to scroll to. + * @param a {Boolean} Flag indicating whether to perform animation. + */ + animate: function(p, a) { + if (this.locked || this.animating) { + return; + } + + this.animating = true; + + var self = this; + var scrolled = function() { + self.animating = false; + + if (p === 0) { + self.list.css(self.lt, 0); + } + + if (!self.autoStopped && (self.options.wrap == 'circular' || self.options.wrap == 'both' || self.options.wrap == 'last' || self.options.size === null || self.last < self.options.size || (self.last == self.options.size && self.tail !== null && !self.inTail))) { + self.startAuto(); + } + + self.buttons(); + self.notify('onAfterAnimation'); + + // This function removes items which are appended automatically for circulation. + // This prevents the list from growing infinitely. + if (self.options.wrap == 'circular' && self.options.size !== null) { + for (var i = self.prevFirst; i <= self.prevLast; i++) { + if (i !== null && !(i >= self.first && i <= self.last) && (i < 1 || i > self.options.size)) { + self.remove(i); + } + } + } + }; + + this.notify('onBeforeAnimation'); + + // Animate + if (!this.options.animation || a === false) { + this.list.css(this.lt, p + 'px'); + scrolled(); + } else { + var o = !this.options.vertical ? (this.options.rtl ? {'right': p} : {'left': p}) : {'top': p}; + // Define animation settings. + var settings = { + duration: this.options.animation, + easing: this.options.easing, + complete: scrolled + }; + // If we have a step callback, specify it as well. + if ($.isFunction(this.options.animationStepCallback)) { + settings.step = this.options.animationStepCallback; + } + // Start the animation. + this.list.animate(o, settings); + } + }, + + /** + * Starts autoscrolling. + * + * @method auto + * @return undefined + * @param s {Number} Seconds to periodically autoscroll the content. + */ + startAuto: function(s) { + if (s !== undefined) { + this.options.auto = s; + } + + if (this.options.auto === 0) { + return this.stopAuto(); + } + + if (this.timer !== null) { + return; + } + + this.autoStopped = false; + + var self = this; + this.timer = window.setTimeout(function() { self.next(); }, this.options.auto * 1000); + }, + + /** + * Stops autoscrolling. + * + * @method stopAuto + * @return undefined + */ + stopAuto: function() { + this.pauseAuto(); + this.autoStopped = true; + }, + + /** + * Pauses autoscrolling. + * + * @method pauseAuto + * @return undefined + */ + pauseAuto: function() { + if (this.timer === null) { + return; + } + + window.clearTimeout(this.timer); + this.timer = null; + }, + + /** + * Sets the states of the prev/next buttons. + * + * @method buttons + * @return undefined + */ + buttons: function(n, p) { + if (n == null) { + n = !this.locked && this.options.size !== 0 && ((this.options.wrap && this.options.wrap != 'first') || this.options.size === null || this.last < this.options.size); + if (!this.locked && (!this.options.wrap || this.options.wrap == 'first') && this.options.size !== null && this.last >= this.options.size) { + n = this.tail !== null && !this.inTail; + } + } + + if (p == null) { + p = !this.locked && this.options.size !== 0 && ((this.options.wrap && this.options.wrap != 'last') || this.first > 1); + if (!this.locked && (!this.options.wrap || this.options.wrap == 'last') && this.options.size !== null && this.first == 1) { + p = this.tail !== null && this.inTail; + } + } + + var self = this; + + if (this.buttonNext.size() > 0) { + this.buttonNext.unbind(this.options.buttonNextEvent + '.jcarousel', this.funcNext); + + if (n) { + this.buttonNext.bind(this.options.buttonNextEvent + '.jcarousel', this.funcNext); + } + + this.buttonNext[n ? 'removeClass' : 'addClass'](this.className('jcarousel-next-disabled')).attr('disabled', n ? false : true); + + if (this.options.buttonNextCallback !== null && this.buttonNext.data('jcarouselstate') != n) { + this.buttonNext.each(function() { self.options.buttonNextCallback(self, this, n); }).data('jcarouselstate', n); + } + } else { + if (this.options.buttonNextCallback !== null && this.buttonNextState != n) { + this.options.buttonNextCallback(self, null, n); + } + } + + if (this.buttonPrev.size() > 0) { + this.buttonPrev.unbind(this.options.buttonPrevEvent + '.jcarousel', this.funcPrev); + + if (p) { + this.buttonPrev.bind(this.options.buttonPrevEvent + '.jcarousel', this.funcPrev); + } + + this.buttonPrev[p ? 'removeClass' : 'addClass'](this.className('jcarousel-prev-disabled')).attr('disabled', p ? false : true); + + if (this.options.buttonPrevCallback !== null && this.buttonPrev.data('jcarouselstate') != p) { + this.buttonPrev.each(function() { self.options.buttonPrevCallback(self, this, p); }).data('jcarouselstate', p); + } + } else { + if (this.options.buttonPrevCallback !== null && this.buttonPrevState != p) { + this.options.buttonPrevCallback(self, null, p); + } + } + + this.buttonNextState = n; + this.buttonPrevState = p; + }, + + /** + * Notify callback of a specified event. + * + * @method notify + * @return undefined + * @param evt {String} The event name + */ + notify: function(evt) { + var state = this.prevFirst === null ? 'init' : (this.prevFirst < this.first ? 'next' : 'prev'); + + // Load items + this.callback('itemLoadCallback', evt, state); + + if (this.prevFirst !== this.first) { + this.callback('itemFirstInCallback', evt, state, this.first); + this.callback('itemFirstOutCallback', evt, state, this.prevFirst); + } + + if (this.prevLast !== this.last) { + this.callback('itemLastInCallback', evt, state, this.last); + this.callback('itemLastOutCallback', evt, state, this.prevLast); + } + + this.callback('itemVisibleInCallback', evt, state, this.first, this.last, this.prevFirst, this.prevLast); + this.callback('itemVisibleOutCallback', evt, state, this.prevFirst, this.prevLast, this.first, this.last); + }, + + callback: function(cb, evt, state, i1, i2, i3, i4) { + if (this.options[cb] == null || (typeof this.options[cb] != 'object' && evt != 'onAfterAnimation')) { + return; + } + + var callback = typeof this.options[cb] == 'object' ? this.options[cb][evt] : this.options[cb]; + + if (!$.isFunction(callback)) { + return; + } + + var self = this; + + if (i1 === undefined) { + callback(self, state, evt); + } else if (i2 === undefined) { + this.get(i1).each(function() { callback(self, this, i1, state, evt); }); + } else { + var call = function(i) { + self.get(i).each(function() { callback(self, this, i, state, evt); }); + }; + for (var i = i1; i <= i2; i++) { + if (i !== null && !(i >= i3 && i <= i4)) { + call(i); + } + } + } + }, + + create: function(i) { + return this.format('
  • ', i); + }, + + format: function(e, i) { + e = $(e); + var split = e.get(0).className.split(' '); + for (var j = 0; j < split.length; j++) { + if (split[j].indexOf('jcarousel-') != -1) { + e.removeClass(split[j]); + } + } + e.addClass(this.className('jcarousel-item')).addClass(this.className('jcarousel-item-' + i)).css({ + 'float': (this.options.rtl ? 'right' : 'left'), + 'list-style': 'none' + }).attr('jcarouselindex', i); + return e; + }, + + className: function(c) { + return c + ' ' + c + (!this.options.vertical ? '-horizontal' : '-vertical'); + }, + + dimension: function(e, d) { + var el = $(e); + + if (d == null) { + return !this.options.vertical ? + (el.outerWidth(true) || $jc.intval(this.options.itemFallbackDimension)) : + (el.outerHeight(true) || $jc.intval(this.options.itemFallbackDimension)); + } else { + var w = !this.options.vertical ? + d - $jc.intval(el.css('marginLeft')) - $jc.intval(el.css('marginRight')) : + d - $jc.intval(el.css('marginTop')) - $jc.intval(el.css('marginBottom')); + + $(el).css(this.wh, w + 'px'); + + return this.dimension(el); + } + }, + + clipping: function() { + return !this.options.vertical ? + this.clip[0].offsetWidth - $jc.intval(this.clip.css('borderLeftWidth')) - $jc.intval(this.clip.css('borderRightWidth')) : + this.clip[0].offsetHeight - $jc.intval(this.clip.css('borderTopWidth')) - $jc.intval(this.clip.css('borderBottomWidth')); + }, + + index: function(i, s) { + if (s == null) { + s = this.options.size; + } + + return Math.round((((i-1) / s) - Math.floor((i-1) / s)) * s) + 1; + } + }); + + $jc.extend({ + /** + * Gets/Sets the global default configuration properties. + * + * @method defaults + * @return {Object} + * @param d {Object} A set of key/value pairs to set as configuration properties. + */ + defaults: function(d) { + return $.extend(defaults, d || {}); + }, + + intval: function(v) { + v = parseInt(v, 10); + return isNaN(v) ? 0 : v; + }, + + windowLoaded: function() { + windowLoaded = true; + } + }); + + /** + * Creates a carousel for all matched elements. + * + * @example $("#mycarousel").jcarousel(); + * @before
    • First item
    • Second item
    + * @result + * + *
    + *
    + *
    + *
      + *
    • First item
    • + *
    • Second item
    • + *
    + *
    + *
    + *
    + *
    + *
    + * + * @method jcarousel + * @return jQuery + * @param o {Hash|String} A set of key/value pairs to set as configuration properties or a method name to call on a formerly created instance. + */ + $.fn.jcarousel = function(o) { + if (typeof o == 'string') { + var instance = $(this).data('jcarousel'), args = Array.prototype.slice.call(arguments, 1); + return instance[o].apply(instance, args); + } else { + return this.each(function() { + var instance = $(this).data('jcarousel'); + if (instance) { + if (o) { + $.extend(instance.options, o); + } + instance.reload(); + } else { + $(this).data('jcarousel', new $jc(this, o)); + } + }); + } + }; + +})(jQuery); diff --git a/frontend/web/js/jsor-jcarousel-7bb2e0a/lib/jquery.jcarousel.min.js b/frontend/web/js/jsor-jcarousel-7bb2e0a/lib/jquery.jcarousel.min.js new file mode 100644 index 0000000..5d9a91e --- /dev/null +++ b/frontend/web/js/jsor-jcarousel-7bb2e0a/lib/jquery.jcarousel.min.js @@ -0,0 +1,16 @@ +/*! + * jCarousel - Riding carousels with jQuery + * http://sorgalla.com/jcarousel/ + * + * Copyright (c) 2006 Jan Sorgalla (http://sorgalla.com) + * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) + * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. + * + * Built on top of the jQuery library + * http://jquery.com + * + * Inspired by the "Carousel Component" by Bill Scott + * http://billwscott.com/carousel/ + */ + +(function(g){var q={vertical:!1,rtl:!1,start:1,offset:1,size:null,scroll:3,visible:null,animation:"normal",easing:"swing",auto:0,wrap:null,initCallback:null,setupCallback:null,reloadCallback:null,itemLoadCallback:null,itemFirstInCallback:null,itemFirstOutCallback:null,itemLastInCallback:null,itemLastOutCallback:null,itemVisibleInCallback:null,itemVisibleOutCallback:null,animationStepCallback:null,buttonNextHTML:"
    ",buttonPrevHTML:"
    ",buttonNextEvent:"click",buttonPrevEvent:"click", buttonNextCallback:null,buttonPrevCallback:null,itemFallbackDimension:null},m=!1;g(window).bind("load.jcarousel",function(){m=!0});g.jcarousel=function(a,c){this.options=g.extend({},q,c||{});this.autoStopped=this.locked=!1;this.buttonPrevState=this.buttonNextState=this.buttonPrev=this.buttonNext=this.list=this.clip=this.container=null;if(!c||c.rtl===void 0)this.options.rtl=(g(a).attr("dir")||g("html").attr("dir")||"").toLowerCase()=="rtl";this.wh=!this.options.vertical?"width":"height";this.lt=!this.options.vertical? this.options.rtl?"right":"left":"top";for(var b="",d=a.className.split(" "),f=0;f").parent();if(this.container.size()===0)this.container=this.clip.wrap("
    ").parent();b!==""&&this.container.parent()[0].className.indexOf("jcarousel-skin")==-1&&this.container.wrap('
    ');this.buttonPrev=g(".jcarousel-prev",this.container);if(this.buttonPrev.size()===0&&this.options.buttonPrevHTML!==null)this.buttonPrev=g(this.options.buttonPrevHTML).appendTo(this.container);this.buttonPrev.addClass(this.className("jcarousel-prev"));this.buttonNext= g(".jcarousel-next",this.container);if(this.buttonNext.size()===0&&this.options.buttonNextHTML!==null)this.buttonNext=g(this.options.buttonNextHTML).appendTo(this.container);this.buttonNext.addClass(this.className("jcarousel-next"));this.clip.addClass(this.className("jcarousel-clip")).css({position:"relative"});this.list.addClass(this.className("jcarousel-list")).css({overflow:"hidden",position:"relative",top:0,margin:0,padding:0}).css(this.options.rtl?"right":"left",0);this.container.addClass(this.className("jcarousel-container")).css({position:"relative"}); !this.options.vertical&&this.options.rtl&&this.container.addClass("jcarousel-direction-rtl").attr("dir","rtl");var j=this.options.visible!==null?Math.ceil(this.clipping()/this.options.visible):null,b=this.list.children("li"),e=this;if(b.size()>0){var h=0,i=this.options.offset;b.each(function(){e.format(this,i++);h+=e.dimension(this,j)});this.list.css(this.wh,h+100+"px");if(!c||c.size===void 0)this.options.size=b.size()}this.container.css("display","block");this.buttonNext.css("display","block");this.buttonPrev.css("display", "block");this.funcNext=function(){e.next()};this.funcPrev=function(){e.prev()};this.funcResize=function(){e.resizeTimer&&clearTimeout(e.resizeTimer);e.resizeTimer=setTimeout(function(){e.reload()},100)};this.options.initCallback!==null&&this.options.initCallback(this,"init");!m&&g.browser.safari?(this.buttons(!1,!1),g(window).bind("load.jcarousel",function(){e.setup()})):this.setup()};var f=g.jcarousel;f.fn=f.prototype={jcarousel:"0.2.8"};f.fn.extend=f.extend=g.extend;f.fn.extend({setup:function(){this.prevLast= this.prevFirst=this.last=this.first=null;this.animating=!1;this.tail=this.resizeTimer=this.timer=null;this.inTail=!1;if(!this.locked){this.list.css(this.lt,this.pos(this.options.offset)+"px");var a=this.pos(this.options.start,!0);this.prevFirst=this.prevLast=null;this.animate(a,!1);g(window).unbind("resize.jcarousel",this.funcResize).bind("resize.jcarousel",this.funcResize);this.options.setupCallback!==null&&this.options.setupCallback(this)}},reset:function(){this.list.empty();this.list.css(this.lt, "0px");this.list.css(this.wh,"10px");this.options.initCallback!==null&&this.options.initCallback(this,"reset");this.setup()},reload:function(){this.tail!==null&&this.inTail&&this.list.css(this.lt,f.intval(this.list.css(this.lt))+this.tail);this.tail=null;this.inTail=!1;this.options.reloadCallback!==null&&this.options.reloadCallback(this);if(this.options.visible!==null){var a=this,c=Math.ceil(this.clipping()/this.options.visible),b=0,d=0;this.list.children("li").each(function(f){b+=a.dimension(this, c);f+1this.options.size)c=this.options.size;for(var b=a;b<=c;b++){var d=this.get(b);if(!d.length||d.hasClass("jcarousel-item-placeholder"))return!1}return!0}, get:function(a){return g(">.jcarousel-item-"+a,this.list)},add:function(a,c){var b=this.get(a),d=0,p=g(c);if(b.length===0)for(var j,e=f.intval(a),b=this.create(a);;){if(j=this.get(--e),e<=0||j.length){e<=0?this.list.prepend(b):j.after(b);break}}else d=this.dimension(b);p.get(0).nodeName.toUpperCase()=="LI"?(b.replaceWith(p),b=p):b.empty().append(c);this.format(b.removeClass(this.className("jcarousel-item-placeholder")),a);p=this.options.visible!==null?Math.ceil(this.clipping()/this.options.visible): null;d=this.dimension(b,p)-d;a>0&&a=this.first&&a<=this.last)){var b=this.dimension(c);athis.options.size?this.options.size:a);for(var d=this.first>a,g=this.options.wrap!="circular"&&this.first<=1?1:this.first,j=d?this.get(g): this.get(this.last),e=d?g:g-1,h=null,i=0,k=!1,l=0;d?--e>=a:++ethis.options.size)))j=this.get(this.index(e)),j.length&&(h=this.add(e,j.clone(!0)));j=h;l=this.dimension(h);k&&(i+=l);if(this.first!==null&&(this.options.wrap=="circular"||e>=1&&(this.options.size===null||e<= this.options.size)))b=d?b+l:b-l}for(var g=this.clipping(),m=[],o=0,n=0,j=this.get(a-1),e=a;++o;){h=this.get(e);k=!h.length;if(h.length===0){h=this.create(e).addClass(this.className("jcarousel-item-placeholder"));if(j.length===0)this.list.prepend(h);else j[d?"before":"after"](h);if(this.first!==null&&this.options.wrap=="circular"&&this.options.size!==null&&(e<=0||e>this.options.size))j=this.get(this.index(e)),j.length&&(h=this.add(e,j.clone(!0)))}j=h;l=this.dimension(h);if(l===0)throw Error("jCarousel: No width/height set for items. This will cause an infinite loop. Aborting..."); this.options.wrap!="circular"&&this.options.size!==null&&e>this.options.size?m.push(h):k&&(i+=l);n+=l;if(n>=g)break;e++}for(h=0;h0&&(this.list.css(this.wh,this.dimension(this.list)+i+"px"),d&&(b-=i,this.list.css(this.lt,f.intval(this.list.css(this.lt))-i+"px")));i=a+o-1;if(this.options.wrap!="circular"&&this.options.size&&i>this.options.size)i=this.options.size;if(e>i){o=0;e=i;for(n=0;++o;){h=this.get(e--);if(!h.length)break;n+=this.dimension(h);if(n>=g)break}}e=i-o+ 1;this.options.wrap!="circular"&&e<1&&(e=1);if(this.inTail&&d)b+=this.tail,this.inTail=!1;this.tail=null;if(this.options.wrap!="circular"&&i==this.options.size&&i-o+1>=1&&(d=f.intval(this.get(i).css(!this.options.vertical?"marginRight":"marginBottom")),n-d>g))this.tail=n-g-d;if(c&&a===this.options.size&&this.tail)b-=this.tail,this.inTail=!0;for(;a-- >e;)b+=this.dimension(this.get(a));this.prevFirst=this.first;this.prevLast=this.last;this.first=e;this.last=i;return b},animate:function(a,c){if(!this.locked&& !this.animating){this.animating=!0;var b=this,d=function(){b.animating=!1;a===0&&b.list.css(b.lt,0);!b.autoStopped&&(b.options.wrap=="circular"||b.options.wrap=="both"||b.options.wrap=="last"||b.options.size===null||b.last=b.first&&c<=b.last)&&(c<1||c>b.options.size)&&b.remove(c)}; this.notify("onBeforeAnimation");if(!this.options.animation||c===!1)this.list.css(this.lt,a+"px"),d();else{var f=!this.options.vertical?this.options.rtl?{right:a}:{left:a}:{top:a},d={duration:this.options.animation,easing:this.options.easing,complete:d};if(g.isFunction(this.options.animationStepCallback))d.step=this.options.animationStepCallback;this.list.animate(f,d)}}},startAuto:function(a){if(a!==void 0)this.options.auto=a;if(this.options.auto===0)return this.stopAuto();if(this.timer===null){this.autoStopped= !1;var c=this;this.timer=window.setTimeout(function(){c.next()},this.options.auto*1E3)}},stopAuto:function(){this.pauseAuto();this.autoStopped=!0},pauseAuto:function(){if(this.timer!==null)window.clearTimeout(this.timer),this.timer=null},buttons:function(a,c){if(a==null&&(a=!this.locked&&this.options.size!==0&&(this.options.wrap&&this.options.wrap!="first"||this.options.size===null||this.last=this.options.size))a=this.tail!==null&&!this.inTail;if(c==null&&(c=!this.locked&&this.options.size!==0&&(this.options.wrap&&this.options.wrap!="last"||this.first>1),!this.locked&&(!this.options.wrap||this.options.wrap=="last")&&this.options.size!==null&&this.first==1))c=this.tail!==null&&this.inTail;var b=this;this.buttonNext.size()>0?(this.buttonNext.unbind(this.options.buttonNextEvent+".jcarousel",this.funcNext),a&&this.buttonNext.bind(this.options.buttonNextEvent+".jcarousel",this.funcNext), this.buttonNext[a?"removeClass":"addClass"](this.className("jcarousel-next-disabled")).attr("disabled",a?!1:!0),this.options.buttonNextCallback!==null&&this.buttonNext.data("jcarouselstate")!=a&&this.buttonNext.each(function(){b.options.buttonNextCallback(b,this,a)}).data("jcarouselstate",a)):this.options.buttonNextCallback!==null&&this.buttonNextState!=a&&this.options.buttonNextCallback(b,null,a);this.buttonPrev.size()>0?(this.buttonPrev.unbind(this.options.buttonPrevEvent+".jcarousel",this.funcPrev), c&&this.buttonPrev.bind(this.options.buttonPrevEvent+".jcarousel",this.funcPrev),this.buttonPrev[c?"removeClass":"addClass"](this.className("jcarousel-prev-disabled")).attr("disabled",c?!1:!0),this.options.buttonPrevCallback!==null&&this.buttonPrev.data("jcarouselstate")!=c&&this.buttonPrev.each(function(){b.options.buttonPrevCallback(b,this,c)}).data("jcarouselstate",c)):this.options.buttonPrevCallback!==null&&this.buttonPrevState!=c&&this.options.buttonPrevCallback(b,null,c);this.buttonNextState= a;this.buttonPrevState=c},notify:function(a){var c=this.prevFirst===null?"init":this.prevFirst=j&&k<=e)&&a(k)}}},create:function(a){return this.format("
  • ",a)},format:function(a,c){for(var a=g(a),b=a.get(0).className.split(" "),d=0;d-1||J.indexOf("win32")>-1){Q.isWindows=true}else{if(J.indexOf("macintosh")>-1||J.indexOf("mac os x")>-1){Q.isMac=true}else{if(J.indexOf("linux")>-1){Q.isLinux=true}}}Q.isIE=J.indexOf("msie")>-1;Q.isIE6=J.indexOf("msie 6")>-1;Q.isIE7=J.indexOf("msie 7")>-1;Q.isGecko=J.indexOf("gecko")>-1&&J.indexOf("safari")==-1;Q.isWebKit=J.indexOf("applewebkit/")>-1;var ab=/#(.+)$/,af=/^(light|shadow)box\[(.*?)\]/i,az=/\s*([a-z_]*?)\s*=\s*(.+)\s*/,f=/[0-9a-z]+$/i,aD=/(.+\/)shadowbox\.js/i;var A=false,a=false,l={},z=0,R,ap;Q.current=-1;Q.dimensions=null;Q.ease=function(K){return 1+Math.pow(K-1,3)};Q.errorInfo={fla:{name:"Flash",url:"http://www.adobe.com/products/flashplayer/"},qt:{name:"QuickTime",url:"http://www.apple.com/quicktime/download/"},wmp:{name:"Windows Media Player",url:"http://www.microsoft.com/windows/windowsmedia/"},f4m:{name:"Flip4Mac",url:"http://www.flip4mac.com/wmv_download.htm"}};Q.gallery=[];Q.onReady=aj;Q.path=null;Q.player=null;Q.playerId="sb-player";Q.options={animate:true,animateFade:true,autoplayMovies:true,continuous:false,enableKeys:true,flashParams:{bgcolor:"#000000",allowfullscreen:true},flashVars:{},flashVersion:"9.0.115",handleOversize:"resize",handleUnsupported:"link",onChange:aj,onClose:aj,onFinish:aj,onOpen:aj,showMovieControls:true,skipSetup:false,slideshowDelay:0,viewportPadding:20};Q.getCurrent=function(){return Q.current>-1?Q.gallery[Q.current]:null};Q.hasNext=function(){return Q.gallery.length>1&&(Q.current!=Q.gallery.length-1||Q.options.continuous)};Q.isOpen=function(){return A};Q.isPaused=function(){return ap=="pause"};Q.applyOptions=function(K){l=aC({},Q.options);aC(Q.options,K)};Q.revertOptions=function(){aC(Q.options,l)};Q.init=function(aG,aJ){if(a){return}a=true;if(Q.skin.options){aC(Q.options,Q.skin.options)}if(aG){aC(Q.options,aG)}if(!Q.path){var aI,S=document.getElementsByTagName("script");for(var aH=0,K=S.length;aHaQ){aS=aQ-aM}var aG=2*aO+K;if(aJ+aG>aR){aJ=aR-aG}var S=(aN-aS)/aN,aP=(aH-aJ)/aH,aK=(S>0||aP>0);if(aL&&aK){if(S>aP){aJ=Math.round((aH/aN)*aS)}else{if(aP>S){aS=Math.round((aN/aH)*aJ)}}}Q.dimensions={height:aS+aI,width:aJ+K,innerHeight:aS,innerWidth:aJ,top:Math.floor((aQ-(aS+aM))/2+aO),left:Math.floor((aR-(aJ+aG))/2+aO),oversized:aK};return Q.dimensions};Q.makeGallery=function(aI){var K=[],aH=-1;if(typeof aI=="string"){aI=[aI]}if(typeof aI.length=="number"){aF(aI,function(aK,aL){if(aL.content){K[aK]=aL}else{K[aK]={content:aL}}});aH=0}else{if(aI.tagName){var S=Q.getCache(aI);aI=S?S:Q.makeObject(aI)}if(aI.gallery){K=[];var aJ;for(var aG in Q.cache){aJ=Q.cache[aG];if(aJ.gallery&&aJ.gallery==aI.gallery){if(aH==-1&&aJ.content==aI.content){aH=K.length}K.push(aJ)}}if(aH==-1){K.unshift(aI);aH=0}}else{K=[aI];aH=0}}aF(K,function(aK,aL){K[aK]=aC({},aL)});return[K,aH]};Q.makeObject=function(aH,aG){var aI={content:aH.href,title:aH.getAttribute("title")||"",link:aH};if(aG){aG=aC({},aG);aF(["player","title","height","width","gallery"],function(aJ,aK){if(typeof aG[aK]!="undefined"){aI[aK]=aG[aK];delete aG[aK]}});aI.options=aG}else{aI.options={}}if(!aI.player){aI.player=Q.getPlayer(aI.content)}var K=aH.getAttribute("rel");if(K){var S=K.match(af);if(S){aI.gallery=escape(S[2])}aF(K.split(";"),function(aJ,aK){S=aK.match(az);if(S){aI[S[1]]=S[2]}})}return aI};Q.getPlayer=function(aG){if(aG.indexOf("#")>-1&&aG.indexOf(document.location.href)==0){return"inline"}var aH=aG.indexOf("?");if(aH>-1){aG=aG.substring(0,aH)}var S,K=aG.match(f);if(K){S=K[0].toLowerCase()}if(S){if(Q.img&&Q.img.ext.indexOf(S)>-1){return"img"}if(Q.swf&&Q.swf.ext.indexOf(S)>-1){return"swf"}if(Q.flv&&Q.flv.ext.indexOf(S)>-1){return"flv"}if(Q.qt&&Q.qt.ext.indexOf(S)>-1){if(Q.wmp&&Q.wmp.ext.indexOf(S)>-1){return"qtwmp"}else{return"qt"}}if(Q.wmp&&Q.wmp.ext.indexOf(S)>-1){return"wmp"}}return"iframe"};function G(){var aH=Q.errorInfo,aI=Q.plugins,aK,aL,aO,aG,aN,S,aM,K;for(var aJ=0;aJ'+s(Q.lang.errors[aN],S)+""}else{aL=true}}else{if(aK.player=="inline"){aG=ab.exec(aK.content);if(aG){aM=ad(aG[1]);if(aM){aK.content=aM.innerHTML}else{aL=true}}else{aL=true}}else{if(aK.player=="swf"||aK.player=="flv"){K=(aK.options&&aK.options.flashVersion)||Q.options.flashVersion;if(Q.flash&&!Q.flash.hasFlashPlayerVersion(K)){aK.width=310;aK.height=177}}}}if(aL){Q.gallery.splice(aJ,1);if(aJ0?aJ-1:aJ}}--aJ}}}function aq(K){if(!Q.options.enableKeys){return}(K?F:M)(document,"keydown",an)}function an(aG){if(aG.metaKey||aG.shiftKey||aG.altKey||aG.ctrlKey){return}var S=v(aG),K;switch(S){case 81:case 88:case 27:K=Q.close;break;case 37:K=Q.previous;break;case 39:K=Q.next;break;case 32:K=typeof ap=="number"?Q.pause:Q.play;break}if(K){n(aG);K()}}function c(aK){aq(false);var aJ=Q.getCurrent();var aG=(aJ.player=="inline"?"html":aJ.player);if(typeof Q[aG]!="function"){throw"unknown player "+aG}if(aK){Q.player.remove();Q.revertOptions();Q.applyOptions(aJ.options||{})}Q.player=new Q[aG](aJ,Q.playerId);if(Q.gallery.length>1){var aH=Q.gallery[Q.current+1]||Q.gallery[0];if(aH.player=="img"){var S=new Image();S.src=aH.content}var aI=Q.gallery[Q.current-1]||Q.gallery[Q.gallery.length-1];if(aI.player=="img"){var K=new Image();K.src=aI.content}}Q.skin.onLoad(aK,W)}function W(){if(!A){return}if(typeof Q.player.ready!="undefined"){var K=setInterval(function(){if(A){if(Q.player.ready){clearInterval(K);K=null;Q.skin.onReady(e)}}else{clearInterval(K);K=null}},10)}else{Q.skin.onReady(e)}}function e(){if(!A){return}Q.player.append(Q.skin.body,Q.dimensions);Q.skin.onShow(I)}function I(){if(!A){return}if(Q.player.onLoad){Q.player.onLoad()}Q.options.onFinish(Q.getCurrent());if(!Q.isPaused()){Q.play()}aq(true)}if(!Array.prototype.indexOf){Array.prototype.indexOf=function(S,aG){var K=this.length>>>0;aG=aG||0;if(aG<0){aG+=K}for(;aG-1;Q.plugins={fla:w.indexOf("Shockwave Flash")>-1,qt:w.indexOf("QuickTime")>-1,wmp:!ai&&w.indexOf("Windows Media")>-1,f4m:ai}}else{var p=function(K){var S;try{S=new ActiveXObject(K)}catch(aG){}return !!S};Q.plugins={fla:p("ShockwaveFlash.ShockwaveFlash"),qt:p("QuickTime.QuickTime"),wmp:p("wmplayer.ocx"),f4m:false}}var X=/^(light|shadow)box/i,am="shadowboxCacheKey",b=1;Q.cache={};Q.select=function(S){var aG=[];if(!S){var K;aF(document.getElementsByTagName("a"),function(aJ,aK){K=aK.getAttribute("rel");if(K&&X.test(K)){aG.push(aK)}})}else{var aI=S.length;if(aI){if(typeof S=="string"){if(Q.find){aG=Q.find(S)}}else{if(aI==2&&typeof S[0]=="string"&&S[1].nodeType){if(Q.find){aG=Q.find(S[0],S[1])}}else{for(var aH=0;aH+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,aQ=0,aS=Object.prototype.toString,aK=false,aJ=true;[0,0].sort(function(){aJ=false;return 0});var aG=function(a1,aW,a4,a5){a4=a4||[];var a7=aW=aW||document;if(aW.nodeType!==1&&aW.nodeType!==9){return[]}if(!a1||typeof a1!=="string"){return a4}var a2=[],aY,a9,bc,aX,a0=true,aZ=aH(aW),a6=a1;while((aP.exec(""),aY=aP.exec(a6))!==null){a6=aY[3];a2.push(aY[1]);if(aY[2]){aX=aY[3];break}}if(a2.length>1&&aL.exec(a1)){if(a2.length===2&&aM.relative[a2[0]]){a9=aT(a2[0]+a2[1],aW)}else{a9=aM.relative[a2[0]]?[aW]:aG(a2.shift(),aW);while(a2.length){a1=a2.shift();if(aM.relative[a1]){a1+=a2.shift()}a9=aT(a1,a9)}}}else{if(!a5&&a2.length>1&&aW.nodeType===9&&!aZ&&aM.match.ID.test(a2[0])&&!aM.match.ID.test(a2[a2.length-1])){var a8=aG.find(a2.shift(),aW,aZ);aW=a8.expr?aG.filter(a8.expr,a8.set)[0]:a8.set[0]}if(aW){var a8=a5?{expr:a2.pop(),set:aO(a5)}:aG.find(a2.pop(),a2.length===1&&(a2[0]==="~"||a2[0]==="+")&&aW.parentNode?aW.parentNode:aW,aZ);a9=a8.expr?aG.filter(a8.expr,a8.set):a8.set;if(a2.length>0){bc=aO(a9)}else{a0=false}while(a2.length){var bb=a2.pop(),ba=bb;if(!aM.relative[bb]){bb=""}else{ba=a2.pop()}if(ba==null){ba=aW}aM.relative[bb](bc,ba,aZ)}}else{bc=a2=[]}}if(!bc){bc=a9}if(!bc){throw"Syntax error, unrecognized expression: "+(bb||a1)}if(aS.call(bc)==="[object Array]"){if(!a0){a4.push.apply(a4,bc)}else{if(aW&&aW.nodeType===1){for(var a3=0;bc[a3]!=null;a3++){if(bc[a3]&&(bc[a3]===true||bc[a3].nodeType===1&&aN(aW,bc[a3]))){a4.push(a9[a3])}}}else{for(var a3=0;bc[a3]!=null;a3++){if(bc[a3]&&bc[a3].nodeType===1){a4.push(a9[a3])}}}}}else{aO(bc,a4)}if(aX){aG(aX,a7,a4,a5);aG.uniqueSort(a4)}return a4};aG.uniqueSort=function(aX){if(aR){aK=aJ;aX.sort(aR);if(aK){for(var aW=1;aW":function(a2,aX){var a0=typeof aX==="string";if(a0&&!/\W/.test(aX)){aX=aX.toLowerCase();for(var aY=0,aW=a2.length;aY=0)){if(!aY){aW.push(a1)}}else{if(aY){aX[a0]=false}}}}return false},ID:function(aW){return aW[1].replace(/\\/g,"")},TAG:function(aX,aW){return aX[1].toLowerCase()},CHILD:function(aW){if(aW[1]==="nth"){var aX=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(aW[2]==="even"&&"2n"||aW[2]==="odd"&&"2n+1"||!/\D/.test(aW[2])&&"0n+"+aW[2]||aW[2]);aW[2]=(aX[1]+(aX[2]||1))-0;aW[3]=aX[3]-0}aW[0]=aQ++;return aW},ATTR:function(a0,aX,aY,aW,a1,a2){var aZ=a0[1].replace(/\\/g,"");if(!a2&&aM.attrMap[aZ]){a0[1]=aM.attrMap[aZ]}if(a0[2]==="~="){a0[4]=" "+a0[4]+" "}return a0},PSEUDO:function(a0,aX,aY,aW,a1){if(a0[1]==="not"){if((aP.exec(a0[3])||"").length>1||/^\w/.test(a0[3])){a0[3]=aG(a0[3],null,null,aX)}else{var aZ=aG.filter(a0[3],aX,aY,true^a1);if(!aY){aW.push.apply(aW,aZ)}return false}}else{if(aM.match.POS.test(a0[0])||aM.match.CHILD.test(a0[0])){return true}}return a0},POS:function(aW){aW.unshift(true);return aW}},filters:{enabled:function(aW){return aW.disabled===false&&aW.type!=="hidden"},disabled:function(aW){return aW.disabled===true},checked:function(aW){return aW.checked===true},selected:function(aW){aW.parentNode.selectedIndex;return aW.selected===true},parent:function(aW){return !!aW.firstChild},empty:function(aW){return !aW.firstChild},has:function(aY,aX,aW){return !!aG(aW[3],aY).length},header:function(aW){return/h\d/i.test(aW.nodeName)},text:function(aW){return"text"===aW.type},radio:function(aW){return"radio"===aW.type},checkbox:function(aW){return"checkbox"===aW.type},file:function(aW){return"file"===aW.type},password:function(aW){return"password"===aW.type},submit:function(aW){return"submit"===aW.type},image:function(aW){return"image"===aW.type},reset:function(aW){return"reset"===aW.type},button:function(aW){return"button"===aW.type||aW.nodeName.toLowerCase()==="button"},input:function(aW){return/input|select|textarea|button/i.test(aW.nodeName)}},setFilters:{first:function(aX,aW){return aW===0},last:function(aY,aX,aW,aZ){return aX===aZ.length-1},even:function(aX,aW){return aW%2===0},odd:function(aX,aW){return aW%2===1},lt:function(aY,aX,aW){return aXaW[3]-0},nth:function(aY,aX,aW){return aW[3]-0===aX},eq:function(aY,aX,aW){return aW[3]-0===aX}},filter:{PSEUDO:function(a2,aY,aZ,a3){var aX=aY[1],a0=aM.filters[aX];if(a0){return a0(a2,aZ,aY,a3)}else{if(aX==="contains"){return(a2.textContent||a2.innerText||S([a2])||"").indexOf(aY[3])>=0}else{if(aX==="not"){var a1=aY[3];for(var aZ=0,aW=a1.length;aZ=0)}}},ID:function(aX,aW){return aX.nodeType===1&&aX.getAttribute("id")===aW},TAG:function(aX,aW){return(aW==="*"&&aX.nodeType===1)||aX.nodeName.toLowerCase()===aW},CLASS:function(aX,aW){return(" "+(aX.className||aX.getAttribute("class"))+" ").indexOf(aW)>-1},ATTR:function(a1,aZ){var aY=aZ[1],aW=aM.attrHandle[aY]?aM.attrHandle[aY](a1):a1[aY]!=null?a1[aY]:a1.getAttribute(aY),a2=aW+"",a0=aZ[2],aX=aZ[4];return aW==null?a0==="!=":a0==="="?a2===aX:a0==="*="?a2.indexOf(aX)>=0:a0==="~="?(" "+a2+" ").indexOf(aX)>=0:!aX?a2&&aW!==false:a0==="!="?a2!==aX:a0==="^="?a2.indexOf(aX)===0:a0==="$="?a2.substr(a2.length-aX.length)===aX:a0==="|="?a2===aX||a2.substr(0,aX.length+1)===aX+"-":false},POS:function(a0,aX,aY,a1){var aW=aX[2],aZ=aM.setFilters[aW];if(aZ){return aZ(a0,aY,aX,a1)}}}};var aL=aM.match.POS;for(var aI in aM.match){aM.match[aI]=new RegExp(aM.match[aI].source+/(?![^\[]*\])(?![^\(]*\))/.source);aM.leftMatch[aI]=new RegExp(/(^(?:.|\r|\n)*?)/.source+aM.match[aI].source)}var aO=function(aX,aW){aX=Array.prototype.slice.call(aX,0);if(aW){aW.push.apply(aW,aX);return aW}return aX};try{Array.prototype.slice.call(document.documentElement.childNodes,0)}catch(aV){aO=function(a0,aZ){var aX=aZ||[];if(aS.call(a0)==="[object Array]"){Array.prototype.push.apply(aX,a0)}else{if(typeof a0.length==="number"){for(var aY=0,aW=a0.length;aY";var aW=document.documentElement;aW.insertBefore(aX,aW.firstChild);if(document.getElementById(aY)){aM.find.ID=function(a0,a1,a2){if(typeof a1.getElementById!=="undefined"&&!a2){var aZ=a1.getElementById(a0[1]);return aZ?aZ.id===a0[1]||typeof aZ.getAttributeNode!=="undefined"&&aZ.getAttributeNode("id").nodeValue===a0[1]?[aZ]:k:[]}};aM.filter.ID=function(a1,aZ){var a0=typeof a1.getAttributeNode!=="undefined"&&a1.getAttributeNode("id");return a1.nodeType===1&&a0&&a0.nodeValue===aZ}}aW.removeChild(aX);aW=aX=null})();(function(){var aW=document.createElement("div");aW.appendChild(document.createComment(""));if(aW.getElementsByTagName("*").length>0){aM.find.TAG=function(aX,a1){var a0=a1.getElementsByTagName(aX[1]);if(aX[1]==="*"){var aZ=[];for(var aY=0;a0[aY];aY++){if(a0[aY].nodeType===1){aZ.push(a0[aY])}}a0=aZ}return a0}}aW.innerHTML="";if(aW.firstChild&&typeof aW.firstChild.getAttribute!=="undefined"&&aW.firstChild.getAttribute("href")!=="#"){aM.attrHandle.href=function(aX){return aX.getAttribute("href",2)}}aW=null})();if(document.querySelectorAll){(function(){var aW=aG,aY=document.createElement("div");aY.innerHTML="

    ";if(aY.querySelectorAll&&aY.querySelectorAll(".TEST").length===0){return}aG=function(a2,a1,aZ,a0){a1=a1||document;if(!a0&&a1.nodeType===9&&!aH(a1)){try{return aO(a1.querySelectorAll(a2),aZ)}catch(a3){}}return aW(a2,a1,aZ,a0)};for(var aX in aW){aG[aX]=aW[aX]}aY=null})()}(function(){var aW=document.createElement("div");aW.innerHTML="
    ";if(!aW.getElementsByClassName||aW.getElementsByClassName("e").length===0){return}aW.lastChild.className="e";if(aW.getElementsByClassName("e").length===1){return}aM.order.splice(1,0,"CLASS");aM.find.CLASS=function(aX,aY,aZ){if(typeof aY.getElementsByClassName!=="undefined"&&!aZ){return aY.getElementsByClassName(aX[1])}};aW=null})();function K(aX,a2,a1,a5,a3,a4){for(var aZ=0,aY=a5.length;aZ0){a0=aW;break}}}aW=aW[aX]}a5[aZ]=a0}}}var aN=document.compareDocumentPosition?function(aX,aW){return aX.compareDocumentPosition(aW)&16}:function(aX,aW){return aX!==aW&&(aX.contains?aX.contains(aW):true)};var aH=function(aW){var aX=(aW?aW.ownerDocument||aW:0).documentElement;return aX?aX.nodeName!=="HTML":false};var aT=function(aW,a3){var aZ=[],a0="",a1,aY=a3.nodeType?[a3]:a3;while((a1=aM.match.PSEUDO.exec(aW))){a0+=a1[0];aW=aW.replace(aM.match.PSEUDO,"")}aW=aM.relative[aW]?aW+"*":aW;for(var a2=0,aX=aY.length;a2{1}, чтобы просмотривать этот контент.',shared:'Чтобы просмотреть этот контент, вы должны установить и {1}, и {3}.',either:'Вы должны установить или {1} плагин, или {3}, чтобы просмотреть этот контент.'}};var D,at="sb-drag-proxy",E,j,ag;function ax(){E={x:0,y:0,startX:null,startY:null}}function aA(){var K=Q.dimensions;aC(j.style,{height:K.innerHeight+"px",width:K.innerWidth+"px"})}function O(){ax();var K=["position:absolute","cursor:"+(Q.isGecko?"-moz-grab":"move"),"background-color:"+(Q.isIE?"#fff;filter:alpha(opacity=0)":"transparent")].join(";");Q.appendHTML(Q.skin.body,'
    ');j=ad(at);aA();F(j,"mousedown",L)}function B(){if(j){M(j,"mousedown",L);C(j);j=null}ag=null}function L(S){n(S);var K=V(S);E.startX=K[0];E.startY=K[1];ag=ad(Q.player.id);F(document,"mousemove",H);F(document,"mouseup",i);if(Q.isGecko){j.style.cursor="-moz-grabbing"}}function H(aI){var K=Q.player,aJ=Q.dimensions,aH=V(aI);var aG=aH[0]-E.startX;E.startX+=aG;E.x=Math.max(Math.min(0,E.x+aG),aJ.innerWidth-K.width);var S=aH[1]-E.startY;E.startY+=S;E.y=Math.max(Math.min(0,E.y+S),aJ.innerHeight-K.height);aC(ag.style,{left:E.x+"px",top:E.y+"px"})}function i(){M(document,"mousemove",H);M(document,"mouseup",i);if(Q.isGecko){j.style.cursor="-moz-grab"}}Q.img=function(S,aG){this.obj=S;this.id=aG;this.ready=false;var K=this;D=new Image();D.onload=function(){K.height=S.height?parseInt(S.height,10):D.height;K.width=S.width?parseInt(S.width,10):D.width;K.ready=true;D.onload=null;D=null};D.src=S.content};Q.img.ext=["bmp","gif","jpg","jpeg","png"];Q.img.prototype={append:function(S,aI){var aG=document.createElement("img");aG.id=this.id;aG.src=this.obj.content;aG.style.position="absolute";var K,aH;if(aI.oversized&&Q.options.handleOversize=="resize"){K=aI.innerHeight;aH=aI.innerWidth}else{K=this.height;aH=this.width}aG.setAttribute("height",K);aG.setAttribute("width",aH);S.appendChild(aG)},remove:function(){var K=ad(this.id);if(K){C(K)}B();if(D){D.onload=null;D=null}},onLoad:function(){var K=Q.dimensions;if(K.oversized&&Q.options.handleOversize=="drag"){O()}},onWindowResize:function(){var aH=Q.dimensions;switch(Q.options.handleOversize){case"resize":var K=ad(this.id);K.height=aH.innerHeight;K.width=aH.innerWidth;break;case"drag":if(ag){var aG=parseInt(Q.getStyle(ag,"top")),S=parseInt(Q.getStyle(ag,"left"));if(aG+this.height=aJ){clearInterval(S);S=null;aM(aG,aN);if(aR){aR()}}else{aM(aG,aO+aK((aI-aH)/aL)*aP)}},10)}function aB(){aa.style.height=Q.getWindowSize("Height")+"px";aa.style.width=Q.getWindowSize("Width")+"px"}function aE(){aa.style.top=document.documentElement.scrollTop+"px";aa.style.left=document.documentElement.scrollLeft+"px"}function ay(K){if(K){aF(Y,function(S,aG){aG[0].style.visibility=aG[1]||""})}else{Y=[];aF(Q.options.troubleElements,function(aG,S){aF(document.getElementsByTagName(S),function(aH,aI){Y.push([aI,aI.style.visibility]);aI.style.visibility="hidden"})})}}function r(aG,K){var S=ad("sb-nav-"+aG);if(S){S.style.display=K?"":"none"}}function ah(K,aJ){var aI=ad("sb-loading"),aG=Q.getCurrent().player,aH=(aG=="img"||aG=="html");if(K){Q.setOpacity(aI,0);aI.style.display="block";var S=function(){Q.clearOpacity(aI);if(aJ){aJ()}};if(aH){N(aI,"opacity",1,Q.options.fadeDuration,S)}else{S()}}else{var S=function(){aI.style.display="none";Q.clearOpacity(aI);if(aJ){aJ()}};if(aH){N(aI,"opacity",0,Q.options.fadeDuration,S)}else{S()}}}function t(aO){var aJ=Q.getCurrent();ad("sb-title-inner").innerHTML=aJ.title||"";var aP,aL,S,aQ,aM;if(Q.options.displayNav){aP=true;var aN=Q.gallery.length;if(aN>1){if(Q.options.continuous){aL=aM=true}else{aL=(aN-1)>Q.current;aM=Q.current>0}}if(Q.options.slideshowDelay>0&&Q.hasNext()){aQ=!Q.isPaused();S=!aQ}}else{aP=aL=S=aQ=aM=false}r("close",aP);r("next",aL);r("play",S);r("pause",aQ);r("previous",aM);var K="";if(Q.options.displayCounter&&Q.gallery.length>1){var aN=Q.gallery.length;if(Q.options.counterType=="skip"){var aI=0,aH=aN,aG=parseInt(Q.options.counterLimit)||0;if(aG2){var aK=Math.floor(aG/2);aI=Q.current-aK;if(aI<0){aI+=aN}aH=Q.current+(aG-aK);if(aH>aN){aH-=aN}}while(aI!=aH){if(aI==aN){aI=0}K+='"}}else{K=[Q.current+1,Q.lang.of,aN].join(" ")}}ad("sb-counter").innerHTML=K;aO()}function U(aH){var K=ad("sb-title-inner"),aG=ad("sb-info-inner"),S=0.35;K.style.visibility=aG.style.visibility="";if(K.innerHTML!=""){N(K,"marginTop",0,S)}N(aG,"marginTop",0,S,aH)}function av(aG,aM){var aK=ad("sb-title"),K=ad("sb-info"),aH=aK.offsetHeight,aI=K.offsetHeight,aJ=ad("sb-title-inner"),aL=ad("sb-info-inner"),S=(aG?0.35:0);N(aJ,"marginTop",aH,S);N(aL,"marginTop",aI*-1,S,function(){aJ.style.visibility=aL.style.visibility="hidden";aM()})}function ac(K,aH,S,aJ){var aI=ad("sb-wrapper-inner"),aG=(S?Q.options.resizeDuration:0);N(Z,"top",aH,aG);N(aI,"height",K,aG,aJ)}function ar(K,aH,S,aI){var aG=(S?Q.options.resizeDuration:0);N(Z,"left",aH,aG);N(Z,"width",K,aG,aI)}function ak(aM,aG){var aI=ad("sb-body-inner"),aM=parseInt(aM),aG=parseInt(aG),S=Z.offsetHeight-aI.offsetHeight,K=Z.offsetWidth-aI.offsetWidth,aK=ae.offsetHeight,aL=ae.offsetWidth,aJ=parseInt(Q.options.viewportPadding)||20,aH=(Q.player&&Q.options.handleOversize!="drag");return Q.setDimensions(aM,aG,aK,aL,S,K,aJ,aH)}var T={};T.markup='';T.options={animSequence:"sync",counterLimit:10,counterType:"default",displayCounter:true,displayNav:true,fadeDuration:0.35,initialHeight:160,initialWidth:320,modal:false,overlayColor:"#000",overlayOpacity:0.5,resizeDuration:0.35,showOverlay:true,troubleElements:["select","object","embed","canvas"]};T.init=function(){Q.appendHTML(document.body,s(T.markup,Q.lang));T.body=ad("sb-body-inner");aa=ad("sb-container");ae=ad("sb-overlay");Z=ad("sb-wrapper");if(!x){aa.style.position="absolute"}if(!h){var aG,K,S=/url\("(.*\.png)"\)/;aF(q,function(aI,aJ){aG=ad(aJ);if(aG){K=Q.getStyle(aG,"backgroundImage").match(S);if(K){aG.style.backgroundImage="none";aG.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,src="+K[1]+",sizingMethod=scale);"}}})}var aH;F(au,"resize",function(){if(aH){clearTimeout(aH);aH=null}if(A){aH=setTimeout(T.onWindowResize,10)}})};T.onOpen=function(K,aG){m=false;aa.style.display="block";aB();var S=ak(Q.options.initialHeight,Q.options.initialWidth);ac(S.innerHeight,S.top);ar(S.width,S.left);if(Q.options.showOverlay){ae.style.backgroundColor=Q.options.overlayColor;Q.setOpacity(ae,0);if(!Q.options.modal){F(ae,"click",Q.close)}ao=true}if(!x){aE();F(au,"scroll",aE)}ay();aa.style.visibility="visible";if(ao){N(ae,"opacity",Q.options.overlayOpacity,Q.options.fadeDuration,aG)}else{aG()}};T.onLoad=function(S,K){ah(true);while(T.body.firstChild){C(T.body.firstChild)}av(S,function(){if(!A){return}if(!S){Z.style.visibility="visible"}t(K)})};T.onReady=function(aH){if(!A){return}var S=Q.player,aG=ak(S.height,S.width);var K=function(){U(aH)};switch(Q.options.animSequence){case"hw":ac(aG.innerHeight,aG.top,true,function(){ar(aG.width,aG.left,true,K)});break;case"wh":ar(aG.width,aG.left,true,function(){ac(aG.innerHeight,aG.top,true,K)});break;default:ar(aG.width,aG.left,true);ac(aG.innerHeight,aG.top,true,K)}};T.onShow=function(K){ah(false,K);m=true};T.onClose=function(){if(!x){M(au,"scroll",aE)}M(ae,"click",Q.close);Z.style.visibility="hidden";var K=function(){aa.style.visibility="hidden";aa.style.display="none";ay(true)};if(ao){N(ae,"opacity",0,Q.options.fadeDuration,K)}else{K()}};T.onPlay=function(){r("play",false);r("pause",true)};T.onPause=function(){r("pause",false);r("play",true)};T.onWindowResize=function(){if(!m){return}aB();var K=Q.player,S=ak(K.height,K.width);ar(S.width,S.left);ac(S.innerHeight,S.top);if(K.onWindowResize){K.onWindowResize()}};Q.skin=T;au.Shadowbox=Q})(window); \ No newline at end of file diff --git a/frontend/web/js/slides.min.jquery.js b/frontend/web/js/slides.min.jquery.js new file mode 100644 index 0000000..1a1fcdd --- /dev/null +++ b/frontend/web/js/slides.min.jquery.js @@ -0,0 +1,20 @@ +/* +* Slides, A Slideshow Plugin for jQuery +* Intructions: http://slidesjs.com +* By: Nathan Searles, http://nathansearles.com +* Version: 1.1.9 +* Updated: September 5th, 2011 +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +(function(a){a.fn.slides=function(b){return b=a.extend({},a.fn.slides.option,b),this.each(function(){function w(g,h,i){if(!p&&o){p=!0,b.animationStart(n+1);switch(g){case"next":l=n,k=n+1,k=e===k?0:k,r=f*2,g=-f*2,n=k;break;case"prev":l=n,k=n-1,k=k===-1?e-1:k,r=0,g=0,n=k;break;case"pagination":k=parseInt(i,10),l=a("."+b.paginationClass+" li."+b.currentClass+" a",c).attr("href").match("[^#/]+$"),k>l?(r=f*2,g=-f*2):(r=0,g=0),n=k}h==="fade"?b.crossfade?d.children(":eq("+k+")",c).css({zIndex:10}).fadeIn(b.fadeSpeed,b.fadeEasing,function(){b.autoHeight?d.animate({height:d.children(":eq("+k+")",c).outerHeight()},b.autoHeightSpeed,function(){d.children(":eq("+l+")",c).css({display:"none",zIndex:0}),d.children(":eq("+k+")",c).css({zIndex:0}),b.animationComplete(k+1),p=!1}):(d.children(":eq("+l+")",c).css({display:"none",zIndex:0}),d.children(":eq("+k+")",c).css({zIndex:0}),b.animationComplete(k+1),p=!1)}):d.children(":eq("+l+")",c).fadeOut(b.fadeSpeed,b.fadeEasing,function(){b.autoHeight?d.animate({height:d.children(":eq("+k+")",c).outerHeight()},b.autoHeightSpeed,function(){d.children(":eq("+k+")",c).fadeIn(b.fadeSpeed,b.fadeEasing)}):d.children(":eq("+k+")",c).fadeIn(b.fadeSpeed,b.fadeEasing,function(){a.browser.msie&&a(this).get(0).style.removeAttribute("filter")}),b.animationComplete(k+1),p=!1}):(d.children(":eq("+k+")").css({left:r,display:"block"}),b.autoHeight?d.animate({left:g,height:d.children(":eq("+k+")").outerHeight()},b.slideSpeed,b.slideEasing,function(){d.css({left:-f}),d.children(":eq("+k+")").css({left:f,zIndex:5}),d.children(":eq("+l+")").css({left:f,display:"none",zIndex:0}),b.animationComplete(k+1),p=!1}):d.animate({left:g},b.slideSpeed,b.slideEasing,function(){d.css({left:-f}),d.children(":eq("+k+")").css({left:f,zIndex:5}),d.children(":eq("+l+")").css({left:f,display:"none",zIndex:0}),b.animationComplete(k+1),p=!1})),b.pagination&&(a("."+b.paginationClass+" li."+b.currentClass,c).removeClass(b.currentClass),a("."+b.paginationClass+" li:eq("+k+")",c).addClass(b.currentClass))}}function x(){clearInterval(c.data("interval"))}function y(){b.pause?(clearTimeout(c.data("pause")),clearInterval(c.data("interval")),u=setTimeout(function(){clearTimeout(c.data("pause")),v=setInterval(function(){w("next",i)},b.play),c.data("interval",v)},b.pause),c.data("pause",u)):x()}a("."+b.container,a(this)).children().wrapAll('
    ');var c=a(this),d=a(".slides_control",c),e=d.children().size(),f=d.children().outerWidth(),g=d.children().outerHeight(),h=b.start-1,i=b.effect.indexOf(",")<0?b.effect:b.effect.replace(" ","").split(",")[0],j=b.effect.indexOf(",")<0?i:b.effect.replace(" ","").split(",")[1],k=0,l=0,m=0,n=0,o,p,q,r,s,t,u,v;if(e<2)return a("."+b.container,a(this)).fadeIn(b.fadeSpeed,b.fadeEasing,function(){o=!0,b.slidesLoaded()}),a("."+b.next+", ."+b.prev).fadeOut(0),!1;if(e<2)return;h<0&&(h=0),h>e&&(h=e-1),b.start&&(n=h),b.randomize&&d.randomize(),a("."+b.container,c).css({overflow:"hidden",position:"relative"}),d.children().css({position:"absolute",top:0,left:d.children().outerWidth(),zIndex:0,display:"none"}),d.css({position:"relative",width:f*3,height:g,left:-f}),a("."+b.container,c).css({display:"block"}),b.autoHeight&&(d.children().css({height:"auto"}),d.animate({height:d.children(":eq("+h+")").outerHeight()},b.autoHeightSpeed));if(b.preload&&d.find("img:eq("+h+")").length){a("."+b.container,c).css({background:"url("+b.preloadImage+") no-repeat 50% 50%"});var z=d.find("img:eq("+h+")").attr("src")+"?"+(new Date).getTime();a("img",c).parent().attr("class")!="slides_control"?t=d.children(":eq(0)")[0].tagName.toLowerCase():t=d.find("img:eq("+h+")"),d.find("img:eq("+h+")").attr("src",z).load(function(){d.find(t+":eq("+h+")").fadeIn(b.fadeSpeed,b.fadeEasing,function(){a(this).css({zIndex:5}),a("."+b.container,c).css({background:""}),o=!0,b.slidesLoaded()})})}else d.children(":eq("+h+")").fadeIn(b.fadeSpeed,b.fadeEasing,function(){o=!0,b.slidesLoaded()});b.bigTarget&&(d.children().css({cursor:"pointer"}),d.children().click(function(){return w("next",i),!1})),b.hoverPause&&b.play&&(d.bind("mouseover",function(){x()}),d.bind("mouseleave",function(){y()})),b.generateNextPrev&&(a("."+b.container,c).after('Prev'),a("."+b.prev,c).after('Next')),a("."+b.next,c).click(function(a){a.preventDefault(),b.play&&y(),w("next",i)}),a("."+b.prev,c).click(function(a){a.preventDefault(),b.play&&y(),w("prev",i)}),b.generatePagination?(b.prependPagination?c.prepend("
      "):c.append("
        "),d.children().each(function(){a("."+b.paginationClass,c).append('
      • '+(m+1)+"
      • "),m++})):a("."+b.paginationClass+" li a",c).each(function(){a(this).attr("href","#"+m),m++}),a("."+b.paginationClass+" li:eq("+h+")",c).addClass(b.currentClass),a("."+b.paginationClass+" li a",c).click(function(){return b.play&&y(),q=a(this).attr("href").match("[^#/]+$"),n!=q&&w("pagination",j,q),!1}),a("a.link",c).click(function(){return b.play&&y(),q=a(this).attr("href").match("[^#/]+$")-1,n!=q&&w("pagination",j,q),!1}),b.play&&(v=setInterval(function(){w("next",i)},b.play),c.data("interval",v))})},a.fn.slides.option={preload:!1,preloadImage:"/img/loading.gif",container:"slides_container",generateNextPrev:!1,next:"next",prev:"prev",pagination:!0,generatePagination:!0,prependPagination:!1,paginationClass:"pagination",currentClass:"current",fadeSpeed:350,fadeEasing:"",slideSpeed:350,slideEasing:"",start:1,effect:"slide",crossfade:!1,randomize:!1,play:0,pause:0,hoverPause:!1,autoHeight:!1,autoHeightSpeed:350,bigTarget:!1,animationStart:function(){},animationComplete:function(){},slidesLoaded:function(){}},a.fn.randomize=function(b){function c(){return Math.round(Math.random())-.5}return a(this).each(function(){var d=a(this),e=d.children(),f=e.length;if(f>1){e.hide();var g=[];for(i=0;i + + +jCarousel: Changelog + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        +

        Changelog

        +

        Version 0.2.8 - 2011-04-14

        +
          +
        • Fixed selecting only direct childs of the current list (#61).
        • +
        • Added static method to set windowLoaded to true manually (#60).
        • +
        • Added setupCallback.
        • +
        • Optimized resize callback.
        • +
        • Added animationStepCallback option (Thanks scy).
        • +
        • Wider support of border-radius, and support of :focus in addition to :hover (Thanks lespacedunmatin).
        • +
        +

        Version 0.2.7 - 2010-10-06

        +
          +
        • Fixed bug with autoscrolling introduced while fixing #49.
        • +
        +

        Version 0.2.6 - 2010-10-05

        +
          +
        • Fixed item only partially visible when defined as start item (#22).
        • +
        • Fixed multiple binds on prev/next buttons (#26).
        • +
        • Added firing of button callbacks also if no buttons are specified (#39).
        • +
        • Fixed stopAuto() not stopping while in animation (#49).
        • +
        +

        Version 0.2.5 - 2010-08-13

        +
          +
        • Added RTL (Right-To-Left) support.
        • +
        • Added automatic deletion of cloned elements for circular carousels.
        • +
        • Added new option itemFallbackDimension (#7).
        • +
        • Added new section "Defining the number of visible items" to documentation.
        • +
        +

        Version 0.2.4 - 2010-04-19

        +
          +
        • Updated jQuery to version 1.4.2.
        • +
        • jCarousel instance can now be retrieved by $(selector).data('jcarousel').
        • +
        • Support for static circular carousels out of the box.
        • +
        • Removed not longer needed core stylsheet jquery.jcarousel.css. Styles are now set by javascript or skin stylesheets.
        • +
        +

        Version 0.2.3 - 2008-04-07

        +
          +
        • Updated jQuery to version 1.2.3.
        • +
        • Fixed (hopefully) issues with Safari.
        • +
        • Added new example "Multiple carousels on one page".
        • +
        +

        Version 0.2.2 - 2007-11-07

        +
          +
        • Fixed bug with nested li elements reported by John + Fiala.
        • +
        • Fixed bug on initialization with too few elements reported by Glenn + Nilsson.
        • +
        +

        Version 0.2.1 - 2007-10-12

        +
          +
        • Readded the option start for a custom start position. The + old option start is renamed to offset.
        • +
        • New example for dynamic content loading via Ajax from a PHP script.
        • +
        • Fixed a bug with variable item widths/heights.
        • +
        + +

        Version 0.2.0-beta - 2007-05-07

        +
          +
        • Complete rewrite of the plugin. See this post for further informations.
        • +
        +

        Version 0.1.6 - 2007-01-22

        +
          +
        • New public methods size() and init().
        • +
        • Added new example "Carousel with external controls".
        • +
        +

        Version 0.1.5 - 2007-01-08

        +
          +
        • Code modifications to work with the jQuery 1.1.
        • +
        • Renamed the js file to jquery.jcarousel.pack.js as noted in the jquery docs.
        • +
        +

        Version 0.1.4 - 2006-12-12

        +
          +
        • New configuration option autoScrollResumeOnMouseout.
        • +
        +

        Version 0.1.3 - 2006-12-02

        +
          +
        • New configuration option itemStart. Sets the index of the + item to start with.
        • +
        +

        Version 0.1.2 - 2006-11-28

        +
          +
        • New configuration option wrapPrev. Behaves like wrap + but scrolls to the end when clicking the prev-button at the start of the + carousel. (Note: This may produce unexpected results with dynamic loaded + content. You must ensure to load the complete carousel on initialisation).
        • +
        • Moved call of the button handlers at the end of the buttons() method. + This lets the callbacks change the behaviours assigned by jCarousel.
        • +
        +

        Version 0.1.1 - 2006-10-25

        +
          +
        • The item handler callback options accept now a hash of two functions which + are triggered before and after animation.
        • +
        • The item handler callback functions accept now a fourth parameter state which + holds one of three states: next, prev or init.
        • +
        • New configuration option autoScrollStopOnMouseover
        • +
        +

        Version 0.1.0 - 2006-09-21

        +
          +
        • Stable release.
        • +
        • Internal source code rewriting to fit more into the jQuery + plugin guidelines.
        • +
        • Added inline documentation.
        • +
        • Changed licence to a dual licence model (MIT and GPL).
        • +
        +

        Version 0.1.0-RC1 - 2006-09-13

        +
          +
        • Virtual item attribute jCarouselItemIdx is replaced by a class jcarousel-item-n.
        • +
        • The item callback functions accept a third parameter idx which + holds the position of the item in the list (formerly the attribute jCarouselItemIdx).
        • +
        • Fixed bug with margin-right in Safari.
        • +
        +

        Version 0.1.0-gamma - 2006-09-07

        +
          +
        • Added auto-wrapping of the required html markup around lists (ul + and ol) if jQuery().jcarousel() is assigned directly to them.
        • +
        • Added support for new callback functions itemFirstInHandler, itemFirstOutHandler, itemLastInHandler, itemLastOutHandler, itemVisibleInHandler, itemVisibleOutHandler.
        • +
        • General sourcecode rewriting.
        • +
        • Fixed bug not setting <li> index attributes correctly.
        • +
        • Changed default itemWidth and itemHeight to 75.
        • +
        +

        Version 0.1.0-beta - 2006-09-02

        +
          +
        • Initial release.
        • +
        +
        + + diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_ajax.html b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_ajax.html new file mode 100644 index 0000000..7082721 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_ajax.html @@ -0,0 +1,83 @@ + + + +jCarousel Examples + + + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Carousel with dynamic content loading via Ajax

        +

        + The data is loaded dynamically from a simple text file which contains the image urls. +

        + +
        +
          + +
        +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_ajax.txt b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_ajax.txt new file mode 100644 index 0000000..4ff426e --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_ajax.txt @@ -0,0 +1,10 @@ +http://static.flickr.com/66/199481236_dc98b5abb3_s.jpg| +http://static.flickr.com/75/199481072_b4a0d09597_s.jpg| +http://static.flickr.com/57/199481087_33ae73a8de_s.jpg| +http://static.flickr.com/77/199481108_4359e6b971_s.jpg| +http://static.flickr.com/58/199481143_3c148d9dd3_s.jpg| +http://static.flickr.com/72/199481203_ad4cdcf109_s.jpg| +http://static.flickr.com/58/199481218_264ce20da0_s.jpg| +http://static.flickr.com/69/199481255_fdfe885f87_s.jpg| +http://static.flickr.com/60/199480111_87d4cb3e38_s.jpg| +http://static.flickr.com/70/229228324_08223b70fa_s.jpg \ No newline at end of file diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_ajax_php.html b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_ajax_php.html new file mode 100644 index 0000000..26cf676 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_ajax_php.html @@ -0,0 +1,95 @@ + + + +jCarousel Examples + + + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Carousel with dynamic content loading via Ajax

        +

        + The data is loaded dynamically from a simple text file which contains the image urls. +

        + +
        +
          + +
        +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_ajax_php.php b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_ajax_php.php new file mode 100644 index 0000000..00b4313 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_ajax_php.php @@ -0,0 +1,43 @@ +'; + +// Return total number of images so the callback +// can set the size of the carousel. +echo ' ' . $total . ''; + +foreach ($selected as $img) { + echo ' ' . $img . ''; +} + +echo ''; + +?> \ No newline at end of file diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_flickr_api.html b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_flickr_api.html new file mode 100644 index 0000000..658d255 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_flickr_api.html @@ -0,0 +1,149 @@ + + + +jCarousel Examples + + + + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Carousel with dynamic content loading via Ajax from the Flickr API

        +

        + The data is loaded dynamically from the Flickr API + method flickr.photos.getRecent. + All items not in the visible range are removed from the list to keep the list small. +

        +

        + Note: There are constantly added new photos at flickr, so you possibly get different photos at certain positions. +

        + +
        +
          + +
        +
        + +

        + If you're using this example on your own server, don't forget to set your API key in dynamic_flickr_api.php! +

        + +
        + + diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_flickr_api.php b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_flickr_api.php new file mode 100644 index 0000000..2c1e02c --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_flickr_api.php @@ -0,0 +1,29 @@ + \ No newline at end of file diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_flickr_feed.html b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_flickr_feed.html new file mode 100644 index 0000000..db10596 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_flickr_feed.html @@ -0,0 +1,190 @@ + + + +jCarousel Examples + + + + + + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Carousel with dynamic content loading via Ajax from the Flickr photo stream

        +

        + The data is loaded dynamically from the Flickr + public photos feed (format: JSON) + and can be filtered by tags. +

        + +
        +
          + +
        +
        + + + + +
        +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_flickr_feed.php b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_flickr_feed.php new file mode 100644 index 0000000..7e68919 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_flickr_feed.php @@ -0,0 +1,14 @@ + \ No newline at end of file diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_javascript.html b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_javascript.html new file mode 100644 index 0000000..7043dd2 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/dynamic_javascript.html @@ -0,0 +1,86 @@ + + + +jCarousel Examples + + + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Carousel with dynamic content loading via JavaScript

        +

        + The data is loaded dynamically from an javascript array. +

        + +
          + +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/arrow-down.gif b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/arrow-down.gif new file mode 100644 index 0000000..c8012ba Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/arrow-down.gif differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/arrow-up.gif b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/arrow-up.gif new file mode 100644 index 0000000..08bc203 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/arrow-up.gif differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/loading-small.gif b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/loading-small.gif new file mode 100644 index 0000000..b25ada9 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/loading-small.gif differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/loading-thickbox.gif b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/loading-thickbox.gif new file mode 100644 index 0000000..82290f4 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/loading-thickbox.gif differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/loading.gif b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/loading.gif new file mode 100644 index 0000000..5c7f808 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/images/loading.gif differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_easing.html b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_easing.html new file mode 100644 index 0000000..d48f4a8 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_easing.html @@ -0,0 +1,73 @@ + + + +jCarousel Examples + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Carousel with custom animation effect

        +

        + This example shows how to use custom animation effects (uses Robert + Penners easing equations). +

        + + +
        +
          +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        +
        +
        + + diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_flexible.html b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_flexible.html new file mode 100644 index 0000000..d92a040 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_flexible.html @@ -0,0 +1,72 @@ + + + +jCarousel Examples + + + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Flexible carousel

        +

        + This example shows a carousel with flexible item width. In this case, always + 4 items are visible (resize the browser window to see what happens). +

        + +
          +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_textscroller.html b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_textscroller.html new file mode 100644 index 0000000..c2bcaa0 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_textscroller.html @@ -0,0 +1,192 @@ + + + +jCarousel Examples + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        +

        Using jCarousel as Textscroller

        +

        + This example shows how to use jCarousel as a Textscroller. The data is loaded from the jQuery Blog RSS-Feed. +

        + +
        +
          + +
        +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_textscroller.php b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_textscroller.php new file mode 100644 index 0000000..a8ead24 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_textscroller.php @@ -0,0 +1,15 @@ + \ No newline at end of file diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_thickbox.html b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_thickbox.html new file mode 100644 index 0000000..7a15a86 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/special_thickbox.html @@ -0,0 +1,102 @@ + + + +jCarousel Examples + + + + + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        jCarousel and Thickbox 3

        +

        + Example of jCarousel working together with Thickbox 3. +

        + +
          + +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_auto.html b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_auto.html new file mode 100644 index 0000000..8200685 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_auto.html @@ -0,0 +1,79 @@ + + + +jCarousel Examples + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Carousel with autoscrolling

        +

        + Autoscrolling is enabled and the interval is set to 2 seconds. + Autoscrolling pauses when the user moves the cursor over the images and stops + when the user clicks the next or prev button. wrap is set to + "last". +

        + +
          +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_callbacks.html b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_callbacks.html new file mode 100644 index 0000000..9e57d45 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_callbacks.html @@ -0,0 +1,235 @@ + + + +jCarousel Examples + + + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Carousel illustrating the callback functions

        +

        + This carousel has registered all available callback functions and displays + information about the state of the items and buttons. Additionally the width + of the carousel is set to auto. Resize the browser window and see what happens. +

        + + +
          +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        + +

        + +
        + + diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_circular.html b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_circular.html new file mode 100644 index 0000000..bfdb2aa --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_circular.html @@ -0,0 +1,56 @@ + + + +jCarousel Examples + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Circular carousel

        +

        + This example shows a simple circular carousel. +

        + +
          +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_controls.html b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_controls.html new file mode 100644 index 0000000..d8fdeab --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_controls.html @@ -0,0 +1,166 @@ + + + +jCarousel Examples + + + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Carousel with external controls

        +

        + This carousel shows how to control it from outside. +

        + +
        +
        + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 +
        + +
          +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        + +
        +
        + « Prev + + Next » +
        +
        + +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_multiple.html b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_multiple.html new file mode 100644 index 0000000..1af9089 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_multiple.html @@ -0,0 +1,95 @@ + + + +jCarousel Examples + + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Multiple carousels on one page

        +

        + This example shows how to use multiple carousels on one page with different + skins and configurations. +

        + + + +
        + + + +
        + + + +
        + + diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_simple.html b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_simple.html new file mode 100644 index 0000000..018d649 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_simple.html @@ -0,0 +1,54 @@ + + + +jCarousel Examples + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Simple carousel

        +

        + This is the most simple usage of the carousel with no configuration options. +

        + +
          +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_start.html b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_start.html new file mode 100644 index 0000000..9b3dc40 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_start.html @@ -0,0 +1,53 @@ + + + +jCarousel Examples + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Carousel with custom start position

        + +
          +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_vertical.html b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_vertical.html new file mode 100644 index 0000000..4453e5b --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/static_vertical.html @@ -0,0 +1,57 @@ + + + +jCarousel Examples + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Vertical carousel

        +

        + A carousel in vertical orientation with custom prev/next controls, animation + set to "slow" and scroll set to 2. +

        + +
          +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/thickbox/thickbox.css b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/thickbox/thickbox.css new file mode 100644 index 0000000..399c68a --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/thickbox/thickbox.css @@ -0,0 +1,159 @@ +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> global settings needed for thickbox <<<-----------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +*{padding: 0; margin: 0;} + +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> thickbox specific link and font settings <<<------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +#TB_window { + font: 12px Arial, Helvetica, sans-serif; + color: #333333; +} + +#TB_secondLine { + font: 10px Arial, Helvetica, sans-serif; + color:#666666; +} + +#TB_window a:link {color: #666666;} +#TB_window a:visited {color: #666666;} +#TB_window a:hover {color: #000;} +#TB_window a:active {color: #666666;} +#TB_window a:focus{color: #666666;} + +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +#TB_overlay { + position: fixed; + z-index:100; + top: 0px; + left: 0px; + background-color:#000; + filter:alpha(opacity=75); + -moz-opacity: 0.75; + opacity: 0.75; + height:100%; + width:100%; +} + +* html #TB_overlay { /* ie6 hack */ + position: absolute; + height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); +} + +#TB_window { + position: fixed; + background: #ffffff; + z-index: 102; + color:#000000; + display:none; + border: 4px solid #525252; + text-align:left; + top:50%; + left:50%; +} + +* html #TB_window { /* ie6 hack */ +position: absolute; +margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); +} + +#TB_window img#TB_Image { + display:block; + margin: 15px 0 0 15px; + border-right: 1px solid #ccc; + border-bottom: 1px solid #ccc; + border-top: 1px solid #666; + border-left: 1px solid #666; +} + +#TB_caption{ + height:25px; + padding:7px 30px 10px 25px; + float:left; +} + +#TB_closeWindow{ + height:25px; + padding:11px 25px 10px 0; + float:right; +} + +#TB_closeAjaxWindow{ + padding:7px 10px 5px 0; + margin-bottom:1px; + text-align:right; + float:right; +} + +#TB_ajaxWindowTitle{ + float:left; + padding:7px 0 5px 10px; + margin-bottom:1px; +} + +#TB_title{ + background-color:#e8e8e8; + height:27px; +} + +#TB_ajaxContent{ + clear:both; + padding:2px 15px 15px 15px; + overflow:auto; + text-align:left; + line-height:1.4em; +} + +#TB_ajaxContent.TB_modal{ + padding:15px; +} + +#TB_ajaxContent p{ + padding:5px 0px 5px 0px; +} + +#TB_load{ + position: fixed; + display:none; + height:13px; + width:208px; + z-index:103; + top: 50%; + left: 50%; + margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */ +} + +* html #TB_load { /* ie6 hack */ +position: absolute; +margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); +} + +#TB_HideSelect{ + z-index:99; + position:fixed; + top: 0; + left: 0; + background-color:#fff; + border:none; + filter:alpha(opacity=0); + -moz-opacity: 0; + opacity: 0; + height:100%; + width:100%; +} + +* html #TB_HideSelect { /* ie6 hack */ + position: absolute; + height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); +} + +#TB_iframeContent{ + clear:both; + border:none; + margin-bottom:-1px; + margin-top:1px; + _margin-bottom:1px; +} diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/thickbox/thickbox.js b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/thickbox/thickbox.js new file mode 100644 index 0000000..e415594 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/examples/thickbox/thickbox.js @@ -0,0 +1,296 @@ +/* + * Thickbox 3 - One Box To Rule Them All. + * By Cody Lindley (http://www.codylindley.com) + * Copyright (c) 2007 cody lindley + * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php +*/ + +var tb_pathToImage = "images/loadingAnimation.gif"; + +/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/ + +//on page load call tb_init +$(document).ready(function(){ + tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox + imgLoader = new Image();// preload image + imgLoader.src = tb_pathToImage; +}); + +//add thickbox to href & area elements that have a class of .thickbox +function tb_init(domChunk){ + $(domChunk).click(function(){ + var t = this.title || this.name || null; + var a = this.href || this.alt; + var g = this.rel || false; + tb_show(t,a,g); + this.blur(); + return false; + }); +} + +function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link + + try { + if (typeof document.body.style.maxHeight === "undefined") {//if IE 6 + $("body","html").css({height: "100%", width: "100%"}); + $("html").css("overflow","hidden"); + if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6 + $("body").append("
        "); + $("#TB_overlay").click(tb_remove); + } + }else{//all others + if(document.getElementById("TB_overlay") === null){ + $("body").append("
        "); + $("#TB_overlay").click(tb_remove); + } + } + + if(caption===null){caption="";} + $("body").append("
        ");//add loader to the page + $('#TB_load').show();//show loader + + var baseURL; + if(url.indexOf("?")!==-1){ //ff there is a query string involved + baseURL = url.substr(0, url.indexOf("?")); + }else{ + baseURL = url; + } + + var urlString = /\.jpg|\.jpeg|\.png|\.gif|\.bmp/g; + var urlType = baseURL.toLowerCase().match(urlString); + + if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images + + TB_PrevCaption = ""; + TB_PrevURL = ""; + TB_PrevHTML = ""; + TB_NextCaption = ""; + TB_NextURL = ""; + TB_NextHTML = ""; + TB_imageCount = ""; + TB_FoundURL = false; + if(imageGroup){ + TB_TempArray = $("a[@rel="+imageGroup+"]").get(); + for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) { + var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString); + if (!(TB_TempArray[TB_Counter].href == url)) { + if (TB_FoundURL) { + TB_NextCaption = TB_TempArray[TB_Counter].title; + TB_NextURL = TB_TempArray[TB_Counter].href; + TB_NextHTML = "  Next >"; + } else { + TB_PrevCaption = TB_TempArray[TB_Counter].title; + TB_PrevURL = TB_TempArray[TB_Counter].href; + TB_PrevHTML = "  < Prev"; + } + } else { + TB_FoundURL = true; + TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length); + } + } + } + + imgPreloader = new Image(); + imgPreloader.onload = function(){ + imgPreloader.onload = null; + + // Resizing large images - orginal by Christian Montoya edited by me. + var pagesize = tb_getPageSize(); + var x = pagesize[0] - 150; + var y = pagesize[1] - 150; + var imageWidth = imgPreloader.width; + var imageHeight = imgPreloader.height; + if (imageWidth > x) { + imageHeight = imageHeight * (x / imageWidth); + imageWidth = x; + if (imageHeight > y) { + imageWidth = imageWidth * (y / imageHeight); + imageHeight = y; + } + } else if (imageHeight > y) { + imageWidth = imageWidth * (y / imageHeight); + imageHeight = y; + if (imageWidth > x) { + imageHeight = imageHeight * (x / imageWidth); + imageWidth = x; + } + } + // End Resizing + + TB_WIDTH = imageWidth + 30; + TB_HEIGHT = imageHeight + 60; + $("#TB_window").append(""+caption+"" + "
        "+caption+"
        " + TB_imageCount + TB_PrevHTML + TB_NextHTML + "
        close or Esc Key
        "); + + $("#TB_closeWindowButton").click(tb_remove); + + if (!(TB_PrevHTML === "")) { + function goPrev(){ + if($(document).unbind("click",goPrev)){$(document).unbind("click",goPrev);} + $("#TB_window").remove(); + $("body").append("
        "); + tb_show(TB_PrevCaption, TB_PrevURL, imageGroup); + return false; + } + $("#TB_prev").click(goPrev); + } + + if (!(TB_NextHTML === "")) { + function goNext(){ + $("#TB_window").remove(); + $("body").append("
        "); + tb_show(TB_NextCaption, TB_NextURL, imageGroup); + return false; + } + $("#TB_next").click(goNext); + + } + + document.onkeydown = function(e){ + if (e == null) { // ie + keycode = event.keyCode; + } else { // mozilla + keycode = e.which; + } + if(keycode == 27){ // close + tb_remove(); + } else if(keycode == 190){ // display previous image + if(!(TB_NextHTML == "")){ + document.onkeydown = ""; + goNext(); + } + } else if(keycode == 188){ // display next image + if(!(TB_PrevHTML == "")){ + document.onkeydown = ""; + goPrev(); + } + } + }; + + tb_position(); + $("#TB_load").remove(); + $("#TB_ImageOff").click(tb_remove); + $("#TB_window").css({display:"block"}); //for safari using css instead of show + }; + + imgPreloader.src = url; + }else{//code to show html pages + + var queryString = url.replace(/^[^\?]+\??/,''); + var params = tb_parseQuery( queryString ); + + TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no paramaters were added to URL + TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no paramaters were added to URL + ajaxContentW = TB_WIDTH - 30; + ajaxContentH = TB_HEIGHT - 45; + + if(url.indexOf('TB_iframe') != -1){ + urlNoQuery = url.split('TB_'); + $("#TB_window").append("
        "+caption+"
        close or Esc Key
        "); + }else{ + if($("#TB_window").css("display") != "block"){ + if(params['modal'] != "true"){ + $("#TB_window").append("
        "+caption+"
        close or Esc Key
        "); + }else{ + $("#TB_overlay").unbind(); + $("#TB_window").append("
        "); + } + }else{ + $("#TB_ajaxContent")[0].style.width = ajaxContentW +"px"; + $("#TB_ajaxContent")[0].style.height = ajaxContentH +"px"; + $("#TB_ajaxContent")[0].scrollTop = 0; + $("#TB_ajaxWindowTitle").html(caption); + } + } + + $("#TB_closeWindowButton").click(tb_remove); + + if(url.indexOf('TB_inline') != -1){ + $("#TB_ajaxContent").html($('#' + params['inlineId']).html()); + tb_position(); + $("#TB_load").remove(); + $("#TB_window").css({display:"block"}); + }else if(url.indexOf('TB_iframe') != -1){ + tb_position(); + if(frames['TB_iframeContent'] === undefined){//be nice to safari + $("#TB_load").remove(); + $("#TB_window").css({display:"block"}); + $(document).keyup( function(e){ var key = e.keyCode; if(key == 27){tb_remove();}}); + } + }else{ + $("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method + tb_position(); + $("#TB_load").remove(); + tb_init("#TB_ajaxContent a.thickbox"); + $("#TB_window").css({display:"block"}); + }); + } + + } + + if(!params['modal']){ + document.onkeyup = function(e){ + if (e == null) { // ie + keycode = event.keyCode; + } else { // mozilla + keycode = e.which; + } + if(keycode == 27){ // close + tb_remove(); + } + }; + } + + } catch(e) { + //nothing here + } +} + +//helper functions below +function tb_showIframe(){ + $("#TB_load").remove(); + $("#TB_window").css({display:"block"}); +} + +function tb_remove() { + $("#TB_imageOff").unbind("click"); + $("#TB_overlay").unbind("click"); + $("#TB_closeWindowButton").unbind("click"); + $("#TB_window").fadeOut("fast",function(){$('#TB_window,#TB_overlay,#TB_HideSelect').remove();}); + $("#TB_load").remove(); + if (typeof document.body.style.maxHeight == "undefined") {//if IE 6 + $("body","html").css({height: "auto", width: "auto"}); + $("html").css("overflow",""); + } + document.onkeydown = ""; + return false; +} + +function tb_position() { +$("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'}); + if ( !(jQuery.browser.msie && typeof XMLHttpRequest == 'function')) { // take away IE6 + $("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'}); + } +} + +function tb_parseQuery ( query ) { + var Params = {}; + if ( ! query ) {return Params;}// return empty object + var Pairs = query.split(/[;&]/); + for ( var i = 0; i < Pairs.length; i++ ) { + var KeyVal = Pairs[i].split('='); + if ( ! KeyVal || KeyVal.length != 2 ) {continue;} + var key = unescape( KeyVal[0] ); + var val = unescape( KeyVal[1] ); + val = val.replace(/\+/g, ' '); + Params[key] = val; + } + return Params; +} + +function tb_getPageSize(){ + var de = document.documentElement; + var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth; + var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight; + arrayPageSize = [w,h]; + return arrayPageSize; +} diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/img/a12.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/img/a12.png new file mode 100644 index 0000000..9a78622 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/img/a12.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/img/a14.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/img/a14.png new file mode 100644 index 0000000..ca1a769 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/img/a14.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/img/a19.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/img/a19.png new file mode 100644 index 0000000..6405de7 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/img/a19.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/img/b05.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/img/b05.png new file mode 100644 index 0000000..b8481de Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/img/b05.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/img/b12.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/img/b12.png new file mode 100644 index 0000000..db761c7 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/img/b12.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/img/b21.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/img/b21.png new file mode 100644 index 0000000..5aa92bf Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/img/b21.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/img/pagination.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/img/pagination.png new file mode 100644 index 0000000..9593831 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/img/pagination.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/index.html b/frontend/web/js/widget-carousel/FILTER_SLIDER/index.html new file mode 100644 index 0000000..7a3fc68 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/index.html @@ -0,0 +1,516 @@ + + + +jCarousel - Riding carousels with jQuery + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        +

        Author: Jan Sorgalla
        + Version: 0.2.8 (Changelog)
        + Download: jcarousel.tar.gz or jcarousel.zip
        + Source Code: http://github.com/jsor/jcarousel
        + Bugtracker: http://github.com/jsor/jcarousel/issues
        + Licence: Dual licensed under the MIT + and GPL licenses.

        + + +

        Contents

        +
          +
        1. Introduction
        2. +
        3. Examples
        4. +
        5. Getting started
        6. +
        7. Dynamic content loading
        8. +
        9. Accessing the jCarousel instance
        10. +
        11. Defining the number of visible items
        12. +
        13. Configuration
        14. +
        15. Credits
        16. +
        + + +

        Introduction

        +

        jCarousel is a jQuery plugin for controlling + a list of items in horizontal or vertical order. The items, which can be static + HTML content or loaded with (or without) AJAX, can be scrolled back and forth + (with or without animation).

        + + +

        Examples

        +

        The following examples illustrate the possibilities of jCarousel:

        + + + + +

        Getting started

        +

        To use the jCarousel component, include the jQuery + library, the jCarousel source file and a jCarousel skin stylesheet file inside the <head> tag + of your HTML document:

        +
        +<script type="text/javascript" src="/path/to/jquery-1.4.2.min.js"></script>
        +<script type="text/javascript" src="/path/to/lib/jquery.jcarousel.min.js"></script>
        +<link rel="stylesheet" type="text/css" href="/path/to/skin/skin.css" />
        +
        +

        The download package contains some example skin packages. Feel free to build your own skins based on it.

        +

        jCarousel expects a very basic HTML markup structure inside your HTML document:

        +
        +<ul id="mycarousel" class="jcarousel-skin-name">
        +   <!-- The content goes in here -->
        +</ul>
        +
        +

        jCarousel automatically wraps the required HTML markup around the list. The + class attribute applies the jCarousel skin "name" to the + carousel.

        +

        To setup jCarousel, add the following code inside the <head> + tag of your HTML document:

        +
        +<script type="text/javascript">
        +jQuery(document).ready(function() {
        +    jQuery('#mycarousel').jcarousel({
        +        // Configuration goes here
        +    });
        +});
        +</script>
        +
        +

        jCarousel accepts a lot of configuration options, see chapter "Configuration" + for further informations.

        +

        After jCarousel has been initialised, the fully created markup in + the DOM is:

        +
        +<div class="jcarousel-skin-name">
        +  <div class="jcarousel-container">
        +    <div class="jcarousel-clip">
        +      <ul class="jcarousel-list">
        +        <li class="jcarousel-item-1">First item</li>
        +        <li class="jcarousel-item-2">Second item</li>
        +      </ul>
        +    </div>
        +    <div disabled="disabled" class="jcarousel-prev jcarousel-prev-disabled"></div>
        +    <div class="jcarousel-next"></div>
        +  </div>
        +</div>
        +
        + +

        As you can see, there are some elements added which have assigned classes + (in addition to the classes you may have already assigned manually). Feel + free to design your carousel with the classes you can see above.

        +

        Note:

        +
          +
        • The skin class "jcarousel-skin-name" has been moved + from the <ul> to the top <div> element.
        • +
        • The last 2 nested <div>'s under <div class="jcarousel-container"> + are the next/prev buttons of the carousel. The first one illustrates a disabled button, the second an enabled one. The disabled + button has the attribute + disabled (which actually makes no sense for <div> + elements, but you can also use <button> elements or + whatever you want) as well as the additional class jcarousel-prev-disabled + (or jcarousel-next-disabled).
        • +
        • All <li> elements of the list have the class jcarousel-item-n + assigned where n represents the position in the list.
        • +
        • Not shown here is, that all classes are followed by additional classes with a suffix + dependent on the orientation of the carousel, ie. <ul class="jcarousel-list + jcarousel-list-horizontal"> for a horizontal carousel.
        • +
        + + +

        Dynamic content loading

        +

        By passing the callback function itemLoadCallback as configuration + option, you are able to dynamically create <li> items for the content.

        +
        +<script type="text/javascript">
        +jQuery(document).ready(function() {
        +    jQuery('#mycarousel').jcarousel({
        +        itemLoadCallback: itemLoadCallbackFunction
        +    });
        +});
        +</script>
        +

        itemLoadCallbackFunction is a JavaScript function that is called + when the carousel requests a set of items to be loaded. Two parameters are + passed: The instance of the requesting carousel and a flag which indicates + the current state of the carousel ('init', 'prev' or 'next').

        +
        +<script type="text/javascript">
        +function itemLoadCallbackFunction(carousel, state)
        +{
        +    for (var i = carousel.first; i <= carousel.last; i++) {
        +        // Check if the item already exists
        +        if (!carousel.has(i)) {
        +            // Add the item
        +            carousel.add(i, "I'm item #" + i);
        +        }
        +    }
        +};
        +</script>
        +

        jCarousel contains a convenience method add() that can be + passed the index of the item to create and the innerHTML string of the + item to be + created. If the item already exists, it just updates the innerHTML. You can + access the index of the first and last visible element by the public variables carousel.first and carousel.last. +

        + + +

        Accessing the jCarousel instance

        +

        The instance of the carousel will be stored with the data() method of jQuery under the key jcarousel for a simple access.

        +

        If you have created a carousel like:

        +
        +jQuery(document).ready(function() {
        +    jQuery('#mycarousel').jcarousel();
        +});
        +

        You can access the instance with:

        +
        +var carousel = jQuery('#mycarousel').data('jcarousel');
        +

        You can also access methods of the instance directly, for example the add() method: +

        +var index = 1;
        +var html = 'My content of item no. 1';
        +jQuery('#mycarousel').jcarousel('add', index, html);
        + + +

        Defining the number of visible items

        + +

        Sometimes people are confused how to define the number of visible items because there is no option for this as they expect (Yes, there is an option visible, we discuss this later).

        +

        You simply define the number of visible items by defining the width (or height) with the class .jcarousel-clip (or the more distinct .jcarousel-clip-horizontal and .jcarousel-clip-vertical classes) in your skin stylesheet.

        +

        This offers a lot of flexibility, because you can define the width in pixel for a fixed carousel or in percent for a flexible carousel (This example shows a carousel with a clip width in percent, resize the browser to see it in effect).

        +

        So, why there is an option visible? If you set the option visible, jCarousel sets the width of the visible items to always make this number of items visible. Open this example and resize your browser window to see it in effect.

        + + +

        Configuration

        +

        jCarousel accepts a list of options to control the appearance and behaviour + of the carousel. Here is the list of options you may set:

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        PropertyTypeDefaultDescription
        verticalboolfalseSpecifies wether the carousel appears in horizontal or vertical orientation. + Changes the carousel from a left/right style to a up/down style carousel.
        rtlboolfalseSpecifies wether the carousel appears in RTL (Right-To-Left) mode.
        startinteger1The index of the item to start with.
        offsetinteger1The index of the first available item at initialisation.
        sizeintegerNumber of existing <li> elements if size is not passed explicitlyThe number of total items.
        scrollinteger3The number of items to scroll by.
        visibleintegernullIf passed, the width/height of the items will be calculated and set + depending on the width/height of the clipping, so that exactly that + number of items will be visible.
        animationmixed"fast"The speed of the scroll animation as string in jQuery terms ("slow" + or "fast") or milliseconds as integer + (See jQuery Documentation). + If set to 0, animation is turned off.
        easingstringnullThe name of the easing effect that you want to use (See jQuery + Documentation).
        autointeger0Specifies how many seconds to periodically autoscroll the content. + If set to 0 (default) then autoscrolling is turned off. +
        wrapstringnullSpecifies whether to wrap at the first/last item (or both) and jump + back to the start/end. Options are "first", "last", + "both" or "circular" as string. If set to null, + wrapping is turned off (default).
        initCallbackfunctionnullJavaScript function that is called right after initialisation of the + carousel. Two parameters are passed: The instance of the requesting + carousel and the state of the carousel initialisation (init, reset or + reload).
        setupCallbackfunctionnullJavaScript function that is called right after the carousel is completely setup. + One parameter is passed: The instance of the requesting carousel.
        itemLoadCallbackfunctionnullJavaScript function that is called when the carousel requests a set + of items to be loaded. Two parameters are passed: The instance of the + requesting carousel and the state of the carousel action (prev, next + or init). Alternatively, you can pass a hash of one or two functions + which are triggered before and/or after animation: +
        +itemLoadCallback: {
        +  onBeforeAnimation: callback1,
        +  onAfterAnimation: callback2
        +}
        itemFirstInCallback functionnullJavaScript function that is called (after the scroll animation) when + an item becomes the first one in the visible range of the carousel. + Four parameters are passed: The instance of the requesting carousel + and the <li> object itself, the index which indicates + the position of the item in the list and the state of the carousel action + (prev, next or init). Alternatively, you can pass a hash of one or two + functions which are triggered before and/or after animation: +
        +itemFirstInCallback: {
        +  onBeforeAnimation: callback1,
        +  onAfterAnimation: callback2
        +}
        itemFirstOutCallbackfunctionnullJavaScript function that is called (after the scroll animation) when + an item isn't longer the first one in the visible range of the carousel. + Four parameters are passed: The instance of the requesting carousel + and the <li> object itself, the index which indicates + the position of the item in the list and the state of the carousel action + (prev, next or init). Alternatively, you can pass a hash of one or two + functions which are triggered before and/or after animation: +
        +itemFirstOutCallback: {
        +  onBeforeAnimation: callback1,
        +  onAfterAnimation: callback2
        +}
        itemLastInCallbackfunctionnullJavaScript function that is called (after the scroll animation) when + an item becomes the last one in the visible range of the carousel. Four + parameters are passed: The instance of the requesting carousel and the + <li> object itself, the index which indicates the + position of the item in the list and the state of the carousel action + (prev, next or init). Alternatively, you can pass a hash of one or two + functions which are triggered before and/or after animation: +
        +itemLastInCallback: {
        +  onBeforeAnimation: callback1,
        +  onAfterAnimation: callback2
        +}
        itemLastOutCallbackfunctionnullJavaScript function that is called when an item isn't longer the last + one in the visible range of the carousel. Four parameters are passed: + The instance of the requesting carousel and the <li> + object itself, the index which indicates the position of the item in + the list and the state of the carousel action (prev, next or init). + Alternatively, you can pass a hash of one or two functions which are + triggered before and/or after animation: +
        +itemLastOutCallback: {
        +  onBeforeAnimation: callback1,
        +  onAfterAnimation: callback2
        +}
        itemVisibleInCallbackfunctionnullJavaScript function that is called (after the scroll animation) when + an item is in the visible range of the carousel. Four parameters are + passed: The instance of the requesting carousel and the <li> + object itself, the index which indicates the position of the item in + the list and the state of the carousel action (prev, next or init). + Alternatively, you can pass a hash of one or two functions which are + triggered before and/or after animation: +
        +itemVisibleInCallback: {
        +  onBeforeAnimation: callback1,
        +  onAfterAnimation: callback2
        +}
        itemVisibleOutCallbackfunctionnullJavaScript function that is called (after the scroll animation) when + an item isn't longer in the visible range of the carousel. Four parameters + are passed: The instance of the requesting carousel and the <li> + object itself, the index which indicates the position of the item in + the list and the state of the carousel action (prev, next or init). + Alternatively, you can pass a hash of one or two functions which are + triggered before and/or after animation: +
        +itemVisibleOutCallback: {
        +  onBeforeAnimation: callback1,
        +  onAfterAnimation: callback2
        +}
        animationStepCallbackfunctionnullJavaScript function that is called after each animation step. This + function is directly passed to jQuery's .animate() method + as the step parameter. See the jQuery documentation for the + parameters it will receive.
        buttonNextCallbackfunctionnullJavaScript function that is called when the state of the 'next' control + is changing. The responsibility of this method is to enable or disable + the 'next' control. Three parameters are passed: The instance of the + requesting carousel, the control element and a flag indicating whether + the button should be enabled or disabled.
        buttonPrevCallbackfunctionnullJavaScript function that is called when the state of the 'previous' + control is changing. The responsibility of this method is to enable + or disable the 'previous' control. Three parameters are passed: The + instance of the requesting carousel, the control element and a flag + indicating whether the button should be enabled or disabled.
        buttonNextHTMLstring<div></div>The HTML markup for the auto-generated next button. If set to null, + no next-button is created.
        buttonPrevHTMLstring<div></div>The HTML markup for the auto-generated prev button. If set to null, + no prev-button is created.
        buttonNextEventstring"click"Specifies the event which triggers the next scroll.
        buttonPrevEventstring"click"Specifies the event which triggers the prev scroll.
        itemFallbackDimensionintegernullIf, for some reason, jCarousel can not detect the width of an item, you can set a fallback dimension (width or height, depending on the orientation) here to ensure correct calculations.
        + + +

        Credits

        +

        Thanks to John Resig for his fantastic jQuery + library.
        + jCarousel is inspired by the Carousel + Component written by Bill Scott.

        +
        + + diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/arrows_left.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/arrows_left.png new file mode 100644 index 0000000..4252afe Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/arrows_left.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/arrows_right.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/arrows_right.png new file mode 100644 index 0000000..e9468f6 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/arrows_right.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/credits.txt b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/credits.txt new file mode 100644 index 0000000..e5ec8c2 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/credits.txt @@ -0,0 +1 @@ +Button images copyright by Tango Icon Library Team (http://tango.freedesktop.org/Tango_Icon_Library) \ No newline at end of file diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/next-horizontal.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/next-horizontal.png new file mode 100644 index 0000000..6fcd3d9 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/next-horizontal.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/next-vertical.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/next-vertical.png new file mode 100644 index 0000000..066a3e0 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/next-vertical.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/next.jpg b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/next.jpg new file mode 100644 index 0000000..5ad08bf Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/next.jpg differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/next.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/next.png new file mode 100644 index 0000000..b2fb161 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/next.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/prev-horizontal.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/prev-horizontal.png new file mode 100644 index 0000000..36472c0 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/prev-horizontal.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/prev-vertical.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/prev-vertical.png new file mode 100644 index 0000000..bb30f85 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/prev-vertical.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/prev.jpg b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/prev.jpg new file mode 100644 index 0000000..59a2cdb Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/prev.jpg differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/prev.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/prev.png new file mode 100644 index 0000000..426628d Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/prev.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/skin.css b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/skin.css new file mode 100644 index 0000000..90fbd32 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/skin.css @@ -0,0 +1,183 @@ +.jcarousel-skin-tango .jcarousel-container { + +} + +.jcarousel-skin-tango .jcarousel-direction-rtl { + direction: rtl; +} + +.jcarousel-skin-tango .jcarousel-container-horizontal { + width: 240px;text-align:left;border1:1px solid red; + padding: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-container-vertical { + width: 42px; + height: 200px; + padding: 20px 0px; +} + +.jcarousel-skin-tango .jcarousel-clip { + overflow: hidden; +} + +.jcarousel-skin-tango .jcarousel-clip-horizontal { + width: 200px; + height1: 300px; +} + +.jcarousel-skin-tango .jcarousel-clip-vertical { + width: 42px; + height: 200px; + margin:0px;padding:0px; +} + +.jcarousel-skin-tango .jcarousel-item { + width: 42px; + height1: 300px; +} + +.jcarousel-skin-tango .jcarousel-item-horizontal { + margin-left: 0; + margin-right: 10px; +} + +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-item-horizontal { + margin-left: 10px; + margin-right: 0; +} + +.jcarousel-skin-tango .jcarousel-item-vertical { + margin-bottom: 5px; +} + +.jcarousel-skin-tango .jcarousel-item-placeholder { + background: #fff; + color: #000; +} + +/** + * Horizontal Buttons + */ +.jcarousel-skin-tango .jcarousel-next-horizontal { + position: absolute; + top: -40px; + right: 0px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_right.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-next-horizontal { + left: 5px; + right: auto; + background-image: url(prev.jpg); +} + +.jcarousel-skin-tango .jcarousel-next-horizontal:hover, +.jcarousel-skin-tango .jcarousel-next-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-next-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal, +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:hover, +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:focus, +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal { + position: absolute; + top: -40px; + right: 20px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_left.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-prev-horizontal { + left: auto; + right: 5px; + background-image: url(next.jpg); +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal:hover, +.jcarousel-skin-tango .jcarousel-prev-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal, +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:hover, +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:focus, +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +/** + * Vertical Buttons + */ +.jcarousel-skin-tango .jcarousel-next-vertical { + position: absolute; + bottom: 5px; + left: 15px; + width: 11px; + height: 7px; + cursor: pointer; + background: transparent url(v_next.png) no-repeat 0 0; +} + +.jcarousel-skin-tango .jcarousel-next-vertical:hover, +.jcarousel-skin-tango .jcarousel-next-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-next-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-next-disabled-vertical, +.jcarousel-skin-tango .jcarousel-next-disabled-vertical:hover, +.jcarousel-skin-tango .jcarousel-next-disabled-vertical:focus, +.jcarousel-skin-tango .jcarousel-next-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-vertical { + position: absolute; + top: 5px; + left: 15px; + width: 11px; + height: 7px; + cursor: pointer; + background: transparent url(v_prev.png) no-repeat 0 0; +} + +.jcarousel-skin-tango .jcarousel-prev-vertical:hover, +.jcarousel-skin-tango .jcarousel-prev-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical, +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical:hover, +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical:focus, +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/skin2.css b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/skin2.css new file mode 100644 index 0000000..176a868 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/skin2.css @@ -0,0 +1,185 @@ +.jcarousel-skin-tango2 .jcarousel-container { + +} + +.jcarousel-skin-tango2 img{width:50px;float:left;margin-right:20px;} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl { + direction: rtl; +} + +.jcarousel-skin-tango2 .jcarousel-container-horizontal { + width: 240px;text-align:left; + padding: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-container-vertical { + width: 242px; + height: 320px; + padding: 40px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-clip { + overflow: hidden; +} + +.jcarousel-skin-tango2 .jcarousel-clip-horizontal { + width: 200px; + height1: 320px; +} + +.jcarousel-skin-tango2 .jcarousel-clip-vertical { + width: 242px; + height: 320px; + margin:0px;padding:0px; +} + +.jcarousel-skin-tango2 .jcarousel-item { + width: 242px; + height1: 300px; +} + +.jcarousel-skin-tango2 .jcarousel-item-horizontal { + margin-left: 0; + margin-right: 10px; +} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl .jcarousel-item-horizontal { + margin-left: 10px; + margin-right: 0; +} + +.jcarousel-skin-tango2 .jcarousel-item-vertical { + margin-bottom: 5px; +} + +.jcarousel-skin-tango2 .jcarousel-item-placeholder { + background: #fff; + color: #000; +} + +/** + * Horizontal Buttons + */ +.jcarousel-skin-tango2 .jcarousel-next-horizontal { + position: absolute; + top: -40px; + right: 0px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_right.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl .jcarousel-next-horizontal { + left: 5px; + right: auto; + background-image: url(prev.jpg); +} + +.jcarousel-skin-tango2 .jcarousel-next-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-next-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal, +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal:focus, +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-horizontal { + position: absolute; + top: -40px; + right: 20px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_left.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl .jcarousel-prev-horizontal { + left: auto; + right: 5px; + background-image: url(next.jpg); +} + +.jcarousel-skin-tango2 .jcarousel-prev-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-prev-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal:focus, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +/** + * Vertical Buttons + */ +.jcarousel-skin-tango2 .jcarousel-next-vertical { + position: absolute; + bottom: 5px; + left: 115px; + width: 20px; + height: 12px; + cursor: pointer; + background: transparent url(v_next2.png) no-repeat 0 0; +} + +.jcarousel-skin-tango2 .jcarousel-next-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-next-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical, +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical:focus, +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-vertical { + position: absolute; + top: 5px; + left: 115px; + width: 29px; + height: 12px; + cursor: pointer; + background: transparent url(v_prev2.png) no-repeat 0 0; +} + +.jcarousel-skin-tango2 .jcarousel-prev-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-prev-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical:focus, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/v_next.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/v_next.png new file mode 100644 index 0000000..e5056d1 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/v_next.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/v_next2.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/v_next2.png new file mode 100644 index 0000000..600203b Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/v_next2.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/v_prev.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/v_prev.png new file mode 100644 index 0000000..36c087e Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/v_prev.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/v_prev2.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/v_prev2.png new file mode 100644 index 0000000..791e630 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/HOME_SLIDER/v_prev2.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/credits.txt b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/credits.txt new file mode 100644 index 0000000..87ccdbc --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/credits.txt @@ -0,0 +1 @@ +Button images copyright by Microsoft Corporation (http://microsoft.com) \ No newline at end of file diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/loading-small.gif b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/loading-small.gif new file mode 100644 index 0000000..b25ada9 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/loading-small.gif differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/loading.gif b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/loading.gif new file mode 100644 index 0000000..5c7f808 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/loading.gif differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/loading_small.gif b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/loading_small.gif new file mode 100644 index 0000000..5979f6d Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/loading_small.gif differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/next-horizontal.gif b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/next-horizontal.gif new file mode 100644 index 0000000..36c1f78 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/next-horizontal.gif differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/prev-horizontal.gif b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/prev-horizontal.gif new file mode 100644 index 0000000..3b93296 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/prev-horizontal.gif differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/skin.css b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/skin.css new file mode 100644 index 0000000..0a35832 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/ie7/skin.css @@ -0,0 +1,190 @@ +.jcarousel-skin-ie7 .jcarousel-container { + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + border-radius: 10px; + background: #D4D0C8; + border: 1px solid #808080; +} + +.jcarousel-skin-ie7 .jcarousel-direction-rtl { + direction: rtl; +} + +.jcarousel-skin-ie7 .jcarousel-container-horizontal { + width: 245px; + padding: 20px 40px; +} + +.jcarousel-skin-ie7 .jcarousel-container-vertical { + width: 75px; + height: 245px; + padding: 40px 20px; +} + +.jcarousel-skin-ie7 .jcarousel-clip { + overflow: hidden; +} + +.jcarousel-skin-ie7 .jcarousel-clip-horizontal { + width: 245px; + height: 77px; +} + +.jcarousel-skin-ie7 .jcarousel-clip-vertical { + width: 77px; + height: 245px; +} + +.jcarousel-skin-ie7 .jcarousel-item { + width: 75px; + height: 75px; + border: 1px solid #fff; +} + +.jcarousel-skin-ie7 .jcarousel-item:hover, +.jcarousel-skin-ie7 .jcarousel-item:focus { + border-color: #808080; +} + +.jcarousel-skin-ie7 .jcarousel-item-horizontal { + margin-left: 0; + margin-right: 7px; +} + +.jcarousel-skin-ie7 .jcarousel-direction-rtl .jcarousel-item-horizontal { + margin-left: 7px; + margin-right: 0; +} + +.jcarousel-skin-ie7 .jcarousel-item-vertical { + margin-bottom: 7px; +} + +.jcarousel-skin-ie7 .jcarousel-item-placeholder { +} + +/** + * Horizontal Buttons + */ +.jcarousel-skin-ie7 .jcarousel-next-horizontal { + position: absolute; + top: 43px; + right: 5px; + width: 32px; + height: 32px; + cursor: pointer; + background: transparent url(next-horizontal.gif) no-repeat 0 0; +} + +.jcarousel-skin-ie7 .jcarousel-direction-rtl .jcarousel-next-horizontal { + left: 5px; + right: auto; + background-image: url(prev-horizontal.gif); +} + +.jcarousel-skin-ie7 .jcarousel-next-horizontal:hover, +.jcarousel-skin-ie7 .jcarousel-next-horizontal:focus { + background-position: -32px 0; +} + +.jcarousel-skin-ie7 .jcarousel-next-horizontal:active { + background-position: -64px 0; +} + +.jcarousel-skin-ie7 .jcarousel-next-disabled-horizontal, +.jcarousel-skin-ie7 .jcarousel-next-disabled-horizontal:hover, +.jcarousel-skin-ie7 .jcarousel-next-disabled-horizontal:focus, +.jcarousel-skin-ie7 .jcarousel-next-disabled-horizontal:active { + cursor: default; + background-position: -96px 0; +} + +.jcarousel-skin-ie7 .jcarousel-prev-horizontal { + position: absolute; + top: 43px; + left: 5px; + width: 32px; + height: 32px; + cursor: pointer; + background: transparent url(prev-horizontal.gif) no-repeat 0 0; +} + +.jcarousel-skin-ie7 .jcarousel-direction-rtl .jcarousel-prev-horizontal { + left: auto; + right: 5px; + background-image: url(next-horizontal.gif); +} + +.jcarousel-skin-ie7 .jcarousel-prev-horizontal:hover, +.jcarousel-skin-ie7 .jcarousel-prev-horizontal:focus { + background-position: -32px 0; +} + +.jcarousel-skin-ie7 .jcarousel-prev-horizontal:active { + background-position: -64px 0; +} + +.jcarousel-skin-ie7 .jcarousel-prev-disabled-horizontal, +.jcarousel-skin-ie7 .jcarousel-prev-disabled-horizontal:hover, +.jcarousel-skin-ie7 .jcarousel-prev-disabled-horizontal:focus, +.jcarousel-skin-ie7 .jcarousel-prev-disabled-horizontal:active { + cursor: default; + background-position: -96px 0; +} + +/** + * Vertical Buttons + */ +.jcarousel-skin-ie7 .jcarousel-next-vertical { + position: absolute; + bottom: 5px; + left: 43px; + width: 32px; + height: 32px; + cursor: pointer; + background: transparent url(next-vertical.gif) no-repeat 0 0; +} + +.jcarousel-skin-ie7 .jcarousel-next-vertical:hover, +.jcarousel-skin-ie7 .jcarousel-next-vertical:focus { + background-position: 0 -32px; +} + +.jcarousel-skin-ie7 .jcarousel-next-vertical:active { + background-position: 0 -64px; +} + +.jcarousel-skin-ie7 .jcarousel-next-disabled-vertical, +.jcarousel-skin-ie7 .jcarousel-next-disabled-vertical:hover, +.jcarousel-skin-ie7 .jcarousel-next-disabled-vertical:focus, +.jcarousel-skin-ie7 .jcarousel-next-disabled-vertical:active { + cursor: default; + background-position: 0 -96px; +} + +.jcarousel-skin-ie7 .jcarousel-prev-vertical { + position: absolute; + top: 5px; + left: 43px; + width: 32px; + height: 32px; + cursor: pointer; + background: transparent url(prev-vertical.gif) no-repeat 0 0; +} + +.jcarousel-skin-ie7 .jcarousel-prev-vertical:hover, +.jcarousel-skin-ie7 .jcarousel-prev-vertical:focus { + background-position: 0 -32px; +} + +.jcarousel-skin-ie7 .jcarousel-prev-vertical:active { + background-position: 0 -64px; +} + +.jcarousel-skin-ie7 .jcarousel-prev-disabled-vertical, +.jcarousel-skin-ie7 .jcarousel-prev-disabled-vertical:hover, +.jcarousel-skin-ie7 .jcarousel-prev-disabled-vertical:focus, +.jcarousel-skin-ie7 .jcarousel-prev-disabled-vertical:active { + cursor: default; + background-position: 0 -96px; +} diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/arrows_left.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/arrows_left.png new file mode 100644 index 0000000..4252afe Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/arrows_left.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/arrows_right.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/arrows_right.png new file mode 100644 index 0000000..e9468f6 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/arrows_right.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/credits.txt b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/credits.txt new file mode 100644 index 0000000..e5ec8c2 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/credits.txt @@ -0,0 +1 @@ +Button images copyright by Tango Icon Library Team (http://tango.freedesktop.org/Tango_Icon_Library) \ No newline at end of file diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/next-horizontal.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/next-horizontal.png new file mode 100644 index 0000000..6fcd3d9 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/next-horizontal.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/next-vertical.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/next-vertical.png new file mode 100644 index 0000000..066a3e0 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/next-vertical.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/next.jpg b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/next.jpg new file mode 100644 index 0000000..5ad08bf Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/next.jpg differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/next.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/next.png new file mode 100644 index 0000000..b2fb161 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/next.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/prev-horizontal.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/prev-horizontal.png new file mode 100644 index 0000000..36472c0 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/prev-horizontal.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/prev-vertical.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/prev-vertical.png new file mode 100644 index 0000000..bb30f85 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/prev-vertical.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/prev.jpg b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/prev.jpg new file mode 100644 index 0000000..59a2cdb Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/prev.jpg differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/prev.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/prev.png new file mode 100644 index 0000000..426628d Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/prev.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/skin.css b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/skin.css new file mode 100644 index 0000000..90fbd32 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/skin.css @@ -0,0 +1,183 @@ +.jcarousel-skin-tango .jcarousel-container { + +} + +.jcarousel-skin-tango .jcarousel-direction-rtl { + direction: rtl; +} + +.jcarousel-skin-tango .jcarousel-container-horizontal { + width: 240px;text-align:left;border1:1px solid red; + padding: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-container-vertical { + width: 42px; + height: 200px; + padding: 20px 0px; +} + +.jcarousel-skin-tango .jcarousel-clip { + overflow: hidden; +} + +.jcarousel-skin-tango .jcarousel-clip-horizontal { + width: 200px; + height1: 300px; +} + +.jcarousel-skin-tango .jcarousel-clip-vertical { + width: 42px; + height: 200px; + margin:0px;padding:0px; +} + +.jcarousel-skin-tango .jcarousel-item { + width: 42px; + height1: 300px; +} + +.jcarousel-skin-tango .jcarousel-item-horizontal { + margin-left: 0; + margin-right: 10px; +} + +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-item-horizontal { + margin-left: 10px; + margin-right: 0; +} + +.jcarousel-skin-tango .jcarousel-item-vertical { + margin-bottom: 5px; +} + +.jcarousel-skin-tango .jcarousel-item-placeholder { + background: #fff; + color: #000; +} + +/** + * Horizontal Buttons + */ +.jcarousel-skin-tango .jcarousel-next-horizontal { + position: absolute; + top: -40px; + right: 0px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_right.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-next-horizontal { + left: 5px; + right: auto; + background-image: url(prev.jpg); +} + +.jcarousel-skin-tango .jcarousel-next-horizontal:hover, +.jcarousel-skin-tango .jcarousel-next-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-next-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal, +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:hover, +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:focus, +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal { + position: absolute; + top: -40px; + right: 20px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_left.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-prev-horizontal { + left: auto; + right: 5px; + background-image: url(next.jpg); +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal:hover, +.jcarousel-skin-tango .jcarousel-prev-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal, +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:hover, +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:focus, +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +/** + * Vertical Buttons + */ +.jcarousel-skin-tango .jcarousel-next-vertical { + position: absolute; + bottom: 5px; + left: 15px; + width: 11px; + height: 7px; + cursor: pointer; + background: transparent url(v_next.png) no-repeat 0 0; +} + +.jcarousel-skin-tango .jcarousel-next-vertical:hover, +.jcarousel-skin-tango .jcarousel-next-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-next-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-next-disabled-vertical, +.jcarousel-skin-tango .jcarousel-next-disabled-vertical:hover, +.jcarousel-skin-tango .jcarousel-next-disabled-vertical:focus, +.jcarousel-skin-tango .jcarousel-next-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-vertical { + position: absolute; + top: 5px; + left: 15px; + width: 11px; + height: 7px; + cursor: pointer; + background: transparent url(v_prev.png) no-repeat 0 0; +} + +.jcarousel-skin-tango .jcarousel-prev-vertical:hover, +.jcarousel-skin-tango .jcarousel-prev-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical, +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical:hover, +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical:focus, +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/skin2.css b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/skin2.css new file mode 100644 index 0000000..176a868 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/skin2.css @@ -0,0 +1,185 @@ +.jcarousel-skin-tango2 .jcarousel-container { + +} + +.jcarousel-skin-tango2 img{width:50px;float:left;margin-right:20px;} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl { + direction: rtl; +} + +.jcarousel-skin-tango2 .jcarousel-container-horizontal { + width: 240px;text-align:left; + padding: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-container-vertical { + width: 242px; + height: 320px; + padding: 40px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-clip { + overflow: hidden; +} + +.jcarousel-skin-tango2 .jcarousel-clip-horizontal { + width: 200px; + height1: 320px; +} + +.jcarousel-skin-tango2 .jcarousel-clip-vertical { + width: 242px; + height: 320px; + margin:0px;padding:0px; +} + +.jcarousel-skin-tango2 .jcarousel-item { + width: 242px; + height1: 300px; +} + +.jcarousel-skin-tango2 .jcarousel-item-horizontal { + margin-left: 0; + margin-right: 10px; +} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl .jcarousel-item-horizontal { + margin-left: 10px; + margin-right: 0; +} + +.jcarousel-skin-tango2 .jcarousel-item-vertical { + margin-bottom: 5px; +} + +.jcarousel-skin-tango2 .jcarousel-item-placeholder { + background: #fff; + color: #000; +} + +/** + * Horizontal Buttons + */ +.jcarousel-skin-tango2 .jcarousel-next-horizontal { + position: absolute; + top: -40px; + right: 0px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_right.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl .jcarousel-next-horizontal { + left: 5px; + right: auto; + background-image: url(prev.jpg); +} + +.jcarousel-skin-tango2 .jcarousel-next-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-next-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal, +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal:focus, +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-horizontal { + position: absolute; + top: -40px; + right: 20px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_left.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl .jcarousel-prev-horizontal { + left: auto; + right: 5px; + background-image: url(next.jpg); +} + +.jcarousel-skin-tango2 .jcarousel-prev-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-prev-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal:focus, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +/** + * Vertical Buttons + */ +.jcarousel-skin-tango2 .jcarousel-next-vertical { + position: absolute; + bottom: 5px; + left: 115px; + width: 20px; + height: 12px; + cursor: pointer; + background: transparent url(v_next2.png) no-repeat 0 0; +} + +.jcarousel-skin-tango2 .jcarousel-next-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-next-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical, +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical:focus, +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-vertical { + position: absolute; + top: 5px; + left: 115px; + width: 29px; + height: 12px; + cursor: pointer; + background: transparent url(v_prev2.png) no-repeat 0 0; +} + +.jcarousel-skin-tango2 .jcarousel-prev-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-prev-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical:focus, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/v_next.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/v_next.png new file mode 100644 index 0000000..e5056d1 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/v_next.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/v_next2.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/v_next2.png new file mode 100644 index 0000000..600203b Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/v_next2.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/v_prev.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/v_prev.png new file mode 100644 index 0000000..36c087e Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/v_prev.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/v_prev2.png b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/v_prev2.png new file mode 100644 index 0000000..791e630 Binary files /dev/null and b/frontend/web/js/widget-carousel/FILTER_SLIDER/skins/tango/v_prev2.png differ diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/style.css b/frontend/web/js/widget-carousel/FILTER_SLIDER/style.css new file mode 100644 index 0000000..e1ed9f1 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/style.css @@ -0,0 +1,170 @@ + +/* + ==== loading ==== +*/ + +.loading { + position: absolute; + top: 0px; + left: 0px; +} + +.loading .load-1 { + filter: alpha(opacity=70); + opacity: 0.7; + position: absolute; + display: block; + background-color: #000; + top: 0px; + left: 0px; + width: 100%; + height: 100%; +} + +.loading .load-2 { + position: absolute; + display: block; + background: url(./img/10.png) no-repeat center center; + top: 0px; + left: 0px; + width: 100%; + height: 100%; +} + +/* + ==== Module ==== +*/ + +#FILTER_SLIDER { + position: relative; + top: 0px; + left: 0px; + width: 720px; + height: 340px; + overflow: hidden; + + display: inline-block; + vertical-align: top; +} + +#FILTER_SLIDER .item-list { + cursor: move; + position: absolute; + left: 0px; + top: 0px; + width: 720px; + height: 340px; + overflow: hidden; +} + +#FILTER_SLIDER .item a { + text-decoration: none; +} + +#FILTER_SLIDER .item .title { + + color: #fff; + display: block; + font-size: 24px; + margin-top: 223px; + padding: 20px; + position: relative; + text-align: center; + text-transform: uppercase; + transition: all 0.2s ease 0s; + white-space: nowrap; + + -webkit-transition: all .2s ease; + -moz-transition: all .2s ease; + -ms-transition: all .2s ease; + -o-transition: all .2s ease; + transition: all .2s ease; +} + +#FILTER_SLIDER .item:hover .title { +} + +#FILTER_SLIDER .item img { + border-radius: 0; +} + +#FILTER_SLIDER .jssorb03 { + display: table; + margin: 0 auto; + position: relative; + top: 304px; +} + +#FILTER_SLIDER .jssorb03 div, +#FILTER_SLIDER .jssorb03 div:hover, +#FILTER_SLIDER .jssorb03 .av { + position: absolute; + /* size of bullet elment */ + width: 21px; + height: 21px; + text-align: center; + line-height: 21px; + color: white; + font-size: 12px; + background: url(./img/b05.png) no-repeat; + overflow: hidden; + cursor: pointer; +} + +#FILTER_SLIDER .jssorb03 div { + background-position: -5px -4px; +} + +#FILTER_SLIDER .jssorb03 div:hover, +#FILTER_SLIDER .jssorb03 .av:hover { + background-position: -35px -4px; +} + +#FILTER_SLIDER .jssorb03 .av { + background-position: -65px -4px; +} + +#FILTER_SLIDER .jssorb03 .dn, +#FILTER_SLIDER .jssorb03 .dn:hover { + background-position: -95px -4px; +} + +#FILTER_SLIDER .jssora03l, +#FILTER_SLIDER .jssora03r { + display: block; + position: absolute; + /* size of arrow element */ + width: 55px; + height: 55px; + cursor: pointer; + background: url(./img/a14.png) no-repeat; + overflow: hidden; +} + +#FILTER_SLIDER .jssora03l { + background-position: -3px -33px; + top: 142px; + left: -13px; +} + +#FILTER_SLIDER .jssora03r { + background-position: -63px -33px; + top: 142px; + right: -13px; +} + +#FILTER_SLIDER .jssora03l:hover { + background-position: -123px -33px; +} + +#FILTER_SLIDER .jssora03r:hover { + background-position: -183px -33px; +} + +#FILTER_SLIDER .jssora03l.jssora03ldn { + background-position: -243px -33px; +} + +#FILTER_SLIDER .jssora03r.jssora03rdn { + background-position: -303px -33px; +} \ No newline at end of file diff --git a/frontend/web/js/widget-carousel/FILTER_SLIDER/style.js b/frontend/web/js/widget-carousel/FILTER_SLIDER/style.js new file mode 100644 index 0000000..d0a7778 --- /dev/null +++ b/frontend/web/js/widget-carousel/FILTER_SLIDER/style.js @@ -0,0 +1,61 @@ + +$(document).on('ready', function () +{ + var FILTER_SLIDER_option_2 = + { + $AutoPlay: true, + $AutoPlaySteps: 1, +// $AutoPlayInterval: 4000, есть в FILTER_SLIDER_option_1 + $PauseOnHover: 1, + + $ArrowKeyNavigation: true, +// $SlideDuration: 500, есть в FILTER_SLIDER_option_1 + $MinDragOffsetToSlide: 20, + + $SlideSpacing: 0, + $DisplayPieces: 1, + $ParkingPosition: 0, + $UISearchMode: 1, + $PlayOrientation: 1, + $DragOrientation: 1, + + $BulletNavigatorOptions: { + $Class: $JssorBulletNavigator$, + $ChanceToShow: 2, + $AutoCenter: 0, + $Steps: 1, + $Lanes: 1, + $SpacingX: 10, + $SpacingY: 10, + $Orientation: 1 + }, + + $ArrowNavigatorOptions: { + $Class: $JssorArrowNavigator$, + $ChanceToShow: 2, + $AutoCenter: 0 + } + }; + + var FILTER_SLIDER = new $JssorSlider$("FILTER_SLIDER", $.extend({}, FILTER_SLIDER_option_1, FILTER_SLIDER_option_2)); + + function ScaleFILTER_SLIDER () + { + $item = $("#FILTER_SLIDER .item").width(); + + if ($(window).width()) + { + $body = $(window).width() - 70; + FILTER_SLIDER.$ScaleWidth(Math.min($body, $item)); + } + else + { + window.setTimeout(ScaleFILTER_SLIDER, 30); + } + } + + ScaleFILTER_SLIDER(); + + $(window).bind("resize", ScaleFILTER_SLIDER); + $(window).bind("orientationchange", ScaleFILTER_SLIDER); +}); \ No newline at end of file diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/README b/frontend/web/js/widget-carousel/HOME_SLIDER/README new file mode 100644 index 0000000..018dac2 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/README @@ -0,0 +1,7 @@ +jCarousel - Riding carousels with jQuery + +jCarousel is a jQuery plugin for controlling a list of items in horizontal or vertical order. +The items, which can be static HTML content or loaded with (or without) AJAX, can be scrolled +back and forth (with or without animation). + +See index.html for documentation and examples. diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/changelog.html b/frontend/web/js/widget-carousel/HOME_SLIDER/changelog.html new file mode 100644 index 0000000..d7fa678 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/changelog.html @@ -0,0 +1,138 @@ + + + +jCarousel: Changelog + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        +

        Changelog

        +

        Version 0.2.8 - 2011-04-14

        +
          +
        • Fixed selecting only direct childs of the current list (#61).
        • +
        • Added static method to set windowLoaded to true manually (#60).
        • +
        • Added setupCallback.
        • +
        • Optimized resize callback.
        • +
        • Added animationStepCallback option (Thanks scy).
        • +
        • Wider support of border-radius, and support of :focus in addition to :hover (Thanks lespacedunmatin).
        • +
        +

        Version 0.2.7 - 2010-10-06

        +
          +
        • Fixed bug with autoscrolling introduced while fixing #49.
        • +
        +

        Version 0.2.6 - 2010-10-05

        +
          +
        • Fixed item only partially visible when defined as start item (#22).
        • +
        • Fixed multiple binds on prev/next buttons (#26).
        • +
        • Added firing of button callbacks also if no buttons are specified (#39).
        • +
        • Fixed stopAuto() not stopping while in animation (#49).
        • +
        +

        Version 0.2.5 - 2010-08-13

        +
          +
        • Added RTL (Right-To-Left) support.
        • +
        • Added automatic deletion of cloned elements for circular carousels.
        • +
        • Added new option itemFallbackDimension (#7).
        • +
        • Added new section "Defining the number of visible items" to documentation.
        • +
        +

        Version 0.2.4 - 2010-04-19

        +
          +
        • Updated jQuery to version 1.4.2.
        • +
        • jCarousel instance can now be retrieved by $(selector).data('jcarousel').
        • +
        • Support for static circular carousels out of the box.
        • +
        • Removed not longer needed core stylsheet jquery.jcarousel.css. Styles are now set by javascript or skin stylesheets.
        • +
        +

        Version 0.2.3 - 2008-04-07

        +
          +
        • Updated jQuery to version 1.2.3.
        • +
        • Fixed (hopefully) issues with Safari.
        • +
        • Added new example "Multiple carousels on one page".
        • +
        +

        Version 0.2.2 - 2007-11-07

        +
          +
        • Fixed bug with nested li elements reported by John + Fiala.
        • +
        • Fixed bug on initialization with too few elements reported by Glenn + Nilsson.
        • +
        +

        Version 0.2.1 - 2007-10-12

        +
          +
        • Readded the option start for a custom start position. The + old option start is renamed to offset.
        • +
        • New example for dynamic content loading via Ajax from a PHP script.
        • +
        • Fixed a bug with variable item widths/heights.
        • +
        + +

        Version 0.2.0-beta - 2007-05-07

        +
          +
        • Complete rewrite of the plugin. See this post for further informations.
        • +
        +

        Version 0.1.6 - 2007-01-22

        +
          +
        • New public methods size() and init().
        • +
        • Added new example "Carousel with external controls".
        • +
        +

        Version 0.1.5 - 2007-01-08

        +
          +
        • Code modifications to work with the jQuery 1.1.
        • +
        • Renamed the js file to jquery.jcarousel.pack.js as noted in the jquery docs.
        • +
        +

        Version 0.1.4 - 2006-12-12

        +
          +
        • New configuration option autoScrollResumeOnMouseout.
        • +
        +

        Version 0.1.3 - 2006-12-02

        +
          +
        • New configuration option itemStart. Sets the index of the + item to start with.
        • +
        +

        Version 0.1.2 - 2006-11-28

        +
          +
        • New configuration option wrapPrev. Behaves like wrap + but scrolls to the end when clicking the prev-button at the start of the + carousel. (Note: This may produce unexpected results with dynamic loaded + content. You must ensure to load the complete carousel on initialisation).
        • +
        • Moved call of the button handlers at the end of the buttons() method. + This lets the callbacks change the behaviours assigned by jCarousel.
        • +
        +

        Version 0.1.1 - 2006-10-25

        +
          +
        • The item handler callback options accept now a hash of two functions which + are triggered before and after animation.
        • +
        • The item handler callback functions accept now a fourth parameter state which + holds one of three states: next, prev or init.
        • +
        • New configuration option autoScrollStopOnMouseover
        • +
        +

        Version 0.1.0 - 2006-09-21

        +
          +
        • Stable release.
        • +
        • Internal source code rewriting to fit more into the jQuery + plugin guidelines.
        • +
        • Added inline documentation.
        • +
        • Changed licence to a dual licence model (MIT and GPL).
        • +
        +

        Version 0.1.0-RC1 - 2006-09-13

        +
          +
        • Virtual item attribute jCarouselItemIdx is replaced by a class jcarousel-item-n.
        • +
        • The item callback functions accept a third parameter idx which + holds the position of the item in the list (formerly the attribute jCarouselItemIdx).
        • +
        • Fixed bug with margin-right in Safari.
        • +
        +

        Version 0.1.0-gamma - 2006-09-07

        +
          +
        • Added auto-wrapping of the required html markup around lists (ul + and ol) if jQuery().jcarousel() is assigned directly to them.
        • +
        • Added support for new callback functions itemFirstInHandler, itemFirstOutHandler, itemLastInHandler, itemLastOutHandler, itemVisibleInHandler, itemVisibleOutHandler.
        • +
        • General sourcecode rewriting.
        • +
        • Fixed bug not setting <li> index attributes correctly.
        • +
        • Changed default itemWidth and itemHeight to 75.
        • +
        +

        Version 0.1.0-beta - 2006-09-02

        +
          +
        • Initial release.
        • +
        +
        + + diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_ajax.html b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_ajax.html new file mode 100644 index 0000000..7082721 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_ajax.html @@ -0,0 +1,83 @@ + + + +jCarousel Examples + + + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Carousel with dynamic content loading via Ajax

        +

        + The data is loaded dynamically from a simple text file which contains the image urls. +

        + +
        +
          + +
        +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_ajax.txt b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_ajax.txt new file mode 100644 index 0000000..4ff426e --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_ajax.txt @@ -0,0 +1,10 @@ +http://static.flickr.com/66/199481236_dc98b5abb3_s.jpg| +http://static.flickr.com/75/199481072_b4a0d09597_s.jpg| +http://static.flickr.com/57/199481087_33ae73a8de_s.jpg| +http://static.flickr.com/77/199481108_4359e6b971_s.jpg| +http://static.flickr.com/58/199481143_3c148d9dd3_s.jpg| +http://static.flickr.com/72/199481203_ad4cdcf109_s.jpg| +http://static.flickr.com/58/199481218_264ce20da0_s.jpg| +http://static.flickr.com/69/199481255_fdfe885f87_s.jpg| +http://static.flickr.com/60/199480111_87d4cb3e38_s.jpg| +http://static.flickr.com/70/229228324_08223b70fa_s.jpg \ No newline at end of file diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_ajax_php.html b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_ajax_php.html new file mode 100644 index 0000000..26cf676 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_ajax_php.html @@ -0,0 +1,95 @@ + + + +jCarousel Examples + + + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Carousel with dynamic content loading via Ajax

        +

        + The data is loaded dynamically from a simple text file which contains the image urls. +

        + +
        +
          + +
        +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_ajax_php.php b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_ajax_php.php new file mode 100644 index 0000000..00b4313 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_ajax_php.php @@ -0,0 +1,43 @@ +'; + +// Return total number of images so the callback +// can set the size of the carousel. +echo ' ' . $total . ''; + +foreach ($selected as $img) { + echo ' ' . $img . ''; +} + +echo ''; + +?> \ No newline at end of file diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_flickr_api.html b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_flickr_api.html new file mode 100644 index 0000000..658d255 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_flickr_api.html @@ -0,0 +1,149 @@ + + + +jCarousel Examples + + + + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Carousel with dynamic content loading via Ajax from the Flickr API

        +

        + The data is loaded dynamically from the Flickr API + method flickr.photos.getRecent. + All items not in the visible range are removed from the list to keep the list small. +

        +

        + Note: There are constantly added new photos at flickr, so you possibly get different photos at certain positions. +

        + +
        +
          + +
        +
        + +

        + If you're using this example on your own server, don't forget to set your API key in dynamic_flickr_api.php! +

        + +
        + + diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_flickr_api.php b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_flickr_api.php new file mode 100644 index 0000000..2c1e02c --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_flickr_api.php @@ -0,0 +1,29 @@ + \ No newline at end of file diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_flickr_feed.html b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_flickr_feed.html new file mode 100644 index 0000000..db10596 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_flickr_feed.html @@ -0,0 +1,190 @@ + + + +jCarousel Examples + + + + + + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Carousel with dynamic content loading via Ajax from the Flickr photo stream

        +

        + The data is loaded dynamically from the Flickr + public photos feed (format: JSON) + and can be filtered by tags. +

        + +
        +
          + +
        +
        + + + + +
        +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_flickr_feed.php b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_flickr_feed.php new file mode 100644 index 0000000..7e68919 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_flickr_feed.php @@ -0,0 +1,14 @@ + \ No newline at end of file diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_javascript.html b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_javascript.html new file mode 100644 index 0000000..7043dd2 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/dynamic_javascript.html @@ -0,0 +1,86 @@ + + + +jCarousel Examples + + + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Carousel with dynamic content loading via JavaScript

        +

        + The data is loaded dynamically from an javascript array. +

        + +
          + +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/arrow-down.gif b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/arrow-down.gif new file mode 100644 index 0000000..c8012ba Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/arrow-down.gif differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/arrow-up.gif b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/arrow-up.gif new file mode 100644 index 0000000..08bc203 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/arrow-up.gif differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/loading-small.gif b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/loading-small.gif new file mode 100644 index 0000000..b25ada9 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/loading-small.gif differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/loading-thickbox.gif b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/loading-thickbox.gif new file mode 100644 index 0000000..82290f4 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/loading-thickbox.gif differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/loading.gif b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/loading.gif new file mode 100644 index 0000000..5c7f808 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/images/loading.gif differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_easing.html b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_easing.html new file mode 100644 index 0000000..d48f4a8 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_easing.html @@ -0,0 +1,73 @@ + + + +jCarousel Examples + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Carousel with custom animation effect

        +

        + This example shows how to use custom animation effects (uses Robert + Penners easing equations). +

        + + +
        +
          +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        +
        +
        + + diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_flexible.html b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_flexible.html new file mode 100644 index 0000000..d92a040 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_flexible.html @@ -0,0 +1,72 @@ + + + +jCarousel Examples + + + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Flexible carousel

        +

        + This example shows a carousel with flexible item width. In this case, always + 4 items are visible (resize the browser window to see what happens). +

        + +
          +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_textscroller.html b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_textscroller.html new file mode 100644 index 0000000..c2bcaa0 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_textscroller.html @@ -0,0 +1,192 @@ + + + +jCarousel Examples + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        +

        Using jCarousel as Textscroller

        +

        + This example shows how to use jCarousel as a Textscroller. The data is loaded from the jQuery Blog RSS-Feed. +

        + +
        +
          + +
        +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_textscroller.php b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_textscroller.php new file mode 100644 index 0000000..a8ead24 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_textscroller.php @@ -0,0 +1,15 @@ + \ No newline at end of file diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_thickbox.html b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_thickbox.html new file mode 100644 index 0000000..7a15a86 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/special_thickbox.html @@ -0,0 +1,102 @@ + + + +jCarousel Examples + + + + + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        jCarousel and Thickbox 3

        +

        + Example of jCarousel working together with Thickbox 3. +

        + +
          + +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_auto.html b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_auto.html new file mode 100644 index 0000000..8200685 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_auto.html @@ -0,0 +1,79 @@ + + + +jCarousel Examples + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Carousel with autoscrolling

        +

        + Autoscrolling is enabled and the interval is set to 2 seconds. + Autoscrolling pauses when the user moves the cursor over the images and stops + when the user clicks the next or prev button. wrap is set to + "last". +

        + +
          +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_callbacks.html b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_callbacks.html new file mode 100644 index 0000000..9e57d45 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_callbacks.html @@ -0,0 +1,235 @@ + + + +jCarousel Examples + + + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Carousel illustrating the callback functions

        +

        + This carousel has registered all available callback functions and displays + information about the state of the items and buttons. Additionally the width + of the carousel is set to auto. Resize the browser window and see what happens. +

        + + +
          +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        + +

        + +
        + + diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_circular.html b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_circular.html new file mode 100644 index 0000000..bfdb2aa --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_circular.html @@ -0,0 +1,56 @@ + + + +jCarousel Examples + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Circular carousel

        +

        + This example shows a simple circular carousel. +

        + +
          +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_controls.html b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_controls.html new file mode 100644 index 0000000..d8fdeab --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_controls.html @@ -0,0 +1,166 @@ + + + +jCarousel Examples + + + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Carousel with external controls

        +

        + This carousel shows how to control it from outside. +

        + +
        +
        + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 +
        + +
          +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        + +
        +
        + « Prev + + Next » +
        +
        + +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_multiple.html b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_multiple.html new file mode 100644 index 0000000..1af9089 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_multiple.html @@ -0,0 +1,95 @@ + + + +jCarousel Examples + + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Multiple carousels on one page

        +

        + This example shows how to use multiple carousels on one page with different + skins and configurations. +

        + + + +
        + + + +
        + + + +
        + + diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_simple.html b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_simple.html new file mode 100644 index 0000000..018d649 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_simple.html @@ -0,0 +1,54 @@ + + + +jCarousel Examples + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Simple carousel

        +

        + This is the most simple usage of the carousel with no configuration options. +

        + +
          +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_start.html b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_start.html new file mode 100644 index 0000000..9b3dc40 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_start.html @@ -0,0 +1,53 @@ + + + +jCarousel Examples + + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Carousel with custom start position

        + +
          +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_vertical.html b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_vertical.html new file mode 100644 index 0000000..4453e5b --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/static_vertical.html @@ -0,0 +1,57 @@ + + + +jCarousel Examples + + + + + + + + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        + +

        Vertical carousel

        +

        + A carousel in vertical orientation with custom prev/next controls, animation + set to "slow" and scroll set to 2. +

        + +
          +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        + +
        + + diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/thickbox/thickbox.css b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/thickbox/thickbox.css new file mode 100644 index 0000000..399c68a --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/thickbox/thickbox.css @@ -0,0 +1,159 @@ +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> global settings needed for thickbox <<<-----------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +*{padding: 0; margin: 0;} + +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> thickbox specific link and font settings <<<------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +#TB_window { + font: 12px Arial, Helvetica, sans-serif; + color: #333333; +} + +#TB_secondLine { + font: 10px Arial, Helvetica, sans-serif; + color:#666666; +} + +#TB_window a:link {color: #666666;} +#TB_window a:visited {color: #666666;} +#TB_window a:hover {color: #000;} +#TB_window a:active {color: #666666;} +#TB_window a:focus{color: #666666;} + +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +#TB_overlay { + position: fixed; + z-index:100; + top: 0px; + left: 0px; + background-color:#000; + filter:alpha(opacity=75); + -moz-opacity: 0.75; + opacity: 0.75; + height:100%; + width:100%; +} + +* html #TB_overlay { /* ie6 hack */ + position: absolute; + height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); +} + +#TB_window { + position: fixed; + background: #ffffff; + z-index: 102; + color:#000000; + display:none; + border: 4px solid #525252; + text-align:left; + top:50%; + left:50%; +} + +* html #TB_window { /* ie6 hack */ +position: absolute; +margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); +} + +#TB_window img#TB_Image { + display:block; + margin: 15px 0 0 15px; + border-right: 1px solid #ccc; + border-bottom: 1px solid #ccc; + border-top: 1px solid #666; + border-left: 1px solid #666; +} + +#TB_caption{ + height:25px; + padding:7px 30px 10px 25px; + float:left; +} + +#TB_closeWindow{ + height:25px; + padding:11px 25px 10px 0; + float:right; +} + +#TB_closeAjaxWindow{ + padding:7px 10px 5px 0; + margin-bottom:1px; + text-align:right; + float:right; +} + +#TB_ajaxWindowTitle{ + float:left; + padding:7px 0 5px 10px; + margin-bottom:1px; +} + +#TB_title{ + background-color:#e8e8e8; + height:27px; +} + +#TB_ajaxContent{ + clear:both; + padding:2px 15px 15px 15px; + overflow:auto; + text-align:left; + line-height:1.4em; +} + +#TB_ajaxContent.TB_modal{ + padding:15px; +} + +#TB_ajaxContent p{ + padding:5px 0px 5px 0px; +} + +#TB_load{ + position: fixed; + display:none; + height:13px; + width:208px; + z-index:103; + top: 50%; + left: 50%; + margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */ +} + +* html #TB_load { /* ie6 hack */ +position: absolute; +margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); +} + +#TB_HideSelect{ + z-index:99; + position:fixed; + top: 0; + left: 0; + background-color:#fff; + border:none; + filter:alpha(opacity=0); + -moz-opacity: 0; + opacity: 0; + height:100%; + width:100%; +} + +* html #TB_HideSelect { /* ie6 hack */ + position: absolute; + height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); +} + +#TB_iframeContent{ + clear:both; + border:none; + margin-bottom:-1px; + margin-top:1px; + _margin-bottom:1px; +} diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/examples/thickbox/thickbox.js b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/thickbox/thickbox.js new file mode 100644 index 0000000..e415594 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/examples/thickbox/thickbox.js @@ -0,0 +1,296 @@ +/* + * Thickbox 3 - One Box To Rule Them All. + * By Cody Lindley (http://www.codylindley.com) + * Copyright (c) 2007 cody lindley + * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php +*/ + +var tb_pathToImage = "images/loadingAnimation.gif"; + +/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/ + +//on page load call tb_init +$(document).ready(function(){ + tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox + imgLoader = new Image();// preload image + imgLoader.src = tb_pathToImage; +}); + +//add thickbox to href & area elements that have a class of .thickbox +function tb_init(domChunk){ + $(domChunk).click(function(){ + var t = this.title || this.name || null; + var a = this.href || this.alt; + var g = this.rel || false; + tb_show(t,a,g); + this.blur(); + return false; + }); +} + +function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link + + try { + if (typeof document.body.style.maxHeight === "undefined") {//if IE 6 + $("body","html").css({height: "100%", width: "100%"}); + $("html").css("overflow","hidden"); + if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6 + $("body").append("
        "); + $("#TB_overlay").click(tb_remove); + } + }else{//all others + if(document.getElementById("TB_overlay") === null){ + $("body").append("
        "); + $("#TB_overlay").click(tb_remove); + } + } + + if(caption===null){caption="";} + $("body").append("
        ");//add loader to the page + $('#TB_load').show();//show loader + + var baseURL; + if(url.indexOf("?")!==-1){ //ff there is a query string involved + baseURL = url.substr(0, url.indexOf("?")); + }else{ + baseURL = url; + } + + var urlString = /\.jpg|\.jpeg|\.png|\.gif|\.bmp/g; + var urlType = baseURL.toLowerCase().match(urlString); + + if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images + + TB_PrevCaption = ""; + TB_PrevURL = ""; + TB_PrevHTML = ""; + TB_NextCaption = ""; + TB_NextURL = ""; + TB_NextHTML = ""; + TB_imageCount = ""; + TB_FoundURL = false; + if(imageGroup){ + TB_TempArray = $("a[@rel="+imageGroup+"]").get(); + for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) { + var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString); + if (!(TB_TempArray[TB_Counter].href == url)) { + if (TB_FoundURL) { + TB_NextCaption = TB_TempArray[TB_Counter].title; + TB_NextURL = TB_TempArray[TB_Counter].href; + TB_NextHTML = "  Next >"; + } else { + TB_PrevCaption = TB_TempArray[TB_Counter].title; + TB_PrevURL = TB_TempArray[TB_Counter].href; + TB_PrevHTML = "  < Prev"; + } + } else { + TB_FoundURL = true; + TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length); + } + } + } + + imgPreloader = new Image(); + imgPreloader.onload = function(){ + imgPreloader.onload = null; + + // Resizing large images - orginal by Christian Montoya edited by me. + var pagesize = tb_getPageSize(); + var x = pagesize[0] - 150; + var y = pagesize[1] - 150; + var imageWidth = imgPreloader.width; + var imageHeight = imgPreloader.height; + if (imageWidth > x) { + imageHeight = imageHeight * (x / imageWidth); + imageWidth = x; + if (imageHeight > y) { + imageWidth = imageWidth * (y / imageHeight); + imageHeight = y; + } + } else if (imageHeight > y) { + imageWidth = imageWidth * (y / imageHeight); + imageHeight = y; + if (imageWidth > x) { + imageHeight = imageHeight * (x / imageWidth); + imageWidth = x; + } + } + // End Resizing + + TB_WIDTH = imageWidth + 30; + TB_HEIGHT = imageHeight + 60; + $("#TB_window").append(""+caption+"" + "
        "+caption+"
        " + TB_imageCount + TB_PrevHTML + TB_NextHTML + "
        close or Esc Key
        "); + + $("#TB_closeWindowButton").click(tb_remove); + + if (!(TB_PrevHTML === "")) { + function goPrev(){ + if($(document).unbind("click",goPrev)){$(document).unbind("click",goPrev);} + $("#TB_window").remove(); + $("body").append("
        "); + tb_show(TB_PrevCaption, TB_PrevURL, imageGroup); + return false; + } + $("#TB_prev").click(goPrev); + } + + if (!(TB_NextHTML === "")) { + function goNext(){ + $("#TB_window").remove(); + $("body").append("
        "); + tb_show(TB_NextCaption, TB_NextURL, imageGroup); + return false; + } + $("#TB_next").click(goNext); + + } + + document.onkeydown = function(e){ + if (e == null) { // ie + keycode = event.keyCode; + } else { // mozilla + keycode = e.which; + } + if(keycode == 27){ // close + tb_remove(); + } else if(keycode == 190){ // display previous image + if(!(TB_NextHTML == "")){ + document.onkeydown = ""; + goNext(); + } + } else if(keycode == 188){ // display next image + if(!(TB_PrevHTML == "")){ + document.onkeydown = ""; + goPrev(); + } + } + }; + + tb_position(); + $("#TB_load").remove(); + $("#TB_ImageOff").click(tb_remove); + $("#TB_window").css({display:"block"}); //for safari using css instead of show + }; + + imgPreloader.src = url; + }else{//code to show html pages + + var queryString = url.replace(/^[^\?]+\??/,''); + var params = tb_parseQuery( queryString ); + + TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no paramaters were added to URL + TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no paramaters were added to URL + ajaxContentW = TB_WIDTH - 30; + ajaxContentH = TB_HEIGHT - 45; + + if(url.indexOf('TB_iframe') != -1){ + urlNoQuery = url.split('TB_'); + $("#TB_window").append("
        "+caption+"
        close or Esc Key
        "); + }else{ + if($("#TB_window").css("display") != "block"){ + if(params['modal'] != "true"){ + $("#TB_window").append("
        "+caption+"
        close or Esc Key
        "); + }else{ + $("#TB_overlay").unbind(); + $("#TB_window").append("
        "); + } + }else{ + $("#TB_ajaxContent")[0].style.width = ajaxContentW +"px"; + $("#TB_ajaxContent")[0].style.height = ajaxContentH +"px"; + $("#TB_ajaxContent")[0].scrollTop = 0; + $("#TB_ajaxWindowTitle").html(caption); + } + } + + $("#TB_closeWindowButton").click(tb_remove); + + if(url.indexOf('TB_inline') != -1){ + $("#TB_ajaxContent").html($('#' + params['inlineId']).html()); + tb_position(); + $("#TB_load").remove(); + $("#TB_window").css({display:"block"}); + }else if(url.indexOf('TB_iframe') != -1){ + tb_position(); + if(frames['TB_iframeContent'] === undefined){//be nice to safari + $("#TB_load").remove(); + $("#TB_window").css({display:"block"}); + $(document).keyup( function(e){ var key = e.keyCode; if(key == 27){tb_remove();}}); + } + }else{ + $("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method + tb_position(); + $("#TB_load").remove(); + tb_init("#TB_ajaxContent a.thickbox"); + $("#TB_window").css({display:"block"}); + }); + } + + } + + if(!params['modal']){ + document.onkeyup = function(e){ + if (e == null) { // ie + keycode = event.keyCode; + } else { // mozilla + keycode = e.which; + } + if(keycode == 27){ // close + tb_remove(); + } + }; + } + + } catch(e) { + //nothing here + } +} + +//helper functions below +function tb_showIframe(){ + $("#TB_load").remove(); + $("#TB_window").css({display:"block"}); +} + +function tb_remove() { + $("#TB_imageOff").unbind("click"); + $("#TB_overlay").unbind("click"); + $("#TB_closeWindowButton").unbind("click"); + $("#TB_window").fadeOut("fast",function(){$('#TB_window,#TB_overlay,#TB_HideSelect').remove();}); + $("#TB_load").remove(); + if (typeof document.body.style.maxHeight == "undefined") {//if IE 6 + $("body","html").css({height: "auto", width: "auto"}); + $("html").css("overflow",""); + } + document.onkeydown = ""; + return false; +} + +function tb_position() { +$("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'}); + if ( !(jQuery.browser.msie && typeof XMLHttpRequest == 'function')) { // take away IE6 + $("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'}); + } +} + +function tb_parseQuery ( query ) { + var Params = {}; + if ( ! query ) {return Params;}// return empty object + var Pairs = query.split(/[;&]/); + for ( var i = 0; i < Pairs.length; i++ ) { + var KeyVal = Pairs[i].split('='); + if ( ! KeyVal || KeyVal.length != 2 ) {continue;} + var key = unescape( KeyVal[0] ); + var val = unescape( KeyVal[1] ); + val = val.replace(/\+/g, ' '); + Params[key] = val; + } + return Params; +} + +function tb_getPageSize(){ + var de = document.documentElement; + var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth; + var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight; + arrayPageSize = [w,h]; + return arrayPageSize; +} diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/img/a12.png b/frontend/web/js/widget-carousel/HOME_SLIDER/img/a12.png new file mode 100644 index 0000000..9a78622 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/img/a12.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/img/a14.png b/frontend/web/js/widget-carousel/HOME_SLIDER/img/a14.png new file mode 100644 index 0000000..ca1a769 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/img/a14.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/img/a19.png b/frontend/web/js/widget-carousel/HOME_SLIDER/img/a19.png new file mode 100644 index 0000000..6405de7 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/img/a19.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/img/b05.png b/frontend/web/js/widget-carousel/HOME_SLIDER/img/b05.png new file mode 100644 index 0000000..b8481de Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/img/b05.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/img/b12.png b/frontend/web/js/widget-carousel/HOME_SLIDER/img/b12.png new file mode 100644 index 0000000..db761c7 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/img/b12.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/img/b21.png b/frontend/web/js/widget-carousel/HOME_SLIDER/img/b21.png new file mode 100644 index 0000000..5aa92bf Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/img/b21.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/img/pagination.png b/frontend/web/js/widget-carousel/HOME_SLIDER/img/pagination.png new file mode 100644 index 0000000..9593831 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/img/pagination.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/index.html b/frontend/web/js/widget-carousel/HOME_SLIDER/index.html new file mode 100644 index 0000000..7a3fc68 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/index.html @@ -0,0 +1,516 @@ + + + +jCarousel - Riding carousels with jQuery + + + + +
        +

        jCarousel

        +

        Riding carousels with jQuery

        +

        Author: Jan Sorgalla
        + Version: 0.2.8 (Changelog)
        + Download: jcarousel.tar.gz or jcarousel.zip
        + Source Code: http://github.com/jsor/jcarousel
        + Bugtracker: http://github.com/jsor/jcarousel/issues
        + Licence: Dual licensed under the MIT + and GPL licenses.

        + + +

        Contents

        +
          +
        1. Introduction
        2. +
        3. Examples
        4. +
        5. Getting started
        6. +
        7. Dynamic content loading
        8. +
        9. Accessing the jCarousel instance
        10. +
        11. Defining the number of visible items
        12. +
        13. Configuration
        14. +
        15. Credits
        16. +
        + + +

        Introduction

        +

        jCarousel is a jQuery plugin for controlling + a list of items in horizontal or vertical order. The items, which can be static + HTML content or loaded with (or without) AJAX, can be scrolled back and forth + (with or without animation).

        + + +

        Examples

        +

        The following examples illustrate the possibilities of jCarousel:

        + + + + +

        Getting started

        +

        To use the jCarousel component, include the jQuery + library, the jCarousel source file and a jCarousel skin stylesheet file inside the <head> tag + of your HTML document:

        +
        +<script type="text/javascript" src="/path/to/jquery-1.4.2.min.js"></script>
        +<script type="text/javascript" src="/path/to/lib/jquery.jcarousel.min.js"></script>
        +<link rel="stylesheet" type="text/css" href="/path/to/skin/skin.css" />
        +
        +

        The download package contains some example skin packages. Feel free to build your own skins based on it.

        +

        jCarousel expects a very basic HTML markup structure inside your HTML document:

        +
        +<ul id="mycarousel" class="jcarousel-skin-name">
        +   <!-- The content goes in here -->
        +</ul>
        +
        +

        jCarousel automatically wraps the required HTML markup around the list. The + class attribute applies the jCarousel skin "name" to the + carousel.

        +

        To setup jCarousel, add the following code inside the <head> + tag of your HTML document:

        +
        +<script type="text/javascript">
        +jQuery(document).ready(function() {
        +    jQuery('#mycarousel').jcarousel({
        +        // Configuration goes here
        +    });
        +});
        +</script>
        +
        +

        jCarousel accepts a lot of configuration options, see chapter "Configuration" + for further informations.

        +

        After jCarousel has been initialised, the fully created markup in + the DOM is:

        +
        +<div class="jcarousel-skin-name">
        +  <div class="jcarousel-container">
        +    <div class="jcarousel-clip">
        +      <ul class="jcarousel-list">
        +        <li class="jcarousel-item-1">First item</li>
        +        <li class="jcarousel-item-2">Second item</li>
        +      </ul>
        +    </div>
        +    <div disabled="disabled" class="jcarousel-prev jcarousel-prev-disabled"></div>
        +    <div class="jcarousel-next"></div>
        +  </div>
        +</div>
        +
        + +

        As you can see, there are some elements added which have assigned classes + (in addition to the classes you may have already assigned manually). Feel + free to design your carousel with the classes you can see above.

        +

        Note:

        +
          +
        • The skin class "jcarousel-skin-name" has been moved + from the <ul> to the top <div> element.
        • +
        • The last 2 nested <div>'s under <div class="jcarousel-container"> + are the next/prev buttons of the carousel. The first one illustrates a disabled button, the second an enabled one. The disabled + button has the attribute + disabled (which actually makes no sense for <div> + elements, but you can also use <button> elements or + whatever you want) as well as the additional class jcarousel-prev-disabled + (or jcarousel-next-disabled).
        • +
        • All <li> elements of the list have the class jcarousel-item-n + assigned where n represents the position in the list.
        • +
        • Not shown here is, that all classes are followed by additional classes with a suffix + dependent on the orientation of the carousel, ie. <ul class="jcarousel-list + jcarousel-list-horizontal"> for a horizontal carousel.
        • +
        + + +

        Dynamic content loading

        +

        By passing the callback function itemLoadCallback as configuration + option, you are able to dynamically create <li> items for the content.

        +
        +<script type="text/javascript">
        +jQuery(document).ready(function() {
        +    jQuery('#mycarousel').jcarousel({
        +        itemLoadCallback: itemLoadCallbackFunction
        +    });
        +});
        +</script>
        +

        itemLoadCallbackFunction is a JavaScript function that is called + when the carousel requests a set of items to be loaded. Two parameters are + passed: The instance of the requesting carousel and a flag which indicates + the current state of the carousel ('init', 'prev' or 'next').

        +
        +<script type="text/javascript">
        +function itemLoadCallbackFunction(carousel, state)
        +{
        +    for (var i = carousel.first; i <= carousel.last; i++) {
        +        // Check if the item already exists
        +        if (!carousel.has(i)) {
        +            // Add the item
        +            carousel.add(i, "I'm item #" + i);
        +        }
        +    }
        +};
        +</script>
        +

        jCarousel contains a convenience method add() that can be + passed the index of the item to create and the innerHTML string of the + item to be + created. If the item already exists, it just updates the innerHTML. You can + access the index of the first and last visible element by the public variables carousel.first and carousel.last. +

        + + +

        Accessing the jCarousel instance

        +

        The instance of the carousel will be stored with the data() method of jQuery under the key jcarousel for a simple access.

        +

        If you have created a carousel like:

        +
        +jQuery(document).ready(function() {
        +    jQuery('#mycarousel').jcarousel();
        +});
        +

        You can access the instance with:

        +
        +var carousel = jQuery('#mycarousel').data('jcarousel');
        +

        You can also access methods of the instance directly, for example the add() method: +

        +var index = 1;
        +var html = 'My content of item no. 1';
        +jQuery('#mycarousel').jcarousel('add', index, html);
        + + +

        Defining the number of visible items

        + +

        Sometimes people are confused how to define the number of visible items because there is no option for this as they expect (Yes, there is an option visible, we discuss this later).

        +

        You simply define the number of visible items by defining the width (or height) with the class .jcarousel-clip (or the more distinct .jcarousel-clip-horizontal and .jcarousel-clip-vertical classes) in your skin stylesheet.

        +

        This offers a lot of flexibility, because you can define the width in pixel for a fixed carousel or in percent for a flexible carousel (This example shows a carousel with a clip width in percent, resize the browser to see it in effect).

        +

        So, why there is an option visible? If you set the option visible, jCarousel sets the width of the visible items to always make this number of items visible. Open this example and resize your browser window to see it in effect.

        + + +

        Configuration

        +

        jCarousel accepts a list of options to control the appearance and behaviour + of the carousel. Here is the list of options you may set:

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        PropertyTypeDefaultDescription
        verticalboolfalseSpecifies wether the carousel appears in horizontal or vertical orientation. + Changes the carousel from a left/right style to a up/down style carousel.
        rtlboolfalseSpecifies wether the carousel appears in RTL (Right-To-Left) mode.
        startinteger1The index of the item to start with.
        offsetinteger1The index of the first available item at initialisation.
        sizeintegerNumber of existing <li> elements if size is not passed explicitlyThe number of total items.
        scrollinteger3The number of items to scroll by.
        visibleintegernullIf passed, the width/height of the items will be calculated and set + depending on the width/height of the clipping, so that exactly that + number of items will be visible.
        animationmixed"fast"The speed of the scroll animation as string in jQuery terms ("slow" + or "fast") or milliseconds as integer + (See jQuery Documentation). + If set to 0, animation is turned off.
        easingstringnullThe name of the easing effect that you want to use (See jQuery + Documentation).
        autointeger0Specifies how many seconds to periodically autoscroll the content. + If set to 0 (default) then autoscrolling is turned off. +
        wrapstringnullSpecifies whether to wrap at the first/last item (or both) and jump + back to the start/end. Options are "first", "last", + "both" or "circular" as string. If set to null, + wrapping is turned off (default).
        initCallbackfunctionnullJavaScript function that is called right after initialisation of the + carousel. Two parameters are passed: The instance of the requesting + carousel and the state of the carousel initialisation (init, reset or + reload).
        setupCallbackfunctionnullJavaScript function that is called right after the carousel is completely setup. + One parameter is passed: The instance of the requesting carousel.
        itemLoadCallbackfunctionnullJavaScript function that is called when the carousel requests a set + of items to be loaded. Two parameters are passed: The instance of the + requesting carousel and the state of the carousel action (prev, next + or init). Alternatively, you can pass a hash of one or two functions + which are triggered before and/or after animation: +
        +itemLoadCallback: {
        +  onBeforeAnimation: callback1,
        +  onAfterAnimation: callback2
        +}
        itemFirstInCallback functionnullJavaScript function that is called (after the scroll animation) when + an item becomes the first one in the visible range of the carousel. + Four parameters are passed: The instance of the requesting carousel + and the <li> object itself, the index which indicates + the position of the item in the list and the state of the carousel action + (prev, next or init). Alternatively, you can pass a hash of one or two + functions which are triggered before and/or after animation: +
        +itemFirstInCallback: {
        +  onBeforeAnimation: callback1,
        +  onAfterAnimation: callback2
        +}
        itemFirstOutCallbackfunctionnullJavaScript function that is called (after the scroll animation) when + an item isn't longer the first one in the visible range of the carousel. + Four parameters are passed: The instance of the requesting carousel + and the <li> object itself, the index which indicates + the position of the item in the list and the state of the carousel action + (prev, next or init). Alternatively, you can pass a hash of one or two + functions which are triggered before and/or after animation: +
        +itemFirstOutCallback: {
        +  onBeforeAnimation: callback1,
        +  onAfterAnimation: callback2
        +}
        itemLastInCallbackfunctionnullJavaScript function that is called (after the scroll animation) when + an item becomes the last one in the visible range of the carousel. Four + parameters are passed: The instance of the requesting carousel and the + <li> object itself, the index which indicates the + position of the item in the list and the state of the carousel action + (prev, next or init). Alternatively, you can pass a hash of one or two + functions which are triggered before and/or after animation: +
        +itemLastInCallback: {
        +  onBeforeAnimation: callback1,
        +  onAfterAnimation: callback2
        +}
        itemLastOutCallbackfunctionnullJavaScript function that is called when an item isn't longer the last + one in the visible range of the carousel. Four parameters are passed: + The instance of the requesting carousel and the <li> + object itself, the index which indicates the position of the item in + the list and the state of the carousel action (prev, next or init). + Alternatively, you can pass a hash of one or two functions which are + triggered before and/or after animation: +
        +itemLastOutCallback: {
        +  onBeforeAnimation: callback1,
        +  onAfterAnimation: callback2
        +}
        itemVisibleInCallbackfunctionnullJavaScript function that is called (after the scroll animation) when + an item is in the visible range of the carousel. Four parameters are + passed: The instance of the requesting carousel and the <li> + object itself, the index which indicates the position of the item in + the list and the state of the carousel action (prev, next or init). + Alternatively, you can pass a hash of one or two functions which are + triggered before and/or after animation: +
        +itemVisibleInCallback: {
        +  onBeforeAnimation: callback1,
        +  onAfterAnimation: callback2
        +}
        itemVisibleOutCallbackfunctionnullJavaScript function that is called (after the scroll animation) when + an item isn't longer in the visible range of the carousel. Four parameters + are passed: The instance of the requesting carousel and the <li> + object itself, the index which indicates the position of the item in + the list and the state of the carousel action (prev, next or init). + Alternatively, you can pass a hash of one or two functions which are + triggered before and/or after animation: +
        +itemVisibleOutCallback: {
        +  onBeforeAnimation: callback1,
        +  onAfterAnimation: callback2
        +}
        animationStepCallbackfunctionnullJavaScript function that is called after each animation step. This + function is directly passed to jQuery's .animate() method + as the step parameter. See the jQuery documentation for the + parameters it will receive.
        buttonNextCallbackfunctionnullJavaScript function that is called when the state of the 'next' control + is changing. The responsibility of this method is to enable or disable + the 'next' control. Three parameters are passed: The instance of the + requesting carousel, the control element and a flag indicating whether + the button should be enabled or disabled.
        buttonPrevCallbackfunctionnullJavaScript function that is called when the state of the 'previous' + control is changing. The responsibility of this method is to enable + or disable the 'previous' control. Three parameters are passed: The + instance of the requesting carousel, the control element and a flag + indicating whether the button should be enabled or disabled.
        buttonNextHTMLstring<div></div>The HTML markup for the auto-generated next button. If set to null, + no next-button is created.
        buttonPrevHTMLstring<div></div>The HTML markup for the auto-generated prev button. If set to null, + no prev-button is created.
        buttonNextEventstring"click"Specifies the event which triggers the next scroll.
        buttonPrevEventstring"click"Specifies the event which triggers the prev scroll.
        itemFallbackDimensionintegernullIf, for some reason, jCarousel can not detect the width of an item, you can set a fallback dimension (width or height, depending on the orientation) here to ensure correct calculations.
        + + +

        Credits

        +

        Thanks to John Resig for his fantastic jQuery + library.
        + jCarousel is inspired by the Carousel + Component written by Bill Scott.

        +
        + + diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/arrows_left.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/arrows_left.png new file mode 100644 index 0000000..4252afe Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/arrows_left.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/arrows_right.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/arrows_right.png new file mode 100644 index 0000000..e9468f6 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/arrows_right.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/credits.txt b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/credits.txt new file mode 100644 index 0000000..e5ec8c2 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/credits.txt @@ -0,0 +1 @@ +Button images copyright by Tango Icon Library Team (http://tango.freedesktop.org/Tango_Icon_Library) \ No newline at end of file diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/next-horizontal.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/next-horizontal.png new file mode 100644 index 0000000..6fcd3d9 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/next-horizontal.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/next-vertical.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/next-vertical.png new file mode 100644 index 0000000..066a3e0 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/next-vertical.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/next.jpg b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/next.jpg new file mode 100644 index 0000000..5ad08bf Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/next.jpg differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/next.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/next.png new file mode 100644 index 0000000..b2fb161 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/next.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/prev-horizontal.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/prev-horizontal.png new file mode 100644 index 0000000..36472c0 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/prev-horizontal.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/prev-vertical.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/prev-vertical.png new file mode 100644 index 0000000..bb30f85 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/prev-vertical.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/prev.jpg b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/prev.jpg new file mode 100644 index 0000000..59a2cdb Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/prev.jpg differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/prev.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/prev.png new file mode 100644 index 0000000..426628d Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/prev.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/skin.css b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/skin.css new file mode 100644 index 0000000..90fbd32 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/skin.css @@ -0,0 +1,183 @@ +.jcarousel-skin-tango .jcarousel-container { + +} + +.jcarousel-skin-tango .jcarousel-direction-rtl { + direction: rtl; +} + +.jcarousel-skin-tango .jcarousel-container-horizontal { + width: 240px;text-align:left;border1:1px solid red; + padding: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-container-vertical { + width: 42px; + height: 200px; + padding: 20px 0px; +} + +.jcarousel-skin-tango .jcarousel-clip { + overflow: hidden; +} + +.jcarousel-skin-tango .jcarousel-clip-horizontal { + width: 200px; + height1: 300px; +} + +.jcarousel-skin-tango .jcarousel-clip-vertical { + width: 42px; + height: 200px; + margin:0px;padding:0px; +} + +.jcarousel-skin-tango .jcarousel-item { + width: 42px; + height1: 300px; +} + +.jcarousel-skin-tango .jcarousel-item-horizontal { + margin-left: 0; + margin-right: 10px; +} + +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-item-horizontal { + margin-left: 10px; + margin-right: 0; +} + +.jcarousel-skin-tango .jcarousel-item-vertical { + margin-bottom: 5px; +} + +.jcarousel-skin-tango .jcarousel-item-placeholder { + background: #fff; + color: #000; +} + +/** + * Horizontal Buttons + */ +.jcarousel-skin-tango .jcarousel-next-horizontal { + position: absolute; + top: -40px; + right: 0px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_right.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-next-horizontal { + left: 5px; + right: auto; + background-image: url(prev.jpg); +} + +.jcarousel-skin-tango .jcarousel-next-horizontal:hover, +.jcarousel-skin-tango .jcarousel-next-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-next-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal, +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:hover, +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:focus, +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal { + position: absolute; + top: -40px; + right: 20px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_left.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-prev-horizontal { + left: auto; + right: 5px; + background-image: url(next.jpg); +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal:hover, +.jcarousel-skin-tango .jcarousel-prev-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal, +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:hover, +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:focus, +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +/** + * Vertical Buttons + */ +.jcarousel-skin-tango .jcarousel-next-vertical { + position: absolute; + bottom: 5px; + left: 15px; + width: 11px; + height: 7px; + cursor: pointer; + background: transparent url(v_next.png) no-repeat 0 0; +} + +.jcarousel-skin-tango .jcarousel-next-vertical:hover, +.jcarousel-skin-tango .jcarousel-next-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-next-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-next-disabled-vertical, +.jcarousel-skin-tango .jcarousel-next-disabled-vertical:hover, +.jcarousel-skin-tango .jcarousel-next-disabled-vertical:focus, +.jcarousel-skin-tango .jcarousel-next-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-vertical { + position: absolute; + top: 5px; + left: 15px; + width: 11px; + height: 7px; + cursor: pointer; + background: transparent url(v_prev.png) no-repeat 0 0; +} + +.jcarousel-skin-tango .jcarousel-prev-vertical:hover, +.jcarousel-skin-tango .jcarousel-prev-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical, +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical:hover, +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical:focus, +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/skin2.css b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/skin2.css new file mode 100644 index 0000000..176a868 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/skin2.css @@ -0,0 +1,185 @@ +.jcarousel-skin-tango2 .jcarousel-container { + +} + +.jcarousel-skin-tango2 img{width:50px;float:left;margin-right:20px;} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl { + direction: rtl; +} + +.jcarousel-skin-tango2 .jcarousel-container-horizontal { + width: 240px;text-align:left; + padding: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-container-vertical { + width: 242px; + height: 320px; + padding: 40px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-clip { + overflow: hidden; +} + +.jcarousel-skin-tango2 .jcarousel-clip-horizontal { + width: 200px; + height1: 320px; +} + +.jcarousel-skin-tango2 .jcarousel-clip-vertical { + width: 242px; + height: 320px; + margin:0px;padding:0px; +} + +.jcarousel-skin-tango2 .jcarousel-item { + width: 242px; + height1: 300px; +} + +.jcarousel-skin-tango2 .jcarousel-item-horizontal { + margin-left: 0; + margin-right: 10px; +} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl .jcarousel-item-horizontal { + margin-left: 10px; + margin-right: 0; +} + +.jcarousel-skin-tango2 .jcarousel-item-vertical { + margin-bottom: 5px; +} + +.jcarousel-skin-tango2 .jcarousel-item-placeholder { + background: #fff; + color: #000; +} + +/** + * Horizontal Buttons + */ +.jcarousel-skin-tango2 .jcarousel-next-horizontal { + position: absolute; + top: -40px; + right: 0px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_right.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl .jcarousel-next-horizontal { + left: 5px; + right: auto; + background-image: url(prev.jpg); +} + +.jcarousel-skin-tango2 .jcarousel-next-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-next-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal, +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal:focus, +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-horizontal { + position: absolute; + top: -40px; + right: 20px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_left.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl .jcarousel-prev-horizontal { + left: auto; + right: 5px; + background-image: url(next.jpg); +} + +.jcarousel-skin-tango2 .jcarousel-prev-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-prev-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal:focus, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +/** + * Vertical Buttons + */ +.jcarousel-skin-tango2 .jcarousel-next-vertical { + position: absolute; + bottom: 5px; + left: 115px; + width: 20px; + height: 12px; + cursor: pointer; + background: transparent url(v_next2.png) no-repeat 0 0; +} + +.jcarousel-skin-tango2 .jcarousel-next-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-next-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical, +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical:focus, +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-vertical { + position: absolute; + top: 5px; + left: 115px; + width: 29px; + height: 12px; + cursor: pointer; + background: transparent url(v_prev2.png) no-repeat 0 0; +} + +.jcarousel-skin-tango2 .jcarousel-prev-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-prev-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical:focus, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/v_next.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/v_next.png new file mode 100644 index 0000000..e5056d1 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/v_next.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/v_next2.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/v_next2.png new file mode 100644 index 0000000..600203b Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/v_next2.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/v_prev.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/v_prev.png new file mode 100644 index 0000000..36c087e Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/v_prev.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/v_prev2.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/v_prev2.png new file mode 100644 index 0000000..791e630 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/HOME_SLIDER/v_prev2.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/credits.txt b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/credits.txt new file mode 100644 index 0000000..87ccdbc --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/credits.txt @@ -0,0 +1 @@ +Button images copyright by Microsoft Corporation (http://microsoft.com) \ No newline at end of file diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/loading-small.gif b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/loading-small.gif new file mode 100644 index 0000000..b25ada9 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/loading-small.gif differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/loading.gif b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/loading.gif new file mode 100644 index 0000000..5c7f808 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/loading.gif differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/loading_small.gif b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/loading_small.gif new file mode 100644 index 0000000..5979f6d Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/loading_small.gif differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/next-horizontal.gif b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/next-horizontal.gif new file mode 100644 index 0000000..36c1f78 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/next-horizontal.gif differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/prev-horizontal.gif b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/prev-horizontal.gif new file mode 100644 index 0000000..3b93296 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/prev-horizontal.gif differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/skin.css b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/skin.css new file mode 100644 index 0000000..0a35832 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/ie7/skin.css @@ -0,0 +1,190 @@ +.jcarousel-skin-ie7 .jcarousel-container { + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + border-radius: 10px; + background: #D4D0C8; + border: 1px solid #808080; +} + +.jcarousel-skin-ie7 .jcarousel-direction-rtl { + direction: rtl; +} + +.jcarousel-skin-ie7 .jcarousel-container-horizontal { + width: 245px; + padding: 20px 40px; +} + +.jcarousel-skin-ie7 .jcarousel-container-vertical { + width: 75px; + height: 245px; + padding: 40px 20px; +} + +.jcarousel-skin-ie7 .jcarousel-clip { + overflow: hidden; +} + +.jcarousel-skin-ie7 .jcarousel-clip-horizontal { + width: 245px; + height: 77px; +} + +.jcarousel-skin-ie7 .jcarousel-clip-vertical { + width: 77px; + height: 245px; +} + +.jcarousel-skin-ie7 .jcarousel-item { + width: 75px; + height: 75px; + border: 1px solid #fff; +} + +.jcarousel-skin-ie7 .jcarousel-item:hover, +.jcarousel-skin-ie7 .jcarousel-item:focus { + border-color: #808080; +} + +.jcarousel-skin-ie7 .jcarousel-item-horizontal { + margin-left: 0; + margin-right: 7px; +} + +.jcarousel-skin-ie7 .jcarousel-direction-rtl .jcarousel-item-horizontal { + margin-left: 7px; + margin-right: 0; +} + +.jcarousel-skin-ie7 .jcarousel-item-vertical { + margin-bottom: 7px; +} + +.jcarousel-skin-ie7 .jcarousel-item-placeholder { +} + +/** + * Horizontal Buttons + */ +.jcarousel-skin-ie7 .jcarousel-next-horizontal { + position: absolute; + top: 43px; + right: 5px; + width: 32px; + height: 32px; + cursor: pointer; + background: transparent url(next-horizontal.gif) no-repeat 0 0; +} + +.jcarousel-skin-ie7 .jcarousel-direction-rtl .jcarousel-next-horizontal { + left: 5px; + right: auto; + background-image: url(prev-horizontal.gif); +} + +.jcarousel-skin-ie7 .jcarousel-next-horizontal:hover, +.jcarousel-skin-ie7 .jcarousel-next-horizontal:focus { + background-position: -32px 0; +} + +.jcarousel-skin-ie7 .jcarousel-next-horizontal:active { + background-position: -64px 0; +} + +.jcarousel-skin-ie7 .jcarousel-next-disabled-horizontal, +.jcarousel-skin-ie7 .jcarousel-next-disabled-horizontal:hover, +.jcarousel-skin-ie7 .jcarousel-next-disabled-horizontal:focus, +.jcarousel-skin-ie7 .jcarousel-next-disabled-horizontal:active { + cursor: default; + background-position: -96px 0; +} + +.jcarousel-skin-ie7 .jcarousel-prev-horizontal { + position: absolute; + top: 43px; + left: 5px; + width: 32px; + height: 32px; + cursor: pointer; + background: transparent url(prev-horizontal.gif) no-repeat 0 0; +} + +.jcarousel-skin-ie7 .jcarousel-direction-rtl .jcarousel-prev-horizontal { + left: auto; + right: 5px; + background-image: url(next-horizontal.gif); +} + +.jcarousel-skin-ie7 .jcarousel-prev-horizontal:hover, +.jcarousel-skin-ie7 .jcarousel-prev-horizontal:focus { + background-position: -32px 0; +} + +.jcarousel-skin-ie7 .jcarousel-prev-horizontal:active { + background-position: -64px 0; +} + +.jcarousel-skin-ie7 .jcarousel-prev-disabled-horizontal, +.jcarousel-skin-ie7 .jcarousel-prev-disabled-horizontal:hover, +.jcarousel-skin-ie7 .jcarousel-prev-disabled-horizontal:focus, +.jcarousel-skin-ie7 .jcarousel-prev-disabled-horizontal:active { + cursor: default; + background-position: -96px 0; +} + +/** + * Vertical Buttons + */ +.jcarousel-skin-ie7 .jcarousel-next-vertical { + position: absolute; + bottom: 5px; + left: 43px; + width: 32px; + height: 32px; + cursor: pointer; + background: transparent url(next-vertical.gif) no-repeat 0 0; +} + +.jcarousel-skin-ie7 .jcarousel-next-vertical:hover, +.jcarousel-skin-ie7 .jcarousel-next-vertical:focus { + background-position: 0 -32px; +} + +.jcarousel-skin-ie7 .jcarousel-next-vertical:active { + background-position: 0 -64px; +} + +.jcarousel-skin-ie7 .jcarousel-next-disabled-vertical, +.jcarousel-skin-ie7 .jcarousel-next-disabled-vertical:hover, +.jcarousel-skin-ie7 .jcarousel-next-disabled-vertical:focus, +.jcarousel-skin-ie7 .jcarousel-next-disabled-vertical:active { + cursor: default; + background-position: 0 -96px; +} + +.jcarousel-skin-ie7 .jcarousel-prev-vertical { + position: absolute; + top: 5px; + left: 43px; + width: 32px; + height: 32px; + cursor: pointer; + background: transparent url(prev-vertical.gif) no-repeat 0 0; +} + +.jcarousel-skin-ie7 .jcarousel-prev-vertical:hover, +.jcarousel-skin-ie7 .jcarousel-prev-vertical:focus { + background-position: 0 -32px; +} + +.jcarousel-skin-ie7 .jcarousel-prev-vertical:active { + background-position: 0 -64px; +} + +.jcarousel-skin-ie7 .jcarousel-prev-disabled-vertical, +.jcarousel-skin-ie7 .jcarousel-prev-disabled-vertical:hover, +.jcarousel-skin-ie7 .jcarousel-prev-disabled-vertical:focus, +.jcarousel-skin-ie7 .jcarousel-prev-disabled-vertical:active { + cursor: default; + background-position: 0 -96px; +} diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/arrows_left.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/arrows_left.png new file mode 100644 index 0000000..4252afe Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/arrows_left.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/arrows_right.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/arrows_right.png new file mode 100644 index 0000000..e9468f6 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/arrows_right.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/credits.txt b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/credits.txt new file mode 100644 index 0000000..e5ec8c2 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/credits.txt @@ -0,0 +1 @@ +Button images copyright by Tango Icon Library Team (http://tango.freedesktop.org/Tango_Icon_Library) \ No newline at end of file diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/next-horizontal.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/next-horizontal.png new file mode 100644 index 0000000..6fcd3d9 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/next-horizontal.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/next-vertical.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/next-vertical.png new file mode 100644 index 0000000..066a3e0 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/next-vertical.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/next.jpg b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/next.jpg new file mode 100644 index 0000000..5ad08bf Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/next.jpg differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/next.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/next.png new file mode 100644 index 0000000..b2fb161 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/next.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/prev-horizontal.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/prev-horizontal.png new file mode 100644 index 0000000..36472c0 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/prev-horizontal.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/prev-vertical.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/prev-vertical.png new file mode 100644 index 0000000..bb30f85 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/prev-vertical.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/prev.jpg b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/prev.jpg new file mode 100644 index 0000000..59a2cdb Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/prev.jpg differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/prev.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/prev.png new file mode 100644 index 0000000..426628d Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/prev.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/skin.css b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/skin.css new file mode 100644 index 0000000..90fbd32 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/skin.css @@ -0,0 +1,183 @@ +.jcarousel-skin-tango .jcarousel-container { + +} + +.jcarousel-skin-tango .jcarousel-direction-rtl { + direction: rtl; +} + +.jcarousel-skin-tango .jcarousel-container-horizontal { + width: 240px;text-align:left;border1:1px solid red; + padding: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-container-vertical { + width: 42px; + height: 200px; + padding: 20px 0px; +} + +.jcarousel-skin-tango .jcarousel-clip { + overflow: hidden; +} + +.jcarousel-skin-tango .jcarousel-clip-horizontal { + width: 200px; + height1: 300px; +} + +.jcarousel-skin-tango .jcarousel-clip-vertical { + width: 42px; + height: 200px; + margin:0px;padding:0px; +} + +.jcarousel-skin-tango .jcarousel-item { + width: 42px; + height1: 300px; +} + +.jcarousel-skin-tango .jcarousel-item-horizontal { + margin-left: 0; + margin-right: 10px; +} + +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-item-horizontal { + margin-left: 10px; + margin-right: 0; +} + +.jcarousel-skin-tango .jcarousel-item-vertical { + margin-bottom: 5px; +} + +.jcarousel-skin-tango .jcarousel-item-placeholder { + background: #fff; + color: #000; +} + +/** + * Horizontal Buttons + */ +.jcarousel-skin-tango .jcarousel-next-horizontal { + position: absolute; + top: -40px; + right: 0px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_right.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-next-horizontal { + left: 5px; + right: auto; + background-image: url(prev.jpg); +} + +.jcarousel-skin-tango .jcarousel-next-horizontal:hover, +.jcarousel-skin-tango .jcarousel-next-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-next-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal, +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:hover, +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:focus, +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal { + position: absolute; + top: -40px; + right: 20px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_left.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-prev-horizontal { + left: auto; + right: 5px; + background-image: url(next.jpg); +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal:hover, +.jcarousel-skin-tango .jcarousel-prev-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal, +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:hover, +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:focus, +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +/** + * Vertical Buttons + */ +.jcarousel-skin-tango .jcarousel-next-vertical { + position: absolute; + bottom: 5px; + left: 15px; + width: 11px; + height: 7px; + cursor: pointer; + background: transparent url(v_next.png) no-repeat 0 0; +} + +.jcarousel-skin-tango .jcarousel-next-vertical:hover, +.jcarousel-skin-tango .jcarousel-next-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-next-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-next-disabled-vertical, +.jcarousel-skin-tango .jcarousel-next-disabled-vertical:hover, +.jcarousel-skin-tango .jcarousel-next-disabled-vertical:focus, +.jcarousel-skin-tango .jcarousel-next-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-vertical { + position: absolute; + top: 5px; + left: 15px; + width: 11px; + height: 7px; + cursor: pointer; + background: transparent url(v_prev.png) no-repeat 0 0; +} + +.jcarousel-skin-tango .jcarousel-prev-vertical:hover, +.jcarousel-skin-tango .jcarousel-prev-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical, +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical:hover, +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical:focus, +.jcarousel-skin-tango .jcarousel-prev-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/skin2.css b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/skin2.css new file mode 100644 index 0000000..176a868 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/skin2.css @@ -0,0 +1,185 @@ +.jcarousel-skin-tango2 .jcarousel-container { + +} + +.jcarousel-skin-tango2 img{width:50px;float:left;margin-right:20px;} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl { + direction: rtl; +} + +.jcarousel-skin-tango2 .jcarousel-container-horizontal { + width: 240px;text-align:left; + padding: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-container-vertical { + width: 242px; + height: 320px; + padding: 40px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-clip { + overflow: hidden; +} + +.jcarousel-skin-tango2 .jcarousel-clip-horizontal { + width: 200px; + height1: 320px; +} + +.jcarousel-skin-tango2 .jcarousel-clip-vertical { + width: 242px; + height: 320px; + margin:0px;padding:0px; +} + +.jcarousel-skin-tango2 .jcarousel-item { + width: 242px; + height1: 300px; +} + +.jcarousel-skin-tango2 .jcarousel-item-horizontal { + margin-left: 0; + margin-right: 10px; +} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl .jcarousel-item-horizontal { + margin-left: 10px; + margin-right: 0; +} + +.jcarousel-skin-tango2 .jcarousel-item-vertical { + margin-bottom: 5px; +} + +.jcarousel-skin-tango2 .jcarousel-item-placeholder { + background: #fff; + color: #000; +} + +/** + * Horizontal Buttons + */ +.jcarousel-skin-tango2 .jcarousel-next-horizontal { + position: absolute; + top: -40px; + right: 0px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_right.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl .jcarousel-next-horizontal { + left: 5px; + right: auto; + background-image: url(prev.jpg); +} + +.jcarousel-skin-tango2 .jcarousel-next-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-next-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal, +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal:focus, +.jcarousel-skin-tango2 .jcarousel-next-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-horizontal { + position: absolute; + top: -40px; + right: 20px; + width: 10px; + height: 16px; + cursor: pointer; + background: transparent url(arrows_left.png) no-repeat 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-direction-rtl .jcarousel-prev-horizontal { + left: auto; + right: 5px; + background-image: url(next.jpg); +} + +.jcarousel-skin-tango2 .jcarousel-prev-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-prev-horizontal:focus { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-horizontal:active { + background-position: 0px 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal:hover, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal:focus, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-horizontal:active { + cursor: default; + background-position: 0px -16px; +} + +/** + * Vertical Buttons + */ +.jcarousel-skin-tango2 .jcarousel-next-vertical { + position: absolute; + bottom: 5px; + left: 115px; + width: 20px; + height: 12px; + cursor: pointer; + background: transparent url(v_next2.png) no-repeat 0 0; +} + +.jcarousel-skin-tango2 .jcarousel-next-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-next-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical, +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical:focus, +.jcarousel-skin-tango2 .jcarousel-next-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-vertical { + position: absolute; + top: 5px; + left: 115px; + width: 29px; + height: 12px; + cursor: pointer; + background: transparent url(v_prev2.png) no-repeat 0 0; +} + +.jcarousel-skin-tango2 .jcarousel-prev-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-prev-vertical:focus { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-vertical:active { + background-position: 0 0px; +} + +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical:hover, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical:focus, +.jcarousel-skin-tango2 .jcarousel-prev-disabled-vertical:active { + cursor: default; + background-position: 0 0px; +} diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/v_next.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/v_next.png new file mode 100644 index 0000000..e5056d1 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/v_next.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/v_next2.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/v_next2.png new file mode 100644 index 0000000..600203b Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/v_next2.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/v_prev.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/v_prev.png new file mode 100644 index 0000000..36c087e Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/v_prev.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/v_prev2.png b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/v_prev2.png new file mode 100644 index 0000000..791e630 Binary files /dev/null and b/frontend/web/js/widget-carousel/HOME_SLIDER/skins/tango/v_prev2.png differ diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/style.css b/frontend/web/js/widget-carousel/HOME_SLIDER/style.css new file mode 100644 index 0000000..556b039 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/style.css @@ -0,0 +1,170 @@ + +/* + ==== loading ==== +*/ + +.loading { + position: absolute; + top: 0px; + left: 0px; +} + +.loading .load-1 { + filter: alpha(opacity=70); + opacity: 0.7; + position: absolute; + display: block; + background-color: #000; + top: 0px; + left: 0px; + width: 100%; + height: 100%; +} + +.loading .load-2 { + position: absolute; + display: block; + background: url(./img/10.png) no-repeat center center; + top: 0px; + left: 0px; + width: 100%; + height: 100%; +} + +/* + ==== Module ==== +*/ + +#HOME_SLIDER { + position: relative; + top: 0px; + left: 0px; + width: 720px; + height: 340px; + overflow: hidden; + + display: inline-block; + vertical-align: top; +} + +#HOME_SLIDER .item-list { + cursor: move; + position: absolute; + left: 0px; + top: 0px; + width: 720px; + height: 340px; + overflow: hidden; +} + +#HOME_SLIDER .item a { + text-decoration: none; +} + +#HOME_SLIDER .item .title { + + color: #fff; + display: block; + font-size: 24px; + margin-top: 223px; + padding: 20px; + position: relative; + text-align: center; + text-transform: uppercase; + transition: all 0.2s ease 0s; + white-space: nowrap; + + -webkit-transition: all .2s ease; + -moz-transition: all .2s ease; + -ms-transition: all .2s ease; + -o-transition: all .2s ease; + transition: all .2s ease; +} + +#HOME_SLIDER .item:hover .title { +} + +#HOME_SLIDER .item img { + border-radius: 0; +} + +#HOME_SLIDER .jssorb03 { + display: table; + margin: 0 auto; + position: relative; + top: 304px; +} + +#HOME_SLIDER .jssorb03 div, +#HOME_SLIDER .jssorb03 div:hover, +#HOME_SLIDER .jssorb03 .av { + position: absolute; + /* size of bullet elment */ + width: 21px; + height: 21px; + text-align: center; + line-height: 21px; + color: white; + font-size: 12px; + background: url(./img/b05.png) no-repeat; + overflow: hidden; + cursor: pointer; +} + +#HOME_SLIDER .jssorb03 div { + background-position: -5px -4px; +} + +#HOME_SLIDER .jssorb03 div:hover, +#HOME_SLIDER .jssorb03 .av:hover { + background-position: -35px -4px; +} + +#HOME_SLIDER .jssorb03 .av { + background-position: -65px -4px; +} + +#HOME_SLIDER .jssorb03 .dn, +#HOME_SLIDER .jssorb03 .dn:hover { + background-position: -95px -4px; +} + +#HOME_SLIDER .jssora03l, +#HOME_SLIDER .jssora03r { + display: block; + position: absolute; + /* size of arrow element */ + width: 55px; + height: 55px; + cursor: pointer; + background: url(./img/a14.png) no-repeat; + overflow: hidden; +} + +#HOME_SLIDER .jssora03l { + background-position: -3px -33px; + top: 142px; + left: -13px; +} + +#HOME_SLIDER .jssora03r { + background-position: -63px -33px; + top: 142px; + right: -13px; +} + +#HOME_SLIDER .jssora03l:hover { + background-position: -123px -33px; +} + +#HOME_SLIDER .jssora03r:hover { + background-position: -183px -33px; +} + +#HOME_SLIDER .jssora03l.jssora03ldn { + background-position: -243px -33px; +} + +#HOME_SLIDER .jssora03r.jssora03rdn { + background-position: -303px -33px; +} \ No newline at end of file diff --git a/frontend/web/js/widget-carousel/HOME_SLIDER/style.js b/frontend/web/js/widget-carousel/HOME_SLIDER/style.js new file mode 100644 index 0000000..678e275 --- /dev/null +++ b/frontend/web/js/widget-carousel/HOME_SLIDER/style.js @@ -0,0 +1,61 @@ + +$(document).on('ready', function () +{ + var HOME_SLIDER_option_2 = + { + $AutoPlay: true, + $AutoPlaySteps: 1, +// $AutoPlayInterval: 4000, есть в HOME_SLIDER_option_1 + $PauseOnHover: 1, + + $ArrowKeyNavigation: true, +// $SlideDuration: 500, есть в HOME_SLIDER_option_1 + $MinDragOffsetToSlide: 20, + + $SlideSpacing: 0, + $DisplayPieces: 1, + $ParkingPosition: 0, + $UISearchMode: 1, + $PlayOrientation: 1, + $DragOrientation: 1, + + $BulletNavigatorOptions: { + $Class: $JssorBulletNavigator$, + $ChanceToShow: 2, + $AutoCenter: 0, + $Steps: 1, + $Lanes: 1, + $SpacingX: 10, + $SpacingY: 10, + $Orientation: 1 + }, + + $ArrowNavigatorOptions: { + $Class: $JssorArrowNavigator$, + $ChanceToShow: 2, + $AutoCenter: 0 + } + }; + + var HOME_SLIDER = new $JssorSlider$("HOME_SLIDER", $.extend({}, HOME_SLIDER_option_1, HOME_SLIDER_option_2)); + + function ScaleHOME_SLIDER () + { + $item = $("#HOME_SLIDER .item").width(); + + if ($(window).width()) + { + $body = $(window).width() - 70; + HOME_SLIDER.$ScaleWidth(Math.min($body, $item)); + } + else + { + window.setTimeout(ScaleHOME_SLIDER, 30); + } + } + + ScaleHOME_SLIDER(); + + $(window).bind("resize", ScaleHOME_SLIDER); + $(window).bind("orientationchange", ScaleHOME_SLIDER); +}); \ No newline at end of file diff --git a/frontend/web/js/widget-carousel/lib/jquery-1.4.2.min.js b/frontend/web/js/widget-carousel/lib/jquery-1.4.2.min.js new file mode 100644 index 0000000..7c24308 --- /dev/null +++ b/frontend/web/js/widget-carousel/lib/jquery-1.4.2.min.js @@ -0,0 +1,154 @@ +/*! + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Sat Feb 13 22:33:48 2010 -0500 + */ +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(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(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
        a"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

        ";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="
        ";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
        ","
        "],thead:[1,"","
        "],tr:[2,"","
        "],td:[3,"","
        "],col:[2,"","
        "],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
        ","
        "];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(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,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
        ").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
        "; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); diff --git a/frontend/web/js/widget-carousel/lib/jquery.jcarousel.js b/frontend/web/js/widget-carousel/lib/jquery.jcarousel.js new file mode 100644 index 0000000..1bbb0bb --- /dev/null +++ b/frontend/web/js/widget-carousel/lib/jquery.jcarousel.js @@ -0,0 +1,1057 @@ +/*! + * jCarousel - Riding carousels with jQuery + * http://sorgalla.com/jcarousel/ + * + * Copyright (c) 2006 Jan Sorgalla (http://sorgalla.com) + * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) + * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. + * + * Built on top of the jQuery library + * http://jquery.com + * + * Inspired by the "Carousel Component" by Bill Scott + * http://billwscott.com/carousel/ + */ + +/*global window, jQuery */ +(function($) { + // Default configuration properties. + var defaults = { + vertical: false, + rtl: false, + start: 1, + offset: 1, + size: null, + scroll: 3, + visible: null, + animation: 'normal', + easing: 'swing', + auto: 0, + wrap: null, + initCallback: null, + setupCallback: null, + reloadCallback: null, + itemLoadCallback: null, + itemFirstInCallback: null, + itemFirstOutCallback: null, + itemLastInCallback: null, + itemLastOutCallback: null, + itemVisibleInCallback: null, + itemVisibleOutCallback: null, + animationStepCallback: null, + buttonNextHTML: '
        ', + buttonPrevHTML: '
        ', + buttonNextEvent: 'click', + buttonPrevEvent: 'click', + buttonNextCallback: null, + buttonPrevCallback: null, + itemFallbackDimension: null + }, windowLoaded = false; + + $(window).bind('load.jcarousel', function() { windowLoaded = true; }); + + /** + * The jCarousel object. + * + * @constructor + * @class jcarousel + * @param e {HTMLElement} The element to create the carousel for. + * @param o {Object} A set of key/value pairs to set as configuration properties. + * @cat Plugins/jCarousel + */ + $.jcarousel = function(e, o) { + this.options = $.extend({}, defaults, o || {}); + + this.locked = false; + this.autoStopped = false; + + this.container = null; + this.clip = null; + this.list = null; + this.buttonNext = null; + this.buttonPrev = null; + this.buttonNextState = null; + this.buttonPrevState = null; + + // Only set if not explicitly passed as option + if (!o || o.rtl === undefined) { + this.options.rtl = ($(e).attr('dir') || $('html').attr('dir') || '').toLowerCase() == 'rtl'; + } + + this.wh = !this.options.vertical ? 'width' : 'height'; + this.lt = !this.options.vertical ? (this.options.rtl ? 'right' : 'left') : 'top'; + + // Extract skin class + var skin = '', split = e.className.split(' '); + + for (var i = 0; i < split.length; i++) { + if (split[i].indexOf('jcarousel-skin') != -1) { + $(e).removeClass(split[i]); + skin = split[i]; + break; + } + } + + if (e.nodeName.toUpperCase() == 'UL' || e.nodeName.toUpperCase() == 'OL') { + this.list = $(e); + this.clip = this.list.parents('.jcarousel-clip'); + this.container = this.list.parents('.jcarousel-container'); + } else { + this.container = $(e); + this.list = this.container.find('ul,ol').eq(0); + this.clip = this.container.find('.jcarousel-clip'); + } + + if (this.clip.size() === 0) { + this.clip = this.list.wrap('
        ').parent(); + } + + if (this.container.size() === 0) { + this.container = this.clip.wrap('
        ').parent(); + } + + if (skin !== '' && this.container.parent()[0].className.indexOf('jcarousel-skin') == -1) { + this.container.wrap('
        '); + } + + this.buttonPrev = $('.jcarousel-prev', this.container); + + if (this.buttonPrev.size() === 0 && this.options.buttonPrevHTML !== null) { + this.buttonPrev = $(this.options.buttonPrevHTML).appendTo(this.container); + } + + this.buttonPrev.addClass(this.className('jcarousel-prev')); + + this.buttonNext = $('.jcarousel-next', this.container); + + if (this.buttonNext.size() === 0 && this.options.buttonNextHTML !== null) { + this.buttonNext = $(this.options.buttonNextHTML).appendTo(this.container); + } + + this.buttonNext.addClass(this.className('jcarousel-next')); + + this.clip.addClass(this.className('jcarousel-clip')).css({ + position: 'relative' + }); + + this.list.addClass(this.className('jcarousel-list')).css({ + overflow: 'hidden', + position: 'relative', + top: 0, + margin: 0, + padding: 0 + }).css((this.options.rtl ? 'right' : 'left'), 0); + + this.container.addClass(this.className('jcarousel-container')).css({ + position: 'relative' + }); + + if (!this.options.vertical && this.options.rtl) { + this.container.addClass('jcarousel-direction-rtl').attr('dir', 'rtl'); + } + + var di = this.options.visible !== null ? Math.ceil(this.clipping() / this.options.visible) : null; + var li = this.list.children('li'); + + var self = this; + + if (li.size() > 0) { + var wh = 0, j = this.options.offset; + li.each(function() { + self.format(this, j++); + wh += self.dimension(this, di); + }); + + this.list.css(this.wh, (wh + 100) + 'px'); + + // Only set if not explicitly passed as option + if (!o || o.size === undefined) { + this.options.size = li.size(); + } + } + + // For whatever reason, .show() does not work in Safari... + this.container.css('display', 'block'); + this.buttonNext.css('display', 'block'); + this.buttonPrev.css('display', 'block'); + + this.funcNext = function() { self.next(); }; + this.funcPrev = function() { self.prev(); }; + this.funcResize = function() { + if (self.resizeTimer) { + clearTimeout(self.resizeTimer); + } + + self.resizeTimer = setTimeout(function() { + self.reload(); + }, 100); + }; + + if (this.options.initCallback !== null) { + this.options.initCallback(this, 'init'); + } + + if (!windowLoaded && $.browser.safari) { + this.buttons(false, false); + $(window).bind('load.jcarousel', function() { self.setup(); }); + } else { + this.setup(); + } + }; + + // Create shortcut for internal use + var $jc = $.jcarousel; + + $jc.fn = $jc.prototype = { + jcarousel: '0.2.8' + }; + + $jc.fn.extend = $jc.extend = $.extend; + + $jc.fn.extend({ + /** + * Setups the carousel. + * + * @method setup + * @return undefined + */ + setup: function() { + this.first = null; + this.last = null; + this.prevFirst = null; + this.prevLast = null; + this.animating = false; + this.timer = null; + this.resizeTimer = null; + this.tail = null; + this.inTail = false; + + if (this.locked) { + return; + } + + this.list.css(this.lt, this.pos(this.options.offset) + 'px'); + var p = this.pos(this.options.start, true); + this.prevFirst = this.prevLast = null; + this.animate(p, false); + + $(window).unbind('resize.jcarousel', this.funcResize).bind('resize.jcarousel', this.funcResize); + + if (this.options.setupCallback !== null) { + this.options.setupCallback(this); + } + }, + + /** + * Clears the list and resets the carousel. + * + * @method reset + * @return undefined + */ + reset: function() { + this.list.empty(); + + this.list.css(this.lt, '0px'); + this.list.css(this.wh, '10px'); + + if (this.options.initCallback !== null) { + this.options.initCallback(this, 'reset'); + } + + this.setup(); + }, + + /** + * Reloads the carousel and adjusts positions. + * + * @method reload + * @return undefined + */ + reload: function() { + if (this.tail !== null && this.inTail) { + this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) + this.tail); + } + + this.tail = null; + this.inTail = false; + + if (this.options.reloadCallback !== null) { + this.options.reloadCallback(this); + } + + if (this.options.visible !== null) { + var self = this; + var di = Math.ceil(this.clipping() / this.options.visible), wh = 0, lt = 0; + this.list.children('li').each(function(i) { + wh += self.dimension(this, di); + if (i + 1 < self.first) { + lt = wh; + } + }); + + this.list.css(this.wh, wh + 'px'); + this.list.css(this.lt, -lt + 'px'); + } + + this.scroll(this.first, false); + }, + + /** + * Locks the carousel. + * + * @method lock + * @return undefined + */ + lock: function() { + this.locked = true; + this.buttons(); + }, + + /** + * Unlocks the carousel. + * + * @method unlock + * @return undefined + */ + unlock: function() { + this.locked = false; + this.buttons(); + }, + + /** + * Sets the size of the carousel. + * + * @method size + * @return undefined + * @param s {Number} The size of the carousel. + */ + size: function(s) { + if (s !== undefined) { + this.options.size = s; + if (!this.locked) { + this.buttons(); + } + } + + return this.options.size; + }, + + /** + * Checks whether a list element exists for the given index (or index range). + * + * @method get + * @return bool + * @param i {Number} The index of the (first) element. + * @param i2 {Number} The index of the last element. + */ + has: function(i, i2) { + if (i2 === undefined || !i2) { + i2 = i; + } + + if (this.options.size !== null && i2 > this.options.size) { + i2 = this.options.size; + } + + for (var j = i; j <= i2; j++) { + var e = this.get(j); + if (!e.length || e.hasClass('jcarousel-item-placeholder')) { + return false; + } + } + + return true; + }, + + /** + * Returns a jQuery object with list element for the given index. + * + * @method get + * @return jQuery + * @param i {Number} The index of the element. + */ + get: function(i) { + return $('>.jcarousel-item-' + i, this.list); + }, + + /** + * Adds an element for the given index to the list. + * If the element already exists, it updates the inner html. + * Returns the created element as jQuery object. + * + * @method add + * @return jQuery + * @param i {Number} The index of the element. + * @param s {String} The innerHTML of the element. + */ + add: function(i, s) { + var e = this.get(i), old = 0, n = $(s); + + if (e.length === 0) { + var c, j = $jc.intval(i); + e = this.create(i); + while (true) { + c = this.get(--j); + if (j <= 0 || c.length) { + if (j <= 0) { + this.list.prepend(e); + } else { + c.after(e); + } + break; + } + } + } else { + old = this.dimension(e); + } + + if (n.get(0).nodeName.toUpperCase() == 'LI') { + e.replaceWith(n); + e = n; + } else { + e.empty().append(s); + } + + this.format(e.removeClass(this.className('jcarousel-item-placeholder')), i); + + var di = this.options.visible !== null ? Math.ceil(this.clipping() / this.options.visible) : null; + var wh = this.dimension(e, di) - old; + + if (i > 0 && i < this.first) { + this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) - wh + 'px'); + } + + this.list.css(this.wh, $jc.intval(this.list.css(this.wh)) + wh + 'px'); + + return e; + }, + + /** + * Removes an element for the given index from the list. + * + * @method remove + * @return undefined + * @param i {Number} The index of the element. + */ + remove: function(i) { + var e = this.get(i); + + // Check if item exists and is not currently visible + if (!e.length || (i >= this.first && i <= this.last)) { + return; + } + + var d = this.dimension(e); + + if (i < this.first) { + this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) + d + 'px'); + } + + e.remove(); + + this.list.css(this.wh, $jc.intval(this.list.css(this.wh)) - d + 'px'); + }, + + /** + * Moves the carousel forwards. + * + * @method next + * @return undefined + */ + next: function() { + if (this.tail !== null && !this.inTail) { + this.scrollTail(false); + } else { + this.scroll(((this.options.wrap == 'both' || this.options.wrap == 'last') && this.options.size !== null && this.last == this.options.size) ? 1 : this.first + this.options.scroll); + } + }, + + /** + * Moves the carousel backwards. + * + * @method prev + * @return undefined + */ + prev: function() { + if (this.tail !== null && this.inTail) { + this.scrollTail(true); + } else { + this.scroll(((this.options.wrap == 'both' || this.options.wrap == 'first') && this.options.size !== null && this.first == 1) ? this.options.size : this.first - this.options.scroll); + } + }, + + /** + * Scrolls the tail of the carousel. + * + * @method scrollTail + * @return undefined + * @param b {Boolean} Whether scroll the tail back or forward. + */ + scrollTail: function(b) { + if (this.locked || this.animating || !this.tail) { + return; + } + + this.pauseAuto(); + + var pos = $jc.intval(this.list.css(this.lt)); + + pos = !b ? pos - this.tail : pos + this.tail; + this.inTail = !b; + + // Save for callbacks + this.prevFirst = this.first; + this.prevLast = this.last; + + this.animate(pos); + }, + + /** + * Scrolls the carousel to a certain position. + * + * @method scroll + * @return undefined + * @param i {Number} The index of the element to scoll to. + * @param a {Boolean} Flag indicating whether to perform animation. + */ + scroll: function(i, a) { + if (this.locked || this.animating) { + return; + } + + this.pauseAuto(); + this.animate(this.pos(i), a); + }, + + /** + * Prepares the carousel and return the position for a certian index. + * + * @method pos + * @return {Number} + * @param i {Number} The index of the element to scoll to. + * @param fv {Boolean} Whether to force last item to be visible. + */ + pos: function(i, fv) { + var pos = $jc.intval(this.list.css(this.lt)); + + if (this.locked || this.animating) { + return pos; + } + + if (this.options.wrap != 'circular') { + i = i < 1 ? 1 : (this.options.size && i > this.options.size ? this.options.size : i); + } + + var back = this.first > i; + + // Create placeholders, new list width/height + // and new list position + var f = this.options.wrap != 'circular' && this.first <= 1 ? 1 : this.first; + var c = back ? this.get(f) : this.get(this.last); + var j = back ? f : f - 1; + var e = null, l = 0, p = false, d = 0, g; + + while (back ? --j >= i : ++j < i) { + e = this.get(j); + p = !e.length; + if (e.length === 0) { + e = this.create(j).addClass(this.className('jcarousel-item-placeholder')); + c[back ? 'before' : 'after' ](e); + + if (this.first !== null && this.options.wrap == 'circular' && this.options.size !== null && (j <= 0 || j > this.options.size)) { + g = this.get(this.index(j)); + if (g.length) { + e = this.add(j, g.clone(true)); + } + } + } + + c = e; + d = this.dimension(e); + + if (p) { + l += d; + } + + if (this.first !== null && (this.options.wrap == 'circular' || (j >= 1 && (this.options.size === null || j <= this.options.size)))) { + pos = back ? pos + d : pos - d; + } + } + + // Calculate visible items + var clipping = this.clipping(), cache = [], visible = 0, v = 0; + c = this.get(i - 1); + j = i; + + while (++visible) { + e = this.get(j); + p = !e.length; + if (e.length === 0) { + e = this.create(j).addClass(this.className('jcarousel-item-placeholder')); + // This should only happen on a next scroll + if (c.length === 0) { + this.list.prepend(e); + } else { + c[back ? 'before' : 'after' ](e); + } + + if (this.first !== null && this.options.wrap == 'circular' && this.options.size !== null && (j <= 0 || j > this.options.size)) { + g = this.get(this.index(j)); + if (g.length) { + e = this.add(j, g.clone(true)); + } + } + } + + c = e; + d = this.dimension(e); + if (d === 0) { + throw new Error('jCarousel: No width/height set for items. This will cause an infinite loop. Aborting...'); + } + + if (this.options.wrap != 'circular' && this.options.size !== null && j > this.options.size) { + cache.push(e); + } else if (p) { + l += d; + } + + v += d; + + if (v >= clipping) { + break; + } + + j++; + } + + // Remove out-of-range placeholders + for (var x = 0; x < cache.length; x++) { + cache[x].remove(); + } + + // Resize list + if (l > 0) { + this.list.css(this.wh, this.dimension(this.list) + l + 'px'); + + if (back) { + pos -= l; + this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) - l + 'px'); + } + } + + // Calculate first and last item + var last = i + visible - 1; + if (this.options.wrap != 'circular' && this.options.size && last > this.options.size) { + last = this.options.size; + } + + if (j > last) { + visible = 0; + j = last; + v = 0; + while (++visible) { + e = this.get(j--); + if (!e.length) { + break; + } + v += this.dimension(e); + if (v >= clipping) { + break; + } + } + } + + var first = last - visible + 1; + if (this.options.wrap != 'circular' && first < 1) { + first = 1; + } + + if (this.inTail && back) { + pos += this.tail; + this.inTail = false; + } + + this.tail = null; + if (this.options.wrap != 'circular' && last == this.options.size && (last - visible + 1) >= 1) { + var m = $jc.intval(this.get(last).css(!this.options.vertical ? 'marginRight' : 'marginBottom')); + if ((v - m) > clipping) { + this.tail = v - clipping - m; + } + } + + if (fv && i === this.options.size && this.tail) { + pos -= this.tail; + this.inTail = true; + } + + // Adjust position + while (i-- > first) { + pos += this.dimension(this.get(i)); + } + + // Save visible item range + this.prevFirst = this.first; + this.prevLast = this.last; + this.first = first; + this.last = last; + + return pos; + }, + + /** + * Animates the carousel to a certain position. + * + * @method animate + * @return undefined + * @param p {Number} Position to scroll to. + * @param a {Boolean} Flag indicating whether to perform animation. + */ + animate: function(p, a) { + if (this.locked || this.animating) { + return; + } + + this.animating = true; + + var self = this; + var scrolled = function() { + self.animating = false; + + if (p === 0) { + self.list.css(self.lt, 0); + } + + if (!self.autoStopped && (self.options.wrap == 'circular' || self.options.wrap == 'both' || self.options.wrap == 'last' || self.options.size === null || self.last < self.options.size || (self.last == self.options.size && self.tail !== null && !self.inTail))) { + self.startAuto(); + } + + self.buttons(); + self.notify('onAfterAnimation'); + + // This function removes items which are appended automatically for circulation. + // This prevents the list from growing infinitely. + if (self.options.wrap == 'circular' && self.options.size !== null) { + for (var i = self.prevFirst; i <= self.prevLast; i++) { + if (i !== null && !(i >= self.first && i <= self.last) && (i < 1 || i > self.options.size)) { + self.remove(i); + } + } + } + }; + + this.notify('onBeforeAnimation'); + + // Animate + if (!this.options.animation || a === false) { + this.list.css(this.lt, p + 'px'); + scrolled(); + } else { + var o = !this.options.vertical ? (this.options.rtl ? {'right': p} : {'left': p}) : {'top': p}; + // Define animation settings. + var settings = { + duration: this.options.animation, + easing: this.options.easing, + complete: scrolled + }; + // If we have a step callback, specify it as well. + if ($.isFunction(this.options.animationStepCallback)) { + settings.step = this.options.animationStepCallback; + } + // Start the animation. + this.list.animate(o, settings); + } + }, + + /** + * Starts autoscrolling. + * + * @method auto + * @return undefined + * @param s {Number} Seconds to periodically autoscroll the content. + */ + startAuto: function(s) { + if (s !== undefined) { + this.options.auto = s; + } + + if (this.options.auto === 0) { + return this.stopAuto(); + } + + if (this.timer !== null) { + return; + } + + this.autoStopped = false; + + var self = this; + this.timer = window.setTimeout(function() { self.next(); }, this.options.auto * 1000); + }, + + /** + * Stops autoscrolling. + * + * @method stopAuto + * @return undefined + */ + stopAuto: function() { + this.pauseAuto(); + this.autoStopped = true; + }, + + /** + * Pauses autoscrolling. + * + * @method pauseAuto + * @return undefined + */ + pauseAuto: function() { + if (this.timer === null) { + return; + } + + window.clearTimeout(this.timer); + this.timer = null; + }, + + /** + * Sets the states of the prev/next buttons. + * + * @method buttons + * @return undefined + */ + buttons: function(n, p) { + if (n == null) { + n = !this.locked && this.options.size !== 0 && ((this.options.wrap && this.options.wrap != 'first') || this.options.size === null || this.last < this.options.size); + if (!this.locked && (!this.options.wrap || this.options.wrap == 'first') && this.options.size !== null && this.last >= this.options.size) { + n = this.tail !== null && !this.inTail; + } + } + + if (p == null) { + p = !this.locked && this.options.size !== 0 && ((this.options.wrap && this.options.wrap != 'last') || this.first > 1); + if (!this.locked && (!this.options.wrap || this.options.wrap == 'last') && this.options.size !== null && this.first == 1) { + p = this.tail !== null && this.inTail; + } + } + + var self = this; + + if (this.buttonNext.size() > 0) { + this.buttonNext.unbind(this.options.buttonNextEvent + '.jcarousel', this.funcNext); + + if (n) { + this.buttonNext.bind(this.options.buttonNextEvent + '.jcarousel', this.funcNext); + } + + this.buttonNext[n ? 'removeClass' : 'addClass'](this.className('jcarousel-next-disabled')).attr('disabled', n ? false : true); + + if (this.options.buttonNextCallback !== null && this.buttonNext.data('jcarouselstate') != n) { + this.buttonNext.each(function() { self.options.buttonNextCallback(self, this, n); }).data('jcarouselstate', n); + } + } else { + if (this.options.buttonNextCallback !== null && this.buttonNextState != n) { + this.options.buttonNextCallback(self, null, n); + } + } + + if (this.buttonPrev.size() > 0) { + this.buttonPrev.unbind(this.options.buttonPrevEvent + '.jcarousel', this.funcPrev); + + if (p) { + this.buttonPrev.bind(this.options.buttonPrevEvent + '.jcarousel', this.funcPrev); + } + + this.buttonPrev[p ? 'removeClass' : 'addClass'](this.className('jcarousel-prev-disabled')).attr('disabled', p ? false : true); + + if (this.options.buttonPrevCallback !== null && this.buttonPrev.data('jcarouselstate') != p) { + this.buttonPrev.each(function() { self.options.buttonPrevCallback(self, this, p); }).data('jcarouselstate', p); + } + } else { + if (this.options.buttonPrevCallback !== null && this.buttonPrevState != p) { + this.options.buttonPrevCallback(self, null, p); + } + } + + this.buttonNextState = n; + this.buttonPrevState = p; + }, + + /** + * Notify callback of a specified event. + * + * @method notify + * @return undefined + * @param evt {String} The event name + */ + notify: function(evt) { + var state = this.prevFirst === null ? 'init' : (this.prevFirst < this.first ? 'next' : 'prev'); + + // Load items + this.callback('itemLoadCallback', evt, state); + + if (this.prevFirst !== this.first) { + this.callback('itemFirstInCallback', evt, state, this.first); + this.callback('itemFirstOutCallback', evt, state, this.prevFirst); + } + + if (this.prevLast !== this.last) { + this.callback('itemLastInCallback', evt, state, this.last); + this.callback('itemLastOutCallback', evt, state, this.prevLast); + } + + this.callback('itemVisibleInCallback', evt, state, this.first, this.last, this.prevFirst, this.prevLast); + this.callback('itemVisibleOutCallback', evt, state, this.prevFirst, this.prevLast, this.first, this.last); + }, + + callback: function(cb, evt, state, i1, i2, i3, i4) { + if (this.options[cb] == null || (typeof this.options[cb] != 'object' && evt != 'onAfterAnimation')) { + return; + } + + var callback = typeof this.options[cb] == 'object' ? this.options[cb][evt] : this.options[cb]; + + if (!$.isFunction(callback)) { + return; + } + + var self = this; + + if (i1 === undefined) { + callback(self, state, evt); + } else if (i2 === undefined) { + this.get(i1).each(function() { callback(self, this, i1, state, evt); }); + } else { + var call = function(i) { + self.get(i).each(function() { callback(self, this, i, state, evt); }); + }; + for (var i = i1; i <= i2; i++) { + if (i !== null && !(i >= i3 && i <= i4)) { + call(i); + } + } + } + }, + + create: function(i) { + return this.format('
      • ', i); + }, + + format: function(e, i) { + e = $(e); + var split = e.get(0).className.split(' '); + for (var j = 0; j < split.length; j++) { + if (split[j].indexOf('jcarousel-') != -1) { + e.removeClass(split[j]); + } + } + e.addClass(this.className('jcarousel-item')).addClass(this.className('jcarousel-item-' + i)).css({ + 'float': (this.options.rtl ? 'right' : 'left'), + 'list-style': 'none' + }).attr('jcarouselindex', i); + return e; + }, + + className: function(c) { + return c + ' ' + c + (!this.options.vertical ? '-horizontal' : '-vertical'); + }, + + dimension: function(e, d) { + var el = $(e); + + if (d == null) { + return !this.options.vertical ? + (el.outerWidth(true) || $jc.intval(this.options.itemFallbackDimension)) : + (el.outerHeight(true) || $jc.intval(this.options.itemFallbackDimension)); + } else { + var w = !this.options.vertical ? + d - $jc.intval(el.css('marginLeft')) - $jc.intval(el.css('marginRight')) : + d - $jc.intval(el.css('marginTop')) - $jc.intval(el.css('marginBottom')); + + $(el).css(this.wh, w + 'px'); + + return this.dimension(el); + } + }, + + clipping: function() { + return !this.options.vertical ? + this.clip[0].offsetWidth - $jc.intval(this.clip.css('borderLeftWidth')) - $jc.intval(this.clip.css('borderRightWidth')) : + this.clip[0].offsetHeight - $jc.intval(this.clip.css('borderTopWidth')) - $jc.intval(this.clip.css('borderBottomWidth')); + }, + + index: function(i, s) { + if (s == null) { + s = this.options.size; + } + + return Math.round((((i-1) / s) - Math.floor((i-1) / s)) * s) + 1; + } + }); + + $jc.extend({ + /** + * Gets/Sets the global default configuration properties. + * + * @method defaults + * @return {Object} + * @param d {Object} A set of key/value pairs to set as configuration properties. + */ + defaults: function(d) { + return $.extend(defaults, d || {}); + }, + + intval: function(v) { + v = parseInt(v, 10); + return isNaN(v) ? 0 : v; + }, + + windowLoaded: function() { + windowLoaded = true; + } + }); + + /** + * Creates a carousel for all matched elements. + * + * @example $("#mycarousel").jcarousel(); + * @before
        • First item
        • Second item
        + * @result + * + *
        + *
        + *
        + *
          + *
        • First item
        • + *
        • Second item
        • + *
        + *
        + *
        + *
        + *
        + *
        + * + * @method jcarousel + * @return jQuery + * @param o {Hash|String} A set of key/value pairs to set as configuration properties or a method name to call on a formerly created instance. + */ + $.fn.jcarousel = function(o) { + if (typeof o == 'string') { + var instance = $(this).data('jcarousel'), args = Array.prototype.slice.call(arguments, 1); + return instance[o].apply(instance, args); + } else { + return this.each(function() { + var instance = $(this).data('jcarousel'); + if (instance) { + if (o) { + $.extend(instance.options, o); + } + instance.reload(); + } else { + $(this).data('jcarousel', new $jc(this, o)); + } + }); + } + }; + +})(jQuery); diff --git a/frontend/web/js/widget-carousel/lib/jquery.jcarousel.min.js b/frontend/web/js/widget-carousel/lib/jquery.jcarousel.min.js new file mode 100644 index 0000000..2f04d97 --- /dev/null +++ b/frontend/web/js/widget-carousel/lib/jquery.jcarousel.min.js @@ -0,0 +1,2 @@ +(function(h,e,b,i,c,g,j){/*! Jssor */ + new(function(){});var d=h.$JssorEasing$={$EaseSwing:function(a){return-b.cos(a*b.PI)/2+.5},$EaseLinear:function(a){return a},$EaseInQuad:function(a){return a*a},$EaseOutQuad:function(a){return-a*(a-2)},$EaseInOutQuad:function(a){return(a*=2)<1?1/2*a*a:-1/2*(--a*(a-2)-1)},$EaseInCubic:function(a){return a*a*a},$EaseOutCubic:function(a){return(a-=1)*a*a+1},$EaseInOutCubic:function(a){return(a*=2)<1?1/2*a*a*a:1/2*((a-=2)*a*a+2)},$EaseInQuart:function(a){return a*a*a*a},$EaseOutQuart:function(a){return-((a-=1)*a*a*a-1)},$EaseInOutQuart:function(a){return(a*=2)<1?1/2*a*a*a*a:-1/2*((a-=2)*a*a*a-2)},$EaseInQuint:function(a){return a*a*a*a*a},$EaseOutQuint:function(a){return(a-=1)*a*a*a*a+1},$EaseInOutQuint:function(a){return(a*=2)<1?1/2*a*a*a*a*a:1/2*((a-=2)*a*a*a*a+2)},$EaseInSine:function(a){return 1-b.cos(a*b.PI/2)},$EaseOutSine:function(a){return b.sin(a*b.PI/2)},$EaseInOutSine:function(a){return-1/2*(b.cos(b.PI*a)-1)},$EaseInExpo:function(a){return a==0?0:b.pow(2,10*(a-1))},$EaseOutExpo:function(a){return a==1?1:-b.pow(2,-10*a)+1},$EaseInOutExpo:function(a){return a==0||a==1?a:(a*=2)<1?1/2*b.pow(2,10*(a-1)):1/2*(-b.pow(2,-10*--a)+2)},$EaseInCirc:function(a){return-(b.sqrt(1-a*a)-1)},$EaseOutCirc:function(a){return b.sqrt(1-(a-=1)*a)},$EaseInOutCirc:function(a){return(a*=2)<1?-1/2*(b.sqrt(1-a*a)-1):1/2*(b.sqrt(1-(a-=2)*a)+1)},$EaseInElastic:function(a){if(!a||a==1)return a;var c=.3,d=.075;return-(b.pow(2,10*(a-=1))*b.sin((a-d)*2*b.PI/c))},$EaseOutElastic:function(a){if(!a||a==1)return a;var c=.3,d=.075;return b.pow(2,-10*a)*b.sin((a-d)*2*b.PI/c)+1},$EaseInOutElastic:function(a){if(!a||a==1)return a;var c=.45,d=.1125;return(a*=2)<1?-.5*b.pow(2,10*(a-=1))*b.sin((a-d)*2*b.PI/c):b.pow(2,-10*(a-=1))*b.sin((a-d)*2*b.PI/c)*.5+1},$EaseInBack:function(a){var b=1.70158;return a*a*((b+1)*a-b)},$EaseOutBack:function(a){var b=1.70158;return(a-=1)*a*((b+1)*a+b)+1},$EaseInOutBack:function(a){var b=1.70158;return(a*=2)<1?1/2*a*a*(((b*=1.525)+1)*a-b):1/2*((a-=2)*a*(((b*=1.525)+1)*a+b)+2)},$EaseInBounce:function(a){return 1-d.$EaseOutBounce(1-a)},$EaseOutBounce:function(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},$EaseInOutBounce:function(a){return a<1/2?d.$EaseInBounce(a*2)*.5:d.$EaseOutBounce(a*2-1)*.5+.5},$EaseGoBack:function(a){return 1-b.abs(2-1)},$EaseInWave:function(a){return 1-b.cos(a*b.PI*2)},$EaseOutWave:function(a){return b.sin(a*b.PI*2)},$EaseOutJump:function(a){return 1-((a*=2)<1?(a=1-a)*a*a:(a-=1)*a*a)},$EaseInJump:function(a){return(a*=2)<1?a*a*a:(a=2-a)*a*a}};var a=new function(){var f=this,xb=/\S+/g,T=1,fb=2,kb=3,jb=4,ob=5,L,s=0,l=0,p=0,bb=0,A=0,B=navigator,tb=B.appName,k=B.userAgent,z;function Eb(){if(!L){L={ie:"ontouchstart"in h||"createTouch"in e};var a;if(B.pointerEnabled||(a=B.msPointerEnabled))L.dd=a?"msTouchAction":"touchAction"}return L}function v(i){if(!s){s=-1;if(tb=="Microsoft Internet Explorer"&&!!h.attachEvent&&!!h.ActiveXObject){var f=k.indexOf("MSIE");s=T;p=n(k.substring(f+5,k.indexOf(";",f)));/*@cc_on bb=@_jscript_version@*/;l=e.documentMode||p}else if(tb=="Netscape"&&!!h.addEventListener){var d=k.indexOf("Firefox"),b=k.indexOf("Safari"),g=k.indexOf("Chrome"),c=k.indexOf("AppleWebKit");if(d>=0){s=fb;l=n(k.substring(d+8))}else if(b>=0){var j=k.substring(0,b).lastIndexOf("/");s=g>=0?jb:kb;l=n(k.substring(j+1,b))}else{var a=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/i.exec(k);if(a){s=T;l=p=n(a[1])}}if(c>=0)A=n(k.substring(c+12))}else{var a=/(opera)(?:.*version|)[ \/]([\w.]+)/i.exec(k);if(a){s=ob;l=n(a[2])}}}return i==s}function q(){return v(T)}function O(){return q()&&(l<6||e.compatMode=="BackCompat")}function ib(){return v(kb)}function hb(){return v(jb)}function nb(){return v(ob)}function cb(){return ib()&&A>534&&A<535}function M(){return q()&&l<9}function t(a){if(!z){m(["transform","WebkitTransform","msTransform","MozTransform","OTransform"],function(b){if(a.style[b]!=j){z=b;return c}});z=z||"transform"}return z}function sb(a){return{}.toString.call(a)}var K;function Cb(){if(!K){K={};m(["Boolean","Number","String","Function","Array","Date","RegExp","Object"],function(a){K["[object "+a+"]"]=a.toLowerCase()})}return K}function m(a,d){if(sb(a)=="[object Array]"){for(var b=0;b535&&"ontouchstart"in h)k+=" perspective(2000px)";e.style[g]=k}}}f.me=function(b,a){if(cb())vb(f.F(i,ab,b,a));else ab(b,a)};f.le=function(b,c){var a=t(b);if(a)b.style[a+"Origin"]=c};f.oe=function(a,c){if(q()&&p<9||p<10&&O())a.style.zoom=c==1?"":c;else{var b=t(a);if(b){var f="scale("+c+")",e=a.style[b],g=new RegExp(/[\s]*scale\(.*?\)/g),d=I(e,[g],f);a.style[b]=d}}};f.ne=function(a){if(!a.style[t(a)]||a.style[t(a)]=="none")a.style[t(a)]="perspective(2000px)"};f.Rb=function(b,a){return function(c){c=r(c);var e=c.type,d=c.relatedTarget||(e=="mouseout"?c.toElement:c.fromElement);(!d||d!==a&&!f.nf(a,d))&&b(c)}};f.c=function(a,c,d,b){a=f.hb(a);if(a.addEventListener){c=="mousewheel"&&a.addEventListener("DOMMouseScroll",d,b);a.addEventListener(c,d,b)}else if(a.attachEvent){a.attachEvent("on"+c,d);b&&a.setCapture&&a.setCapture()}};f.I=function(a,c,d,b){a=f.hb(a);if(a.removeEventListener){c=="mousewheel"&&a.removeEventListener("DOMMouseScroll",d,b);a.removeEventListener(c,d,b)}else if(a.detachEvent){a.detachEvent("on"+c,d);b&&a.releaseCapture&&a.releaseCapture()}};f.Fb=function(a){a=r(a);a.preventDefault&&a.preventDefault();a.cancel=c;a.returnValue=g};f.af=function(a){a=r(a);a.stopPropagation&&a.stopPropagation();a.cancelBubble=c};f.F=function(d,c){var a=[].slice.call(arguments,2),b=function(){var b=a.concat([].slice.call(arguments,0));return c.apply(d,b)};return b};f.gf=function(a,b){if(b==j)return a.textContent||a.innerText;var c=e.createTextNode(b);f.jc(a);a.appendChild(c)};f.V=function(d,c){for(var b=[],a=d.firstChild;a;a=a.nextSibling)(c||a.nodeType==1)&&b.push(a);return b};function rb(a,c,e,b){b=b||"u";for(a=a?a.firstChild:i;a;a=a.nextSibling)if(a.nodeType==1){if(S(a,b)==c)return a;if(!e){var d=rb(a,c,e,b);if(d)return d}}}f.C=rb;function Q(a,d,f,b){b=b||"u";var c=[];for(a=a?a.firstChild:i;a;a=a.nextSibling)if(a.nodeType==1){S(a,b)==d&&c.push(a);if(!f){var e=Q(a,d,f,b);if(e.length)c=c.concat(e)}}return c}function lb(a,c,d){for(a=a?a.firstChild:i;a;a=a.nextSibling)if(a.nodeType==1){if(a.tagName==c)return a;if(!d){var b=lb(a,c,d);if(b)return b}}}f.cf=lb;function db(a,c,e){var b=[];for(a=a?a.firstChild:i;a;a=a.nextSibling)if(a.nodeType==1){(!c||a.tagName==c)&&b.push(a);if(!e){var d=db(a,c,e);if(d.length)b=b.concat(d)}}return b}f.of=db;f.mf=function(b,a){return b.getElementsByTagName(a)};function C(){var e=arguments,d,c,b,a,g=1&e[0],f=1+g;d=e[f-1]||{};for(;f-1;f--){var d=c[f],e=V(i);w(e,w(d));a.Vb(e,d.style.cssText);a.Wb(e,d);a.wb(d)}return b};function Db(b){var q=this,o="",r=["av","pv","ds","dn"],g=[],p,k=0,h=0,d=0;function i(){H(b,p,g[d||k||h&2||h]);a.cb(b,"pointer-events",d?"none":"")}function c(){k=0;i();f.I(e,"mouseup",c);f.I(e,"touchend",c);f.I(e,"touchcancel",c)}function n(a){if(d)f.Fb(a);else{k=4;i();f.c(e,"mouseup",c);f.c(e,"touchend",c);f.c(e,"touchcancel",c)}}q.Ic=function(a){if(a!=j){h=a&2||a&1;i()}else return h};q.$Enable=function(a){if(a==j)return!d;d=a?0:3;i()};b=f.hb(b);var l=a.Oe(w(b));if(l)o=l.shift();m(r,function(a){g.push(o+a)});p=Z(" ",g);g.unshift("");f.c(b,"mousedown",n);f.c(b,"touchstart",n)}f.Ub=function(a){return new Db(a)};f.cb=E;f.ab=o("overflow");f.B=o("top",2);f.z=o("left",2);f.o=o("width",2);f.n=o("height",2);f.Vc=o("marginLeft",2);f.Uc=o("marginTop",2);f.E=o("position");f.N=o("display");f.H=o("zIndex",1);f.rb=function(b,a,c){if(a!=j)Bb(b,a,c);else return Ab(b)};f.Vb=function(a,b){if(b!=j)a.style.cssText=b;else return a.style.cssText};var R={$Opacity:f.rb,$Top:f.B,$Left:f.z,db:f.o,eb:f.n,xb:f.E,yg:f.N,$ZIndex:f.H},u;function J(){if(!u)u=C({zg:f.Uc,Ag:f.Vc,$Clip:f.Ve,kc:f.me},R);return u}function pb(){J();u.kc=u.kc;return u}f.ce=J;f.Wd=pb;f.Vd=function(c,b){J();var a={};m(b,function(d,b){if(R[b])a[b]=R[b](c)});return a};f.L=function(c,b){var a=J();m(b,function(d,b){a[b]&&a[b](c,d)})};f.Ad=function(b,a){pb();f.L(b,a)};var F=new function(){var a=this;function b(d,g){for(var j=d[0].length,i=d.length,h=g[0].length,f=[],c=0;c=j||d<=f))d=((d-f)%r+r)%r+f;if(!E||x||i||l!=d){var g=b.min(d,j);g=b.max(g,f);if(!E||x||i||g!=n){if(K){var h=(g-m)/(z||1);if(k.$Reverse)h=1-h;var p=a.td(P,K,h,I,H,J,k);a.e(p,function(b,a){C[a]&&C[a](R,b)})}e.rc(n-m,g-m);n=g;a.e(y,function(b,c){var a=o=p*q)c=p;w(c);if(!x&&c*q>=p*q)N(D);else t(L)}}function v(d,g,h){if(!s){s=c;x=h;D=g;d=b.max(d,f);d=b.min(d,j);p=d;q=p=0&&b=0&&h=0&&b=0&&cf||d>h){switch(e){case j:case m:a++;break;case k:case l:case o:case i:b++;break;case p:case n:default:a--}if(a<0||b<0||a>f||b>h){switch(e){case j:case m:a=f;b++;break;case o:case i:b=h;a++;break;case k:case l:b=h;a--;break;case p:case n:default:a=0;b++}if(b>h)b=h;else if(b<0)b=0;else if(a>f)a=f;else if(a<0)a=0}d=b;c=a}}return r};h.$FormationSquare=function(i){var a=i.$Cols||1,c=i.$Rows||1,j=[],d,e,f,h,k;f=ac?(a-c)/2:0;k=b.round(b.max(a/2,c/2))+1;for(d=0;d1||d.$Clip;if(d.$Zoom||d.$Rotate){var H=c;if(a.Q())if(d.$Cols*d.$Rows>1)H=g;else I=g;if(H){e.$Zoom=d.$Zoom?d.$Zoom-1:1;f.$Zoom=1;if(a.Q()||a.vc())e.$Zoom=b.min(e.$Zoom,2);var N=d.$Rotate;e.$Rotate=N*360*(x?-1:1);f.$Rotate=0}}if(I){if(d.$Clip){var w=d.$ScaleClip||1,i=t.Bb={};if(C&&z){i.$Top=h.eb/2*w;i.$Bottom=-i.$Top}else if(C)i.$Bottom=-h.eb*w;else if(z)i.$Top=h.eb*w;if(B&&A){i.$Left=h.db/2*w;i.$Right=-i.$Left}else if(B)i.$Right=-h.db*w;else if(A)i.$Left=h.db*w}r.$Clip=t;f.$Clip=h[v]}var L=o?1:-1,M=s?1:-1;if(d.x)e.$Left+=n*d.x*L;if(d.y)e.$Top+=l*d.y*M;a.e(e,function(b,c){if(a.Pc(b))if(b!=f[c])r[c]=b-f[c]});u[v]=k?f:e;var D=d.Od,y=b.round(m*d.$Delay/d.$Interval);j[v]=new Array(y);j[v].Cd=y;j[v].zd=y+D-1;for(var F=0;F<=D;F++){var E=a.td(f,r,F/D,d.$Easing,d.$During,d.$Round,{$Move:d.$Move,$OriginalWidth:n,$OriginalHeight:l});E.$ZIndex=E.$ZIndex||1;j[v].push(E)}})});o.reverse();a.e(o,function(b){a.e(b,function(c){var f=c[0],e=c[1],d=f+","+e,b=i;if(e||f)b=a.O(i);a.L(b,u[d]);a.ab(b,"hidden");a.E(b,"absolute");A.Zd(b);m[d]=b;a.A(b,!k)})})}function v(){var a=this,b=0;k.call(a,0,u);a.Gb=function(c,a){if(a-b>j){b=a;e&&e.Ob(a);h&&h.Ob(a)}};a.nb=r}f.Hd=function(){var a=0,c=t.$Transitions,d=c.length;if(w)a=x++%d;else a=b.floor(b.random()*d);c[a]&&(c[a].Z=a);return c[a]};f.Dd=function(w,x,i,k,a){r=a;a=m(a,j);var g=k.id,d=i.id;g["no-image"]=!k.Tb;d["no-image"]=!i.Tb;var l=g,n=d,v=a,c=a.$Brother||m({},j);if(!a.$SlideOut){l=d;n=g}var t=c.$Shift||0;h=new p(o,n,c,b.max(t-c.$Interval,0),s,q);e=new p(o,l,v,b.max(c.$Interval-t,0),s,q);h.Ob(0);e.Ob(0);u=b.max(h.Mc,e.Mc);f.Z=w};f.Db=function(){o.Db();h=i;e=i};f.Jd=function(){var a=i;if(e)a=new v;return a};if(a.Q()||a.vc()||y&&a.oc()<537)j=16;l.call(f);k.call(f,-1e7,1e7)};var f=h.$JssorSlider$=function(q,ec){var n=this;function Dc(){var a=this;k.call(a,-1e8,2e8);a.Td=function(){var c=a.Eb(),d=b.floor(c),f=s(d),e=c-b.floor(c);return{Z:f,Md:d,xb:e}};a.Gb=function(d,a){var e=b.floor(a);if(e!=a&&a>d)e++;Tb(e,c);n.i(f.$EVT_POSITION_CHANGE,s(a),s(d),a,d)}}function Cc(){var b=this;k.call(b,0,0,{ed:r});a.e(D,function(a){A&1&&a.Fd(r);b.nc(a);a.$Shift(hb/ac)})}function Bc(){var a=this,b=Sb.$Elmt;k.call(a,-1,2,{$Easing:d.$EaseLinear,wc:{xb:Yb},ed:r},b,{xb:1},{xb:-2});a.Nb=b}function pc(m,l){var a=this,d,e,h,j,b;k.call(a,-1e8,2e8,{md:100});a.ld=function(){Q=c;U=i;n.i(f.$EVT_SWIPE_START,s(w.T()),w.T())};a.kd=function(){Q=g;j=g;var a=w.Td();n.i(f.$EVT_SWIPE_END,s(w.T()),w.T());!a.xb&&Fc(a.Md,t)};a.Gb=function(g,f){var a;if(j)a=b;else{a=e;if(h){var c=f/h;a=p.$SlideEasing(c)*(e-d)+d}}w.v(a)};a.Qb=function(b,f,c,g){d=b;e=f;h=c;w.v(b);a.v(0);a.fd(c,g)};a.Nd=function(d){j=c;b=d;a.$Play(d,i,c)};a.Sd=function(a){b=a};w=new Dc;w.X(m);w.X(l)}function qc(){var c=this,b=Wb();a.H(b,0);a.cb(b,"pointerEvents","none");c.$Elmt=b;c.Zd=function(c){a.D(b,c);a.A(b)};c.Db=function(){a.K(b);a.jc(b)}}function zc(o,e){var d=this,q,x,N,y,j,C=[],H,v,W,K,Q,G,h,w,m;k.call(d,-u,u+1,{});function F(a){x&&x.Sb();q&&q.Sb();V(o,a);G=c;q=new L.$Class(o,L,1);x=new L.$Class(o,L);x.v(0);q.v(0)}function Y(){q.ZbJ||b>I)){var i=g,q=J/I*b/h;if(p.$FillMode&1)i=q>1;else if(p.$FillMode&2)i=q<1;l=i?h*I/b:J;k=i?I:b*J/h}a.o(j,l);a.n(j,k);a.B(j,(I-k)/2);a.z(j,(J-l)/2)}a.E(j,"absolute");n.i(f.$EVT_LOAD_END,e)}}a.K(r);o&&o(d)}function X(b,c,f,g){if(g==U&&t==e&&R)if(!Ec){var a=s(b);B.Dd(a,e,c,d,f);c.Xe();ab.Jb(a,1);ab.v(a);z.Qb(b,b,0)}}function bb(b){if(b==U&&t==e){if(!h){var a=i;if(B)if(B.Z==e)a=B.Jd();else B.Db();Y();h=new xc(o,e,a,d.Te(),d.Le());h.Jc(m)}!h.$IsPlaying()&&h.zc()}}function T(f,c,g){if(f==e){if(f!=c)D[c]&&D[c].Ue();else!g&&h&&h.Ye();m&&m.$Enable();var j=U=a.J();d.Ab(a.F(i,bb,j))}else{var l=b.abs(e-f),k=u+p.$LazyLoading-1;(!Q||l<=k)&&d.Ab()}}function cb(){if(t==e&&h){h.W();m&&m.$Quit();m&&m.$Disable();h.Oc()}}function fb(){t==e&&h&&h.W()}function Z(a){!M&&n.i(f.$EVT_CLICK,e,a)}function P(){m=w.pInstance;h&&h.Jc(m)}d.Ab=function(d,b){b=b||y;if(C.length&&!K){a.A(b);if(!W){W=c;n.i(f.$EVT_LOAD_START,e);a.e(C,function(b){if(!a.M(b,"src")){b.src=a.t(b,"src2");a.N(b,b["display-origin"])}})}a.bf(C,j,a.F(i,O,d,b))}else O(d,b)};d.df=function(){var g=e;if(p.$AutoPlaySteps<0)g-=r;var c=g+p.$AutoPlaySteps*vc;if(A&2)c=s(c);if(!(A&1))c=b.max(0,b.min(c,r-u));if(c!=e){if(B){var d=B.Hd(r);if(d){var h=U=a.J(),f=D[s(c)];return f.Ab(a.F(i,X,c,f,d,h),y)}}pb(c)}};d.bc=function(){T(e,e,c)};d.Ue=function(){m&&m.$Quit();m&&m.$Disable();d.rd();h&&h.ff();h=i;F()};d.Xe=function(){a.K(o)};d.rd=function(){a.A(o)};d.ef=function(){m&&m.$Enable()};function V(b,e,d){if(a.M(b,"jssor-slider"))return;d=d||0;if(!G){if(b.tagName=="IMG"){C.push(b);if(!a.M(b,"src")){Q=c;b["display-origin"]=a.N(b);a.K(b)}}a.Q()&&a.H(b,(a.H(b)||0)+1);if(p.$HWA&&a.oc())(a.oc()<534||!eb&&!a.ee())&&a.ne(b)}var f=a.V(b);a.e(f,function(f){var i=f.tagName,k=a.t(f,"u");if(k=="player"&&!w){w=f;if(w.pInstance)P();else a.c(w,"dataavailable",P)}if(k=="caption"){if(!a.Wc()&&!e){var h=a.O(f,g,c);a.Wb(h,f,b);a.wb(f,b);f=h;e=c}}else if(!G&&!d&&!j){if(i=="A"){if(a.t(f,"u")=="image")j=a.cf(f,"IMG");else j=a.C(f,"image",c);if(j){H=f;a.L(H,S);v=a.O(H,c);a.N(v,"block");a.L(v,S);a.rb(v,0);a.cb(v,"backgroundColor","#000")}}else if(i=="IMG"&&a.t(f,"u")=="image")j=f;if(j){j.border=0;a.L(j,S)}}V(f,e,d+1)})}d.rc=function(c,b){var a=u-b;Yb(N,a)};d.Te=function(){return q};d.Le=function(){return x};d.Z=e;l.call(d);var E=a.C(o,"thumb",c);if(E){d.hf=a.O(E);a.Kc(E,"id");a.K(E)}a.A(o);y=a.O(db);a.H(y,1e3);a.c(o,"click",Z);F(c);d.Tb=j;d.qd=v;d.id=o;d.Nb=N=o;a.D(N,y);n.$On(203,T);n.$On(28,fb);n.$On(24,cb)}function xc(G,i,p,u,s){var b=this,l=0,w=0,m,h,d,e,j,q,v,r,o=D[i];k.call(b,0,0);function x(){a.jc(O);cc&&j&&o.qd&&a.D(O,o.qd);a.A(O,!j&&o.Tb)}function y(){if(q){q=g;n.i(f.$EVT_ROLLBACK_END,i,d,l,h,d,e);b.v(h)}b.zc()}function z(a){r=a;b.W();b.zc()}b.zc=function(){var a=b.Eb();if(!C&&!Q&&!r&&t==i){if(!a){if(m&&!j){j=c;b.Oc(c);n.i(f.$EVT_SLIDESHOW_START,i,l,w,m,e)}x()}var g,p=f.$EVT_STATE_CHANGE;if(a!=e)if(a==d)g=e;else if(a==h)g=d;else if(!a)g=h;else if(a>d){q=c;g=d;p=f.$EVT_ROLLBACK_START}else g=b.jd();n.i(p,i,a,l,h,d,e);var k=R&&(!E||F);if(a==e)(d!=e&&!(E&12)||k)&&o.df();else(k||a!=d)&&b.fd(g,y)}};b.Ye=function(){d==e&&d==b.Eb()&&b.v(h)};b.ff=function(){B&&B.Z==i&&B.Db();var a=b.Eb();a=m){j=g;x();o.rd();B.Db();n.i(f.$EVT_SLIDESHOW_END,i,l,w,m,e)}n.i(f.$EVT_PROGRESS_CHANGE,i,a,l,h,d,e)};b.Jc=function(a){if(a&&!v){v=a;a.$On($JssorPlayer$.be,z)}};p&&b.nc(p);m=b.Y();b.Y();b.nc(u);h=u.Y();d=h+(a.ec(a.t(G,"idle"))||oc);s.$Shift(d);b.X(s);e=b.Y()}function Yb(g,f){var e=x>0?x:ib,c=Bb*f*(e&1),d=Cb*f*(e>>1&1);c=b.round(c);d=b.round(d);a.z(g,c);a.B(g,d)}function Ob(){rb=Q;Kb=z.jd();G=w.T()}function fc(){Ob();if(C||!F&&E&12){z.W();n.i(f.de)}}function dc(e){if(!C&&(F||!(E&12))&&!z.$IsPlaying()){var c=w.T(),a=b.ceil(G);if(e&&b.abs(H)>=p.$MinDragOffsetToSlide){a=b.ceil(c);a+=gb}if(!(A&1))a=b.min(r-u,b.max(a,0));var d=b.abs(a-c);d=1-b.pow(1-d,5);if(!M&&rb)z.Kd(Kb);else if(c==a){vb.ef();vb.bc()}else z.Qb(c,a,d*Ub)}}function Ib(b){!a.t(a.Ac(b),"nodrag")&&a.Fb(b)}function tc(a){Xb(a,1)}function Xb(b,d){b=a.Xc(b);var k=a.Ac(b);if(!K&&!a.t(k,"nodrag")&&uc()&&(!d||b.touches.length==1)){C=c;Ab=g;U=i;a.c(e,d?"touchmove":"mousemove",Db);a.J();M=0;fc();if(!rb)x=0;if(d){var j=b.touches[0];wb=j.clientX;xb=j.clientY}else{var h=a.Yc(b);wb=h.x;xb=h.y}H=0;cb=0;gb=0;n.i(f.$EVT_DRAG_START,s(G),G,b)}}function Db(e){if(C){e=a.Xc(e);var f;if(e.type!="mousemove"){var l=e.touches[0];f={x:l.clientX,y:l.clientY}}else f=a.Yc(e);if(f){var j=f.x-wb,k=f.y-xb;if(b.floor(G)!=G)x=x||ib&K;if((j||k)&&!x){if(K==3)if(b.abs(k)>b.abs(j))x=2;else x=1;else x=K;if(lb&&x==1&&b.abs(k)-b.abs(j)>3)Ab=c}if(x){var d=k,i=Cb;if(x==1){d=j;i=Bb}if(!(A&1)){if(d>0){var g=i*t,h=d-g;if(h>0)d=g+b.sqrt(h)*5}if(d<0){var g=i*(r-u-t),h=-d-g;if(h>0)d=-g-b.sqrt(h)*5}}if(H-cb<-2)gb=0;else if(H-cb>2)gb=-1;cb=H;H=d;ub=G-H/i/(Z||1);if(H&&x&&!Ab){a.Fb(e);if(!Q)z.Nd(ub);else z.Sd(ub)}}}}}function ob(){rc();if(C){C=g;a.J();a.I(e,"mousemove",Db);a.I(e,"touchmove",Db);M=H;z.W();var b=w.T();n.i(f.$EVT_DRAG_END,s(b),b,s(G),G);E&12&&Ob();dc(c)}}function jc(c){if(M){a.af(c);var b=a.Ac(c);while(b&&v!==b){b.tagName=="A"&&a.Fb(c);try{b=b.parentNode}catch(d){break}}}}function nc(a){D[t];t=s(a);vb=D[t];Tb(a);return t}function Fc(a,b){x=0;nc(a);n.i(f.$EVT_PARK,s(a),b)}function Tb(b,c){N=b;a.e(P,function(a){a.qc(s(b),b,c)})}function uc(){var b=f.pd||0,a=Y;if(lb)a&1&&(a&=1);f.pd|=a;return K=a&~b}function rc(){if(K){f.pd&=~Y;K=0}}function Wb(){var b=a.bb();a.L(b,S);a.E(b,"absolute");return b}function s(a){return(a%r+r)%r}function kc(d,c){var a=d;if(c){if(!A){a=b.min(b.max(a+N,0),r-u);c=g}else if(A&2){a=s(a+N);c=g}}else if(A)a=n.od(a);pb(a,p.$SlideDuration,c)}function zb(){a.e(P,function(a){a.Bc(a.Xb.$ChanceToShow<=F)})}function hc(){if(!F){F=1;zb();if(!C){E&12&&dc();E&3&&D[t].bc()}}}function gc(){if(F){F=0;zb();C||!(E&12)||fc()}}function ic(){S={db:J,eb:I,$Top:0,$Left:0};a.e(V,function(b){a.L(b,S);a.E(b,"absolute");/*a.ab(b,"hidden");*/a.K(b)});a.L(db,S)}function nb(b,a){pb(b,a,c)}function pb(f,e,k){if(Qb&&(!C&&(F||!(E&12))||p.$NaviQuitDrag)){Q=c;C=g;z.W();if(e==j)e=Ub;var d=Eb.Eb(),a=f;if(k){a=d+f;if(f>0)a=b.ceil(a);else a=b.floor(a)}if(A&2)a=s(a);if(!(A&1))a=b.max(0,b.min(a,r-u));var i=(a-d)%r;a=d+i;var h=d==a?0:e*b.abs(i);h=b.min(h,e*u*1.5);z.Qb(d,a,h||1)}}n.$PlayTo=pb;n.$GoTo=function(a){w.v(a)};n.$Next=function(){nb(1)};n.$Prev=function(){nb(-1)};n.$Pause=function(){R=g};n.$Play=function(){if(!R){R=c;D[t]&&D[t].bc()}};n.$SetSlideshowTransitions=function(a){p.$SlideshowOptions.$Transitions=a};n.$SetCaptionTransitions=function(b){L.$CaptionTransitions=b;L.Zb=a.J()};n.$SlidesCount=function(){return V.length};n.$CurrentIndex=function(){return t};n.$IsAutoPlaying=function(){return R};n.$IsDragging=function(){return C};n.$IsSliding=function(){return Q};n.$IsMouseOver=function(){return!F};n.$LastDragSucceded=function(){return M};function X(){return a.o(y||q)}function kb(){return a.n(y||q)}n.$OriginalWidth=n.$GetOriginalWidth=X;n.$OriginalHeight=n.$GetOriginalHeight=kb;function Gb(c,d){if(c==j)return a.o(q);if(!y){var b=a.bb(e);a.Ec(b,a.Ec(q));a.Vb(b,a.Vb(q));a.N(b,"block");a.E(b,"relative");a.B(b,0);a.z(b,0);a.ab(b,"visible");y=a.bb(e);a.E(y,"absolute");a.B(y,0);a.z(y,0);a.o(y,a.o(q));a.n(y,a.n(q));a.le(y,"0 0");a.D(y,b);var h=a.V(q);a.D(q,y);a.cb(q,"backgroundImage","");a.e(h,function(c){a.D(a.t(c,"noscale")?q:b,c)})}Z=c/(d?a.n:a.o)(y);a.oe(y,Z);var g=d?Z*X():c,f=d?c:Z*kb();a.o(q,g);a.n(q,f);a.e(P,function(a){a.hc(g,f)})}n.$ScaleHeight=n.$GetScaleHeight=function(b){if(b==j)return a.n(q);Gb(b,c)};n.$ScaleWidth=n.$SetScaleWidth=n.$GetScaleWidth=Gb;n.od=function(a){var d=b.ceil(s(hb/ac)),c=s(a-N+d);if(c>u){if(a-N>r/2)a-=r;else if(a-N<=-r/2)a+=r}else a=N+c-d;return a};l.call(n);n.$Elmt=q=a.hb(q);var p=a.l({$FillMode:0,$LazyLoading:1,$StartIndex:0,$AutoPlay:g,$Loop:1,$HWA:c,$NaviQuitDrag:c,$AutoPlaySteps:1,$AutoPlayInterval:3e3,$PauseOnHover:1,$SlideDuration:500,$SlideEasing:d.$EaseOutQuad,$MinDragOffsetToSlide:20,$SlideSpacing:0,$DisplayPieces:1,$ParkingPosition:0,$UISearchMode:1,$PlayOrientation:1,$DragOrientation:1},ec);if(p.$Idle!=j)p.$AutoPlayInterval=p.$Idle;if(p.$Cols!=j)p.$DisplayPieces=p.$Cols;var ib=p.$PlayOrientation&3,vc=(p.$PlayOrientation&4)/-4||1,fb=p.$SlideshowOptions,L=a.l({$Class:o,$PlayInMode:1,$PlayOutMode:1},p.$CaptionSliderOptions),sb=p.$BulletNavigatorOptions,W=p.$ArrowNavigatorOptions,bb=p.$ThumbnailNavigatorOptions,T=!p.$UISearchMode,y,v=a.C(q,"slides",T),db=a.C(q,"loading",T)||a.bb(e),Jb=a.C(q,"navigator",T),bc=a.C(q,"arrowleft",T),Zb=a.C(q,"arrowright",T),Hb=a.C(q,"thumbnavigator",T),mc=a.o(v),lc=a.n(v),S,V=[],wc=a.V(v);a.e(wc,function(b){if(b.tagName=="DIV"&&!a.t(b,"u"))V.push(b);else a.Q()&&a.H(b,(a.H(b)||0)+1)});var t=-1,N,vb,r=V.length,J=p.$SlideWidth||mc,I=p.$SlideHeight||lc,Vb=p.$SlideSpacing,Bb=J+Vb,Cb=I+Vb,ac=ib&1?Bb:Cb,u=b.min(p.$DisplayPieces,r),jb,x,K,Ab,P=[],Pb,Rb,Nb,cc,Ec,R,E=p.$PauseOnHover,oc=p.$AutoPlayInterval,Ub=p.$SlideDuration,tb,eb,hb,Qb=u1&&tb&&(!a.Wc()||a.Sc()>=8)}hb=eb||u>=r||!(A&1)?0:p.$ParkingPosition;Y=(u>1||hb?ib:-1)&p.$DragOrientation;var yb=v,D=[],B,O,Fb=a.he(),lb=Fb.ie,G,rb,Kb,ub;Fb.dd&&a.cb(yb,Fb.dd,([i,"pan-y","pan-x","none"])[Y]||"");ab=new Bc;if(eb)B=new tb(Sb,J,I,fb,lb);a.D(jb,ab.Nb);a.ab(v,"hidden");O=Wb();a.cb(O,"backgroundColor","#000");a.rb(O,0);a.Wb(O,yb.firstChild,yb);for(var qb=0;qb=t-j.$DisplayPieces);u=c}d.qc=function(b,a,c){if(c)e=a;else{e=b;r(u)}};d.Bc=r;var s;d.hc=function(i,d){if(!s||h.$Scale==g){var e=a.tb(b).clientWidth,d=a.tb(b).clientHeight;if(h.$AutoCenter&1){a.z(b,(e-q)/2);a.z(f,(e-q)/2)}if(h.$AutoCenter&2){a.B(b,(d-o)/2);a.B(f,(d-o)/2)}s=c}};var p;d.gc=function(d){t=d;e=0;if(!p){a.c(b,"click",a.F(i,n,-k));a.c(f,"click",a.F(i,n,k));a.Ub(b);a.Ub(f);p=c}};d.Xb=h=a.l({$Steps:1},j);k=h.$Steps;if(h.$Scale==g){a.M(b,"noscale",c);a.M(f,"noscale",c)}};h.$JssorThumbnailNavigator$=function(k,C){var h=this,z,q,d,w=[],A,y,n,r,s,u,t,p,v,e,o;l.call(h);k=a.hb(k);function B(l,e){var f=this,b,k,j;function n(){k.Ic(q==e)}function g(a){(a||!v.$LastDragSucceded())&&h.i(m.Mb,e)}f.Z=e;f.Hc=n;j=l.hf||l.Tb||a.bb();f.Nb=b=a.Dc(o,"thumbnailtemplate",j,c);k=a.Ub(b);d.$ActionMode&1&&a.c(b,"click",a.F(i,g,0));d.$ActionMode&2&&a.c(b,"mouseover",a.Rb(a.F(i,g,1),b))}h.qc=function(c,d,e){var a=q;q=c;a!=-1&&w[a].Hc();w[c].Hc();!e&&v.$PlayTo(v.od(b.floor(d/n)))};h.Bc=function(b){a.A(k,b)};h.hc=a.ac;var x;h.gc=function(F,C){if(!x){z=F;b.ceil(z/n);q=-1;p=b.min(p,C.length);var h=d.$Orientation&1,l=u+(u+r)*(n-1)*(1-h),j=t+(t+s)*(n-1)*h,o=l+(l+r)*(p-1)*h,m=j+(j+s)*(p-1)*(1-h);a.E(e,"absolute");a.ab(e,"hidden");d.$AutoCenter&1&&a.z(e,(A-o)/2);d.$AutoCenter&2&&a.B(e,(y-m)/2);a.o(e,o);a.n(e,m);var i=[];a.e(C,function(k,f){var g=new B(k,f),d=g.Nb,c=b.floor(f/n),j=f%n;a.z(d,(u+r)*j*(1-h));a.B(d,(t+s)*j*h);if(!i[c]){i[c]=a.bb();a.D(e,i[c])}a.D(i[c],d);w.push(g)});var E=a.l({$HWA:g,$AutoPlay:g,$NaviQuitDrag:g,$SlideWidth:l,$SlideHeight:j,$SlideSpacing:r*h+s*(1-h),$MinDragOffsetToSlide:12,$SlideDuration:200,$PauseOnHover:1,$PlayOrientation:d.$Orientation,$DragOrientation:d.$DisableDrag?0:d.$Orientation},d);v=new f(k,E);x=c}};h.Xb=d=a.l({$SpacingX:3,$SpacingY:3,$DisplayPieces:1,$Orientation:1,$AutoCenter:3,$ActionMode:1},C);if(d.$Rows!=j)d.$Lanes=d.$Rows;A=a.o(k);y=a.n(k);e=a.C(k,"slides",c);o=a.C(e,"prototype");u=a.o(o);t=a.n(o);a.wb(o,e);n=d.$Lanes||1;r=d.$SpacingX;s=d.$SpacingY;p=d.$DisplayPieces;d.$Scale==g&&a.M(k,"noscale",c)};function o(){k.call(this,0,0);this.Sb=a.ac}h.$JssorCaptionSlider$=function(p,h,f){var c=this,g,n=f?h.$PlayInMode:h.$PlayOutMode,e=h.$CaptionTransitions,o={nb:"t",$Delay:"d",$Duration:"du",x:"x",y:"y",$Rotate:"r",$Zoom:"z",$Opacity:"f",lb:"b"},d={Cb:function(b,a){if(!isNaN(a.ob))b=a.ob;else b*=a.ze;return b},$Opacity:function(b,a){return this.Cb(b-1,a)}};d.$Zoom=d.$Opacity;k.call(c,0,0);function l(r,m){var k=[],i,j=[],c=[];function h(c,d){var b={};a.e(o,function(g,h){var e=a.t(c,g+(d||""));if(e){var f={};if(g=="t")f.ob=e;else if(e.indexOf("%")+1)f.ze=a.ec(e)/100;else f.ob=a.ec(e);b[h]=f}});return b}function p(){return e[b.floor(b.random()*e.length)]}function g(f){var h;if(f=="*")h=p();else if(f){var d=e[a.Me(f)]||e[f];if(a.mc(d)){if(f!=i){i=f;c[f]=0;j[f]=d[b.floor(b.random()*d.length)]}else c[f]++;d=j[f];if(a.mc(d)){d=d.length&&d[c[f]%d.length];if(a.mc(d))d=d[b.floor(b.random()*d.length)]}}h=d;if(a.cd(h))h=g(h)}return h}var q=a.V(r);a.e(q,function(b){var c=[];c.$Elmt=b;var e=a.t(b,"u")=="caption";a.e(f?[0,3]:[2],function(k,o){if(e){var j,f;if(k!=2||!a.t(b,"t3")){f=h(b,k);if(k==2&&!f.nb){f.$Delay=f.$Delay||{ob:0};f=a.l(h(b,0),f)}}if(f&&f.nb){j=g(f.nb.ob);if(j){var i=a.l({$Delay:0},j);a.e(f,function(c,a){var b=(d[a]||d.Cb).apply(d,[i[a],f[a]]);if(!isNaN(b))i[a]=b});if(!o)if(f.lb)i.lb=f.lb.ob||0;else if(n&2)i.lb=0}}c.push(i)}if(m%2&&!o)c.V=l(b,m+1)});k.push(c)});return k}function m(w,c,z){var g={$Easing:c.$Easing,$Round:c.$Round,$During:c.$During,$Reverse:f&&!z},m=w,r=a.tb(w),l=a.o(m),j=a.n(m),y=a.o(r),x=a.n(r),h={},e={},i=c.$ScaleClip||1;if(c.$Opacity)e.$Opacity=1-c.$Opacity;g.$OriginalWidth=l;g.$OriginalHeight=j;if(c.$Zoom||c.$Rotate){e.$Zoom=(c.$Zoom||2)-2;if(a.Q()||a.vc())e.$Zoom=b.min(e.$Zoom,1);h.$Zoom=1;var B=c.$Rotate||0;e.$Rotate=B*360;h.$Rotate=0}else if(c.$Clip){var s={$Top:0,$Right:l,$Bottom:j,$Left:0},v=a.l({},s),d=v.Bb={},u=c.$Clip&4,p=c.$Clip&8,t=c.$Clip&1,q=c.$Clip&2;if(u&&p){d.$Top=j/2*i;d.$Bottom=-d.$Top}else if(u)d.$Bottom=-j*i;else if(p)d.$Top=j*i;if(t&&q){d.$Left=l/2*i;d.$Right=-d.$Left}else if(t)d.$Right=-l*i;else if(q)d.$Left=l*i;g.$Move=c.$Move;e.$Clip=v;h.$Clip=s}var n=0,o=0;if(c.x)n-=y*c.x;if(c.y)o-=x*c.y;if(n||o||g.$Move){e.$Left=n;e.$Top=o}var A=c.$Duration;h=a.l(h,a.Vd(m,e));g.wc=a.Wd();return new k(c.$Delay,A,g,m,h,e)}function i(b,d){a.e(d,function(a){var e,h=a.$Elmt,d=a[0],k=a[1];if(d){e=m(h,d);b=e.Jb(d.lb==j?b:d.lb,1)}b=i(b,a.V);if(k){var f=m(h,k,1);f.Jb(b,1);c.X(f);g.X(f)}e&&c.X(e)});return b}c.Sb=function(){c.v(c.Y()*(f||0));g.v(0)};g=new k(0,0);i(0,n?l(p,1):[])};})(window,document,Math,null,true,false) \ No newline at end of file diff --git a/frontend/web/updatemods/counter.txt b/frontend/web/updatemods/counter.txt new file mode 100755 index 0000000..c227083 --- /dev/null +++ b/frontend/web/updatemods/counter.txt @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/frontend/web/updatemods/cr.php b/frontend/web/updatemods/cr.php new file mode 100644 index 0000000..403c8d9 --- /dev/null +++ b/frontend/web/updatemods/cr.php @@ -0,0 +1,279 @@ +query("UPDATE `mod` SET `active`=1"); +/* +if(is_file(dirname( __FILE__ )."/../upload/oldfile_1.csv")){ + + $db->query('update catalogs_config set value=value+1 where id=5'); + $status = @$db->super_query('select value from catalogs_config where id=6',$db); + + if($status[0]['value'] ==1){ + exit; + } else { + $db->query('update catalogs_config set value=1 where id=6'); + sleep(300); + } + $d1 = @$db->super_query('select value from catalogs_config where id=5',$db); + $num = $d1[0]['value']; + +} else{ + exit; +} +*/ +$num = 1; +$_SERVER['DOCUMENT_ROOT'] = realpath(dirname(__FILE__)); +$tmpfname = $_SERVER['DOCUMENT_ROOT'] . "/../upload/file_1_duble.csv"; +$handle24 = fopen($tmpfname, "w"); + + +//unlink($_SERVER['DOCUMENT_ROOT'] . "/tmp/noDB_mod.csv"); + +//$link = mysql_connect(DBHOST,DBNAME,DBPASS); +//if(@$link) echo "ok"; +//else echo "not"; + + +//$fg = @fopen(dirname( __FILE__ )."/cron/oldfile_1.csv","r"); +//if(!@$fg) exit; +//@fclose($fg); +//exit; + +$rrrrrrrrrrrr = array(); + +$last_pid = ""; + +$ma = array(); + + +$su = 0; +$su2 = 0; + +$yy = @fopen(dirname ( __FILE__ )."/counter.txt","r+"); +$su = trim(fread($yy,128)); +fclose($yy); + + + + + + + +$fg = fopen(dirname( __FILE__ )."/../upload/file_1.csv","r"); +if(@$fg){ + $cot = ""; + while(!feof($fg)) + $cot = $cot.fread($fg,512); + @fclose($fg); +} +$cot = explode("\n",$cot); + +//print_r($cot); +if(trim($su)<=0 && count($cot)>2){ + $fg = @fopen(dirname ( __FILE__ )."/../upload/noDB_mod.csv","w+"); + fclose($fg); +} + +for($i=$su;$i"; + $line = explode(";",$cot[$i]); + +print_r($line); + if(trim($line[3])>0){ +//$db->query("UPDATE `catalogs_modifications` SET `active` = '1' WHERE `code` = '".trim($line[0])."';"); + } + + +///////////////////////////////////////////// ����� ������. ���� ���, �� ������� ���. + $row_city = @$db->super_query("SELECT * FROM `catalogs_cities` WHERE `name`='".trim($line[4])."' LIMIT 1;"); + if(!@$row_city['id']){ + @$db->query("INSERT INTO `catalogs_cities` (`name`) VALUES ('".trim($line[4])."');"); + $row_city['id'] = $db->insert_id(); + } + echo "�����:".$row_city['id']."
        "; + + +///////////////////////////////////////////// �������� �������� � ������� + $protect = @$db->super_query("SELECT * FROM catalogs_keys_products_cities WHERE mod_code='".trim($line[0])."' LIMIT 1;"); + $pr = @$db->super_query("SELECT * FROM `mod` WHERE `art` = '".trim($line[0])."' LIMIT 1;"); + + +///////////////////////////////////////////// �������� ���-�� � ������� + /* + if($last_pid!=trim($pr['product_id'])){ + $last_pid = trim($pr['product_id']); + if(trim($pr['product_id'])!='') + $db->query("DELETE FROM `catalogs_keys_products_cities` WHERE `product_id` = '".trim($pr['product_id'])."';"); + } + */ + + if($last_pid!=trim($line[0])){ + $last_pid = trim($line[0]); + if(trim($line[0])!='')$db->query("DELETE FROM `catalogs_keys_products_cities` WHERE `mod_code` = '".trim($line[0])."';"); + } + + + +///////////////////////////////////////////// + + + if(!@$protect['product_id'] && @$pr['product_id']){ + @$db->query("INSERT INTO `catalogs_keys_products_cities` (`product_id`,`mod_code`,`count`,`mktime`,`city_id`) VALUES ('".@$pr['product_id']."','".trim($line[0])."','".trim($line[3])."','".time()."','".$row_city['id']."');"); + } + echo "������� ID:".$pr['product_id']."
        "; +///////////////////////////////////////////// + +///////////////////////////////////////////// �������� ������ �� ������������� � ���������� � ������. + $no_DB = 0; + /* + $product = $db->super_query("SELECT f1.product_id as in_city, f2.product_id as in_modification, f2.product_id as in_modification FROM catalogs_keys_products_cities f1 LEFT JOIN catalogs_modifications f2 ON f2.code='".trim($line[0])."' WHERE f1.mod_code='".trim($line[0])."' AND f1.city_id='".$row_city['id']."' LIMIT 1;"); + */ + + $product = $db->super_query("SELECT product_id AS in_modification +FROM `mod` +WHERE `art` = '".trim($line[0])."' LIMIT 1"); +print "SELECT product_id AS in_modification +FROM `mod` +WHERE `art` = '".trim($line[0])."' LIMIT 1"; +print_r($product);print"
        "; +print "SELECT f1.product_id FROM catalogs_keys_products_cities f1 WHERE f1.product_id='".@$product['in_modification']."' and f1.mod_code='".trim($line[0])."' AND f1.city_id='".$row_city['id']."' LIMIT 1;"; + $catalogs_keys_products_cities = $db->super_query("SELECT f1.product_id FROM catalogs_keys_products_cities f1 WHERE f1.product_id='".@$product['in_modification']."' and f1.mod_code='".trim($line[0])."' AND f1.city_id='".$row_city['id']."' LIMIT 1;"); + if(!@$catalogs_keys_products_cities['product_id']){print'not city v keys
        '; + $db->query("INSERT INTO `catalogs_keys_products_cities` (`product_id`,`mod_code`,`count`,`mktime`,`city_id`) VALUES ('".@$pr['product_id']."','".trim($line[0])."','".trim($line[3])."','".time()."','".$row_city['id']."');"); + print "INSERT INTO `catalogs_keys_products_cities` (`product_id`,`mod_code`,`count`,`mktime`,`city_id`) VALUES ('".@$pr['product_id']."','".trim($line[0])."','".trim($line[3])."','".time()."','".$row_city['id']."');
        "; + } + + + + + + + + + +//$product = $db->super_query("SELECT f2.product_id as in_modification, f2.product_id as in_modification FROM catalogs_modifications f2 //WHERE f2.code='".trim($line[0])."' LIMIT 1;"); + + + echo "��� 3:".$product['in_modification']."
        "; + +//if(@$product['in_modification'] && !@$product['in_city'] && trim($line[3])>0){ +////////$db->query("INSERT INTO `catalogs_keys_products_cities` (`product_id`,`mod_code`,`count`,`mktime`,`city_id`) VALUES ///////('".@$product['in_modification']."','".trim($line[0])."','".trim($line[3])."','".time()."','".$row_city['id']."');"); +//}else + if(@$product['in_modification']){ + $db->query("UPDATE `catalogs_keys_products_cities` SET `count`='".trim($line[3])."' WHERE `product_id`='".@$product['in_modification']."' AND `mod_code`='".trim($line[0])."' AND `city_id`=".trim($row_city['id']).";"); + print "UPDATE `catalogs_keys_products_cities` SET `count`='".trim($line[3])."' WHERE `product_id`='".@$product['in_modification']."' AND `mod_code`='".trim($line[0])."' AND `city_id`=".trim($row_city['id']).";
        "; + }elseif(!@$product['in_modification']) $no_DB = 1; +///////////////////////////////////////////// +///////////////////////////////////////////// ������ � ������������� + if(@$product['in_modification'] && trim($line[0])!='') + $row2 = $db->super_query("SELECT COUNT(*) as count FROM `catalogs_keys_products_cities` WHERE `count`>0 AND `product_id`='".@$product['in_modification']."' AND `mod_code` = '".trim($line[0])."';"); + + echo "��� 4:".$row2['count']."
        "; + + if(trim($line[2])>0){$cine = trim($line[2]);$cine_last = trim($line[1]);$sale[] = 1;} + else{$cine = trim($line[1]);$cine_last = 0;$sale[] = 0;} + + + // if(trim($line[3])<=0 && trim($line[0])!='' && $row2['count']<=0){ + // $db->query("UPDATE `mod` SET `active` = '1', `cost`=".$cine.", `old_cost`=".$cine_last." WHERE `art` = '".trim($line[0])."';"); + // }else if(trim($line[3])>0) {$db->query("UPDATE `mod` SET `active` = '0',`cost`=".$cine.", `old_cost`=".$cine_last." WHERE `art` = '".trim($line[0])."';");} + + + if($row2['count']>0)$db->query("UPDATE `mod` SET `active` = '0',`cost`=".$cine.", `old_cost`=".$cine_last." WHERE `art` = '".trim($line[0])."';"); + else $db->query("UPDATE `mod` SET `active` = '1',`cost`=".$cine.", `old_cost`=".$cine_last." WHERE `art` = '".trim($line[0])."';"); + + + +print "select COUNT(*) as count from mod where product_id='".$product['in_modification']."' and old_cost>0 GROUP BY cost"; + $p = $db->super_query("select COUNT(*) as count from `mod` where `active`=0 and product_id='".$product['in_modification']."' and old_cost>0 GROUP BY cost"); + $p2 = $db->super_query("select COUNT(*) as count from `mod` where `active`=0 and product_id='".$product['in_modification']."'"); + + print "".$p['count'].''; + $sale = ($p['count']>0 && $p['count']<$p2['count']) ? 1 : 0; + $res1 = $db->query("UPDATE `products` SET `sale`='".$sale."' WHERE `id`=".trim(@$product['in_modification'])." LIMIT 1;"); +///////////////////////////////////////////// +///////////////////////////////////////////// ��������� � ���������� �������� � ������� ��� �����������. + if(@$product['in_modification']){ + $row2 = $db->super_query("SELECT COUNT(*) as count FROM `mod` WHERE `active`=0 and `product_id`=".@$product['in_modification'].";"); + if(trim($row2['count']) <= 0) + $db->query("UPDATE `products` SET `count_modifications` = 0 WHERE `id` = '".@$product['in_modification']."';"); +//else $db->query("UPDATE `catalogs_products` SET `count_modifications` = '".trim($row2['count'])."',`active` = '1' WHERE `id` = '".@$product['in_modification']."';"); + else $db->query("UPDATE `products` SET `count_modifications` = '".trim($row2['count'])."' WHERE `id` = '".@$product['in_modification']."';"); + + } +///////////////////////////////////////////// +///////////////////////////////////////////// ���������� ����. + $row_6 = $db->super_query("SELECT COUNT(*) as count FROM `mod` WHERE `active`=0 and `product_id`='".@$product['in_modification']."'"); + $row_7 = $db->super_query("SELECT COUNT(*) as count FROM `mod` WHERE `active`=0 and `product_id`='".@$product['in_modification']."' Group by cost"); + print'('.$row_7['count'].')'; + if($row_7['count']==$row_6['count']){ + + }else{ + $row_8 = $db->super_query("SELECT cost,old_cost FROM `mod` WHERE `active`=0 and old_cost>0 AND `product_id`='".@$product['in_modification']."' Order by cost desc"); + $line[1] = 0;//$row_8['cine_last']; + $line[2] = $cine; + print'['.$line[2].']'; + } + + if(trim($line[3])>0){ + if(trim($line[2])!="0.00" && @$product['in_modification'] && trim($line[1]) != "" && trim($line[2])!=''){ + $res = $db->query("UPDATE `products` SET `old_cost`=".trim($line[1]).", `cost1`=".trim($line[2])." WHERE `id`=".trim(@$product['in_modification'])." LIMIT 1;"); + + } + elseif(trim($line[1]) != "" && @$product['in_modification']) $res = $db->query("UPDATE `products` SET `old_cost`='0' ,`cost1`=".trim($line[1])." WHERE `id`=".trim(@$product['in_modification'])." LIMIT 1;"); + if(@$res) echo "������ �� ���������� ��� ��������. ���: ".@$product['in_modification']."
        "; + }else echo "�� ����������, ����������� �����: ".@$product['in_modification']."
        "; +///////////////////////////////////////////// + fwrite($handle24,$cot[$i]."\r\n"); + $product = array(); + if($no_DB == 1){ + + + + if(!@$ma[trim($line[0])]){ + $ma[trim($line[0])]="1"; + $fg2 = @fopen(dirname ( __FILE__ )."/../upload/noDB_mod.csv","a"); + fputs($fg2,implode(";",$line)); + fclose($fg2); + } + } + +//if($su2>=1000) exit; + + $yy = @fopen(dirname ( __FILE__ )."/counter.txt","w+"); + fputs($yy,$su); + fclose($yy); + $su++; + $su2++; +} + + +$yy = @fopen(dirname ( __FILE__ )."/counter.txt","w+"); +fputs($yy,"0"); +fclose($yy); + +if($su==(count($cot)-1)){ + // @unlink(dirname( __FILE__ )."/../upload/file_1.csv"); + print "delete file"; +} + + + + + +fclose($handle24); +$db->query('update catalogs_config set value=0 where id=6'); + +?> \ No newline at end of file diff --git a/frontend/web/updatemods/mysql.class.php b/frontend/web/updatemods/mysql.class.php new file mode 100644 index 0000000..1bcbc35 --- /dev/null +++ b/frontend/web/updatemods/mysql.class.php @@ -0,0 +1,219 @@ +db_id = @mysql_connect($db_location, $db_user, $db_pass)) { + if($show_error == 1) { + $this->display_error(mysql_error(), mysql_errno()); + } else { + return false; + } + } + + if(!@mysql_select_db($db_name, $this->db_id)) { + if($show_error == 1) { + $this->display_error(mysql_error(), mysql_errno()); + } else { + return false; + } + } + + $this->mysql_version = mysql_get_server_info(); + + if(!defined('COLLATE')) + { + define ("COLLATE", "cp1251"); + } + + if (version_compare($this->mysql_version, '4.1', ">=")) mysql_query("/*!40101 SET NAMES '" . COLLATE . "' */"); + + $this->connected = true; + + return true; + } + + function query($query, $show_error=false) + { + $time_before = $this->get_real_time(); + + if(!$this->connected) $this->connect(DBUSER, DBPASS, DBNAME, DBHOST); + + if(!($this->query_id = mysql_query($query, $this->db_id) )) { + + $this->mysql_error = mysql_error(); + $this->mysql_error_num = mysql_errno(); + + if($show_error) { + $this->display_error($this->mysql_error, $this->mysql_error_num, $query); + } + } + + $this->MySQL_time_taken += $this->get_real_time() - $time_before; + + +// $this->query_list[] = array( 'time' => ($this->get_real_time() - $time_before), +// 'query' => $query, +// 'num' => (count($this->query_list) + 1)); + + $this->query_num ++; + + return $this->query_id; + } + + function get_row($query_id = '') + { + if ($query_id == '') $query_id = $this->query_id; + + return mysql_fetch_assoc($query_id); + } + + function get_array($query_id = '') + { + if ($query_id == '') $query_id = $this->query_id; + + return mysql_fetch_array($query_id); + } + + + function super_query($query, $multi = false) + { + + if(!$multi) { + + $this->query($query); + $data = $this->get_row(); + $this->free(); + return $data; + + } else { + $this->query($query); + + $rows = array(); + while($row = $this->get_row()) { + $rows[] = $row; + } + + $this->free(); + + return $rows; + } + } + + function num_rows($query_id = '') + { + + if ($query_id == '') $query_id = $this->query_id; + + return mysql_num_rows($query_id); + } + + function insert_id() + { + return mysql_insert_id($this->db_id); + } + + function get_result_fields($query_id = '') { + + if ($query_id == '') $query_id = $this->query_id; + + while ($field = mysql_fetch_field($query_id)) + { + $fields[] = $field; + } + + return $fields; + } + + function safesql( $source ) + { + if ($this->db_id) return mysql_real_escape_string ($source, $this->db_id); + else return mysql_escape_string($source); + } + + function free( $query_id = '' ) + { + + if ($query_id == '') $query_id = $this->query_id; + + @mysql_free_result($query_id); + } + + function close() + { + @mysql_close($this->db_id); + } + + function get_real_time() + { + list($seconds, $microSeconds) = explode(' ', microtime()); + return ((float)$seconds + (float)$microSeconds); + } + + function display_error($error, $error_num, $query = '') + { + if($query) { + // Safify query + $query = preg_replace("/([0-9a-f]){32}/", "********************************", $query); // Hides all hashes + $query_str = "$query"; + } + + echo ' + + + + MySQL Fatal Error + + + + + MySQL Error! +
        ------------------------
        +
        + + The Error returned was: +
        + '.$error.' + +

        + Error Number: +
        + '.$error_num.' +
        +
        + +
        + + + '; + + exit(); + } + +} + + +?> \ No newline at end of file diff --git a/frontend/widgets/BannerWidget.php b/frontend/widgets/BannerWidget.php new file mode 100644 index 0000000..b6f391f --- /dev/null +++ b/frontend/widgets/BannerWidget.php @@ -0,0 +1,76 @@ +where([Banner::tableName().'.title'=>$this->title])->one(); + if (! empty ($banner)) + { + // html + return $this->htmlBanner($banner); + } + } + + + // ==== DISPLAY ==== + + public function htmlBanner ($banner) + { + ob_start(); + + echo ''; + + return ob_get_clean(); + } +} \ No newline at end of file diff --git a/frontend/widgets/SliderWidget.php b/frontend/widgets/SliderWidget.php new file mode 100755 index 0000000..e434f1a --- /dev/null +++ b/frontend/widgets/SliderWidget.php @@ -0,0 +1,137 @@ +where([\common\models\Slider::tableName().'.title'=>$this->title])->joinWith("sliderImage")->one(); + + if (! empty ($slider)) + { + // изображения + $images = $slider->sliderImage; + if (! empty ($images)) + { + // подключаем jssor-slider + $this->initSliderJs(); + + // скрипт-обработчик + $this->initSliderScript($slider); + + // html + return $this->htmlSlider($slider, $images); + } + } + return $this->render('slider',[ + 'slider'=>$slider + ]); + + + } + + + // ==== DISPLAY ==== + + public function initSliderJs () + { + if (! $this->is_init_slider) + { + // TODO:: wiget подключение jcarousel + $this->view->registerJsFile (\Yii::$app->request->baseUrl . '/js/widget-carousel/lib/jquery.jcarousel.min.js', ['position' => View::POS_END]); + + $this->is_init_slider = true; + } + } + + public function initSliderScript ($slider) + { + $this->view->registerJs(' + var '.$slider->title.'_option_1 = { + $AutoPlayInterval: '.$slider->duration.', + $SlideDuration: '.$slider->speed.', + }; + ', 1); + + $this->view->registerCssFile (\Yii::$app->request->BaseUrl . '/js/widget-carousel/'.$slider->title.'/style.css'); + $this->view->registerJsFile (\Yii::$app->request->BaseUrl . '/js/widget-carousel/'.$slider->title.'/style.js'); + } + + public function htmlSlider ($slider, $images) + { + ob_start(); + + if (! empty ($images)) + { + echo '
        '; + + echo ' + +
        +
        +
        +
        + + +
        '; + + foreach ($images as $row) + { + echo ''; + } + + echo '
        '; + + echo ' +
        +
        +
        +
        + + + '; + + echo '
        '; + } + + return ob_get_clean(); + } + +} \ No newline at end of file -- libgit2 0.21.4